Xi理工大学C语言课程设计学生成绩管理系统

# include & ltstdio.h & gt

# include & ltstdlib.h & gt/*系统标准输出函数,如system()*/

# include & ltstring.h & gt

# include & ltconio.h & gt/*键盘输入函数getch()*/

#define N 3/*定义总人数*/

#定义大小10 /*定义学生号的数量*/

Structure student/*定义结构*/

{ char xuehao[15];/*学生ID */

查兴明[20];/*姓名*/

char xing bie[10];/*性别*/

int数学;/*数学成绩*/

int中文;/*语言成绩*/

int英语;/*英语成绩*/

} stu[N];

int CNT = 1;/*定义变量cnt来存储地址簿中的总人数*/

void shuru();/*输入函数*/

void石现();/*显示功能*/

int cha Zhao();/*查找函数function */

int xiu Gai();/*修改函数*/

void xmchazhao();/*按姓名搜索*/

void xhchazhao();/*按学号搜索*/

void tuichu();/*退出功能*/

void学号();/*学号修改信息功能*/

void save();/*保存功能*/

void main()

{ int a;

while(1)

{ printf(" \ n \ n \ n \ n ");

printf(" \ t \ t * * *-欢迎使用学生管理系统-* * * \ n ");

Printf ("\ t \ t * * *-1输入信息-* * * * \ n ");

Printf ("\ t \ t * * *-2显示信息-* * * * \ n ");

printf(" \ t \ t * * *-* * * \ n ");

Printf ("\ t \ t * * *-4修改信息-* * * * \ n ");

printf(" \ t \ t * * *-* * * * * \ n \ n ");

printf(" \ t \ t \ t请输入选择菜单:");

scanf("%d ",& ampa);

开关(a)

{

案例1:

舒如();

打破;

案例二:

石现();

打破;

案例三:

查昭();

打破;

案例4:

雪豪();

打破;

案例5:

推楚();

}

}

}

Void save()/*保存函数*/

{

FILE * fp

int I;

if((fp=fopen("stu_list "," wb"))==NULL)

{

printf("无法打开文件\ n ");

返回;

}

for(I = 0;我& ltn;i++)

if(fwrite(& amp;stu[i],sizeof(结构学生),1,fp)!=1)

printf("文件写入错误\ n ");

fclose(FP);

}

Void xuehao()/*输入学号修改信息功能*/

{ char num[size];

char array[size]={'3 ',' 1 ',' 0 ',' 4 ',' 3 ',' 2 ',' 0 ',' 3 ',' 1 ' };

int i,count=0,n;//n是允许的最大输入错误数。

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ n \ t \ t请输入您的学号:\ n \ n \ t \ t ");

for(n = 0;n & lt3;n++)

{ for(I = 0;我& lt尺寸;I++)//输入学号。

{

num[I]= getch();

If(num[i]==8)//使用退格键消除错误输入,重新输入。

{

if(num[i]!=13。& ampnum[i]!=8)//当输入不是回车键和退格键时,输出*号。

printf(" * ");//用*替换输入的信息。

printf(" \ b ");//退格,当前位置移动到前一列。

I-;

printf(" ");

printf(" \ b ");

I-;

}

}

for(I = 0;我& lt尺寸;I++)//比较学号

{

if(num[I]= = array[I])count++;}//count是比较计数器,用来判断输入的学号是否存在。

if(count==size)

{

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ t \ t学号正确!\ n \ n \ t \ t \按任意键修改信息);

getch();

系统(“cls”);

秀改();

}

其他

{

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t错误的学号!\ n \ n \ t \ t \ t请重新输入\ n \ n \ t \ t ");

}

}

如果(n==3)

{

Printf("你已经输错三次了,按任意键退出\ n \ t \ t \ t ");

getch();

退出(0);

}

}

Void shuru()/*输入函数*/

{ system(" cls ");

printf(" \ n ");

Printf("请输入学生姓名:");

scanf (" %s ",stu[cnt].星明);

printf(" \ n请输入学生的性别:");

scanf (" %s ",stu[cnt].xing bie);

printf(" \ n请输入学生ID:");

scanf (" %s ",stu[cnt].雪豪);

printf(" \ n请输入学生的数学成绩:");

scanf (" %d ",& amp斯图[cnt]。数学);

printf(" \ n请输入学生的语文成绩:");

scanf (" %d ",& amp斯图[cnt]。中文);

printf(" \ n请输入学生的英语成绩:");

scanf (" %d ",& amp斯图[cnt]。英语);

cnt++;

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ t \ t * * * * * * * * *保存成功!* * * * * * * * * * * * * * * * * \ n ");

Printf ("\ n \ t \ t * * * *继续添加?(不区分大小写y/n)* * * * \ n \ n \ t \ t ");

if(getch()=='y'||getch()=='Y ')

舒如();

其他

{ getch();

系统(“cls”);

返回;

}

save();

}

Void石现()/*显示函数*/

{

int I;系统(“cls”);

如果(cnt!=1)

{

Printf("以下是通讯录所有成员的信息\ n ");

for(I = 1;我& ltcnti++)

{

Printf ("name:% s \ n ",stu [i]。邢);

Printf("学号:%s\n ",stu[i]。雪豪);

Printf("性别:%s\n ",stu[i]。xing bie);

Printf("数学成绩:%d\n ",stu[i]。数学);

Printf("语文成绩:%d\n ",stu[i]。中文);

Printf("英语成绩:%d\n ",stu[i]。英语);

} printf(" \ n \ t \ t * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * \ n ");

printf(" \ n \ t \ t \ t按任意键返回主菜单:\ n \ t \ t ");

getch();系统(“cls”);

main();

}

其他

{

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n ");

printf(" \ t \ t \ t通讯簿中没有记录!");

printf(" \ n \ n \ t \ t \ t按任意键返回主菜单!");

getch();系统(“cls”);

main();

}

}

Int chazhao()/* Find函数*/

{

int a;

系统(“cls”);

printf(" \ n \ n \ n \ n \ n ");

Printf ("\ t * * * * * * * * * * * * * * * * *查询菜单* * * * * * * * * * * * *);

printf(" \ t * * * * * * * * * * * * * * 1-按名称查询* * * * * * * * * * * * * * * * \ n ");

printf(" \ t * * * * * * * * * * * * * * * 2-按学号查询* * * * * * * * * * * * * * * * \ n ");

printf(" \ t * * * * * * * * * * * * * * * 3-返回主菜单* * * * * * * * * * * * * * * * * * * * \ n ");

printf(" \ n \ t \ t \ t请按数字键选择:");

getchar();

scanf("%d ",& ampa);

开关(a)

{

case 1:xmchazhao();打破;

案例二:xhchazhao();打破;

案例三:系统(“cls”);

}

返回0;系统(“cls”);

}

Void xmchazhao()/*名称查找函数*/

{

char b[20];int I = 1;

系统(“cls”);

printf(" \ n \ n请输入您要查找的学生的姓名:\ n ");

getchar();

scanf("%s ",b);

while(strcmp(stu[i].星明,b)!= 0 & amp& amp我& ltn)

i++;

如果(i==N)

{ system(" cls ");

printf(" \ n \ n \ n \ n \ n \ n \ n ");

printf(" \ t \ t \ t没有您要查找的学生信息!\ n ");

printf(" \ n \ t \ t \ t按任意键返回搜索菜单:");

getch();查昭();系统(“cls”);

}

其他

{ system(" cls ");

Printf ("name:% s \ n ",stu [i]。邢);

Printf("学号:%s\n ",stu[i]。雪豪);

Printf("性别:%s\n ",stu[i]。xing bie);

Printf("数学成绩:%d\n ",stu[i]。数学);

Printf("语文成绩:%d\n ",stu[i]。中文);

Printf("英语成绩:%d\n ",stu[i]。英语);

}

Printf ("\ n \ t * * * * *是否要继续搜索(不区分大小写

if(getch()=='y'||getch()=='Y ')

查昭();

save();

系统(“cls”);

}

Void xhchazhao()/*学号查找函数*/

{

char b[20];int I = 1;

系统(“cls”);

printf(" \ n \ n请输入您要查找的学生ID:\ n ");

getchar();

scanf("%s ",b);

while(strcmp(stu[i].雪豪,b)!= 0 & amp& amp我& ltn)

i++;

如果(i==N)

{ system(" cls ");

printf(" \ t \ t \ t没有您要查找的学生信息!\ n ");

printf(" \ n \ t \ t \ t按任意键返回搜索菜单:");

getch();查昭();系统(“cls”);

}

其他

{ system(" cls ");

Printf ("name:% s \ n ",stu [i]。邢);

Printf("学号:%s\n ",stu[i]。雪豪);

Printf("性别:%s\n ",stu[i]。xing bie);

Printf("数学成绩:%d\n ",stu[i]。数学);

Printf("语文成绩:%d\n ",stu[i]。中文);

Printf("英语成绩:%d\n ",stu[i]。英语);

}

Printf ("\ n \ t * * * * *是否要继续搜索(不区分大小写y/n)* * * * * *?\ n \ n ");

if(getch()=='y'||getch()=='Y ')

查昭();

save();

系统(“cls”);

}

Int xiugai()/*修改函数*/

{

int b,d,I,e,f,g,h;char s[20],s1[10],s2[20],s3[50],c[15];系统(“cls”);

for(I = 0;我& ltn;i++)

{

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t请输入要修改的学生的姓名:");

getchar();

scanf("%s ",s);

while(strcmp(stu[i].星明,s)!= 0 & amp& amp我& ltn)

i++;

如果(i==N)

{ system(" cls ");

printf(" \ n \ n \ n \ n \ n \ n \ n \ n \ t \ t没有您要查找的学生信息\ n \ n ");

printf(" \ t \ t \ t是否继续修改?& lty/N & gt;\ n \ n \ t \ t \ t ");

if(getch()=='y'||getch()=='Y ')

秀改();

系统(“cls”);

main();

}

系统(“cls”);

printf(" \ n \ n \ n \ n ");

Printf ("\ t \ t \ t1更改名称\ n ");

Printf("\t\t\t\t2更改学号\ n ");

printf(" \ t \ t \ t \ t \ t更改性别\ n ");

Printf("\t\t\t\t4以更改数学成绩\ n ");

Printf("\t\t\t\t5语言成绩\ n ");

Printf("\t\t\t\t6英语成绩\ n ");

Printf("\t\t\t\t返回主菜单\ n ");

printf(" \ t \ t \ t \ t请输入您的选择:");

getchar();

scanf("%d ",& ampb);

开关(b)

{

案例1:系统(" cls ");Printf("请输入修改后的名称:\ n ");

getchar();

scanf("%s ",s);

strcpy(stu[i].星明,s);

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例二:系统(“cls”);Printf("请输入修改后的学号:\ n ");

getchar();

scanf("%s ",c);

strcpy(stu[i].雪豪,c);

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例三:系统(“cls”);Printf("请输入修改后的性别:\ n ");

getchar();

scanf("%s ",s 1);

strcpy(stu[i].兴别,s 1);

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例四:系统(“cls”);Printf("请输入修改后的数学成绩:\ n ");

getchar();

scanf("%d ",& ampe);

斯图[我]。数学= e;

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例五:系统(“cls”);Printf("请输入修改后的语言分数:\ n ");

getchar();

scanf("%d ",& ampf);

斯图[我]。中文= f;

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例6:系统(“cls”);Printf("请输入修改后的英语成绩:\ n ");

getchar();

scanf("%d ",& ampg);

斯图[我]。英语= g;

save();系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否继续修改?\n\t\t\t是,请输入1否,请输入2 \ n \ t \ t ");

scanf("%d ",& amph);

开关(h)

{

案例1:修改();

案例二:系统(“cls”);main();

}

案例0:getch();系统(“cls”);main();}

}

返回0;

}

虚空推处()

{

系统(“cls”);

printf(" \ n \ n \ n \ n \ n \ n \ n \ t \ t是否要退出系统?& lty/n & gt;\ n \ n \ t \ t \ t ");

if(getch()=='y'||getch()=='Y ')

{退出(0);}

其他

{ system(" cls ");

main();}

}