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. PowerBuilder编程新思维3:适配(三层架构与GraphQL)

    PowerBuilder编程新思维3:适配(三层架构与GraphQL) PB在富客户端时代,是一线开发工具.随着网络发展,主流架构演进到三层架构的时代,PB拿不出有力的三层架构,已经明显力不从心,市场 ...

  2. 怎样删除windows.old文件

    方法1: 1.在C盘上点右键,选择属性.2.在常规选项卡中点击”磁盘清理“3.稍等片刻再弹出的选项卡中点击清理系统文件4.选中以前Windows的安装5.点击确定即可安全清理 方法二: WIN7中的w ...

  3. golang中的 time 常用操作

    时间戳 时间戳 (例如: 1554714009) time.now().Unix() 格式时间 (例如: 2019-04-08 17:00:09) time.Now().Format("20 ...

  4. unity中 TextMeshPro 的常用标签

    这个第二和第三个写反了. 例子10中的123标签需要用到另一个字体,详情看 TextMeshPro 的官方示例10.

  5. SSH:Hibernate框架(七种关联关系映射及配置详解)

    概念 基本映射是对一个实体进行映射,关联映射就是处理多个实体之间的关系,将关联关系映射到数据库中,所谓的关联关系在对象模型中有一个或多个引用. 分类 关联关系分为上述七种,但是由于相互之间有各种关系, ...

  6. [MongoDB] mongodb与php

    windows上安装mongodb的php扩展 下载地址https://s3.amazonaws.com/drivers.mongodb.org/php/index.html 找到对应的php版本的d ...

  7. 【Java并发编程】2、无锁编程:lock-free原理;CAS;ABA问题

    转自:http://blog.csdn.net/kangroger/article/details/47867269 定义 无锁编程是指在不使用锁的情况下,在多线程环境下实现多变量的同步.即在没有线程 ...

  8. 了解java虚拟机—串行回收器(6)

    串行回收器 串行回收器只有一个工作线程,串行回收器可以在新生代和老年代使用,根据作用于不同的堆和空间,分为新生代串行回收器和老年代串行回收器. 1.新生代串行回收器 串行收集器是所有垃圾回收器中最古老 ...

  9. js实现获取URL参数

    function GetQueryString(name) { var reg = new RegExp("(^|&)"+ name +"=([^&]*) ...

  10. Jquery 打开新页面

    1.在click事件触发时,先打开空白页面 var newWeb=window.open('_blank'); 2.在事件操作后,写入空白页面的链接 newWeb.location='新页面的链接地址 ...