THE LAST ONE!! 2017《面向对象程序设计》课程作业八

031602230 卢恺翔

GitHub传送门


题目描述

1.时间匆匆,本学期的博客作业就要结束了,是否有点不舍,是否还想继续迭代优化你们计算器项目的作业呢?本学期最后一次博客作业,请大家描述:

  • 从寒假到这次结束,经历的博客及编码作业的过程;
  • 通过博客作业学到的知识、理论或技能;
  • 博客作业结束时的感受;
  • 暑假要如何规划,请立下你们的flag。

2.请将第六次博客作业中学习到的界面编程运用到本学期的面向对象计算器项目中。

作业要求

  • 发表一篇博客,博客内容为:提供本次作业的github链接,界面截图、题目描述的第一点内容。
  • 第六次已经做过简单界面的同学请思考如果优化界面,让界面更加优雅美观。还未实现界面的同学请完成本次界面编程的作业

从寒假到这次结束,经历的博客及编码作业的过程

编程作业总共经历了4个过程:

  1. 实现四则运算计算器的核心算法和初步的界面设计
  2. 实现多种语言的转换
  3. 通过文件的传输来进行赋值和写入文件
  4. 初步学习MFC的界面设计

其中博客作业出了每次编程的报告之外,还有关于类图的设计和MFC的自主学习。

通过博客作业学到的知识、理论或技能

学会使用vs2015,这种强大的编译器和Github这种好用的开源平台。

学习了类的结构,栈的结构,中缀转后缀的算法,文件的读入和写入,相对路径和绝对路径,类图的设计(迷),和MFC的初步设计等知识。也了解到了团队合作的有趣和重要性。

博客作业结束时的感受

感觉,终于解放了。。。主要是一开始没有理会老师的意思,当时以为要自己设计一套算法(不用栈的那种,写了好几个if),所以觉得这个非常难。。。但结束的时候也有点寂寞和不舍吧。如果没有这次编程作业,恐怕在这大学四年都无法体验到这种编这种(比较)大项目的感受了。而且也学习了不少课外的知识,对自己的帮助挺大的。很感谢老师能给我们提供这样的教学方式。

暑假要如何规划,请立下你们的flag

emmmmmm,最喜欢立flag了。这次的编程对括号的处理还不是特别到位,暑假打算对数据结构进行学习,完善算法。(其实寒假就想学了,结果被四则运算打乱了。。。)


请将第六次博客作业中学习到的界面编程运用到本学期的面向对象计算器项目中

因为是初学,还不懂如何将之前做的程序的所有功能转移到MFC中,比如语言界面的转化啊什么的。但是大体框架还是做好了。

左上角那个edit control 和右下角那个 设置为只读,分别用来生成随机算式和显示结果。

右上角那个edit control和左下角那个设置为可以写入,左下角那个设置为可写入是因为我觉得背景是白色的颜色对比度会大一点,比较好看。

显示题目按钮

void CMFCApplication3Dlg::OnBnClickedButton3()
{
UpdateData();
static int i = 1; //用于记录题号
string str;
Data dat;
str = dat.generateExpression(i); //生成随机算式
rightanswer = dat.expressionCalculate(str); //计算正确值(int 型)
i++;
EQUATION = str.c_str();
aa = aa+EQUATION; //用于在程序的左下角文本框中记录每道题的题目
string ans;
CString answ;
ans = dat.int_str(ANSWER);
answ = ans.c_str();
aa = aa + answ;
aa = aa +'\r' +'\n'; //左下角文本框中的换行
UpdateData(FALSE);
// TODO: 在此添加控件通知处理程序代码
}

判断正误按钮

void CMFCApplication3Dlg::OnBnClickedButton1()
{ UpdateData(TRUE);
Data dat;
CString s1,s2; //用于在程序的左下角文本框中记录每道题的正确答案
s1 = "正确"; //如果答案正确,输出“正确”
string s3;
s3 = "错误,正确答案为"; //如果答案错误,输出“错误,正确答案为...”
s3 = s3 + dat.int_str(rightanswer);
s2 = s3.c_str(); if (ANSWER == rightanswer)
JUGG = s1;
else
JUGG = s2;
aa = aa + JUGG + '\r' + '\n'; //左下角文本框中的换行
AA = aa;
UpdateData(FALSE); // TODO: 在此添加控件通知处理程序代码
}

详见GitHub链接

THE LAST ONE!! 2017《面向对象程序设计》课程作业八的更多相关文章

  1. <面向对象程序设计>课程作业一

    Github链接 在看完这次的作业要求后我整个人是混乱的,因为作业要求把不同的函数放在一个main函数中:我们之前也是进行了函数分离,但是是放在了不同的文件中.如果要改的话相当于重写(而且这两种形式其 ...

  2. 2017面向对象程序设计(Java)第二周学习总结

    2017面向对象程序设计(Java)第二周学习总结 直系学妹学弟们好!额...不要问我为什么把学妹放前面,我也不知道!我只是你们和蔼可亲的学长一枚而已.也不要问为什么是第二周学习总结而不是第一周,因为 ...

  3. “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排

    “2017面向对象程序设计(Java)第十三周学习总结”存在问题的反馈及本周教学安排1. 图形界面事件处理技术是Java GUI编程核心技术,要求同学们掌握其基本原理和基本编程模型:2. 本周四理论课 ...

  4. 对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(JAVA)第四周学习总结”存在问题的反馈 “这部分同学博文总结没有写,实验作业没有提交.”——1.关于博文作业.实验作业教学功能的正解:学习知识.暴露问题.衔接课上.2 ...

  5. “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排

    “2017面向对象程序设计(Java)第十一周学习总结”存在问题的反馈及教学安排1.“提出表扬的同学:姜依萍,王雪玲,徐楠,相文君,赵晓未提交作业的同学:任红强,王瑞强,宗鹏新,扎西才让,布旦刀杰,范 ...

  6. “2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第就九周学习总结”存在问题的反馈 1.博文未写者:高树平 高俊梅 冯小丽 缪召召 王瑞强 宗鹏新 李向龙 马润韬 米奇辉 卯保云——不及时提交博客的同学人数出 ...

  7. 对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈

    对于“2017面向对象程序设计(Java)第三周学习总结”存在问题的反馈 一:教学中存在的学习问题 “1.由于同学们平时练习不足,上课总是出现跟不上老师的节奏的现象. 2.个别同学上课不认真听讲,打开 ...

  8. 2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)

    2017面向对象程序设计(Java) 第1周学习指导及要求(2017.8.24-2017.8.27)   学习目标 了解课程上课方式及老师教学要求,掌握课程学习必要的软件工具: 简单了解Java特点及 ...

  9. 2017面向对象程序设计(Java) 第4周学习指导及要求(2017.9.14-2017.9.18)

    学习目标 深入理解程序设计中算法与程序的关系: 深入理解java程序设计中类与对象的关系: 理解OO程序设计的第一个特征:封装: 需要掌握基本使用方法的预定义类有:Math类.String类.Arra ...

随机推荐

  1. [转载]ArcGIS SERVER 9.3如何清除REST缓存

    有时候,发布了一个服务后,但是点击服务后,不能显示出来 http://hostname/ArcGIS/rest/services/服务名称/MapServer 这时候,十有八九是因为REST缓存没有清 ...

  2. BZOJ5092:[Lydsy1711月赛]分割序列(贪心,高维前缀和)

    Description 对于一个长度为n的非负整数序列b_1,b_2,...,b_n,定义这个序列的能量为:f(b)=max{i=0,1,...,n}((b_1 xor b_2 xor...xor b ...

  3. UI之富文本编辑器-UEditor

    在做Web应用时,经常会进行富文本编辑,常用的富文本编辑器有很多,比如CuteEditor.CKEditor.NicEditor.KindEditor.UEditor等等. 在这里为大家推荐百度推出的 ...

  4. 【题解】[HNOI2008]神奇的国度—BZOJ1006。

    之前说顺着打BZOJ结果又被自己给鸽了qwq. ------------------------------------ 言归正传这道题应该怎么做. 先给大家普及一下弦图(连接环上俩个不相邻节点的边称 ...

  5. Python2.7-anydbm

    anydbm模块,把各种数据库模块(dbhash (requires bsddb), gdbm, or dbm)的接口进行了统一.打开后返回的对象操作和字典类似 模块方法: anydbm.open(f ...

  6. Python2.7-functools

    functools 模块,是一个高阶函数模块,很有用,尤其是 partial 函数(类似函数定义了默认参数)和装饰器属性更新函数.装饰器在实现的时候,被修饰后的函数其实已经是另外一个函数了(函数名等函 ...

  7. zookeeper&acticemq&redis&tomcat安装

    zookeeper安装  配置hosts  下载 wget http://apache.fayea.com/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar. ...

  8. Python 函数(二)

    Python 3 函数(匿名函数.偏函数 and 变量作用域:全局变量.局部变量) 一.匿名函数:没有名字,也不再使用 def 语句这样标准的形式定义的一个函数. OCP培训说明连接:https:// ...

  9. mybatis的一对一,一对多查询,延迟加载,缓存介绍

    一对一查询 需求 查询订单信息关联查询用户信息 sql语句 /*通过orders关联查询用户使用user_id一个外键,只能关联查询出一条用户记录就可以使用内连接*/ SELECT orders.*, ...

  10. 服务器端数据合法性验证:签名sign和口令token原理

    有时候,你也许会想: 我写的接口,那别人要是知道url,并且知道其需要的数据结构和逻辑,那不是都可以访问了? 甚至是,客户点传递过来的数据,是不是被恶意修改了? 这时,我们可能需要“验证”一下.比如: ...