1 #include <stdio.h>
2 #include <math.h>
3 #include <string.h>
4 #include <stdlib.h>
5 #include <time.h>
6 #include <windows.h>
7 #pragma comment(lib,"winmm.lib")
8 void Add(void);
9 void Sub(void);
10 void Multiply(void);
11 void Div(void);
12 void clearScreen(void);
13
14 void main()
15 {
16 char c;
17 int i,f;
18 char UserName[6],UserName1[6],Passwd[8],Passwd1[8];
19 printf("小学生数学四则运算登录系统\n");
20 printf("1.注册并登录\t\n2.退出\n");
21 scanf("%d",&f);
22 switch(f){
23 case 1:
24 printf("注册开始\n输入用户名:\t");
25 fflush(stdin);//清空输入缓冲区,防止第一次的回车被第二次捕捉通常是为了确保不影响后面的数据读取(例如在读完一个字符串后紧接着又要读取一个字符,此时应该先执行fflush(stdin);)。
26 gets(UserName);
27 printf("输入密码:\t");
28 gets(Passwd);
29 printf("注册成功\n");
30
31 for(i=1;i<4;i++)
32 {
33 printf("输入用户名:\t");
34 gets(UserName1);
35 printf("输入密码:\t");
36 gets(Passwd1);
37
38 if(strcmp(UserName,UserName1)==0&&strcmp(Passwd,Passwd1)==0){
39 printf("登录成功\n");
40 break;
41 }
42 else if (i < 3) {
43 printf("用户名或密码错误,请重新输入\n");
44 }
45 if(i==3){
46 printf("用户已被锁定\n");
47 exit(0);
48 }
49 }
50 break;
51 case 2:
52 printf("再见\n");
53 break;
54 }
55 while(1){
56 clearScreen();
57 system("color 40");
58
59 c=getchar();
60 //getchar();//假读
61 switch(c){
62 case 'A':
63 case 'a':Add();break;
64 case 'B':
65 case 'b':Sub();break;
66 case 'C':
67 case 'c':Multiply();break;
68 case 'D':
69 case 'd':Div();break;
70 case 'E':
71 case 'e':
72 return;
73 default:printf("请重新选择:\n");
74 }
75 } // end of while(1)
76 } //end of main()
77
78 void clearScreen(void){
79 system("cls");//清屏,clean,s(屏幕)
80 printf("小学生四则运算程序\n");
81 printf("##################\n");
82 printf("# A########\n");
83 printf("# B########\n");
84 printf("# C########\n");
85 printf("# D########\n");
86 printf("# E########\n");
87 printf("##################\n");
88 printf("\n\n请输入相应选项的前面的字母(A-E)\n");
89 }
90
91 void Add(void){
92 int a,b,i,sum;
93 system("cls");
94 srand(( int )time( 0 ));//随机种子
95 for( i = 1; i <= 10; i ++ ){
96 a = rand() % 10;//随机数是1到10以内的(1到100:%100;1到20的:(+10)%10)
97 b = rand() % 10;
98 printf( "%d+%d=", a, b );
99 scanf("%d", &sum );
100 if( sum == a + b ){
101 printf("回答正确!\n");
102 PlaySound("C:\\Users\\Administrator\\Music\\HA.WAV",NULL,SND_FILENAME|SND_ASYNC);
103
104 }
105 else
106 printf("回答错误!\n");
107
108 }//end of for()
109 } //end of jiafa()
110
111 void Sub( void )
112 {
113 int a,b,i,ca,c=0,d=0;
114 system("cls");
115 srand(( int )time( 0 ));
116 while( i <= 10 ){
117 a = rand() % 10;
118 b = rand() % 10;
119 if ( a < b )
120 continue;
121 else {
122 printf( "%d-%d=", a, b );
123 scanf( "%d", &ca );
124 }
125 if ( ca == a - b ){
126 printf("回答正确!\n");c++;
127 PlaySound("C:\\Users\\Administrator\\Music\\HA.WAV",NULL,SND_FILENAME|SND_ASYNC);
128 }
129 else{
130 printf("回答错误!\n");d++;
131 PlaySound("C:\\Users\\Administrator\\Music\\cm.WAV",NULL,SND_FILENAME|SND_ASYNC);
132 }
133 i=c+d;
134 }
135 }
136 void Multiply( void ){
137 int a,b,i,ji;
138 system( "cls" );
139 srand(( int )time( 0 ));
140 for ( i = 1; i <= 10; i++ ){
141 a = rand() % 10;
142 b = rand() % 10;
143 printf( "%d*%d=", a, b );
144 scanf( "%d", &ji );
145 if( ji == a * b ){
146 printf( "回答正确!\n" );
147 PlaySound("C:\\Users\\Administrator\\Music\\HA.WAV",NULL,SND_FILENAME|SND_ASYNC);
148 }else
149 printf( "回答错误!\n" );
150 }
151 }
152
153 void Div( void ){
154 int a,b,i,shang,c=0,d=0;
155 system( "cls" );
156 srand(( int )time( 0 ));
157 while(i<=10){
158 a = rand() % 10;
159 b = rand() % 10;
160 if( b==0 || a<b || a%b != 0 )
161 continue;
162 else{
163 printf( "%d/%d=", a, b );
164 scanf( "%d", &shang );
165 }
166 if( shang == a / b ){
167 printf("回答正确!\n");c++;
168 PlaySound("C:\\Users\\Administrator\\Music\\HA.WAV",NULL,SND_FILENAME|SND_ASYNC);
169 }else{
170 printf("回答错误!\n");d++;
171 }
172 i=c+d;
173 } //end of while(i<=10)
174 }