面向对象程序设计_Task7_Summary
Summary of the ...
题目链接:第七次作业
终于还是迎来了这学期的最后一次作业,唠叨话还是放最后说,先说说计算器这玩意儿吧
贯穿了整个学期的计算器,要是让我对自己做个评价,顶多只是还好这个么客套词吧
1.
你现在完成的计算器有哪些可以继续改进或完善的地方?
说到继续改进或完善的地方,估计一大堆吧,毕竟最后做出来的计算器只是最简单的界面实现
从第一次到第七次,应该说是惰性呢还是其他呢,即便有了一些新的想法要补充的,也会碍于太麻烦去实现或是自觉意义不大而止步。拿最近,就上一次的界面作业来说,在完成最基本的框架,转而思考用户交互(希望没有用错词)方面时,自然而然会萌生各种奇奇怪怪的想法,如果我使用这个计算器,怎样才能给我更好的操作体验= =...比如最基本的就是提示窗口,在用户产生错误操作时给出友好的提示信息,抑或是显示怎样的字体会看的更舒服,多大的窗口比较合适等等,或许也可以说是强迫症,但Maybe游戏玩多了很在意体验感,在基本完成之后就开始思考细枝末节的东西。
言归正传,对于我现在完成的计算器的话,很多的在上一次作业的评论中已经指出,那些点暂且不谈。除了这些已经指出的之外,我自己的思考的话,一个是类类间的调用关系,这是让我很纠结的一个问题,缺乏或者说不能很好的理解面向对象的思想,在文件的操作上不能思考出一个合理的类类关系;另外,上面所述的亦是需要完善的地方,除此之外,适当的添加更多的运算方法Maybe更破费!
2.
你是否有想过重构你所写的计算器?如果让你重构你的计算器,你会如何重构?请写出你的重构计划。
说实话的话,在看到这个问题之前,回答是没有。但看到之后不免会去想,重构?在已经深刻在脑海里的属于自己的计算器的框架感觉很难推掉重来。
重构,要的话第一刀砍的肯定是Printer类,猖狂了这么多版本不来波大削要上天了(毒...)
Printer类的文件操作简直就是个毒瘤
void Print::printResult_f(string inputAddr, string outputAddr)这个方法名字表达的功能是输出,然而它却处理了读取文件、协调调用等功能。
文件输入放在Scan里更合适一点吧?而协调调用应放在Main里面。
当时说是要改,但是在多次尝试之后并没有实际的下刀,因为不知道怎么下!有点绕来绕去绕晕了,重构的话,第一个要砍的就是将这个函数修改成不同类之间符合类实际功能的调用关系
此外,基本的框架在重构时并不会做大多的修改,思考过不在主函数而是其他类中生成Calculat的对象,但是感觉上并不太好。所以还是会在主函数中调用Calculator的对象,生成计算器界面,在根据不同操作调用类类的不同函数。
3.
课程总结,包括但不限于以下内容:
在这个课程中,你发了多少篇博客?
在这个课程中,你写了多少行代码?
在本学期的学习中,有哪些是经过博客作业后才学到的?
经过这学期的学习,你有哪些体会和感受?
今后在编程这一方面有什么计划?
算上这次,不知不觉发了10篇的随笔,数量还是少得可怜,但是确实是从0开始到了使用博客并发表了随笔,而且闲着无聊的时候也会逛逛博客园看看别人的帖子,也算是看到了新的一面了...
多少行代码...这种东西还真不好说,在完成品出来之前,经历过多次的修修补补,早就不知幕后有多少写了删删了写的代码,估的话也就几千行吧
github,算是印象比较深的吧,在经过博客作业后所学。当然,很多都是在作业过程中不断摸索不断学习的,markdown语法,QT,前缀、中缀、后缀表达式等等等等
体会和感受的话,啊啊啊啊啊啊,终于熬到瞎比比的时刻啦。这么多次的作业,很多都是在自己欢声笑语中/* 打出gg(尴尬...) */不断的改进自己的东西,应该说是蜜汁自信吗= =还是什么,对于每一次的作业都有种不怕死的想法,生生拖拖拖的才去做,就像现在,明明明天早上还有考试,一本书等着去预习,我还不怕死的在这里敲敲打打了半个晚上,话外吐槽请无视= =...当然,做计算器的过程中,等着更新版本还是很interesting的,有时候在写的时候克制不住整天都会在脑海里萌生各种摆脱不掉的想法,各种跃跃欲试的感觉,总之撇开学了什么不说,一次次的过程,还是一路欢歌的吧...
最后,计划。其实什么方面在自己试过之后在能知道,很明显,这一次的计算器其实也算是更提起了对这种能搞出实实在在的界面的东西的兴趣,而不是面对着黑框框,算是对之前停止学习JAVA之后又提起了点搞出不是黑框框的东西的热情。不过,在此之前,还是先让我在算法这一块洒点热血吧...
以上。
面向对象程序设计_Task7_Summary的更多相关文章
- [.net 面向对象程序设计深入](0) 开篇
[.net 面向对象程序设计深入](0)开篇 [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...
- [.net 面向对象程序设计进阶] (1) 开篇
[.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...
- [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作
[.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ...
- [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)
[.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...
- [.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向
[.net 面向对象程序设计深入](4)MVC 6 ——谈谈MVC的版本变迁及新版本6.0发展方向 1.关于MVC 在本篇中不再详细介绍MVC的基础概念,这些东西百度要比我写的全面多了,MVC从1.0 ...
- [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图
[.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...
- [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图
[.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图 1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...
- [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图
[.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...
- [.net 面向对象程序设计进阶] (28) 结束语——告别2015
[.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...
随机推荐
- Java控制并发线程数的Semaphore
Semaphore(信号量)是用来控制同时访问特定资源的线程数量,它通过协调各个线程,以保证合理的使用公共资源.以前我都觉得从字面上很难理解Semaphore所表达的含义,只能把它比作是控制流量的红绿 ...
- 嵌入式Linux安装Dropbear SSH server
0. 背景 OpenSSH因为其相对较大,一般不太适用于嵌入式平台,多用于PC或者服务器的Linux版本中. Dropbear是一个相对较小的SSH服务器和客户端.它运行在一个基于POSIX的各种平台 ...
- linux中使用Crontab定时执行java的jar包无法使用环境变量的问题
1.crontab简单使用 cmd 其实就是5个星星的事情,随便百度一下吧 5个时间标签用来标注执行的设定.比如每5分钟执行一次/5 * * * cmd 要特别注意 2.有些命令在命令行里执行很好,到 ...
- .netcore入门
开发环境:windows 编辑器: Visual Studio Code 环境安装: .Net Core 1.1 SDK https://www.microsoft.com/net/co ...
- MQ单一消息完整流程
public class QueueManger { private static string QueuePath = @".\private$\{0}"; /// <su ...
- Java基础——字符编码
一.ASII 美国(国家)信息交换标准(代)码. 计算机中只有数字,一切都是用数字表示,屏幕上显示的一个一个的字符也不例外. 一个字节可表示的数字为0-255,足以显示键盘上的所有的字符 例如. a ...
- 使用Spring的AbstractRoutingDataSource类来进行拓展多数据源
1.继承抽象类AbstractRoutingDataSource 通过重写这个抽象类的determineCurrentLookupKey()方法来决定返回哪个数据库. 2.配置多个数据库 <be ...
- 【JavaFx教程】第二部分:Model 和 TableView
第二部分的主题 创建一个 模型 类. 在 ObservableList 使用模型类. 使用 Controllers 在 TableView 上显示数据. 创建 模型 类. 我们需要一个模型类来保存联系 ...
- Java - HashMap 多线程安全解析
HashMap多线程并发问题分析 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问 ...
- SpringBoot拦截器中无法注入bean的解决方法
SpringBoot拦截器中无法注入bean的解决方法 在使用springboot的拦截器时,有时候希望在拦截器中注入bean方便使用 但是如果直接注入会发现无法注入而报空指针异常 解决方法: 在注册 ...