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

2020-09-22 教育 111阅读
#include
#include/*系统标准输出函数,如system()*/
#include
#include /*键盘输入函数getch()*/
#define N 3/*定义总人数*/
#define size 10 /*定义学号的个数*/
struct student /*定义结构体*/
{ char xuehao[15];/*学号*/
char xingming[20];/*姓名*/
char xingbie[10];/*性别*/
int math;/*数学成绩*/

int chinese;/*语文成绩*/

int english;/*英语成绩*/

}stu[N];
int cnt=1;/*定义变量cnt存放通讯录中总人数*/
void shuru();/*输入功能函数*/
void xianshi();/*显示功能函数*/
int chazhao();/*查找功能函数*/
int xiugai();/*修改功能函数*/
void xmchazhao();/*按姓名查找*/
void xhchazhao();/*按学号查找*/
void tuichu();/*退出函数*/
void xuehao();/*学号修改信息函数*/
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 ****----------3 查找信息--------****\n");
printf("\t\t ****----------4 修改信息--------****\n");
printf("\t\t ****----------5 退出系统--------****\n\n\n");
printf("\t\t\t请输入选择菜单: ");
scanf("%d",&a);
switch(a)
{
case 1:
shuru();
break;
case 2:
xianshi();
break;
case 3:
chazhao();
break;
case 4:
xuehao();
break;
case 5:
tuichu();

}
}
}
void save()/*保存函数*/
{
FILE *fp;
int i;
if((fp=fopen("stu_list","wb"))==NULL)
{
printf("cannot open file\n");
return;
}
for(i=0;i if(fwrite(&stu[i],sizeof(struct student),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
void xuehao()/*输入学号修改信息函数*/
{ char num[size];
char array[size]={'3','1','0','0','4','3','2','0','3','1'};
int i,count=0,n;//n为最多允许输入错误次数
system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t请输入你的学号:\n\n\t\t\t");
for(n=0;n<3;n++)
{for(i=0;i {
num[i]=getch();

if(num[i]==8)//使用退格键消除错误输入,重新输入
{
if(num[i]!=13&&num[i]!=8)//当输入的不是回车键和退格键的时候,输出*号
printf("*");//用*号代替输入的信息

printf("\b");//退格,当前位置移到前一列
i--;
printf(" ");
printf("\b");
i--;
}
}
for(i=0;i {
if(num[i]==array[i]) count++;}//count 为对比记数器,用于判断输入学号是否存在.

if(count==size)
{
system("cls");
printf("\n\n\n\n\n\n\n\t\t\t学号正确!\n\n\t\t\t按任意键修改信息\n\t\t\t");
getch();
system("cls");
xiugai();
}
else

{
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t学号错误!\n\n\t\t\t请重新输入\n\n\t\t\t");
}
}
if(n==3)
{
printf("您已经输错三次,按任意键退出\n\t\t\t");
getch();
exit(0);
}
}
void shuru()/*输入函数*/
{system("cls");
printf("\n");
printf("请输入学生的姓名:");
scanf (" %s",stu[cnt].xingming);
printf("\n请输入学生的性别:");
scanf (" %s",stu[cnt].xingbie);
printf("\n请输入学生的学号:");
scanf (" %s",stu[cnt].xuehao);

printf("\n请输入学生的数学成绩:");
scanf (" %d",&stu[cnt].math);

printf("\n请输入学生的语文成绩:");
scanf (" %d",&stu[cnt].chinese);
printf("\n请输入学生的英语成绩:");
scanf (" %d",&stu[cnt].english);

cnt++;
system("cls");
printf("\n\n\n\n\n\n\t\t***************保存成功!*****************\n");
printf("\n\t\t*****是否继续添加?(不区分大小写 Y/N)*****\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
shuru();
else
{ getch();
system("cls");
return;
}
save();
}
void xianshi()/*显示函数*/
{
int i; system("cls");

if(cnt!=1)
{
printf("以下为通讯录所有成员信息\n");
for(i=1;i {
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);
printf(" 性别:%s\n",stu[i].xingbie);
printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩:%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

} printf("\n\t\t************************************************\n");
printf("\n\t\t\t按任意键返回主菜单: \n\t\t\t");
getch(); system("cls");
main();

}
else
{
system("cls");
printf("\n\n\n\n\n\n\n\n");
printf("\t\t\t通讯录中无任何纪录!");
printf("\n\n\t\t\t按任意键返回主菜单! ");
getch(); system("cls");
main();
}
}
int chazhao()/*查找函数*/
{
int a;
system("cls");
printf("\n\n\n\n\n\n");
printf("\t**********************查询菜单************************\n");
printf("\t********************1-按姓名查询**********************\n");
printf("\t********************2-按学号查询**********************\n");
printf("\t********************3-返回主菜单**********************\n");
printf("\n\t\t\t 请按数字键选择:");
getchar();
scanf("%d",&a);
switch(a)
{
case 1:xmchazhao(); break;
case 2:xhchazhao();break;
case 3:system("cls");
}
return 0;system("cls");
}
void xmchazhao()/*姓名查找函数*/
{
char b[20];int i=1;
system("cls");
printf(" \n\n请输入您要查找的学生姓名:\n");
getchar();
scanf("%s",b);
while(strcmp(stu[i].xingming,b)!=0&&i i++;
if(i==N)
{ system("cls");
printf("\n\n\n\n\n\n\n\n");
printf("\t\t\t没有您要找的学生信息!\n");
printf("\n\t\t\t按任意键返回查找菜单:");
getch(); chazhao();system("cls");

}
else
{ system("cls");
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);

printf(" 性别:%s\n",stu[i].xingbie);
printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩 :%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

}
printf("\n\t******是否继续查找(不区分大小写 )******?\n\n");
if(getch()=='y'||getch()=='Y')
chazhao();
save();
system("cls");
}
void xhchazhao()/*学号查找函数*/
{
char b[20];int i=1;
system("cls");
printf(" \n\n请输入您要查找的学生学号:\n");
getchar();
scanf("%s",b);
while(strcmp(stu[i].xuehao,b)!=0&&i i++;
if(i==N)
{ system("cls");
printf("\t\t\t没有您要找的学生信息!\n");
printf("\n\t\t\t按任意键返回查找菜单:");
getch(); chazhao();system("cls");

}
else
{ system("cls");
printf(" 姓名:%s\n",stu[i].xingming);
printf(" 学号:%s\n",stu[i].xuehao);

printf(" 性别:%s\n",stu[i].xingbie);

printf(" 数学成绩:%d\n",stu[i].math);
printf(" 语文成绩:%d\n",stu[i].chinese);
printf(" 英语成绩:%d\n",stu[i].english);

}
printf("\n\t******是否继续查找(不区分大小写 Y/N)******?\n\n");
if(getch()=='y'||getch()=='Y')
chazhao();
save();
system("cls");
}
int xiugai()/*修改函数*/
{
int b,d,i,e,f,g,h;char s[20],s1[10],s2[20],s3[50],c[15];system("cls");
for(i=0;i {

system("cls");
printf("\n\n\n\n\n\n\n\t\t\t请输入要修改的学生姓名: ");
getchar();
scanf("%s",s);
while(strcmp(stu[i].xingming,s)!=0&&i i++;
if(i==N)
{ system("cls");
printf("\n\n\n\n\n\n\n\n\n\t\t\t没有您要找的学生信息\n\n");
printf("\t\t\t是否继续修改?\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
xiugai();
system("cls");
main();
}
system("cls");
printf("\n\n\n\n");
printf("\t\t\t\t1 改姓名\n");
printf("\t\t\t\t2 改学号\n");
printf("\t\t\t\t3 改性别\n");
printf("\t\t\t\t4 改数学成绩\n");
printf("\t\t\t\t5 语文成绩\n");
printf("\t\t\t\t6英语成绩\n");
printf("\t\t\t\t0 返回主菜单\n");
printf("\t\t\t\t请输入您的选择: ");
getchar();
scanf("%d",&b);
switch(b)
{
case 1:system("cls");printf("请输入修改后的姓名:\n");
getchar();
scanf("%s",s);
strcpy(stu[i].xingming,s);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 2:system("cls");printf("请输入修改后的学号:\n");
getchar();
scanf("%s",c);
strcpy(stu[i].xuehao,c);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 3:system("cls");printf("请输入修改后的性别:\n");
getchar();
scanf("%s",s1);
strcpy(stu[i].xingbie,s1);
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 4:system("cls");printf("请输入修改后的数学成绩:\n");
getchar();
scanf("%d",&e);
stu[i].math=e;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 5:system("cls");printf("请输入修改后的语文成绩:\n");
getchar();
scanf("%d",&f);
stu[i].chinese=f;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 6:system("cls");printf("请输入修改后的英语成绩:\n");
getchar();
scanf("%d",&g);
stu[i].english=g;
save();system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否继续修改?\n\t\t\t是请输入1 否请输入2\n\t\t\t");
scanf("%d",&h);
switch(h)
{
case 1:xiugai();
case 2:system("cls");main();
}
case 0:getch();system("cls");main(); }
}

return 0;
}
void tuichu()
{
system("cls");
printf("\n\n\n\n\n\n\n\n\t\t\t是否退出系统?\n\n\t\t\t");
if(getch()=='y'||getch()=='Y')
{exit(0);}
else
{system("cls");
main();}
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com