四则运算改进版+心得体会+总结

四则运算改进版

编译环境:Visual C++ 6.0(完整绿色版)

开发人员:Ives

开发时间:2015-04-02

实现功能:

    1.基本的加减乘除

    2.每次出20道题目,会显示答对的数目和得分

    3.能出于分数相关的运算

      4.能过输入真分数

    5.回答错题目会显示正确的答案

    6.答对题目的提示和打错题目提示都不相同,不会产生时间疲劳

缺点:

    1.输入分数有时候会出错

    2.输入其他字符也会出现错误

    3.不能选择计算的最大数值

    4.不能用户选择做什么运算

......

个人体会:

    1.能力还是不足,一些思路还是想不到

    2.要多参考其它同学的代码,多多少少都能学到一些东西

    3.写代码一定要规范,不然他人看不懂你的代码

总结:

    一定要多动脑子去思考,应该怎么设计,为什么要这样设计,一定要有一个清晰的思路再去写代码。因为编写代码其实是很简单的一个工作,如果你有了一个清晰的思路。其实在写程序的时候,测试也很重要的,在编码的同时一起测试,调试,到了完成整个程序的时候才不会出现一大堆BUG,这个花的时间去调试会更多,拖延了程序的完成时间。

下面这个图说明的是,理解问题的要求应该是第一位,再然后是设计数据结构和算法,因为这两步做好了,那么程序也差不多完成一半了,所以以后开发程序的时候,一定要弄清楚这个程序的架构,你要怎么样去设计它,,它用到的算法,用到的数据结构,一旦这些都清晰了,那么编码是在容易不过的事情了。

加油。

下图是运行的结果截图(共3张):

下面是源代码:

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 #include<time.h>
  4 int amount = 0;
  5 void inface()
  6 {
  7      printf("\t\t--------------------------------------\n");
  8     printf("\t\t-                                    -\n");
  9     printf("\t\t-                                    -\n");
 10     printf("\t\t-            四则运算系统            -\n");
 11     printf("\t\t-                                    -\n");
 12     printf("\t\t-                                    -\n");
 13     printf("\t\t-                       Ives 14.3.26 -\n");
 14     printf("\t\t--------------------------------------\n");
 15
 16 }
 17 int Random(int n,int m)//随机生成n~m的整数
 18 {
 19     int op;
 20     srand(time(NULL));
 21     op = rand()%m+n;
 22     return op;
 23 }
 24
 25 int Rigth()
 26 {
 27     int n;
 28     n = Random(1,4);
 29     switch(n){
 30         case 1:
 31             printf("恭喜你,你答对了!\n");
 32             break;
 33         case 2:
 34             printf("你真棒,你答对了!\n");
 35             break;
 36         case 3:
 37             printf("你真聪明,你答对了!\n");
 38             break;
 39         case 4:
 40             printf("。。。。。。。答对了!\n");
 41             break;
 42         default:
 43             break;
 44     }
 45     amount++;
 46     return amount;
 47 }
 48
 49 void Wrong()
 50 {
 51     int n;
 52     n = Random(1,4);
 53     switch(n){
 54         case 1:
 55             printf("回答错误!\n");
 56             break;
 57         case 2:
 58             printf("错了,再接再厉\n");
 59             break;
 60         case 3:
 61             printf("没关系,这次错了,下次加油!\n");
 62             break;
 63         case 4:
 64             printf("回答错了,揉揉眼睛继续努力!\n");
 65             break;
 66     }
 67 }
 68
 69 void operation()
 70 {
 71     int a;
 72     int b;
 73     int c;
 74     int d;
 75     int fz;
 76     int fm;
 77     int ou;
 78     int answer;
 79     int answer1;
 80     int ture=0;
 81
 82     ou=Random(1,8);
 83     a = Random(1,10);
 84     b = Random(2,11);
 85     c = Random(2,9);
 86     d = Random(1,10);
 87
 88     switch(ou){
 89         case 1:
 90             printf("%d+%d=",a,b);
 91             scanf("%d",&answer);
 92             if(answer == a+b)
 93                 Rigth();
 94             else
 95             {
 96                 Wrong();
 97                 printf("正确的答案是:%d\n",a+b);
 98             }
 99             break;
100         case 2:
101             printf("%d-%d=",a,b);
102             scanf("%d",&answer);
103             if(answer == a-b)
104                 Rigth();
105             else
106             {
107                 Wrong();
108                 printf("正确的答案是:%d\n",a-b);
109             }
110             break;
111         case 3:
112             printf("%d*%d=",a,b);
113             scanf("%d",&answer);
114             if(answer == a*b)
115                 Rigth();
116             else
117             {
118                 Wrong();
119                 printf("正确的答案是:%d\n",a*b);
120             }
121             break;
122         case 4:
123             printf("%d/%d=",a,b);
124             if(a>b && a%b == 0)
125             {
126                 scanf("%d",&answer);
127                 if((float)answer == a/b)
128                     Rigth();
129                 else
130                 {
131                     Wrong();
132                     printf("正确的答案是:%d\n",a/b);
133                 }
134             }
135             else{
136                 scanf("%d/%d",&answer,&answer1);
137                 if(answer == a && answer1 == b)
138                     Rigth();
139                 else
140                 {
141                     Wrong();
142                     printf("正确的答案是:%d\n",a/b);
143                 }
144             }
145             break;
146         case 5:
147                 printf("%d/%d + %d/%d = ",a,b,c,d);
148                 scanf("%d/%d",&answer,&answer1);
149                 fz = (a*d)+(c*b);
150                 fm = b*d;
151                 if(answer/answer1 == fz/fm)
152                     Rigth();
153                 else
154                 {
155                     Wrong();
156                     printf("正确的答案是:%d\n",fz/fm);
157                 }
158                 break;
159         case 6:
160                 printf("%d/%d - %d/%d = ",a,b,c,d);
161                 scanf("%d/%d",&answer,&answer1);
162                 fz = (a*d)-(c*b);
163                 fm = b*d;
164                 if(answer/answer1 == fz/fm)
165                     Rigth();
166                 else
167                 {
168                     Wrong();
169                     printf("正确的答案是:%d\n",fz/fm);
170                 }
171                 break;
172         case 7:
173                 printf("%d/%d + %d/%d = ",a,b,c,d);
174                 scanf("%d/%d",&answer,&answer1);
175                 fz = a*c;
176                 fm = b*d;
177                 if(answer/answer1 == fz/fm)
178                     Rigth();
179                 else
180                 {
181                     Wrong();
182                     printf("正确的答案是:%d\n",fz/fm);
183                 }
184                 break;
185         case 8:
186                 printf("%d/%d + %d/%d = ",a,b,c,d);
187                 scanf("%d/%d",&answer,&answer1);
188                 fz = a*d;
189                 fm = b*c;
190                 if(answer/answer1 == fz/fm)
191                     Rigth();
192                 else
193                 {
194                     Wrong();
195                     printf("正确的答案是:%d\n",fz/fm);
196                 }
197                 break;
198             default:
199                 printf("系统出错了!\n");
200                 printf("%d",ou);
201                 break;
202     }
203 }
204
205 int main()
206 {
207     int n=1;
208     inface();
209     printf("本系统一共有20道题,请认真答题!");
210     while(n<=20){
211         printf("\n第%d道题:  ",n);
212         operation();
213         n++;
214     }
215     printf("你答对了%d道题,得分是:%d\n",amount,amount*5);
216
217     return 0;
218
219 }

-----------------------------------------------------本次实验报告到此结束,谢谢老师审阅-------------------------------------------------------------------

时间: 2024-08-01 15:20:34

四则运算改进版+心得体会+总结的相关文章

AngularJS心得体会

AngularJS早些时候有过了解,知道这是一个JS的MVC框架,同类型的框架还有Backbone等.这次是由于项目需要,学习了两天的Angular后开始着手改之前的项目代码,这里大概说一下这一周学习Angular的心得体会吧. 首相,使用Angular最大的感受就是它的设计思路完全不同于Jquery,jquery更倾向于对Dom的操作:而使用Angular则需要你有一个全局的认识,你必须知道你想要做成什么样子才可以下手去做,所以我感觉ng对前端开发的要求比jquery要高一些.先来看看Angu

关于软件项目管理的心得体会之一

目的 软件项目管理是一项涉及面较广,但是非常必要的一项技能.相较于软件开发中的其他专业技能, 又更加依赖于实践和阅历.这里想跟各位同仁分享一下自己在过往项目中的心得体会,结合些许耳熟能详的理论,起到抛砖引玉的作用. 局限性 项目管理既然是一门实践科学,所以这里跟大家分享之前,还是要说明局限性.因为我之前是在一家提供软件服务的传统软件公司工作, 所以很多项目的经验都来源于作为乙方的外包项目,同时,大部分项目都是移动相关领域.目前我在一家国内的互联网公司,从事的电商相关的应用项目. 开篇 想跟大家分

编程方法心得体会

编程学习心得和方法(转载,供新手参考)   即便是高级编程人员,像那些为开发软件工作的类库和组件高手,他们也不敢说自己精通每一种语言. 事实就是这样,每一种语言有着它们相似而又不同的语法,它们有着不同的关键字,发展出了各种各样的类库,它们的函数或者方法的声明定义都有不同,更多的差异不为我们所知. 每一种语言,它都有着太多的东西需要我们去理解和记忆,我们没有时间和精力做得太多. 对于初学者,我们最不应该急于求成,更不要试图一次性学习所有语言.事实上,我们可以选取某种语言学习.每一种语言都有着自己的

读《构建之法》的心得体会

读<构建之法>的心得体会 软件工程涉及的范围很广,对于即将投身IT业的学生而言,软件工程的内容又非常重要.读构建之法,尽管本书介绍了不少IT业正在使用的理论和技术,但是,这本书的主要思想并不是介绍所有的新思想和新技术,而是从这些新思想.新技术中总结出对自己在未来的工作中有用的东西. 在整本书中,印象最让我深刻的是“两个人的合作”这一章节.现代的软件产业经过几十年的发展,软件的结构随着用户需求的不断增加,软件的功能不断朝多元化与复杂化发展.不管是两个人的合作还是团队的合作,谈到合作不免提及规范这

Git的基本使用方法和安装&amp;心得体会

1. git的安装和github的注册.代码托管.创建organization.邀请member. (1)git的安装 因为我电脑是windows系统,所以下载的是git for windows.在官网下载非常卡,直接百度搜找百度那个下载就可以.下载后选择路径一直next就行了. (2)github的注册 没什么说的,虽然界面是英文,不过要是连这种程度的都看不懂你还是洗洗睡吧.按要求填完邮箱账号密码等常规东西就注册完了. (3)创建organization the organization's

IT增值服务实践心得体会:企业客户的钱比个人客户好赚得多

友情提示 本人喜欢直言不讳,不喜欢拐弯抹角.喜欢从客观和主观.自身和他人等多种角度去探讨问题.如有不当之处,欢迎吐槽. 若干心得体会1.企业客户的钱更好赚,个人客户的钱很难.  为什么这么说呢? a.企业有钱赚,为了更好地服务自己的客户,赚到更多的钱,花点钱,心甘情愿.只要你的商品和服务,不至于太坑. b.企业的功利心比较强,因此,非常有目标性,有动力,一定要解决自己遇到的问题. c.个人的付费意识很差,因为他们总认为自己赚的钱少,同时下意识地认为,别人花时间精力提供的服务或者劳动成果,不值钱.

关于代码的一些心得体会(大神勿喷)

关于代码的一些心得体会   前  言 Lms 入行也有很久了,一直都只是忙着工作学习,却一直没能好好静下心来好好整理一下自己.时间久了,慢慢的代码越来越熟悉,敲起来也越来越顺手,自己缺总感觉有些不对.我总觉得代码不应该就是这么简单,不应该像写记叙文一样,一条一条慢慢的就罗列出来了,返回去看了看自己刚写代码的时候功能也都能够实现了.但是还是有那么多可以优化的地方.我觉得好的代码不应该只是把功能实现那么简单,我觉得好的代码应该有以下几条特点:第一,命名要规范,第二,可复用性,第三,就是注释.当然,当

第8章 让开发板发出声音,蜂鸣器驱动 心得体会

第8章让开发板发出声音,蜂鸣器驱动 心得体会 通过学习Android深度探索(卷1)HAL与驱动开发的第8章 让开发板发出声音,蜂鸣器驱动,我加深对驱动的认识.以下主要是我对本节实验和参考在Linux驱动开发中使用PWM控制蜂鸣器中的一些见解. 先编写一个简单的蜂鸣器驱动程序,根据开发板上的硬件IO接口和Android驱动规范,在kernel中的driver目录中新建一个Buzzer文件,新建一个buzzer.c的源文 在目录下创建一个Makefile文件 先运行make clean命令清楚到编

大道至简第一章心得体会

大道至简——编程的精义  心得体会      谨以此用于苦恼编程序不得入门的人,不对之处敬请指出 “虽我之死,有子存焉:子又生孙,孙又生子:子又有子,子又有孙.子子孙孙,无穷匮也.而山不加增,何苦而不平?” ——<愚公移山>,<列子-汤问篇> 编程究其本身对大数人而言是一件很苦恼而又无法避免的事情,但是有点可笑的是编程本身实在是一件简单的事,因为“程序=算法+结构”,所谓的编程就是把一件事情交给计算机去做,然后把你的想法“告诉”计算机就行了.但是编程又是一件很“无语”的事情——因为