C语言学生管理系统.docx
《C语言学生管理系统.docx》由会员分享,可在线阅读,更多相关《C语言学生管理系统.docx(33页珍藏版)》请在冰豆网上搜索。
C语言学生管理系统
#include//头文件//
#include
#include
#defineNUM1000//定义该系统最多存储人数NUM//
intN;//定义一个外部变量N,用来监控存储的学生人数//
structSTUDENT//定义一个结构体//
{
longnum;
charname[20];
intclas;
charsex[10];
intenglish;
intmath;
intfrance;
floataver;
inttotal;
}student[NUM],student1;//定义两个结构体类型的变量,用来存储学生信息//
//对用到的所有函数进行声明//
voidentrance();//登陆//
voidmenu();//主菜单//
voidselect();//选择服务//
voidbuild();//新建学生信息//
voidadd();//添加学生信息//
voidchange();//修改学生信息//
voidfind();//查找//
voiddelate();//删除学生信息//
voidin();//导入已有学生信息//
voidturn();//排序//
voidout();//退出系统,保存数据//
voidmain()//主函数//
{
system("color5b");
N=0;
entrance();
}
voidentrance()//登陆主页面函数//
{
ints,n,secrit=448,number=448,i=0,k=0,j=3;
printf("\n\t\t********欢迎进入学生成绩管理系统********\n\n\n");
for(;;)
{
i++;j--;
if(i>3)
{printf("\t您的输入次数超过3次,请下次登录\n");
break;
}
printf("\t\t请输入管理员账号:
");//登录信息,验证身份,进行安全保护//
scanf("%d",&n);
printf("\n\n");
printf("\t\t请输入管理员密码:
");
scanf("%d",&s);
printf("\n\n");
if(s!
=secrit||n!
=number)
{
system("color4e");
printf("\t\t对不起,您输入的账号或密码错误,请重新输入。
您还剩下%d次输入机会\n",j);
continue;
}
else
{k=1;break;}
}
if(k)
{
printf("\n\n\n\n\t\t\t\t登录成功!
\n");
menu();
}
}
voidmenu()//主菜单,提供服务选项//
{
system("color9a");
printf("\t请您从以下选项中选择您所需要的服务:
\n\n");
printf("\t\t*1.新建学生信息*2.增添学生信息\n\n");
printf("\t\t*3.修改学生信息*4.查询学生信息\n\n");
printf("\t\t*5.删除学生信息*6.导入学生信息\n\n");
printf("\t\t*7.排序;*8.退出系统\n\n");
select();
}
voidselect()//选择函数,进行服务选择//
{
intk;
for(;;)
{
printf("\t\t您选择的服务为:
");
scanf("%d",&k);
if(k>8||k<1)
{
printf("\t\t提示:
请您从1~8选项中进行选择。
\n\t\t请重新选择:
");
scanf("%d",&k);
continue;
}
if(k>0&&k<=8)
break;
}
switch(k)//根据不同选择,实现不同服务//
{
case1:
build();break;
case2:
add();break;
case3:
change();break;
case4:
find();break;
case5:
delate();break;
case6:
in();break;
case7:
turn();break;
case8:
out();break;
default:
break;
}
}
voidbuild()//新建学生信息//
{
intk,i=0,j=0,s;
printf("\n您选择的为新建学生信息");
printf("\n\n\n*1.继续\t\t*2.返回\n请选择:
");
for(;;)
{
scanf("%d",&k);
if(k!
=1&&k!
=2)
{
printf("请重新选择:
");
continue;
}
if(k==2)
{
i=1;break;
}
if(k==1)
{
j=1;break;
}
}
if(i)menu();
if(j)
{
for(i=0;;i++)
{
system("cls");
printf("\t提示:
请您按照以下程序进行输入,必须保证信息输入完整才可以结束完成,按0键重新进行该学生信息输入,您输入的学号不能重复,您输入的各科成绩必须在0到100分之间\n");
printf("\t如果有哪项不清楚,可暂时用空格代替,方便下次修改!
!
!
\n");
printf("\t请输入姓名:
");
scanf("%s",student[i].name);
if(student[i].name==0){i--;continue;}
printf("\t请输入学号:
");
scanf("%ld",&student[i].num);
if(student[i].num==0){i--;continue;}
for(s=0;s
if(student[s].num==student[i].num)
{printf("该学号已存在,请查正后重新输入");
break;
}
if(s
{
i--;continue;
}
printf("\t请输入班级:
");
scanf("%d",&student[i].clas);
if(student[i].clas==0){i--;continue;}
printf("\t请输入性别:
");
scanf("%s",student[i].sex);
if(student[i].sex==0){i--;continue;}
for(;;)
{
printf("\t请输入英语成绩:
");
scanf("%d",&student[i].english);
if(student[i].english>=0&&student[i].english<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
for(;;)
{
printf("\t请输入数学成绩:
");
scanf("%d",&student[i].math);
if(student[i].math>=0&&student[i].math<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
for(;;)
{
printf("\t请输入法语成绩:
");
scanf("%d",&student[i].france);
if(student[i].france>=0&&student[i].france<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
printf("请选择是否完成?
\n1.完成所有输入,返回主菜单;2.继续进行信息录入;3.重新录入该生信息;\n");
printf("\n请进行选择:
");
for(;;)
{
scanf("%d",&j);
if(j!
=1&&j!
=2&&j!
=3)
{
printf("\n提示:
请从1到3间进行选择;\n请重新选择:
");
continue;
}
else
break;
}
if(j==3)
{
i--;continue;
}
if(j==1)
{
N=i;
for(i=0;i<=N;i++)
{student[i].total=student[i].english+student[i].france+student[i].math;
student[i].aver=student[i].total/3.0;}
printf("新建信息成功.....");
for(s=0;s<100000000;s++);
menu();break;
}
if(j==2)
continue;
}
}
}
voidadd()//添加学生信息//
{
intk,i=0,j=0,s;
system("cls");
system("color9a");
printf("\n您选择的是添加学生信息");
printf("\n\n\n*1.继续\t*2.返回\n请选择:
");
for(;;)
{scanf("%d",&k);
if(k!
=1&&k!
=2)
{printf("请重新选择:
");
continue;
}
if(k==2)
{i=1;break;}
if(k==1)
{j=1;break;}
}
if(i)menu();
if(j)
{
for(i=N+1;;i++)
{
system("cls");
printf("提示:
请您按照以下程序进行输入,必须保证信息输入完整才可以结束完成,按0键重新进行该学生信息输入,添加的学号不能与已有的重复,您输入的各科成绩必须在0到100分之间\n");
printf("\t请输入姓名:
");
scanf("%s",student[i].name);
if(student[i].name==0)
{i--;continue;}
printf("\t请输入学号:
");
scanf("%ld",&student[i].num);
if(student[i].num==0)
{i--;continue;}
for(s=0;s
if(student[s].num==student[i].num)
{printf("该学生信息已存在,请查正后重新输入");
break;
}
if(s
{
i--;continue;
}
printf("\t请输入班级:
");
scanf("%d",&student[i].clas);
if(student[i].clas==0)
{i--;continue;}
printf("\t请输入性别:
");
scanf("%s",student[i].sex);
if(student[i].sex==0)
{i--;continue;}
for(;;)
{
printf("\t请输入英语成绩:
");
scanf("%d",&student[i].english);
if(student[i].english>=0&&student[i].english<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
for(;;)
{
printf("\t请输入数学成绩:
");
scanf("%d",&student[i].math);
if(student[i].math>=0&&student[i].math<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
for(;;)
{
printf("\t请输入法语成绩:
");
scanf("%d",&student[i].france);
if(student[i].france>=0&&student[i].france<=100)
break;
else
printf("\t输入无效,成绩必须在1到100之间,请重新输入\n");
}
printf("请选择是否完成\n1.完成所有添加过程,返回主菜单;\n2.继续进行信息添加;\n3.重新添加该生信息;\n");
printf("\n请进行选择:
");
scanf("%d",&j);
if(j==3)
{i--;continue;}
if(j==1)
{
N=i;
for(i=0;i<=N;i++)
{student[i].total=student[i].english+student[i].france+student[i].math;
student[i].aver=student[i].total/3.0;}
printf("信息添加成功......");
for(s=0;s<100000000;s++);
menu();break;
}
if(j==2)
continue;
}
}
}
voidchange()//修改学生信息//
{
intk,i=0,j=0,s=0,t,h,a;longnum1,num2;charname1[20],sex1[10];
system("cls");
system("color6a");
printf("\n你选择的为更改学生信息");
printf("\n\n*1.继续\t*2.返回\n请选择:
");
for(;;)
{
scanf("%d",&k);
if(k!
=1&&k!
=2)
{
printf("请重新选择:
");
continue;
}
if(k==2)
{
i=1;break;
}
if(k==1)
{
j=1;break;
}
}
if(i)menu();
for(;;)
{
if(j)
{
printf("请输入您要修改的学生的学号(按0返回主菜单):
");
scanf("%ld",&num1);
if(num1==0)
{
menu();
break;
}
for(i=0;i<=N;i++)
if(student[i].num==num1)
{
printf("\n姓名\t性别\t学号\t班级\t英语\t法语\t数学\t总分\t平均分\n");
printf("%s\t%s\t%d\t%d\t%d\t%d\t%d\t%d\t%f\n",student[i].name,student[i].sex,student[i].num,student[i].clas,student[i].english,student[i].france,student[i].math,student[i].total,student[i].aver);
s=1;
break;
}
if(s==0&&i>N)
{
printf("\n对不起,您输入的学号不存在,请查正!
!
!
\n");
continue;
}
}
if(s)
{
for(;;)
{
printf("\n1.姓名\t2.性别\t3.学号\t4.班级\t5.英语\t6.法语\t7.数学\t8.继续\t0.返回\n");
printf("\n请输入要修改的选项:
");
scanf("%d",&t);
if(t==0)
{
menu();break;
}
if(t==1)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%s",name1);
if(name1==0)
{menu();break;}
if(name1!
=0)
{
strcpy(student[i].name,name1);
printf("修改成功");
continue;
}
}
if(t==2)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%s",sex1);
if(sex1==0)
{
menu();break;
}
if(sex1!
=0)
{
strcpy(student[i].sex,sex1);
printf("修改成功");
continue;
}
}
if(t==3)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%ld",&num2);
if(num2==0)
{
menu();break;
}
for(a=0;a<=N;a++)
if(student[a].num==num2&&a!
=i)
{printf("该学生信息已存在,请查正后重新输入");
break;
}
if(num2!
=0&&a>N)
{
student[i].num=num2;
printf("修改成功");
continue;
}
}
if(t==4)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%d",&h);
if(h==0)
{
menu();break;
}
if(h!
=0)
{
student[i].clas=h;
printf("修改成功");
continue;
}
}
if(t==5)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%d",&h);
if(h==0)
{
menu();break;
}
if(h!
=0)
{
student[i].english=h;
printf("修改成功");
student[i].total=student[i].english+student[i].france+student[i].math;
student[i].aver=student[i].total/3.0;
continue;
}
}
if(t==6)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%d",&h);
if(h==0)
{
menu();break;
}
if(h!
=0)
{
student[i].france=h;
printf("修改成功");
student[i].total=student[i].english+student[i].france+student[i].math;
student[i].aver=student[i].total/3.0;
continue;
}
}
if(t==7)
{
printf("请输入修改后的信息(按0返回):
");
scanf("%d",&h);
if(h==0)
{
menu();break;
}
if(h!
=0)
{
student[i].math=h;
printf("修改成功\n");
student[i].total=student[i].english+student[i].france+student[i].math;
student[i].aver=student[i].total/3.0;
continue;
}
}
if(t==8)
break;
}
}
if(t==8)
continue;
}
}
voidfind()//查询学生信息,根据不同的查询方式,对学生信息进行查询//
{
intk,i,j=0,s=0,t=0,t1=0;longnum1=0;charname1[20];
system("cls");
system("color5a");
printf("\n您选择的是查找学生信息");
for(;;)
{
printf("\n\n1.按姓名查询;\t2.按学号查询;\t3.返回主菜单;\n请您从1~3中选择服务方式:
");
for(;;)
{
scanf("%d",&k);
if(k!
=1&&k!
=2&&k!
=3)
{
printf("\n提示:
请从1到3间进行选择;\n请重新选择:
");
continue;
}
else
break;
}
if(k==1)
{printf("\n请输入要查询的姓名(按0键返回):
");
scanf("%s",name1);
if(name1==0)
continue;
for(i=0;i<=N;i++)
{
if((strcmp(student[i].name,name1)==0))
{