20194588+第二次软件工程作业
环境:c_free5.0;
一:需求分析
随着计算机的快速发展,我们可以用编程进行一系列功能的实现,为我们的生活和学习也提供了不少便捷,今天用c语言做的这个程序就可以帮助我们一些小学老师进行随机出题测试。要求 用C语言或者JAVA完成一个自动生成四则运算试题的程序,自动生成10道100以内的2个操作的四则运算算式(+-*/)运算结果也在100以内,剔除重复算式。2+3= 和3+2= 不属于重复算式,题目数量可定制,相关参数可控制,是否包含乘法和除法,操作数数值可控制,操作是否含负数,生成运算题存储到外部文件result.txt中。
二:功能设计
>1:基本功能:(1):自动生成10道100以内的2个操作的四则运算算式(+-*/)运算结果也在100以内
(2):剔除了重复算式。2+3= 和3+2= 不属于重复算式
(3):题目数量可定制,相关参数可控制,是否包含乘法和除法,操作数数值可控制,操作是否含负数
(4):生成运算题存储到外部文件result.txt中。
>2:扩展功能:对除法的分母不能为零做了限制;
三:设计实现
我用的是c语言实现的程序运行,其中除了函数必须的主函数外我还设计了一个名为fun的函数,fun函数的主要是用来进行剔除重复算式而设计的,并在主函数中的分支选择函数中进行了调用,实现了剔除重复算式的功能。
四:测试运行
五:代码
因为程序要实现运算是否包含乘法除法,所以我就想到了用这个分支选择函数,不仅可以为程序是否包含乘除进行铺垫,也增加了程序的易读性
1 switch(sf)//运用多分支选择语句来进行随机四则运算的输出 2 { 3 case 1: 4 if(fun(value1,'+',value2)==1) 5 fprintf(q,"%d + %d=%d\n",value1,value2,value1+value2); 6 else { 7 i--; 8 continue; 9 } 10 break; 11 case 2: 12 if(fun(value1,'-',value2)==1)//调用了fun函数 13 fprintf(q,"%d - %d=%d\n",value1,value2,value1-value2); 14 else { 15 i--; 16 continue; 17 } 18 break; 19 case 3: 20 if(fun(value1,'*',value2)==1) 21 fprintf(q,"%d * %d=%d\n",value1,value2,value1*value2); 22 else { 23 i--; 24 continue; 25 } 26 break; 27 case 4: 28 if(fun(value1,'/',value2)==1) 29 fprintf(q,"%d / %d=%d\n",value1,value2,value1/value2); 30 else { 31 i--; 32 continue; 33 } 34 break; 35 }
六:总结
定义:value1:进行运算的数字1,value2:进行运算的数字2,sf:进行运算分支选择语句的变量
s:题目数量的变量 z:控制四则二则运算而定义的变量, f:用于是否含负数的判断而定义的变量
max: 操作数值的范围 i:循环语句定义的
运用循环对题目的数量进行控制
运用多分支选择语句来进行随机四则运算的输出
sf = 1 + rand() % z; //运算是否包含乘除法
判断结果是否超出操作数范围
定义了一个fun函数来进行剔除重复算式操作;
七:psp
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
142 |
184 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
20 |
25 |
Development |
开发 |
30 |
40 |
·· Analysis |
需求分析 (包括学习新技术) |
10 |
15 |
· Design Spec |
· 生成设计文档 |
5 |
10 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
8 |
10 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
具体设计 |
10 |
15 |
· Coding |
具体编码 |
30 |
30 |
· Code Review |
· 代码复审 |
5 |
5 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
8 |
10 |
Reporting |
报告 |
3 |
10 |
·· Test Report |
· 测试报告 |
3 |
5 |
· Size Measurement |
计算工作量 |
2 |
1 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
3 |
3 |