面向对象程序设计 第六次作业

写在开头

“要等到猴年马月,我才能有花不完的钱啊;要等到猴年马月,我才能找到自己的另一半啊;要等到猴年马月……”然而,在猴年马月的今天,我没有实现曾经的幻想,却迎来了人生中第一个较为完整的小项目的诞生!没错就是计算器= =

或许这就是程序猿的宿命吧,代码你是我的财富,是我的快乐,是我的情人,hold you ,i own the whole world....


参考资料

MFC计算器界面教程

MFC键盘响应

MFC文件对话框


仓库传送门click here


作业题目

本次作业在之前的基础上,要求做出计算机的图形界面,支持数字,符号,ESC,backspace以上输入,并且支持批量运算

关于过程

1、题目提供了两种实现界面的方案,MFC和QT,我反正都不是很了解,就选择了VS带有的MFC了,后来发现可能是一个很糟糕的决定。。因为听说用QT的同学都做得顺风顺水的,然而选择MFC的我却一路磕磕绊绊,真是道不尽的坎坷,泪只能默默心中留唉。

2、有了VS,搞MFC还是一脸懵逼的我,开始在网上找教程,计算器左半边按键的部分还是挺容易处理的,只需要将提供的工具箱按钮直接拖到界面,在显示框添加变量,代码部分对其简单操作即可,要注意的是MFC默认的VALUE型变量只支持CString,因此要注意先转化为std::string再进行操作。

3、接下来是响应键盘部分,小键盘上的数字键VK值很容易百度得到了,主键盘上的数字键VK值却找不到,后来刚好看到有人讨论这事,发现只需简单的直接引用就可以,幸运地节省了时间。

4、文件读入的问题个人感觉有些麻烦,要用到GetWindowText()函数解决,其次就是CEdit这个变量的处理和应用也是个难点,花了一定的时间才学会了部分用法,另外,我发现,freopen比c++的文件流操作效率高特别多,建议大家可以去尝试尝试,提高文件的运行速率。

另外,我在实际操作中的确还发现了几处bug,我会后续慢慢完善。


界面图

原文地址:https://www.cnblogs.com/Mrwho1/p/5561338.html