《面向对象程序设计》第七次作业(课程总结)

(好像无意中在第六次作业里已经完成惹一部分的第七次作业orzzz)

嗯,先看看整个项目过程中到底做了什么吧~

  • step1:读入运算表达式逐个输出
  • step2:考虑优先级的表达式计算
  • step3:指定路径读取计算表达式
  • step4:完成项目GUI图形化界面

1. 待改进或完善的地方

首先还是有部分表达式会跑崩orz 在step2的时候调试过各种类型的表达式,那时候还是能正确计算出橘犇犇博客欢乐的评论区下第一反人类表达式的好游戏机,然而加了后来七七八八的东西之后虽然并没有动到计算表达式的函数,但是不知怎么的居然崩掉了。嗯还是要好好调试一下。虽然是出于自己代码看不下去所以也没有了当时第三次作业的时候兴致勃勃的调一下午的耐心orz
然后就是GUI界面的文件读写出问题orz 可以正常运行,然而在一打开文件浏览框的时候控制台出error(执行exe文件的话看不出,就只是点OK按钮没反应) 参照的Qt语法应该是没错的来着,查了很多的资料,要不然就是没有结果,唯一好像有所依据的一个博客说是win10的问题(后来在win10技术交流贴之类的地方也看到这个问题说Qt运行报了这样的错误,但是没有解答),且始终没有找到那个error的解决方法,最终弃疗。(以及好像在按钮重复键入表达式好像会出事?orz)

2. 关于重构

在第五次作业的时候,其实非常的想弃疗。即便有注释,大致还是知道哪一部分是在干嘛,但是代码结构真的乱,非常想重构。
有时候完成项目需求好像只是为了做出这个功能,但是没有考虑下万一突然加需求呢?万一内测没出事回头被用户玩出了bug呢?想维护然而打开代码woc简直不想再看一眼orz
因为没能写出自己都看着舒服的代码,当时不觉得,一段时间后再看简直头大。这况且还始终是一个人写的,要是多人合作拿到的代码就是一阵晕眩woc友谊的小船说翻就翻orz
想重构但目前还没那个勇气和耐心,也没有信心不确定能不能比现在的样子做得好。但如果要重构,估计是会大改(要求的固定返回值固定参数有时候脑回路不太对啊gg)

框架图如下:

886183-20160618154104510-1333171152.png

(划掉那个从Print返回Main的箭头x)
(那个非法输入就是判断是否超过10位,没什么好说的,这里就不赘述了)

大致思路想要改动的地方是Scan类,想把表达式字符串和argv[]、argc一起作为它成员变量,然后构造函数传参的时候一起传进去,然后写一个成员函数调用另一个成员函数扫描表达式把结果队列return回来,作为参数调用Calculator类的计算函数,在计算函数中先调用转后缀表达式的成员函数,然后计算,计算结果return回来之后,Scan类的这个函数根据成员变量的值调用一个判断哪种输出方式的成员函数,判断出来的输出方式调用Print类传入计算结果输出。
或者这些工作可以另外再建一个类来完成,就好比写UI里的MainWindow所做的工作那样。也就是说这里有个总的一系列操作,我希望它是一个返回值为void的总导全局的函数而非在main里苦苦建立三个对象分别调用自己的成员函数,这样在main里只要建个对象传个参,调用下这个函数两句话完结。

(改动前也就是现在的情况是这样的:main里建立Scan对象,调用成员函数传入表达式参数,扫描后的队列return回main里,然后建立Calculator对象,调用转后缀函数传入队列,后缀队列return回main里,然后调用计算函数传入后缀队列,结果return回main里,然后根据main的参数判断输出方式,建立Print对象,根据参数的不同判断下调用哪个成员函数传入计算结果,输出,结束。——来自爆炸的main函数以及屡次要弃疗的自己x)

3. 课程总结

在这个课程中,你发了多少篇博客?
在这个课程中,你写了多少行代码?
在本学期的学习中,有哪些是经过博客作业后才学到的?
经过这学期的学习,你有哪些体会和感受?
今后在编程这一方面有什么计划?

在整个课程中,包括这次发了11篇博客(其中包括一个给eclipse安装Qt插件的逗比错误分析贴)。代码写了好几千行吧。
经过博客作业后才学到的..这个,好像基本都是经过博客作业学到的吧orz..github啊markdown啊计算器里用到的c++各种工具啊Qt基础语法啊什么的。虽然大多还是停留在浅薄的不能更浅薄的层次上(比如git各种用法,还是只会基础到飞起的上传层面orz遇到传不上去的情况才会去查查这是发生了啥orz以及这次作业上传造成的代码冲突是相当懵逼的orz而且最可怕的是发现本地文件也同样被改写了,多了一些七七八八的乱码,还好有存档orz后来图方便在仓库里手动改了。嗯以后有时间有机会还是得好好学一下orz)
至于体会和感受,好像已经在各种吐槽和牢骚中说的差不多了233 倒是有一点越来越能体会到,那就是出问题了之后寻找答案的过程比解决问题更有价值。在整个项目过程中不懂遇到了多少错误查了多少资料,翻遍了stackOverFlow的情况大有所在(讲真stackoverflow作为查资料必备当真良心荐),给eclipse安Qt插件的一个错误查遍了所有能查的地方没有任何相关问题,我甚至跑去私戳了教程博主orz(虽然人家博主没回orz)。有时候为查一个error花了很多很多时间最终无果,时常感到特别沮丧(其实后来偶尔无意中自己摸索到问题所在的情况也是有的),但是无论如何这一切其实很有意义,至少我觉得比最终得到解答更有意义。(捡起了被安个Qt插件折磨得起死回生的自己x)
老师说一些体会本来是在大三的软件工程才会教给我们。提前体验了一波好像也还不错?233
编程计划orz目前好像没什么计划,毕竟以后不走产品来着,所以也只是学基础,写项目也是巩固基础然后写着玩233(非常想玩硬件,被安利电脑鼠时候心跳加速x 下学期想花大把精力好好玩w)

转载于:https://www.cnblogs.com/thousfeet/p/5596289.html

不好意思,本人发的"北大青鸟ACCP 6.0 软件开发初级程序员:c#语言和数据库技术基础"和 "北大青鸟ACCP 6.0 软件开发初级程序员:使用C#语言开发数据库应用系统" 文件搞反了,如果一起下载不影响的。呵呵 ACCP(Aptech Certified Computer Professional)是印度最早从事IT职业教育的Aptech计算机教育公司推出的培养软件程序设计人员的课程体系,由北大青鸟集团于2000年引入中国。该课程体系通过结合先进的多模式教学法,使学习者在掌握理论知识与工具的同时,具备良好的自我学习能力和个人素质,成为符合21世纪企业要求的IT人才。   ACCP 6.0是北大青鸟APTECH推出的最新软件工程师职业教育课程,由中印两国软件技术专家联合研发完成。作为一款面向大众的求职系列教育产品,ACCP6.0的课程开发采用了全球同步机制,推陈出新,引领未来IT技术发展潮流,继续保持了北大青鸟APTECH ACCP课程体系的国际同步水平以及在国内IT职业教育领域的领导地位。   ACCP6.0的课程相对于ACCP5.0增加了DB2关系型数据库系统,DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。DB2具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 09年6月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9.5,而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。   ACCP6.0课程体系特色   1.分阶段训练:引领学员入门,加大训练量,训练学员程序逻辑和写代码的能力,夯实学员的基础;   2.分术业专攻:基础和思想决定了一个人含金量。要想在软件行业增强发展力,必须着重基础与理论知识。   3.分维度培养:从业务理解、经验积累、规范性、质量控制、团队意识和软件生命周期六个方面进行训练。   4.分层次深入:主要分为初次使用、理解加深和灵活应用这三个层次。学员理解为更为透彻,掌握更为牢固。   逆向设计确保就业——专业分析5362条招聘信息   ——深入访谈386家用人企业   ——定制2份行业人才需求标准简历   ——针对286项关键技能点逐一突破   ——斥资2000万,组织186名中美印专家投入研发   高强训练编程能力——1年半完成52000行代码编写   ——相当于1名程序员2年代码编写量   项目驱动案例贯穿——提供CRM、ERP中型项目实战训练   ——演练26项全真项目案例,贯穿8大行业   打造COT六脉神剑 ——训练目标清晰 训练手段多样   ——渗透学习过程 考核方法明确   ——接轨职场礼仪 积累职场经验
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值