第四次作业
作业要求来源于:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE2/homework/2186
我的github地址:https://github.com/065lihaochun/lihaochun
一、需求分析
具体要求:任何编程语言都可以,命令行程序接受一个数字输入,然后输出相应数目的四则运算题目和答案。例如输入数字是 30, 那就输出 30 道题目和答案。 运算式子必须至少有两个运算符,运算数字是在 100 之内的正整数,答案不能是负数。
二、功能设计
1、根据用户输入的数字自动产生相应数目的三项式四则运算式;
2、根据用户输入的答案,判断用户输入的答案是否正确;
3、程序所产生的符号和数字均为随机数字。
三、详细设计
1、数据处理
随机数和随机符号的产生代码:
num1 = rand() % 100+1; num2 = rand() % 100+1; num3 = rand() % 100+1; switch (num1 % 4) { case 0: op1 = '+'; break; case 1: op1 = '-'; break; case 2: op1 = '*'; break; case 3: op1 = '/'; break; default: break; }
switch (num2 % 4)
{
case 0:
op2 = '+';
flag = 0;
break;
case 1:
op2 = '-';
flag = 0;
break;
case 2:
op2 = '*';
if((op1=='*')||(op1=='/')) flag = 0;
else flag = 1;
break;
case 3:
op2 = '/';
if((op1=='*')||(op1=='/')) flag = 0;
else flag = 1;
break;
default:
break;
}
输出一个式子:
printf("%d %c %d %c %d = ",num1,op1,num2,op2,num3);
判断式子的优先级:
if(flag==0) { resultTrue = 0; switch (op1) { case '+': resultTrue = num1+num2; break; case '-': resultTrue = num1-num2; break; case '*': resultTrue = num1*num2; break; case '/': resultTrue = num1/num2; break; default: break; } switch (op2) { case '+': resultTrue += num3; break; case '-': resultTrue -= num3; break; case '*': resultTrue *= num3; break; case '/': resultTrue /= num3; break; default: break; } } else { resultTrue = 0; switch (op2) { case '+': resultTrue = num2+num3; break; case '-': resultTrue = num2-num3; break; case '*': resultTrue = num2*num3; break; case '/': resultTrue = num2/num3; break; default: break; } switch (op1) { case '+': resultTrue = num1 + resultTrue; break; case '-': resultTrue = num1 - resultTrue; break; case '*': resultTrue = num1 * resultTrue; break; case '/': resultTrue = num1 / resultTrue; break; default: break; }
显示用户输入的答案:
if (result == resultTrue) { printf("结果正确!\n"); score++; } else printf("结果错误!\n"); } while(count<N); printf("你的得分是%d",score); return 0; }
四、运行结果
五、过程耗时估计统计表
PSP2.1 |
Personal Software Process Stages |
Time Senior Studen(h) |
Time(h) |
Planning |
计划 |
0.5 |
0.5 |
Estimate |
估计这个任务需要多少时间 |
5 |
3 |
Development |
开发 |
4 |
5 |
Analysis |
需求分析 |
0.5 |
0.5 |
Design Spec |
生成设计文档 |
0 |
0 |
Design Review |
设计复审 |
0.5 |
0.5 |
Coding Standard |
代码规范 |
0.5 |
0.5 |
Design |
具体设计 |
0.5 |
1 |
Coding |
具体编码 |
4 |
4 |
Code Review |
代码复审 |
1 |
0.3 |
Test |
测试(自我测试,修改代码,提交修改) |
0.5 |
0.5 |
Reporting |
报告 |
1 |
1 |
|
测试报告 |
0 |
0 |
|
计算工作量 |
5 |
4 |
|
并提出过程修改计划 |
0 |
0 |