标签:
题目:
请编写一个能自动生成小学四则运算题目的 “软件”。
让程序能接受用户输入答案,并判定对错。
最后给出总共 对/错 的数量。
需求分析:
进行小学数学简单的加减乘除计算
设计:
根据用户的需求,检查输入的结果的对与错,错了指出并给出正确答案
代码实现:
1 #include<stdio.h> 2 3 #include<stdlib.h> 4 5 #include<time.h> 6 7 #include<string.h> 8 9 int scan() 10 11 { char s[100]; 12 13 int i,t,z=0; 14 15 do { z=0; 16 17 gets(s); 18 19 for(i=0;s[i]!=‘\0‘;i++) 20 21 if(s[i]<‘0‘ || s[i]>‘9‘) break; 22 23 if(i>=strlen(s)) 24 25 for(t=0;s[t]!=‘\0‘;t++) 26 27 z=z*10+((int)s[t]-48); 28 29 else 30 31 printf("您的输入有误,请重新输入"); 32 33 } 34 35 while(i<strlen(s)); 36 37 return(z); 38 39 } 40 41 int x=1,y=1,choice=0,sum=0,right=0,z=0,answer; 42 43 float precent; 44 45 char fuhao; 46 47 void suiji() 48 49 { 50 51 srand(time(NULL)); 52 53 x=rand()%100+1; 54 55 y=rand()%100+1; 56 57 } 58 59 void choose() 60 61 { 62 63 int yunsuan(int,int,int); 64 65 if(sum==0) precent=0.0; 66 67 else precent=(float)right/sum; 68 69 printf("\n如需进行加减乘除运算测试,请分别输入1、2、3、4\n"); 70 71 printf("如需退出请输入5\n"); 72 73 choice=scan(); 74 75 switch(choice) 76 77 { 78 79 case 1:printf("欢迎来到加法运算测试系统,如需退出请输入esc\n");fuhao=‘+‘;break; 80 81 case 2:printf("欢迎来到减法运算测试系统,如需退出请输入esc\n");fuhao=‘-‘;break; 82 83 case 3:printf("欢迎来到乘法运算测试系统,如需退出请输入esc\n");fuhao=‘*‘;break; 84 85 case 4:printf("欢迎来到除法运算测试系统,如需退出请输入esc\n");fuhao=‘/‘;break; 86 87 case 5:printf("本次测试愉快,欢迎下次再来测试\n"); 88 89 printf("本次共做%d道题,其中%d道正确,正确率为%f\n",sum,right,precent); break; 90 91 default:printf("您的输入有误,请重新输入\n");choose(); 92 93 } 94 95 } 96 97 int ans(int x,int y,int choice) 98 99 { 100 101 switch(choice) 102 103 { 104 105 case 1:z=x+y;break; 106 107 case 2:z=x-y;break; 108 109 case 3:z=x*y;break; 110 111 case 4:z=x/y;break; 112 113 } 114 115 return(z); 116 117 } 118 119 void yunsuan() 120 121 { 122 123 suiji(); 124 125 printf("%d%c%d=",x,fuhao,y); 126 127 z=ans(x,y,choice); 128 129 answer=scan(); 130 131 if (z==answer) 132 133 { 134 135 printf("正确\n"); 136 137 right++;sum++; 138 139 yunsuan(); 140 141 } 142 143 else if(answer==9999) choose(); 144 145 else 146 147 { 148 149 printf("不正确, 正确答案为%5d\n",z); 150 151 sum++; 152 153 yunsuan(); 154 155 } 156 157 } 158 159 void main() 160 161 { 162 163 printf("欢迎来到四则运算测试系统\n"); 164 165 choose(); 166 167 while(choice!=5) 168 169 yunsuan(); 170 171 }
事后分析和总结:
编写程序的能力不够,很多语法也忘记了。以后的学习多多努力
标签:
原文地址:http://www.cnblogs.com/yueqing/p/4412325.html