设计一个智力开发软件,要求进行4则运算的测试,分别包括2个数的相加(可以设置两个10以内的数相加、2个100以内的数相加)、相减(可以设置两个10以内的数相减、2个100以内的数相减,注意可以设置结果是否允许为负)、相加相减混合运算(加与减的符号通过随机数产生、比如随机数为偶数取加号、否则取减号)、相乘(可以设置两个10以内的数相乘、1个100以内的数与一个10以内的数相乘),可以设置一共测试多少题,根据使用人给的答案给出判断,最后给出测试成绩。
注意所有的数字都是通过随机数产生出来的
菜单可以是下面这样的:
1、测试
2、设置
3、当前设置
0、退出
首次未经设置进入1,系统进入一个默认的测试(10题2个10以内数的加、或减的运算),如果先进行设置,则按设置的题型、题数进行测试。
进入2,系统进入下一个菜单可以这样
1、设置测试题目数
2、设置题型
3、退出
这时如果选1、系统会提示:
请选择你需要测试的题目数:
1、10题
2、20题
0、退出
程序可以按菜单选择
如果选择设置选择提型,系统进入下一个菜单可以这样
1、10以内的数相加
2、100以内的数相加
3、10以内的数相减
4、10以内的数相减(容许结果为负)
5、100以内的数相减
6、100以内的数相减(容许结果为负)
7、相加相减混合运算
8、相加相减混合运算(容许结果为负)
9、10以内的数相乘
10、100以内的数与10以内的数相乘
0、退出
注意:
1、当前设置菜单就是显示当前的设置是什么题型、多少测试题目
2、保证2个数相减大于等于0,可以在产生第二个随机数时限制,比如第一个数为20,则让第二个产生的范围为0-20
3、测试的实现是判断系统产生的2个随机数通过运算得到的结果与用户输入的结果进行比较,相符正确,否则错误,最后显示本次测试的正确率
四则运算 求助求助求助
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- Neyleer 2019-11-20 19:28关注
#include
#include
#include
int timushu = 10;
int TiXing;
int suiji(int n) {
int a = rand() % n + 1;
return a;
}
void f1() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(10);
int b = suiji(10);
printf("%d + %d= ", a, b);
int c = a + b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f2() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(100);
int b = suiji(100);
printf("%d + %d= ", a, b);
int c = a + b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f3() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(10);
int b = suiji(10);
if (a > b) {
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
else {
printf("%d - %d= ", b, a);
int c = b - a;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f4() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(10);
int b = suiji(10);
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f5() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(100);
int b = suiji(100);
if (a > b) {
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
else {
printf("%d - %d= ", b, a);
int c = b - a;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f6() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(100);
int b = suiji(100);
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f7() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(100);
int b = suiji(100);
int i = suiji(10);
if (i % 2 == 0) {
if (a > b) {
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
else {
printf("%d - %d= ", b, a);
int c = b - a;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
else {
printf("%d + %d= ", a, b);
int c = a + b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f8() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(100);
int b = suiji(100);
int i = suiji(10);
if (i % 2 == 0) {
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
else {
printf("%d + %d= ", a, b);
int c = a + b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f9() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(10);
int b = suiji(10);
printf("%d * %d= ", a, b);
int c = a * b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,", timushu, sum);
}
void f10() {
int sum=0;
for (int flag = 1; flag <= timushu; flag++) {
int a = suiji(10);
int b = suiji(10);
printf("%d * %d= ", a, b);
int c = a * b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
printf("%d道题目中做对了%d道题目,",timushu,sum);
}
void diaoyong(int n) {
switch (n)
{
case 1:f1(); break;
case 2:f2(); break;
case 3:f3(); break;
case 4:f4(); break;
case 5:f5(); break;
case 6:f6(); break;
case 7:f7(); break;
case 8:f8(); break;
case 9:f9(); break;
case 10:f10(); break;
case 0:; break;
}
}
int Tixing() {
int n;
printf("请选择题目类型:\n1、10以内数相加\n2、100以内数相加\n3、10以内数相减\n4、10以内数相减(容许结果为负)\n5、100以内数相减\n6、100以内数相减(容许结果为负)\n7、相加相减混合运算\n8、相加相减混合运算(容许结果为负)9、10以内数相乘\n10、100以内的数与10以内的数相乘\n0、退出");
scanf("%d", &n);
switch (n)
{
case 1:return 1;
case 2:return 2;
case 3:return 3;
case 4:return 4;
case 5:return 5;
case 6:return 6;
case 7:return 7;
case 8:return 8;
case 9:return 9;
case 10:return 10;
case 0:;break;
}
}
void Shumu() {
int t;
printf("1、10道题\n2、20道题\n0、退出");
scanf("%d", &t);
switch (t)
{
case 1:timushu = 10; break;
case 2:timushu = 20; break;
case 0:; break;
}
}
void Set() {
int k;
printf("1、设置测试题目数\n2、设置题型\n0、退出");
scanf("%d",&k);
switch (k)
{
case 1:Shumu(); break;
case 2:TiXing=Tixing(); break;
case 0:; break;
}
}
void Tixingchakan(int k) {
switch (k)
{
case 1:printf("10以内的数相加\n"); break;
case 2:printf("100以内的数相加\n"); break;
case 3:printf("10以内的数相减\n"); break;
case 4:printf("10以内的数相减(可为负)\n"); break;
case 5:printf("100以内的数相减\n"); break;
case 6:printf("100以内的数相减(可为负)\n"); break;
case 7:printf("相加相减混合运算\n"); break;
case 8:printf("相加相减混合运算(可为负)\n"); break;
case 9:printf("10以内的数相乘\n"); break;
case 10:printf("100以内的数与10以内的数相乘\n"); break;
}
}
int Moreng() {
int sum=0;
for (int flag = 1; flag <= 10; flag++) {
int a = suiji(10);
int b = suiji(10);
int k = suiji(10);
if (k % 2 == 0) {
printf("%d + %d= ", a, b);
int c = a + b;
int n;
scanf("%d", &n);
if (n == c) { sum++; }
}
else
{
printf("%d - %d= ", a, b);
int c = a - b;
int n;
scanf("%d", &n);
if (n == c) sum++;
}
}
return sum;
}
int main() {
int m,n=1,k=0;
srand((unsigned int)time(0));
printf("*************************************************\n");
printf("*************************************************\n");
while (n != 0) {
printf("********************请选择菜单*******************\n\n");
printf(" 1、测试 2、设置 \n");
printf(" 3、当前设置 0、退出 \n");
scanf("%d", &m);
switch (m)
{
case 1:if (k == 0) {
int j=Moreng(); printf("10道题做对了%d道题\n",j);
}
else {
diaoyong(TiXing);
}break;
case 2:Set(); k++; break;
case 3:printf("当前测试题目数量为%d,测试的题型是:\n", timushu); Tixingchakan(TiXing); break;
case 0:--n; break;
}
}解决 无用评论 打赏 举报
悬赏问题
- ¥100 有人会搭建GPT-J-6B框架吗?有偿
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名