1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
|
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define N 10
struct student
{
char num[10];
char name[20];
int old;
char add[30];
char xb[5];
char mc[5];
int ds;
int eng;
int math;
int lan;
};
struct student stu[N];
int count=0;
void insert(int i) //输入学生的具体信息
{
printf("第%d个学生的姓名:",i);
scanf("%s",stu[i].name);
printf("第%d个学生的年龄:",i);
scanf("%d",&stu[i].old);
printf("第%d个学生的住址:",i);
scanf("%s",stu[i].add);
printf("第%d个学生的性别:",i);
scanf("%s",stu[i].xb);
printf("第%d个学生的民簇:",i);
scanf("%s",stu[i].mc);
printf("第%d个学生的线性代数分数:",i);
scanf("%d",&stu[i].ds);
printf("第%d个学生的英语分数:",i);
scanf("%d",&stu[i].eng);
printf("第%d个学生的高等数学分数:",i);
scanf("%d",&stu[i].math);
printf("第%d个学生的C语言分数:",i);
scanf("%d",&stu[i].lan);
count++;
sprintf(stu[i].num,"%d",count);
}
void input() //输入数据
{
system("color 3e");
void menu();
void insert(int i);
int i,k,l,u;
printf("请设定输入的学生人数:");
scanf("%d",&u);
while(u<1||u>10)
{
printf("超出数据范围请重输:");
scanf("%d",&u);
}
for(i=1;i<u+1;i++)
{
printf("\n请输入第%d个学生的信息!\n",i);
insert(i);
}
do
{
printf("请按0返回菜单:");
scanf("%d",&k);
if (k==0)
{
system("cls");
menu();
}
else
l=0;
}while(l==0);
}
void search() //查询成绩
{
system("color 3f");
void menu();
void printf_one(int k);
struct student s;
int i,k,w0,w1,w2;
do
{
printf("1.姓名 2.学号 \n请选择查找的类别:");
scanf("%d",&w1);
if (w1<1||w1>2)
{
printf("输入错误!请重输:\n");
w2 = 1;
}
else
w2 = 0;
}while(w2 == 1);
if(w1==1) //按姓名查找
{
do
{
k=-1;
do
{
printf("请输入您想查找的学生的姓名:");
scanf("%s",s.name);
for(i= 1;i<N;i++)
if(strcmp(s.name,stu[i].name)==0)
{
k=i;
s=stu[i];
}
if(k==-1) //没有找到
{
int o;
printf("\n没有这个学生的信息!\n");
printf("\n 1.继续 2.返回菜单 \n请选择进行下一个操作;");
scanf("%d",&o);
if (o==1)
{
system("cls");
search(); //继续查找
}
if(o==2)
{
system("cls");
menu(); //返回菜单
}
}
}while(k==-1);
system("cls");
printf_one(k); //查找到以后输出这个学生的信息
printf("\n 1.继续 2.返回菜单 \n请选择进行下一个操作:");
scanf("%d",&w0);
}while(w0==1);
system("cls");
menu(); //不再查找时返回菜单
}
else //按学号查找
{
do
{
k=-1;
do
{
printf("请输入您想查找的学生的学号:");
scanf("%s",s.num);
for(i=0;i<N;i++)
if(strcmp(s.num,stu[i].num)==0) //找到了
{
k=i;
s=stu[i];
}
if(k==-1) //没有找到
{
int o;
printf("\n没有这个学生的信息!\n");
printf("\n 1.继续 2.返回菜单 \n请选择进行下一个操作:");
scanf("%d",&o);
if(o==1)
{
system("cls");
search();
}
if(o==2)
{
system("cls");
menu(); //返回菜单
}
}
}while(k==-1);
system("cls");
printf_one(k); //找到后输出这个学生的信息
printf("\n 1.继续 2.返回菜单 \n请选择进行下一个操作:");
scanf("%d",&w0);
}while(w0==1);
system("cls");
menu(); //不再查找时返回菜单
}
}
void xiugai() //修改学生信息的函数
{
system("color 1a");
void menu();
void printf_one(int k);
void xiugai_2();
struct student s;
int i,n,k,w0=1,w1,w2=0,o;
do
{
k=-1;
do
{
printf("请输入您想要修改的学生的姓名:");
scanf("%s",s.name);
for(i=0;i<N;i++)
if(strcmp(s.name,stu[i].name)==0) //与其中一个学生匹配
{
k=i;
s=stu[i];
}
if(k==-1) //没有找到输入的学生
{
printf("没有这个学生的信息!\n");
printf("\n 1.继续 2.返回菜单 \n请选择进行下一个操作:");
scanf("%d",&o);
if(o==1)
{
system("cls");
xiugai();
}
if(o==2)
{
system("cls");
menu(); //返回菜单
}
}
}while(k==-1);
system("cls");
printf("请输入修改后的线性代数分数:");
scanf("%d",&stu[k].ds);
printf("请输入修改后的英语分数:");
scanf("%d",&stu[k].eng);
printf("请输入修改后的高等数学分数:");
scanf("%d",&stu[k].math);
printf("请输入修改后的C语言分数:");
scanf("%d",&stu[k].lan);
printf("\n");
printf("\n该生修改后的信息如下:\n");
printf_one(k); //输出这个学生的信息
printf("\n请按0返回菜单:");
scanf("%d",&o);
if(o==0)
{
system("cls");
menu(); //返回菜单
}
}while(1);
}
void printf_all() //输出所有学生成绩的函数
{
void menu();
system("color 9e");
int i,j,k;
for (i=1;i<3;i++)
{
printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[i].num,stu[i].name,stu[i].xb,stu[i].mc,stu[i].old,stu[i].add,stu[i].ds,stu[i].eng,stu[i].math,stu[i].lan);
}
do
{
printf("请按0返回菜单:");
scanf("%d",&j);
if(j==0)
{
system("cls");
menu();
}
else
{
k = 0;
}
} while (k == 0);
}
void printf_one(int k) //输出某一个学生的信息的函数
{
printf("\n学号:%s \n姓名:%s \n性别:%s \n民簇:%s \n年龄:%d \n地址:%s \n线性代数分数:%d \n英语分数:%d \n高等数学分数:%d \nC语言分数:%d \n",stu[k].num,stu[k].name,stu[k].xb,stu[k].mc,stu[k].old,stu[k].add,stu[k].ds,stu[k].eng,stu[k].math,stu[k].lan);
}
void Exit() //退出系统的函数
{
system("cls");
system("color 2e");
printf("\n祝您生活愉快!\n");
exit(0);
}
void menu() //菜单函数
{
system("color 1e");
printf("\n\t\t\t欢迎使用学生学籍管理系统!\n");
printf("\n");
int n,m;
do
{
puts("\t\t********************菜单*********************");
puts("\t\t**************学生学籍管理系统***************");
puts("\t\t*********************************************");
puts("\t\t******* 1--输入数据 ****");
puts("\t\t******* 2--查询成绩 ****");
puts("\t\t******* 3--修改成绩 ****");
puts("\t\t******* 4--输出所有学生成绩 ****");
puts("\t\t******* 5--退出系统 ****");
puts("\t\t*********************************************");
printf("\t\t*************请选择服务种类(1~5):");
scanf("%d",&n);
if(n<1||n>5)
{
system("cls");
printf("\n\t\t*************选择错误! 请重新选择!\n");
m=1;
}
else
{
m = 0;
}
}while(m==1);
switch(n)
{
case 1:system("cls");input();break;
case 2:system("cls");search();break;
case 3:system("cls");xiugai();break;
case 4:system("cls");printf_all();break;
case 5:Exit();break;
}
}
int main()
{
int c;
printf("请输入密码:");
scanf("%d",&c);
while(c!=12345)
{
printf("密码错误,请重输:");
scanf("%d",&c);
}
system("cls");
menu();
return 0;
}
|