20194615自动生成四则运算题第一版报告

1.需求分析
使用C语言完成一个自动生成四则运算试题的程序。
2.功能设计
  基本功能:随机生成10道100以内的2个操作数的四则运算算式,要求运算结果也在100以内。
  扩展功能:(1)剔除重复算式
       (2)定制题目数量
       (3)是否选择包含乘法和除法
       (4)操作数数值范围是否可控
       (5)操作数是否含负数
       (6)是否选择生成答案
       (7)生成的运算题存储到result.txt文件中
3.设计实现
使用sign函数实现含有负数的随机算式、sum函数选择受否生成带有答案的算式,其他功能由主函数完成。
4.测试运行

5.代码片段

do {
   	printf("\n请确定是否包含乘除(1.包含 2.不包含): ");
   	scanf("%d",&n);
   	printf("\n请确定是否输出答案(1.不输出 2.输出): ");
   	scanf("%d",&f);
   	printf("\n-1为退出程序:");
   	scanf("%d",&y);


   	switch(n) {
   		case 1: {

   			for(i=0; i<count; i++) {
   				a=rand()%limits*sign(x);
   				b=rand()%limits*sign(x);
   				k=rand()%4;

   				switch(k) {
   					case 0: {
   						if(a+b<=limits) {
   							fprintf(fp,"%d+%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a+b);
   						} else
   							i--;
   						break;
   					}

   					case 1: {
   						if(a-b<=limits && a-b>=0) {
   							fprintf(fp,"%d-%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a-b);
   						}

   						else
   							i--;
   						break;
   					}
   					case 2: {
   						if(a*b<=limits) {
   							fprintf(fp,"%d*%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a*b);
   						} else
   							i--;
   						break;
   					}
   					case 3: {
   						if(a/b<=limits && b!=0) {
   							fprintf(fp,"%d/%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a/b);
   						} else
   							i--;
   						break;
   					}
   				}

   			}
   			break;
   		}
   		break;
   		case 2: {
   			for(i=0; i<count; i++) {
   				a=rand()%limits*sign(x);
   				b=rand()%limits*sign(x);
   				k=rand()%2;
   				switch(k) {
   					case 0: {
   						if(a+b<=limits) {
   							fprintf(fp,"%d+%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a+b);
   						} else
   							i--;
   						break;
   					}
   					case 1: {
   						if(a-b<=limits && a-b>=0) {
   							fprintf(fp,"%d-%d=\n",a,b);
   							if(sum(f)==0)
   								fprintf(fp,"%d\n",a-b);
   						}

   						else
   							i--;
   						break;
   					}
   				}
   			}
   			break;
   		}
   		break;
   	}
   } while(y!=-1);

6.总结 使用函数实现部分模块,其他模块都存在在主函数里的。

7.psp

PSP2.1 任务内容 计划共完成需要的时间(min) 实际完成需要的时间(min)
Planning 计划 120 200
· Estimate · 估计这个任务需要多少时间,并规划大致工作步骤 120 200
Development 开发 298 352
·· Analysis 需求分析 (包括学习新技术) 60 65
· Design Spec · 生成设计文档 20 30
· Design Review · 设计复审 (和同事审核设计文档) 20 10
· Coding Standard 代码规范 (为目前的开发制定合适的规范) 3 5
· Design 具体设计 30 42
· Coding 具体编码 150 175
· Code Review · 代码复审 10 15
· Test · 测试(自我测试,修改代码,提交修改) 5 10
Reporting 报告 17 23
·· Test Report · 测试报告 5 5
· Size Measurement 计算工作量 2 3
· Postmortem & Process Improvement Plan · 事后总结 ,并提出过程改进计划 10 15
posted @ 2019-09-15 22:11  20194615张文欣  阅读(220)  评论(2编辑  收藏  举报