基于控制台的四则运算
一、题目要求:完成一个基于控制台的四则运算程序,实现一个自动生成小学四则运算题目的命令行程序
满足以下需求:
1、除了整数以外,还要支持真分数的四则运算,真分数的运算,例如:1/6 + 1/8 = 7/24
2、运算符为 +, −, ×, ÷
3、并且要求能处理用户的输入,并判断对错,打分统计正确率。
4、要求能处理用户输入的真分数, 如 1/2, 5/12 等
5、使用 -n 参数控制生成题目的个数,例如执行下面命令将生成10个题目
Myapp.exe -n 10
二、需求分析
能够自动生成四则运算题目,由人解答,并打印正确率。
三、功能设计与实现
用C语言编写函数,使用switch结构进行四则运算题的随机生成和正确率的计算。
四、部分代码展示(完整代码:https://git.coding.net/lz201421/yunsuan.git)
运算题生成部分
int k=(int)rand()%8; switch(k) { case 0: printf("%d/%d*%d/%d=",i,j,x,y); scanf("%d%c%d",&a[0],&l,&a[1]); f=i*x; g=j*y; if(a[0]/a[1]==f/g) { printf("答对\n"); c=c+1;} else printf("答错\n"); break; case 1: printf("%d/%d÷%d/%d=",i,j,x,y); scanf("%d%c%d",&a[0],&l,&a[1]); f=i*y; g=j*x; if(a[0]/a[1]==f/g) { printf("答对\n"); c=c+1;} else printf("答错\n"); break; case 2: printf("%d/%d+%d/%d=",i,j,x,y); scanf("%d%c%d",&a[0],&l,&a[1]); f=i*y+j*x; g=j*y; if(a[0]/a[1]==f/g) { printf("答对\n"); c=c+1; } else printf("答错\n"); break; case 3: printf("%d/%d-%d/%d=",i,j,x,y); scanf("%d%c%d",&a[0],&l,&a[1]); f=i*y-j*x; g=j*y; if(a[0]/a[1]==f/g) { printf("答对\n"); c=c+1; } else printf("答错\n"); break; case 4: printf("%d+%d=",s,o); scanf("%d",&w); f=s+o; if(w==f) { printf("答对\n"); c=c+1; } else printf("答错\n"); break; case 5: printf("%d-%d=",s,o); scanf("%d",&w); f=s-o; if(w==f) { printf("答对\n"); c=c+1; } else printf("答错\n"); break; case 6: printf("%d*%d=",s,o); scanf("%d",&w); f=s*o; if(w==f) { printf("答对\n"); c=c+1; } else printf("答错\n"); break; case 7: printf("%d÷%d=",s,o); scanf("%d",&w); f=s/o; if(w==f) { printf("答对\n"); c=c+1; } else printf("答错\n"); break;
PSP2.1 |
Personal Software Process Stages |
Estimated time(min) |
actual time(min) |
Planning |
计划 |
90 |
120 |
· Estimate |
估计这个任务需要多少时间 |
90 |
120 |
Development |
开发 |
90 |
120 |
· Analysis |
需求分析 (包括学习新技术) |
10 |
10 |
· Design Spec |
生成设计文档 |
10 |
10 |
· Design Review |
设计复审 |
10 |
15 |
· Coding Standard |
代码规范 |
10 |
15 |
· Design |
具体设计 |
10 |
15 |
· Coding |
具体编码 |
80 |
100 |
· Code Review |
代码复审 |
10 |
10 |
· Test |
测试(自我测试,修改代码,提交修改) |
10 |
10 |
Reporting |
报告 |
10 |
15 |
· |
测试报告 |
5 |
5 |
· |
计算工作量 |
5 |
3 |
· |
并提出过程改进计划 |
5 |
10
|