标签:
一、题目: 请编写一个能自动生成小学四则运算题目的 “软件”。让程序能接受用户输入答案,并判定对错。最后给出总共 对/错 的数量。
二、具体设计:
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