代码改变世界

第六次作业(计算器第四步)

2016-05-24 21:18  面向对象程序设计课  阅读(633)  评论(0编辑  收藏  举报

—— Deadline 2016/06/05 22:00——

↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑

计算器第四部分-->终于有界面啦!

!!!下文将“显示表达式和结果”的控件称为“显示区"。

  1. 不限制界面库的选择。不管你是用QT或者MFC还是其他,只要能做出来就行。
  2. 只接收以下的输入:
    • 数字0-9
    • 小数点
    • 加减乘除(这里的乘除在界面上应显示为×÷
    • 左右括号
    • 等于号(按下等于号或者键盘的Enter键即得出结果)
    • ESC键 (用来清空显示区)
    • BackSpace键 (用来删除光标前面的一个字符)
      以上这些都要有按键,同时也能通过键盘输入。除此以外的键盘输入不会显示到显示区中。
      but!如果你有给你的计算器加其他功能,那么根据需要再加入其他按键也是可以的。
  3. 要支持批量运算,即作业5的文件输入输出。两者各有一个输入框,现在要提供两种输入路径的方式:
    • 允许直接在输入框里填写路径。
    • 在输入框旁边加上一个按钮,用来选择路径。路径选择完毕后,会自动填写到输入框里面。
      批量运算功能可以放在另一个界面,也可以放在主界面(如果你不嫌丑的话……)。
  4. 向面向对象再进一步。(这是第七次作业的要求,在本次作业作为附加题)
    • 类名应为名词。Print -> Printer, Scan -> Scanner ...
    • 方法名为动词[+名词],如读为read... 写为write...
    • 对原来的Print类进行改造:类名改为Printer。Printer作为基类,派生出三个子类。三个子类分别负责将结果输出到命令行窗口、文件、计算器的显示区。
      • 基类拥有三个子类共有部分的抽象,其输出函数应为纯虚函数,其他的根据需要添加。
      • 这样将三者分开来,以便切换输出方式的时候只需更改new的对象,不需要更改其他部分的代码。并且增加了扩展性。
      • 需要用到基类(父类)派生类(子类)构造函数析构函数虚函数Override的知识。

本次作业目的:

  1. 会用C++编写简单的界面
  2. 了解更多面向对象的知识(接口,继承,覆盖...)

如果有不明白的地方,请在评论中提出来。