第三次作业——(吴明先 胡贵玲)

- 题目: 请编写一个能自动生成小学四则运算题目的 “软件”。 让程序能接受用户输入答案,并判定对错。 最后给出总共 对/错 的数量。

一: 要求:

在之前编写的四则运算程序基础之上做如下改进:

1  请参照教材Page57:4.2-4.3节中内容,修改原程序,使之符合 “代码风格和设计规范”的基本要求;

2  请采用模块化设计思想,修改之前的code,将 “计算功能” 封装起来

小提示:

假如在C语言环境下,可将函数声明与具体实现分别存放在头文件(.h)和源文件(.c)中;

二:需求分析

累计每次测试答对,答错的题的个数

对用户给出的答案做出相应判断

显示答案的对错

三:扩展功能:

程序可以求出带括号的四则运算

四则运算中允许有2位小数的出现

四:设计:

在原来程序基础上采用模块化思想,把源文件分成几个模块进行封装

五:代码实现

.cpp文件

 1 #include"h.h"
 2 void main()
 3 {
 4    int   shuru=0;
 5    char x;
 6    system("color F");
 7    printf("                     欢迎参加小学生数学四项法则测试\n");
 8    system("pause");
 9    system("cls");
10    while (1)
11    {
12       printf("你需要做什么题型计算?请选择:加(输入1)  减 (输入2) 乘(输入3)  除(输入4)\n");
13       if(shuru==0)
14          scanf("%c",&x);
15       switch(x)
16       {
17          case ‘1‘: jiafa();break;
18          case ‘2‘: jianfa();break;
19          case ‘3‘: chengfa();break;
20          case ‘4‘: chufa();break;
21          default : printf("输入错误,请重新输入");
22       }
23       printf("请输入数字选择:\n1.继续\n2.重新选择题型\n3.结束\n");
24       scanf("%d",&shuru);
25       if(shuru==1) shuru=1;
26       if(shuru==2) {shuru=0;getchar();}
27       if(shuru==3) break;
28    }
29    printf("正确个数%d\n",l);
30    printf("错误个数%d\n",h);
31 }

.h文件

 1 #include<stdio.h>
 2 #include<stdlib.h>
 3 #include<math.h>
 4 #include<time.h>
 5 #include<windows.h>
 6 int l,h;
 7 void jiafa()
 8 {
 9     int i,j,m;
10     srand(time(NULL));
11     i=rand()%100;
12     j=rand()%100;
13     printf("%d+%d=",i,j);
14     scanf("%d",&m);
15     if(i+j==m)
16     {
17         printf("回答正确");
18         l++;
19    } else {
20         printf("回答错误\n%d+%d=%d\n",i,j,i+j);
21         h++;
22    }
23 }
24
25 void jianfa()
26 {
27     int i,j,m;
28     i=rand()%100;
29     j=rand()%100;
30     printf("%d-%d=",i,j);
31     scanf("%d",&m);
32     if(i-j==m)
33     {
34         printf("回答正确");
35         l++;
36     }  else{
37         printf("回答错误\n%d-%d=%d\n",i,j,i-j);
38         h++;
39      }
40 }
41
42 void chengfa()
43
44 {
45     int i,j,m;
46     i=rand()%100;
47     j=-rand()%10;
48     if(j<0)
49        printf("%d*(%d)=",i,j);
50     else
51       printf("%d*%d=",i,j);
52     scanf("%d",&m);
53     if(i*j==m)
54     {
55          printf("回答正确");
56          l++;
57     } else{
58         printf("回答错误\n%d*(%d)=%d\n",i,j,i*j);
59         h++;
60   }
61 }
62 void chufa()
63   {
64     int i,j;
65     double m;
66     i=rand()%100;
67     j=1+rand()%100;
68     printf("%d/%d=",i,j);
69     scanf("%0.2f",&m);
70     double a = (int((i / (j * 1.0)) * 100 + 0.5))/100.0;
71     printf("a = %0.2f", a);
72     if(a==m)
73     {
74          printf("回答正确");
75          l++;
76     } else{
77          printf("回答错误\n");
78          h++;
79     }
80 } 

运行结果

六:两人合作步骤

     1、在做作业之前两人先各自看4.1和4.2的内容

2、两人一起讨论对程序做哪些方面的改进

3、讨论之后两人开始修改

4、两人一起检查

5、最后对代码进行复审

七:总结:

1、在编写程序时,一个人容易出现许多错误,这需要我们两人合作更快地解决错误,让代码得以完善。

2、这次作业让我们体会到了与人合作的重要性。

时间: 2024-10-21 01:49:43

第三次作业——(吴明先 胡贵玲)的相关文章

明略数据吴明辉探案记,破解行业AI落地迷局

如果你看过<唐人街探案记>,你绝对不会想到,在现实生活中,一个人工智能与大数据的从业人员,也会亲自参与现实版的"唐人街探案",只为了破解人工智能在行业中落地的迷局:训练行业人工智能算法模型,其输入数据需要事先经过行业知识进行分类和标注,才能成为合格的输入数据并用于人工智能算法训练,而在大量行业中其实是没有符合这样规格和标准的数据. 在行业中落地人工智能,第一步就是要先提炼行业知识,再用行业知识自动化地对行业数据进分类.打标签,才能真正训练出可以适用于行业的人工智能算法模型.

马哥2016全新Linux+Python高端运维班第三周作业作答

                    马哥2016全新Linux+Python高端运维班第三周作业                                           1.列出当前系统上所有已经登录的用户的用户名,注意:同一个用户登录多次,则只显示一次即可.     [[email protected] ~]# who | awk '{print $1 $NF}'| uniq -d     [[email protected] ~]# who     yicx     :0  

第三次作业问卷

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答:未来走一步算一步,计划赶不上变化,充实自己的知识,多增加一点自己经验,比起知识,更重要的是社交. 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习,就是知道一些以前不知道的事.厉害的人有两点:观察力和文化底蕴,学习就是为了增加知识储备,尽量不出现书到用时方恨少的情况.目前的学习动力很缺乏,因为一到大学开始想着混. 你感觉自己什么事情做的比较成功?有什么经验? 答:并不知道,似乎没有什

第三次作业三总结与心得

知识点总结: 1.调用幂函数pow()生成乘方表 power=pow(); 2.#include<math.h>程序中调用了数学函数,需包含头文件math.h 3.调用自定义函数fact(i)计算i! product=fact(i); 4.double fact(int n);自定义函数的声明,以分号结束 5.double product;变量product用于存放结果(阶乘的值) 6.return product;将结果送回主函数 7.定义求n!的函数double fact(int n)函数

解题报告——-2018级2016第二学期第三周作业

解题报告——2018级2016第二学期第三周作业 A:[NOIP2002P]过河卒 题目: 描述 如图,A 点有一个过河卒,需要走到目标 B   点.卒行走规则:可以向下.或者向右.同时在棋盘上的任一点有一个对方的马(如上图的C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点.例 如上图 C  点上的马可以控制 9 个点(图中的P1,P2 … P8 和 C).卒不能通过对方马的控制点. 棋盘用坐标表示,A 点(0,0).B 点(n,m)(n,m 为不超过 20  的整数,并由键盘输入)

魏昊卿——《Linux内核分析》第三周作业:Linux系统启动过程

魏昊卿——<Linux内核分析>第三周作业:Linux系统启动过程 一.实验部分 实验指导 使用实验楼的虚拟机打开shell 1 cd LinuxKernel/ 2 qemu -kernel linux-3.18.6/arch/x86/boot/bzImage -initrd rootfs.img 内核启动完成后进入menu程序(<软件工程C编码实践篇>的课程项目),支持三个命令help.version和quit,您也可以添加更多的命令,对选修过<软件工程C编码实践篇>

第三次作业——个人作业——软件产品案例分析

第三次作业--个人作业--软件产品案例分析 评测产品:K米,安卓端 第一部分 调研,评测 评测 初体验 还没去KTV的时候,刚开始下了这个APP,我按正常软件一样,进行了注册功能,可到要写用户信息的时候,(可能是本着比较随意的思想,只想一直点,只填了一些以外使用其他APP时候的基本信息就一直点进一步),在上传用户头像的时候,我想直接跳过,没想到这一定要上传头像才可以啊!!!然后注册完后点进去,看了下K歌功能都不能用,看了一下用户的社区,发现大部分用户动态都是国庆的,这个时候已经10.17了,可见

职业规划第三次作业

看到一个问卷不错,拟作为第三次作业的部分内容. 你对自己的未来有什么规划?做了哪些准备? 答: 学好大学四年的课程,并积极参加各种活动来锻炼自己的能力.在实习期间认真学习工作经验,学习经验然后争取能自己创业 好好交友,多读书, 你认为什么是学习?学习有什么用?现在学习动力如何?为什么? 答:学习是通过他人的言传身教了解知识,将他人的认识转化为自己的知识.学习能够取他人之长补己之短,丰富自己的认知,还避免了闭门造车和坐井观天的错误.现在的学习动力一般,因为新学知识对我来说比较陌生. 你感觉自己什么

04+罗潇潇+罗潇第三次作业

04+罗潇潇+罗潇第三次作业第四章:项目管理一般知识1.核心知识域有哪些.保障域有哪些?伴随域有哪些?过程域有哪些? (1)核心知识域包括整体管理.范围管理.进度管理.成本管理.质量管理和信息安全管理等. (2)保障域包含人力资源管理.合同管理.采购管理.风险管理.信息(文档)与配置管理.知识产权管理.法律法规标准规范和职业道德规范等. (3)伴随域包含变更管理和沟通管理等. (4)过程域包含科研与立项.启动.计划.实施.监控和收尾等,而其中的监控过程则可能发生在项目生命周期的任一个阶段.2.有