- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”。 让程序能接受用户输入答案,并判定对错。 最后给出总共 对/错 的数量。
一: 要求:
在之前编写的四则运算程序基础之上做如下改进:
1 请参照教材Page57:4.2-4.3节中内容,修改原程序,使之符合 “代码风格和设计规范”的基本要求;
2 请采用模块化设计思想,修改之前的code,将 “计算功能” 封装起来
小提示:
假如在C语言环境下,可将函数声明与具体实现分别存放在头文件(.h)和源文件(.c)中;
二:需求分析:
累计每次测试答对,答错的题的个数
对用户给出的答案做出相应判断
显示答案的对错
三:扩展功能:
程序可以求出带括号的四则运算
四则运算中允许有2位小数的出现
四:设计:
在原来程序基础上采用模块化思想,把源文件分成几个模块进行封装
五:代码实现
.cpp文件
1 #include"h.h" 2 void main() 3 { 4 int shuru=0; 5 char x; 6 system("color F"); 7 printf(" 欢迎参加小学生数学四项法则测试\n"); 8 system("pause"); 9 system("cls"); 10 while (1) 11 { 12 printf("你需要做什么题型计算?请选择:加(输入1) 减 (输入2) 乘(输入3) 除(输入4)\n"); 13 if(shuru==0) 14 scanf("%c",&x); 15 switch(x) 16 { 17 case ‘1‘: jiafa();break; 18 case ‘2‘: jianfa();break; 19 case ‘3‘: chengfa();break; 20 case ‘4‘: chufa();break; 21 default : printf("输入错误,请重新输入"); 22 } 23 printf("请输入数字选择:\n1.继续\n2.重新选择题型\n3.结束\n"); 24 scanf("%d",&shuru); 25 if(shuru==1) shuru=1; 26 if(shuru==2) {shuru=0;getchar();} 27 if(shuru==3) break; 28 } 29 printf("正确个数%d\n",l); 30 printf("错误个数%d\n",h); 31 }
.h文件
1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<math.h> 4 #include<time.h> 5 #include<windows.h> 6 int l,h; 7 void jiafa() 8 { 9 int i,j,m; 10 srand(time(NULL)); 11 i=rand()%100; 12 j=rand()%100; 13 printf("%d+%d=",i,j); 14 scanf("%d",&m); 15 if(i+j==m) 16 { 17 printf("回答正确"); 18 l++; 19 } else { 20 printf("回答错误\n%d+%d=%d\n",i,j,i+j); 21 h++; 22 } 23 } 24 25 void jianfa() 26 { 27 int i,j,m; 28 i=rand()%100; 29 j=rand()%100; 30 printf("%d-%d=",i,j); 31 scanf("%d",&m); 32 if(i-j==m) 33 { 34 printf("回答正确"); 35 l++; 36 } else{ 37 printf("回答错误\n%d-%d=%d\n",i,j,i-j); 38 h++; 39 } 40 } 41 42 void chengfa() 43 44 { 45 int i,j,m; 46 i=rand()%100; 47 j=-rand()%10; 48 if(j<0) 49 printf("%d*(%d)=",i,j); 50 else 51 printf("%d*%d=",i,j); 52 scanf("%d",&m); 53 if(i*j==m) 54 { 55 printf("回答正确"); 56 l++; 57 } else{ 58 printf("回答错误\n%d*(%d)=%d\n",i,j,i*j); 59 h++; 60 } 61 } 62 void chufa() 63 { 64 int i,j; 65 double m; 66 i=rand()%100; 67 j=1+rand()%100; 68 printf("%d/%d=",i,j); 69 scanf("%0.2f",&m); 70 double a = (int((i / (j * 1.0)) * 100 + 0.5))/100.0; 71 printf("a = %0.2f", a); 72 if(a==m) 73 { 74 printf("回答正确"); 75 l++; 76 } else{ 77 printf("回答错误\n"); 78 h++; 79 } 80 }
运行结果
六:两人合作步骤
1、在做作业之前两人先各自看4.1和4.2的内容
2、两人一起讨论对程序做哪些方面的改进
3、讨论之后两人开始修改
4、两人一起检查
5、最后对代码进行复审
七:总结:
1、在编写程序时,一个人容易出现许多错误,这需要我们两人合作更快地解决错误,让代码得以完善。
2、这次作业让我们体会到了与人合作的重要性。
时间: 2024-10-21 01:49:43