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

四则运算改进版

编译环境: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 }

 

 

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

posted @ 2015-04-02 12:15  苏亦晨  阅读(951)  评论(9编辑  收藏  举报