- 题目:
请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共 对/错 的数量。
一:基本要求
1:题型选择界面设计,选择加、减、乘、除运算。
2:系统随机产生十以内的两个数进行运算。
3:练习时,用户从键盘取结果,正确和错误均有提示,按2,显示错误数、正确数和总数。
二:需求分析
编写小学四则运算测试系统,要求完成两位数的加,减,乘,除四则运算。能根据用户的输入来选择运算种类,用户输入答案后可以判断正误,做完一次测试后,用户可以决定是否继续进行下一次运算。
三:设计
1:定义变量其中t,i,a,b,c,error其中t表示答对的题数,error表示答错的题数,i表示一共答题数,a,b表示随机产生的数,c表示接收从键盘输入的运算结果。
2:分别定义加,减,乘,除子函数,错误和正确都有提示。
3:主函数用switch来实现用户的输入来选择运算种类,并输出答题的数目和正确的题数。
四:代码实现
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int i,a,b,c,error,t;
void jia()
{
srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("%d+%d=",a,b);
scanf("%d",&c);//取结果
i++;
if(c!=a+b)//答案错误
{
printf("Error!
");
error++;
}else{
t++;
printf("Good!
");
} }
void jian()
{
srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("%d-%d=",a,b);//出题
scanf("%d",&c);//取结果
i++;
if(c!=a-b)
{
printf("Error!
");
error++;//错误自加
} else{
t++;
printf("Good!
");
}}
void cheng()
{
srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("%d*%d=",a,b);//出题
scanf("%d",&c);//取结果
i++;
if(c!=a*b)
{
printf("Error!
");
error++;//错误自加
}else{
t++;
printf("Good!
");
}}
void chu()
{
srand(time(NULL));
a=rand()%10;
b=rand()%10;
printf("%d/%d=",a,b);//出题
scanf("%d",&c);//取结果
i++;
if(b==0)
printf("除式无意义");
if(c!=a/b)
{
printf("Error!
");
error++;//错误自加
}else{
t++;
printf("Good!
");
}
}
void main()
{
int shuru=0;
char x;
printf("请输入:加(1) 减 (2) 乘(3) 除(4):
");
if(shuru==0)
scanf("%c",&x);
while (1)
{
switch(x)
{
case '1': jia();break;
case '2': jian();break;
case '3': cheng();break;
case '4': chu();break;
default : printf("输入错误,请重新输入");
}
printf("请输入数字选择:
1.继续
2.结束
");
scanf("%d",&shuru);
if(shuru==1) shuru=1;
if(shuru==2) break;
}
printf("%d个错误!
",error);//输出错误数
printf("正确个数为 %d
",t);
printf("答题数为 %d
",i);
}
五:系统测试
1.加法
2.减法
3.乘法
4.除法
六:PSP耗时统记
序号 | PSP | 耗时h | 比例% |
1 | 需求分析 | 5 | 8.77 |
2 | 设计 | 7 | 12.28 |
3 | 代码 | 22 | 38.60 |
4 | 测试 | 12 | 21.05 |
5 | 分析和总结 | 11 |
19.30 |
七:分析和总结
通过这次作业,我们可以知道要做好一个软件,首先,我们要做需求分析,如果可行,我们才能做设计,而且代码写好了我们也还要测试,然后我们要做PSP耗时统记(计算工作量),最后我们可以改进。
[设计模式]之一:简单工厂模式
[iOS] WSHorizontalPickerView 图片水平滚动封装
[闲谈] 有经验的程序员用Google用得多么?
Flutter 布局(四)- Baseline、FractionallySizedBox、IntrinsicHeight、IntrinsicWidth详解
Flutter 布局(二)- Padding、Align、Center详解
Flutter 布局(一)- Container详解
Flutter 布局详解
Flutter Plugin开发流程
现有项目中集成Flutter
- 最新文章
-
纹理混合遇到的问题 pre-multiplying OpenGL Android iOS
红米 Note3 (kenzo)刷入 Lineage OS
OpenGL: Rotation vector sensor of Android and Device motion of iOS
Git: 本地创建版本库用于多处同步
Android: 工具使用备忘
WebApi 添加 Swagger UI
Android 自定义弹出框带EditText
android 圆角背景
MySQL针对对账数据,每天每个店只能产生一条对账记录,对数据库数据进行添加联合唯一索引设置
.net webapi 后台导出excel 申请付款单实例
Copyright © 2020-2023
润新知