20150326
软件工程的作业,四则运算小系统。
以下是我的测试的数据:
以下是源代码:
1 #include2 #include 3 #include 4 int amount = 0;//定义全局变量amount存储答对题目的数量 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 Right()//随机生成回答正确的提示语 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++;//回答正确就+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("回答错误!\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 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 else103 Worng();104 break;105 case 4://除法106 printf("%d/%d=",a,b);107 scanf("%d",&answer);108 if(answer == a/b)109 Right();110 else111 Worng();112 break;113 default:114 printf("系统出错了!\n");115 printf("%d",ou);116 break;117 }118 }119 120 int main()121 {122 int n=1;123 inface();124 printf("本系统一共有20道题,请认真答题!\n");125 while(n<=20){126 printf("第%d道题: ",n);127 operation();128 n++;129 }130 printf("你答对了%d道题.\n",amount);131 132 return 0;133 134 }
预算1个小时,实际用时也差不多一个小时。
写这个程序的过程遇到的一些困难:
1.忘记了怎么样产生随机数,查了教材知道了用srand生成种子,在利用rand函数生成随机数,不过这样的方式生成的随机数应该不算真正的随机数,是伪随机数,因为数列不够长,所以会经常性同时两个数都重复。我会查询资料看看真正的随机数是怎么样生成的。
2.一时忘记了应该怎么产生随机的运算符,后来舍友的提醒一下子明白过来了。利用产生的随机数,当等于1的时候是+,2的时候是-这样。
4.一开始的时候是想用Java来写一个带界面的四则运算的小系统的,打开了Eclipse,想要先写个窗体,但是四十分钟了都没有写出来,对Java真的很不熟悉,一点儿都不会用。所以后来选择了C来写。
这个程序的一些小特别的地方:答对的时候会有不一样反应,利用了随机的原理,这样不会产生视觉疲劳。不过这个是上学期老师讲讲过的。
个人心得:
代码真的要经常敲才会熟练,不然真的会很生疏。我对Java这么语言真的很生疏,很多基本的东西都不懂,连一个简单的窗体也不能很快的写出来,就算写出来了也很丑。所以在今后要认真多练习Java。加油!
这次的作业报告到此结束,谢谢老师审阅。
你只有非常努力,才能看起来毫不费力!