1.自动生成10道100以内的2个操作数的四则运算算式,首先运行程序就生成10道算式。
2.要求运算结果也在100以内,检测变量和算式的结果控制生成算式。
3.相关参数可控制(题目数量,是否包含乘除法,擦作数范围等等),增加提示和用户输入数据的语句。
功能设计
-
自动生成10道算式
-
题目数量可定制
-
-
是否包含乘法和除法
-
操作数数值范围和可控
-
结果范围可控
-
操作数是否含负数
-
存储到外部文件
-
输出结果(完成了之后发现c语言的符号有很大问题,能力问题没有实现...代码删掉)
设计实现
用c语言实现,包含三个函数:
-
主函数:自动生成10道算式和控制输入参数。
-
输出算式的函数,接受主函数参数进行输出。
-
控制结果检测函数,对加减法算式和乘除法算式的结果范围检测方法不同。
测试运行
初始自动生成10道算式。
控制参数语句会一直存在,直到退出程序。
输入数字1-5控制参数
控制题目数量
生成
控制乘除
定义操作数范围
是否包含负数
退出程序
自动保存结果
部分代码
比较满意的代码是控制输入输出的这一部分的死循环。
如何控制参数是当时卡着最久想不出如何做的一个功能,所以比较满意这部分。
和只循环一次的这个语句:
1 printf("#默认输出10道题#\n"); 2 { 3 loop(num, jjcc, range, kouhao, zhengfu, da_an); 4 }while (0);//只输出一次 5 printf("\n"); 6
1 while (1)//无限循环控制输入,可退出 2 { 3 int judge = 0; 4 5 printf("#题目已保存在本程序目录resault.txt下,每次重新生成都会覆盖原有文件#\n"); 6 printf("#您可以反复控制参数,每次控制结果都会保存,直到退出程序#\n\n"); 7 printf("#输入1回车控制题目数目\n"); 8 printf("#输入2回车控制是否有乘除\n"); 9 printf("#输入3回车控制最大操作数操作(同时定义算术结果最大值)\n"); 10 printf("#输入4回车控制是否有()\n"); 11 printf("#输入5回车控制操作数是否含有负数\n"); 12 printf("#输入除1-5任意字符回车退出程序\n"); 13 14 scanf_s("%d", &judge); 15 16 switch (judge) 17 { 18 case 1: 19 { 20 printf("请输入要需要显示的题目数量:"); 21 scanf("%d", &num); 22 loop(num, jjcc, range, kouhao, zhengfu, da_an); 23 printf("\n"); 24 }break; 25 26 case 2: 27 { 28 int sure = 0; 29 printf("请输入1确定,0取消:"); 30 scanf("%d", &sure); 31 if (sure) 32 { 33 jjcc = 4; 34 } 35 else 36 { 37 jjcc = 2; 38 } 39 loop(num, jjcc, range, kouhao, zhengfu, da_an); 40 printf("\n"); 41 }break; 42 43 case 3: 44 { 45 printf("请输入操作数最大值(同时定义算术结果最大值):"); 46 scanf("%d", &range); 47 loop(num, jjcc, range, kouhao, zhengfu, da_an); 48 printf("\n"); 49 }break; 50 51 case 4: 52 { 53 printf("请输1确定,0取消:"); 54 scanf("%d", &kouhao); 55 loop(num, jjcc, range, kouhao, zhengfu, da_an); 56 printf("\n"); 57 }break; 58 59 case 5: { 60 printf("请输1确定,0取消:"); 61 scanf("%d", &zhengfu); 62 loop(num, jjcc, range, kouhao, zhengfu, da_an); 63 printf("\n"); 64 }break; 65 66 default: { 67 return; 68 69 } break; 70 } 71 }
总结
我的代码应因为能力较弱,有一些功能没有实现模块化。这些模块和设计实现中写的一样分为三个模块,模块一为主函数控制输入参数,把参数传给输出模块,控制输出算式,输出模块根据参数选择模块三的控制结果检测方法。
PSP
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
10 |
8 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
10 |
8 |
Development |
开发 |
240 |
300左右 |
·· Analysis |
需求分析 (包括学习新技术) |
30 |
30 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
4 |
6 |
· Coding |
具体编码 |
200 |
280左右 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
5 |
5 |
Reporting |
报告 |
20 |
40 |
·· Test Report |
· 测试报告 |
20 |
40 |