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

需求分析

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

 

猜你喜欢

转载自www.cnblogs.com/BAMF/p/11530546.html