标签:
一、题目: 请编写一个能自动生成小学四则运算题目的 “软件”。让程序能接受用户输入答案,并判定对错。最后给出总共 对/错 的数量。
二、具体设计:
1、定义变量:a、b、c三个变量,a、b表示随机产生的0-100之间的整数用rand()%100实现,然后c表示进行各种运算后的运算结果,right表示回答正确的次数,wrong表示回答错误的次数,定义x、y表示判断选择哪种计算方式以及进行那个步骤。
2、 主函数主体部分用来做判断选择调用加减乘除哪个子函数主要用switch()实现,以及输出总的题目数量以及对与错的数量。
3、子函数部分,主要写实现加减乘除四则基本运算,判断用户输入的计算结果是否与随机产生的结果相同,如果相同,则right的次数加1,否则,wrong的次数加1 。
三、代码:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int wrong=0,right=0;
void jia()
{
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请输入你的运算结果:%d+%d=",a,b);
scanf("%d",&c);
if(a+b==c){
printf("结果正确\n");
right++;
}
else {
printf("结果错误\n");
wrong++;
}
}
void jian(){
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请输入你的运算结果:%d-%d=",a,b);
scanf("%d",&c);
if(a-b==c){
printf("结果正确\n");
right++;
}
else {
printf("结果错误\n");
wrong++;
}
}
void cheng(){
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请输入你的运算结果:%d*%d=",a,b);
scanf("%d",&c);
if(a*b==c){
printf("结果正确\n");
right++;
}
else {
printf("结果错误\n");
wrong++;
}
}
void chu(){
int a,b,c;
a=rand()%100;
b=rand()%100;
printf("请输入你的运算结果:%d/%d=",a,b);
scanf("%d",&c);
if(a/b==c){
printf("结果正确\n");
right++;
}
else {
printf("结果错误\n");
wrong++;
}
}
void main(){
int x,y=0;
while(1) {
printf("请选择:\n加法运算(输入1)\n减法运算(输入2)\n乘法运算(输入3)\n除法运算(输入4)\n");
if(y==0)scanf("%d",&x);
switch(x) {
case 1:jia();break;
case 2:jian();break;
case 3:cheng();break;
case 4:chu();break;
}
printf("\n重新选择(输入1),退出运算(输入2)");
scanf("%d",&y);
if(y==1)y=0;
if(y==2)break;
}
printf("做对%d道题,做错%d道题!\n",right,wrong);
}
四、程序效果图:

五、PSP耗时统计:
| PSP |
Personal Software Process Stages |
Time(%) Senior Student |
Time(%) SDE |
| Planning | 计划 | 6 | 4 |
| Analysis | 需求分析 | 6 | 4 |
| Dsign Spec | 生成设计文档 | 3 | 5 |
| Dsign Review | 设计复审 | 4 | 6 |
| Coding Standard | 代码规范 | 3 | 5 |
六、总结:
通过这次作业,我发现要想设计出一个好的软件真的非常困难。该软件不仅要实现各种运算,还要统计出运算对错的数目。虽然勉强完成了这次作业,但我知道里面一定还有很多不足之处,望各位老师指出,我也会继续更正。谢谢!!
标签:
原文地址:http://www.cnblogs.com/ldlmt1689/p/4415743.html