OOA(Object Oriented Analysis,面向对象分析): 从客观存在的事务和事务之间的关系,概括出有关对象(包括对象的属性和行为)以及对象之间的联系,并将具备相同属性和行为的对象用一个类(class)来表示。创建一个可以反映真实状况的需求模型。
OOD(Object Oriented Design,面向对象设计):将面向对象分析阶段造成的需求模型进一步具体设计。如类的设计(继承、派生、类与类之间的消息协做)、算法的设计等。采起通用的工具,如流程图、类图等来描述。算法
A:大体可分为四个类。
1.文件读写类,将各类界面进行读取,输入输出流文件。express
class file { private: int n;//题数 char input[100]; char output[100]; public: void readfile1();//读取文件 void readfile2(char *p, int n, int right);//运行 void writefile1(char *s,double right, double answer);//内容写入 };
2.用户交互类,用于不一样用户的语言需求,根据用户需求生成语言,题目数和生成答案。dom
class ex { private: int num; int answer; int random; public: void scanf();//选择语言,获取数据 void answer();//输出正确答案 void statistics();//统计题数 }
3.随机生成类,用于随机生成加减乘除,数字以及符号。模块化
class random { private: int number; char operation; public: int randomnum();//随机数 char randomoperation();//随机运算符 char randomexpress();//随机算式 };
4.计算类,用于计算结果工具
class cal { private: int answer; char express; public: int cal();//计算结果 void judge();//统计答题状况 }
类图以下:
编码
A:流程图以下:
设计
A:采用循环队列栈等等...至于博客园中大神们用到的逆波兰,目前还在研究中...code
很是感谢各位大佬们的帮助,这次改进代码后类的思路较为清晰,也渐渐出现了模块化的水准,再一步步的向分装化改进,程序变得更加清楚,也纠正了本身的编码习惯。对象