初级四则运算
- 作业要求地址:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2166
 - Github地址:https://github.com/Tily288/Tily
 
一、时间计划与实际使用时间
| PSP2.1 | Personal Software Process Stages | Time Senior Student | Time | 
| Planning | 计划 | 12 | 8 | 
| · Estimate | 估计这个任务需要多少时间 | 10 | 6 | 
| Development | 开发 | 82 | 88 | 
| · Analysis | 需求分析 (包括学习新技术) | 6 | 10 | 
| · Design Spec | 生成设计文档 | 5 | 6 | 
| · Design Review | 设计复审 | 4 | 6 | 
| · Coding Standard | 代码规范 | 4 | 4 | 
| · Design | 具体设计 | 10 | 12 | 
| · Coding | 具体编码 | 36 | 21 | 
| · Code Review | 代码复审 | 7 | 9 | 
| · Test | 测试(自我测试,修改代码,提交修改) | 15 | 30 | 
| Reporting | 报告 | ||
| · | 测试报告 | ||
| · | 计算工作量 | 3 | 2 | 
| · | 并提出过程改进计划 | 4 | 3 | 
二、题目要求
任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。 要求能出和真分数 (二分之一, 十二分之五,等)相关的练习题。并且要求能处理用户的输入,并判断对错,打分统计。 要求能处理用户输入的真分数。
三、代码提交
#include<stdio.h> #include<stdlib.h> #include<time.h> char getSignal(); //获取随机运算符的函数 int random(double,double); //获取随机数函数 int getResult(int,int,char); //结果计算函数 int takeTest(); //题目生成函数 void main() { int i,n,a,right=0; double percent; printf("请输入题目的数量:"); scanf("%d",&n); for(i=0;i<n;i++) { a=takeTest(); right=right+a; } printf("回答正确!\n"); printf("正确答案为:%d\n",right); percent=((double)right*100.00)/(double)n; printf("正确率为:%0.2f %%\n",percent); } char getSignal() { char signal[4]={'+','-','*','/'}; srand((unsigned)time(NULL)); return signal[rand()%4]; } int random(double start, double end) { return (int)(start+(end-start)*rand()/(RAND_MAX+ 1.0)); } int getResult(int num1,int num2,char signal) { int res; switch(signal) { case '+': res=num1+num2;break; case '-': res=num1-num2;break; case '*': res=num1*num2;break; case '/': res=num1/num2;break; default: printf("运算符错误!\n"); } return res; } int takeTest() { int get; int num1,num2,a; char signal; srand((unsigned)time(NULL)); signal=getSignal(); num1=random(0,1000); num2=random(1,1000); if(signal=='-') { if(num1<num2) { int temp; temp=num1; num1=num2; num2=temp; } } if(signal=='/') { if(num2==0) { int temp; temp=num1; num1=num2; num2=temp; } } printf("%d%c%d=",num1,signal,num2); scanf("%d",&get); fflush(stdin); //清空输入缓冲区 if(getResult(num1,num2,signal)==get) { printf("回答正确!\n"); a=1; } else { printf("回答错误!\n"); printf("正确答案为: %d\n",getResult(num1,num2,signal)); a=0; } return a; }
四、需求分析
用户控制生成题目的个数,并能够自动随机生成加减乘除四则运算,运算包括整数的运算,答完题后生出正确答案,并在最后能统计答题正确数与正确率。
五、设计
开发工具:Visio c++ 6.0
编程语言:C语言
函数设计:char getSignal()用于获取随机运算符函数
                  int random(double,double)用于获取随机数函数
                  int getResult(int,int,char)用于结果计算函数
                  int takeTest()用于题目生成函数
五、遇到的问题与解决
对C语言的编辑代码已经忘了很多了,写代码的时候遇到了很多问题,一个小小的代码写了好久都有很多问题,最后在同学的帮助下进行了更正。
                    
                
                
            
        
浙公网安备 33010602011771号