需求分析:
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 |