20150326
软件工程的作业,四则运算小系统。
以下是我的测试的数据:
以下是源代码:
1 #include<stdio.h>
2 #include<stdlib.h>
3 #include<time.h>
4 int amount = 0;//定义全局变量amount存储答对题目的数量
5 void inface()//简单界面
6 {
7 printf(" --------------------------------------
");
8 printf(" - -
");
9 printf(" - -
");
10 printf(" - 四则运算系统 -
");
11 printf(" - -
");
12 printf(" - -
");
13 printf(" - Ives 14.3.26 -
");
14 printf(" --------------------------------------
");
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 Right()//随机生成回答正确的提示语
26 {
27 int n;
28 n = Random(1,4);
29 switch(n){
30 case 1:
31 printf("恭喜你,你答对了!
");
32 break;
33 case 2:
34 printf("你真棒,你答对了!
");
35 break;
36 case 3:
37 printf("你真聪明,你答对了!
");
38 break;
39 case 4:
40 printf("。。。。。。。答对了!
");
41 break;
42 default:
43 break;
44 }
45 amount++;//回答正确就+1
46 return amount;
47 }
48
49 void Worng()//随机生成回答错误的提示语
50 {
51 int n;
52 n = Random(1,4);
53 switch(n){
54 case 1:
55 printf("回答错误!
");
56 break;
57 case 2:
58 printf("错了,再接再厉
");
59 break;
60 case 3:
61 printf("没关系,这次错了,下次加油!
");
62 break;
63 case 4:
64 printf("回答错了,揉揉眼睛继续努力!
");
65 break;
66 }
67 }
68
69 void operation()//随机生成运算
70 {
71 int a;
72 int b;
73 int ou;
74 int answer;
75
76 ou=Random(1,4);//随机生成1-4的整数
77 a = Random(1,18);//随机生成1-18的整数
78 b = Random(3,10);//随机生成3-10的整数
79
80 switch(ou){
81 case 1://加法
82 printf("%d+%d=",a,b);
83 scanf("%d",&answer);
84 if(answer == a+b)
85 Right();
86 else
87 Worng();
88 break;
89 case 2://减法
90 printf("%d-%d=",a,b);
91 scanf("%d",&answer);
92 if(answer == a-b)
93 Right();
94 else
95 Worng();
96 break;
97 case 3://乘法
98 printf("%d*%d=",a,b);
99 scanf("%d",&answer);
100 if(answer == a*b)
101 Right();
102 else
103 Worng();
104 break;
105 case 4://除法
106 printf("%d/%d=",a,b);
107 scanf("%d",&answer);
108 if(answer == a/b)
109 Right();
110 else
111 Worng();
112 break;
113 default:
114 printf("系统出错了!
");
115 printf("%d",ou);
116 break;
117 }
118 }
119
120 int main()
121 {
122 int n=1;
123 inface();
124 printf("本系统一共有20道题,请认真答题!
");
125 while(n<=20){
126 printf("第%d道题: ",n);
127 operation();
128 n++;
129 }
130 printf("你答对了%d道题.
",amount);
131
132 return 0;
133
134 }
预算1个小时,实际用时也差不多一个小时。
写这个程序的过程遇到的一些困难:
1.忘记了怎么样产生随机数,查了教材知道了用srand生成种子,在利用rand函数生成随机数,不过这样的方式生成的随机数应该不算真正的随机数,是伪随机数,因为数列不够长,所以会经常性同时两个数都重复。我会查询资料看看真正的随机数是怎么样生成的。
2.一时忘记了应该怎么产生随机的运算符,后来舍友的提醒一下子明白过来了。利用产生的随机数,当等于1的时候是+,2的时候是-这样。
4.一开始的时候是想用Java来写一个带界面的四则运算的小系统的,打开了Eclipse,想要先写个窗体,但是四十分钟了都没有写出来,对Java真的很不熟悉,一点儿都不会用。所以后来选择了C来写。
这个程序的一些小特别的地方:答对的时候会有不一样反应,利用了随机的原理,这样不会产生视觉疲劳。不过这个是上学期老师讲讲过的。
个人心得:
代码真的要经常敲才会熟练,不然真的会很生疏。我对Java这么语言真的很生疏,很多基本的东西都不懂,连一个简单的窗体也不能很快的写出来,就算写出来了也很丑。所以在今后要认真多练习Java。加油!
这次的作业报告到此结束,谢谢老师审阅。
你只有非常努力,才能看起来毫不费力!