Xi理工大学C语言课程设计学生成绩管理系统
# 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();}
}