在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
题目:让程序能接受用户输入答案,并判定对错。最后给出总共对/错 的数量。 一、设计思想 1.存储用户输入答案,与正确答案比较得出总共对错数量。 二、源程序代码 1 #include<iostream.h> 2 #include<stdlib.h> 3 #include "time.h" 4 #include<stdio.h> 5 int main () 6 { 7 int a,b,c,f,j,i,t,num,l,jj,cc,fw;//i,j,t是计数变量,a,b是运算数。 8 int r=0;//正确数目。 9 int e=0;//错误数目。 10 char daan; 11 cout<<"-----------------四则运算题----------------------"<<endl; 12 cout<<endl; 13 srand( (unsigned)time( NULL ) );//随机数种子为当前计算机时间。 14 cout<<"*************请填写题目要求:********************"<<endl; 15 cout<<"* *"<<endl; 16 cout<<"* 1.请输入要生成题目数num: *"<<endl;//选择题目数量。 17 cout<<"* 2.请输入打印方式(列数l、行间距jj): *"<<endl;//选择打印方式。 18 cout<<"* 3.请选择有无乘除法cc(1代表有或0代表无): *"<<endl;//有无乘除法。 19 cout<<"* 4.请选择数的范围fw(fw是指该范围内最大的数): *"<<endl;//选择数的范围。 20 cout<<"* 5.请选择除法有无余数c(1代表有或0代表无): *"<<endl;//选择除法有无余数。 21 cout<<"* 6.请选择加减有无负数f(1代表有或0代表无): *"<<endl;//选择加减有无负数。 22 cout<<"* *"<<endl; 23 cout<<"*************************************************"<<endl; 24 cout<<"请输入要生成题目数num:"<<endl; 25 cin>>num; 26 int a1[100000];//存储用户输入答案。 27 int b1[100000];//正确答案。 28 if(num<0) 29 { 30 cout<<"错了! 亲! 题目数量不能小于0,请重输:"; 31 cin>>num; 32 } 33 cout<<"请输入打印方式 (列数l):"<<endl; 34 cin>>l; 35 if(l<=0) 36 { 37 cout<<"错了! 亲! 列数不能小于等于0,请重输:"; 38 cin>>l; 39 } 40 cout<<"请输入打印方式 (行间距jj):"<<endl; 41 cin>>jj; 42 if(jj<=0) 43 { 44 cout<<"错了! 亲! 行间距不能小于等于0,请重输:"; 45 cin>>jj; 46 } 47 cout<<"请选择有无乘除法cc(1代表有或0代表无): "<<endl; 48 cin>>cc; 49 if(cc!=0&&cc!=1) 50 { 51 cout<<"错了! 亲! 请重输:"; 52 cin>>cc; 53 } 54 cout<<"请选择数的范围fw(fw是指该范围内最大的数):"<<endl; 55 cin>>fw; 56 cout<<"请选择除法有无余数c(1代表有或0代表无):"<<endl; 57 cin>>c; 58 if(c!=0&&c!=1) 59 { 60 cout<<"错了! 亲! 请重输:"; 61 cin>>c; 62 } 63 cout<<"请选择加减有无负数f(1代表有或0代表无):"<<endl; 64 cin>>f; 65 if(f!=0&&f!=1) 66 { 67 cout<<"错了! 亲! 请重输:"; 68 cin>>f; 69 } 70 cout<<endl; 71 if(cc==1) 72 cc=cc+3; 73 else 74 cc=cc+2; 75 for(j=0;j<num;j++) 76 { 77 //产生随机数。 78 a=rand()%fw; 79 b=rand()%fw+1;//保证除数不为0。 80 i=rand()%cc; 81 cout<<"<"<<j+1<<">: "; 82 switch(i) 83 { 84 case 0: 85 cout<<a<<"+"<<b<<"="; 86 b1[j]=a+b; 87 break; 88 case 1: 89 if(f==0&&a<=b) 90 { 91 cout<<b<<"-"<<a<<"="; 92 b1[j]=b-a; 93 } 94 else 95 { 96 cout<<a<<"-"<<b<<"="; 97 b1[j]=a-b; 98 } 99 break; 100 case 2: 101 cout<<a<<"*"<<b<<"="; 102 b1[j]=a*b; 103 break; 104 case 3: 105 if(a%b!=0&&c==0) 106 { 107 cout<<a-a%b<<"/"<<b<<"="; 108 b1[j]=(a-a%b)/b; 109 } 110 else 111 { 112 cout<<a<<"/"<<b<<"="; 113 b1[j]=a/b; 114 } 115 break; 116 } 117 cin>>a1[j]; 118 if(j%l==l-1) 119 { 120 for(t=0;t<jj;t++) 121 cout<<endl; 122 } 123 } 124 cout<<endl; 125 for(j=0;j<num;j++) 126 { 127 if(b1[j]==a1[j]) 128 r++; 129 else 130 e++; 131 } 132 cout<<"恭喜你做对了"<<r<<"道题目"<<endl; 133 cout<<"是否输出正确答案:(Y/N)"; 134 cin>>daan; 135 if(daan=='Y') 136 for(j=0;j<num;j++) 137 { 138 cout<<"<"<<j+1<<">: "<<b1[j]<<endl; 139 } 140 141 return 0; 142 } 三、运行截图 四、实验心得 以前写代码不注意添加{}导致修改错误 如: case 1:
89 if(f==0&&a<=b)
90
91 cout<<b<<"-"<<a<<"=";
92 b1[j]=b-a;
93
94 else
95
习惯真的很重要,设计中出现了逻辑错误,通过测试用例 得到解决。 五、PSP0级 记录表
周活动记录总表 姓名:董龙洋 日期:2015.3.21
阶段时间和效率 周数(上一次周活动表的周数+1):1 不包括上一周在内的累计时间
以前各周的累积时间
时间记录表: 学生:董龙洋 日期:2015.3.21 教师:王建民 课程:psp
缺陷记录日志: 学生:董龙洋 日期:2015.3.21 教师:王建民 程序员:
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论