2017《面向对象程序设计》课程作业一

2017《面向对象程序设计》课程作业一

林燊 031602325 https://www.cnblogs.com/linshen/

github链接:https://github.com/Travaill/arithmetic.git

1.设计思路

2017《面向对象程序设计》课程作业一_第1张图片

2.程序功能

  • 能对0--10之间的整数进行四则运算(加减乘除)

  • 能实现选择中文,英文,德语法语,日语五种语言
  • 程序能接收用户输入的整数答案,并判断对错
  • 程序结束时,统计出答对、答错的题目数量

3.算法分析

  • 类generate 实现随机算式的生成
  • 类calculate 计算算式的结果
  • 类control 控制题目生成的数量 控制生成符合要求的算式 控制程序的退出 控制程序的语言
  • 类printf 输出算式、判断结果、统计答题情况

4.代码规范

  • 函数的命名必须使用英文单词,不使用拼音缩写
  • 函数的命名如果一个单词的必须首字母大写,如果多个单词的用下划线隔开
  • 程序结构清析,简单易懂,单个函数的程序行数不得超过100行。
  • 要随意定义全局变量,尽量使用局部变量。
  • 函数的旁边必须注释上本函数的功能
  • 禁止GOTO语句。

5.代码展示

类"generate"

int Generate::randomNumber(int low,int high)  //生成[low,high]随机数 
{
    return (rand()% (high - low+1) + low);
}  

string Generate::randomOperation(int rand)     //生成四则运算符 
{
    string ope;
    switch(rand) 
    {
        case 1:ope='+'; break;
        case 2:ope='-'; break;
        case 3:ope='*'; break;
        case 4:ope='/'; break;
    }
    return ope;
}

string Generate::generatePolynomial(int rand1,int rand2,string ope,int mode)  //生成多项式 
{
   stringstream ss;
   if(mode==1) 
  {
    ss << '(' << rand1<

main

  int main(void)
{
    srand((unsigned)time(NULL));             //重置种子 
    Printf().ShowLanguageList();             //展示可选择语言列表 
    cout<>counts;
    for (int i=0;i

6.提交日志证明

2017《面向对象程序设计》课程作业一_第2张图片

7.程序测试

2017《面向对象程序设计》课程作业一_第3张图片
2017《面向对象程序设计》课程作业一_第4张图片

9.个人感受

本次的代码版本更迭,我主要把目标放在打造高内聚低耦合上面,减弱每个模块内部在这里我们可以看做每个类之间的联系,加强模块与模块间的联系。

以上述的generate类作为例子,之前下一个函数都会调用前一个函数,这样很不利于程序的维护,所以,对于这些功能比较单一,较为底层的函数,我运用参数的方法,减少其与其他函数的联系。同时,在最后一个函数中引用前面所有的函数,加强了模块的内部的联系。

同时,在其他类中,我基本做到了,不引用另外类中的函数,可见,类与类的联系是很低的,这就是所谓的低耦合。

转载于:https://www.cnblogs.com/linshen/p/6758562.html

你可能感兴趣的:(2017《面向对象程序设计》课程作业一)