20194604自动生成四则运算题第一版报告
需求分析:
1、可以生成两个操作数的四则运算式子。
2、题目数量可控。
3、运算结果与参与运算的数字大小可控。
4、是否包含乘除法可控。
5、是否包含负数可控。
6、生成算式可导出。
功能设计:
基本功能: 1、满足用户需求(题目的数量、操作数范围、运算符号、运算结果可控)。
2、提示明确清。
拓展功能: 算式可导出
由于核心代码较短,我并没有设计类或函数来调用。我知道这并不是一个良好的习惯,如果需要大量重复某一步骤,自定义一些类或者函数应该是比较好的选择。
运行截图:

1 for(n=1;n<=Nmax;n++)//循环输出 2 { 3 for(i=0;i<=n;i++) //依次比对 4 { 5 num1=rand()%max1; 6 num2=rand()%max1; 7 if(nul==1) 8 num3=rand()%4; 9 else 10 num3=rand()%2; 11 if(num1!=R1[i]||num2!=R2[i]||num3!=R3[i])//与已经使用过的数字进行比对 12 13 switch(num3)//对应运算符号除错判定 14 { 15 case 0: 16 if(num1+num2<=max1) 17 i=0; break; 18 case 1: 19 if(neg==1) 20 break; 21 else if(num1<num2) 22 i=0; break; 23 case 2: if(num1*num2>max1) 24 i=0; break; 25 case 3: if(num2==0) 26 i=0; break; 27 } i++; 28 } 29 //下面是输出语句 30 printf("%d",num1); 31 fprintf(fp,"%d",num1); 32 switch(num3)//加减乘除判定 33 { 34 case 0: printf("+");//显示 35 fprintf(fp,"+");//写入文件 36 break; 37 case 1: printf("-"); 38 fprintf(fp,"-"); 39 break; 40 case 2: printf("*"); 41 fprintf(fp,"*"); 42 break; 43 case 3: printf("/"); 44 fprintf(fp,"/"); 45 break; 46 } 47 printf("%d",num2); 48 fprintf(fp,"%d",num2); 49 printf("=\n"); 50 fprintf(fp,"=\n"); 51 R1[n]=num1;//记录已使用的数字; 52 R2[n]=num2; 53 R3[n]=num3; 54 }
|
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
|
Planning |
计划 |
2 |
2 |
|
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
2 |
2 |
|
Development |
开发 |
75 |
25 |
|
·· Analysis |
需求分析 (包括学习新技术) |
10 |
30 |
|
· Design Spec |
· 生成设计文档 |
10 |
5 |
|
· Design Review |
· 设计复审 (和同事审核设计文档) |
10 |
20 |
|
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
10 |
|
· Design |
具体设计 |
10 |
10 |
|
· Coding |
具体编码 |
10 |
60 |
|
· Code Review |
· 代码复审 |
10 |
30 |
|
· Test |
· 测试(自我测试,修改代码,提交修改) |
10 |
30 |
|
Reporting |
报告 |
16 |
31 |
|
·· Test Report |
· 测试报告 |
5 |
10 |
|
· Size Measurement |
计算工作量 |
1 |
1 |
|
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
10 |
20 |

浙公网安备 33010602011771号