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的更多相关文章

  1. [.net 面向对象程序设计深入](0) 开篇

    [.net 面向对象程序设计深入](0)开篇        [.net 面向对象编程基础]和 [.net 面向对象程序设计进阶]在15年底写完了,群里也加进来不少热爱学习的小伙伴.让我深切感受到在这个 ...

  2. [.net 面向对象程序设计进阶] (1) 开篇

    [.net 面向对象程序设计进阶] (1) 开篇 上一系列文章<.net 面向对象编程基础>写完后,很多小伙伴们希望我有时间再写一点进阶的文章,于是有了这个系列文章.这一系列的文章中, 对 ...

  3. [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型、视图、控制器、路由等的基本操作

    [.net 面向对象程序设计深入](6).NET MVC 6 —— 模型.视图.控制器.路由等的基本操作 1. 使用Visual Studio 2015创建Web App (1)文件>新建> ...

  4. [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux)

    [.net 面向对象程序设计深入](5)MVC 6 —— 构建跨平台.NET开发环境(Windows/Mac OS X/Linux) 1.关于跨平台 上篇中介绍了MVC的发展历程,说到ASP.NET ...

  5. [.net 面向对象程序设计深入](4)MVC 6 —— 谈谈MVC的版本变迁及新版本6.0发展方向

    [.net 面向对象程序设计深入](4)MVC 6 ——谈谈MVC的版本变迁及新版本6.0发展方向 1.关于MVC 在本篇中不再详细介绍MVC的基础概念,这些东西百度要比我写的全面多了,MVC从1.0 ...

  6. [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图

    [.net 面向对象程序设计深入](3)UML——在Visual Studio 2013/2015中设计UML活动图 1.活动图简介 定义:是阐明了业务用例实现的工作流程. 业务工作流程说明了业务为向 ...

  7. [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图

    [.net 面向对象程序设计深入](2)UML——在Visual Studio 2013/2015中设计UML用例图  1.用例图简介 定义:用例图主要用来描述“用户.需求.系统功能单元”之间的关系. ...

  8. [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图

    [.net 面向对象程序设计深入](1)UML——在Visual Studio 2013/2015中设计UML类图 1.UML简介 Unified Modeling Language (UML)又称统 ...

  9. [.net 面向对象程序设计进阶] (28) 结束语——告别2015

    [.net 面向对象程序设计进阶] (28) 结束语——告别2015 <.net面向对象程序设计进阶>这一系列文章写了太长的时间了,大概有半年没写,在年底又一口气写了好几篇.在整个过程中目 ...

随机推荐

  1. Redis散列操作

    Redis的散列可以将多个键值对存储在一个Redis键里面.可以把这种数据聚集看作是数据库中的行或者文档数据库中的文档. (添加和删除键值对) HMGET : HMGET key-name key [ ...

  2. FineUI 布局宽度自适应,后台回调js方法

    FineUI页面布局,宽度自适应 @(F.Panel().CssClass().ShowBorder().BoxConfigChildMargin("0 5 0 0").ShowH ...

  3. PHP语法-该注意的细节

    php in_array(mixed $needle, array $haystack[, bool $strict = FALSE] ) 注意: 一.如果$needle 是字符串,则比较是区分大小写 ...

  4. 自己写一个java的mvc框架吧(二)

    自己写一个mvc框架吧(二) 自己写代码的习惯 写一个框架吧,如果这个框架会用到一些配置上的东西,我自己习惯是先不用考虑这个配置文件应该是怎样的,什么形式的,先用一个java对象(比如叫 Config ...

  5. Netty中的LoggingHandler()

    当添加.addLast("logging", new LoggingHandler(LogLevel.INFO))这行代码时 Netty就会以给定的日志级别打印出LoggingHa ...

  6. Android自定义Aop的Gradle Plugin

    [上一篇文章]中讲解了如何在Android使用AOP,会发现在Gradle配置aop会比较麻烦,每个module使用了aop都需要配置.接下来看如何简化配置. 1.创建Module 首先,需要建立一个 ...

  7. ubuntu 17.10 安装后的应用软件安装

    目录 安装 sogou 拼音 安装markdown编辑器 安装codeblocks 下载工具uGet+aira2 安装QT 安装remarkable(markdown工具) 安装StarUML(UML ...

  8. Python 调度算法 死锁 静动态链接 分页分段

    1 select poll epoll的区别基本上select有3个缺点: 连接数受限查找配对速度慢数据由内核拷贝到用户态poll改善了第一个缺点 epoll改了三个缺点. (1)select,pol ...

  9. vue-router重定向 不刷新问题

    前阵子太忙了,自己一个人一边开发着新项目,一边维护着旧项目,没时间写博客,终于让我腾出时间了.废话少说,开始正文. 问题描述: 之前项目是angular开发的,后来用vue重构后.项目路径和vue路径 ...

  10. vuex 管理vue-router的传值

    假设有这样的一种情况,在两个组件中.一个组件[A]主要是比如说放表格数据,而另外一个组件[B]是专门用来向组件A的表格添加数据的表单.这个时候就是两个兄弟组件之间传递数据了.首先想到的是使用兄弟组件传 ...