首页 > 代码库 > 软件工程第二次作业

软件工程第二次作业

 

小学生四则运算练习,这个看似简单的题目,其实做起来还是有一定的难度。如果仅仅想通过,那只需要几行代码就能实现,接下来我就谈谈我做这个的一些感受及其在做的过程中遇到的一些问题吧!

在开始时,我想着直接用几个数组进行数据的存放,然后把数输入,在屏幕上显示后,直接填写答案即可。但在做的过程中,发现了几个问题,例如孩子一次做的题量,做的正确率,这些都需要进行统计,另外,对于不同的需求,需要有不同的选择。这些,刚开始的想法并不能满足。因此,我改变了刚开始的想法。下面,就我做的过程进行简述。

首先,为了显示出友好性,需要设计出一个用户显示界面,这个界面包括做题人姓名,以及进行需求选择,还有对用户的友好性提示。其界面具体显示如下:

                       

 

通过这个,用户可以根据自己的需求,选择适合自己练习题目。

  在具体实现过程中,以上图3进行说明。在实现时,为了减轻负担,可以采用生成随机数的函数,来生成我们需要的一定范围内的随机数,并将它们进行存储。为了解释方便,给出这段的源代码:

printf(" 1.加法练习 \n");

printf("=================================================\n");

printf("\n");

srand(time(0));//生成随机数函数

printf("请输入题目总数t:                                  ");

scanf("%d",&t);

for (k=1;k<=t;k++){//控制总题数

num1=rand()%10;//生成10以内的随机数

num2=rand()%10;

printf("%d+%d=",num1,num2);

scanf("%d",&sum);

if (sum==(num1+num2))

right++;//存储答对的题数

else

wrong++;//存储答错的题

s=right/(t*1.0);

r=wrong/(t*1.0);

printf("\n");

}

printf("=========================== ======================\n");

printf("你算正确了%d次,错误了%d次,正确率为%.2f%%,错误率为%.2f%%\n",right,wrong,s*100,r*100);

break;

从这段代码中,我们可以清楚的看出是如何实现的。另外,生成一定范围内的随机数的代码如下:

 

         num1=rand()%100;

         num2=rand()%100;

这两行代码表示生成的生成100以内随机的两位数。具体的显示如下:

 

  相对于加法,减法则需要进行比较两个随机数的大小,因为小学生只能进行减数大于被减数的运算。为此,还需要进行另外的比较。其代码如下:

case 6://两位数减两位数

system("cls");

printf("===========================\n");

srand(time(0));

printf("请输入题目总数:");

scanf("%d",&t);

k=1;

do{

         do{

                   num1=rand()%100;

                   num2=rand()%100;

                   }while (num1<num2);

printf("\t%d–%d=",num1,num2);

scanf("%d",&cha);

printf("\n");

if (cha==(num1-num2))

right++;

else

wrong++;

k++;

s=right/(t*1.0);

r=wrong/(t*1.0);

}while (k<=t);

 

printf("=========================\n");

printf("你答对了%d题,答错了%d题,正确率为%.2f%%,错误率%.2f%%\n",right,wrong,s*100,r*100);

break;

其中,红色的表示判断两个数的大小,其具体显示如下:

 

 在上面的部分代码中,黑色加粗的表示进行正确率的统计,做完练习可以看到正确和错误率。

 以上就是我对于做这次作业的一些心得与体会,做的不是很完善,希望大家可以参考。

 

软件工程第二次作业