- 题目:
请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共 对/错 的数量。
一 需求分析:
- 运行界面用户按任意键开始运行,根据提示选择所要实现的计算(加、减、乘、除)
- 选择相应计算后,程序对应算法随机产生两个数,用户给出答案
- 用户给出答案,程序进行判断答案是否正确
- 运行退出时,程序给出计算结果,统计答题正确与错误的个数
二 设计:
- rand()%100用来产生0~100以内的随机数,cystem("pause")用于暂停
- 四个子函数对应相应的加减乘除运算,并判断结果对错
- switch选择调用运算种类
三 代码实现
#include <stdio.h> #include <windows.h> int right=0,wrong=0; void add() { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:%d+%d=",a,b); scanf("%d",&c); if(a+b!=c){printf("回答错误 ");wrong++;} else {printf("回答正确 ");right++;} } void minu() { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:%d-%d=",a,b); scanf("%d",&c); if(a-b!=c){printf("回答错误 ");wrong++;} else {printf("回答正确 ");right++;} } void mul() { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:%d*%d=",a,b); scanf("%d",&c); if(a*b!=c){printf("回答错误 ");wrong++;} else {printf("回答正确 ");right++;} } void di() { int a,b,c; a=rand()%100; b=rand()%100; printf("请回答:%d/%d=",a,b); scanf("%d",&c); if(a/b!=c){printf("回答错误 ");wrong++;} else {printf("回答正确 ");right++;} } void main() { int choise,con=0; printf(" 四则运算程序 "); system("pause"); system("cls"); while(1) { printf(" 请选择: 加(输入1) 减(输入2) 乘(输入3) 除(输入4) "); if(con==0)scanf("%d",&choise); switch(choise) { case 1:add();break; case 2:minu();break; case 3:mul();break; case 4:di();break; } printf("请问您想继续进行这个运算还是重新选择其他运算还是退出程序? 继续(输入1),重新(输入2),退出(输入3)"); scanf("%d",&con); if(con==1)con=1; if(con==2)con=0; if(con==3)break; } printf("您总做了%d个题,正确%d的道,错误%d道! ",right+wrong,right,wrong); system("pause"); }
四 测试:(结果截图)
五 事后分析和总结:
PSP耗时统计
PSP | 耗时 | 百分比 |
需求分析 | 10 | 13% |
设计 | 20 | 27% |
代码实现 | 35 | 47% |
测试 | 5 | 6.5% |
分析和总结 | 5 | 6.5% |
分析与总结:
- 首先必须要了解用户需求--编写一个能自动生成小学四则运算题目的 “软件”
- 思路要清晰,要有一个对程序设计走向的基本认识
- 编写程序过程中,有不清楚的地方,善于查阅资料
- 代码编写个人感觉很难(可能是由于自己编程基础太差),通过上网查阅、借鉴,才勉强完成。