面向对象程序设计_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面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...
随机推荐
- Apriori算法进行关联分析
设全集U = {a, b, c, d, e},其元素a,b, c, d, e称为项. 数据集: D = [ {a, b}, {b, c, d}, {d, e}, {b, c, e}, {a,b, c, ...
- C字符串
C字符串 C中的字符串是以空字符('\0')结尾的一个char数组,基本的实现字符串的方法有:字符串常量,字符串数组,char数组,char指针.字符串使用广泛,如与用户交互等处理自然语言的情况.C为 ...
- Netty 出站缓冲区 ChannelOutboundBuffer 源码解析(isWritable 属性的重要性)
目录: 前言 ChannelOutboundBuffer 介绍 addMessage 方法 addFlush 方法 flush0 方法 缓冲区扩展思考 总结 每个 ChannelSocket 的 Un ...
- linux中使用Crontab定时执行java的jar包无法使用环境变量的问题
1.crontab简单使用 cmd 其实就是5个星星的事情,随便百度一下吧 5个时间标签用来标注执行的设定.比如每5分钟执行一次/5 * * * cmd 要特别注意 2.有些命令在命令行里执行很好,到 ...
- EF 求和 GroupBy多个字段
GroupBy根据多个字段分组使用方式: 一.使用扩展方法 query.GroupBy(q => new { q.Year, q.Month }) .Select(q => new { Y ...
- [日常] Go语言圣经-指针对象的方法-bit数组习题
练习6.1: 为bit数组实现下面这些方法 func (*IntSet) Len() int // return the number of elements func (*IntSet) Remov ...
- 几点建议,让Redis在你的系统中发挥更大作用
Redis在很多方面与其他数据库解决方案不同:它使用内存提供主存储支持,而仅使用硬盘做持久性的存储:它的数据模型非常独特,用的是单线程.另一个大区别在于,你可以在开发环境中使用Redis的功能,但却不 ...
- 地区picker 各选择器,优劣分析
移动端选择器picker有很多,各大ui组件都有自己的picker,比如light7,HUI,MUI,jqueryUI等等.但是,我发现他们都有各种各样的问题.这次的地区选择,需要地区的省份+市+经纬 ...
- 用node.js模拟服务器和客户端
服务器 代码 var net = require("net") var server = net.createServer(); server.listen(12306," ...
- JS函数机制小结
1.javascript中函数是第一型对象,即与其它对象一样,具有: 1.可以通过字面量创建 2.可以赋值给变量或者属性 3.可以作为参数进行传递 4.可以作为函数结果返回 5.拥有属性和方法 2.函 ...