学生信息管理系统91.docx
《学生信息管理系统91.docx》由会员分享,可在线阅读,更多相关《学生信息管理系统91.docx(29页珍藏版)》请在冰豆网上搜索。
学生信息管理系统91
//学生信息管理系统
#include
#include
#include
#include
#defineLENsizeof(link)
#defineLEN1sizeof(student)
#defineMAX_MIMA10
/*学生的基本信息
学号姓名性别英语成绩C语言成绩*/
structstudent{
intnum;
charname[10];
intsex;
intenglish;
intcYuYan;
};
structlink{
studentnode;
link*next;
};
//查询菜单
voidinquireMenu(intn){
if(n==0){
while
(1){
printf("*******************************************************************************\n");
printf("-------------------------<<欢迎您使用学生成绩管理系统>>------------------------\n");
printf("*******************************************************************************\n\n\n");
printf("\t\t*************************************************\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t1-----用户登录-----\t\t*\n");
printf("\t\t*\t\t0-----退出系统-----\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*************************************************\n");
printf("请输入(0--1)\n");
scanf("%d",&n);
if(n==0)
exit(0);
if(n==1)
return;
system("cls");
printf("您的输入有误,请重新输入\n");
}
}
if(n==1){
printf("\t\t#################################################\n");
printf("\t\t#\t\t1----------学生录入\t\t#\n");
printf("\t\t#\t\t2----------学生浏览\t\t#\n");
printf("\t\t#\t\t3----------学生查询\t\t#\n");
printf("\t\t#\t\t4----------学生删除\t\t#\n");
printf("\t\t#\t\t5----------成绩统计\t\t#\n");
printf("\t\t#\t\t0----------退出系统\t\t#\n");
printf("\t\t#################################################\n");
}
if(n==2){
printf("\t\t=================================================\n");
printf("\t\t=\t\t-------------------\t\t=\n");
printf("\t\t=\t\t-------------------\t\t=\n");
printf("\t\t=\t\t-输入学号查询------\t\t=\n");
printf("\t\t=\t\t-输入0返回主菜单-\t\t=\n");
printf("\t\t=\t\t-------------------\t\t=\n");
printf("\t\t=\t\t-------------------\t\t=\n");
printf("\t\t=================================================\n");
}
if(n==5){
printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\t\t~\t\t-------------------\t\t~\n");
printf("\t\t~\t\t-------------------\t\t~\n");
printf("\t\t~\t1第一次录入或重新录入\t\t~\n");
printf("\t\t~\t2增加学生及学生的信息\t\t~\n");
printf("\t\t~\t\t-------------------\t\t~\n");
printf("\t\t~\t\t-------------------\t\t~\n");
printf("\t\t~~~~~~~~0\t返回主菜单~~~~~~~~~~\n");
}
if(n==3){
printf("\t------------------------------------------------------------------\n");
}
if(n==4){
printf("\t||\t学号姓名性别C语言成绩英语成绩\t||\n");
}
if(n==6){
printf("\t\t、、、、、、、、、、、、、、、、、、、、、、、、、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-1确定删除------\t\t、\n");
printf("\t\t、\t\t-2重新输入------\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、、、、、、、0返回主菜单、、、、、、、、、、、\n");
}
if(n==7){
printf("\t\t、、、、、、、、、、、、、、、、、、、、、、、、、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-1继续删除------\t\t、\n");
printf("\t\t、\t\t-0返回主菜单----\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、\t\t-------------------\t\t、\n");
printf("\t\t、、、、、、、、、、、、、、、、、、、、、、、、、\n");
}
if(n==8){
printf("\t\t````````````````````````````````````````````````、\n");
printf("\t\t`\t---------------------------\t\t、\n");
printf("\t\t`\t1---------------按C成绩浏览\t\t、\n");
printf("\t\t`\t2------------按英语成绩浏览\t\t、\n");
printf("\t\t`\t3--------按总分和平均分浏览\t\t、\n");
printf("\t\t`\t4----查询学生的总分和平均分\t\t、\n");
printf("\t\t`\t---------------------------\t\t、\n");
printf("\t\t`、、、、、、0返回主菜单、、、、、、、、、、、\n");
}
if(n==9)
printf("\t----------------------------------------------------------\n");
if(n==10)
printf("\t||\t学号姓名性别C语言成绩\t||\n");
if(n==11)
printf("\t||\t学号姓名性别英语成绩\t||\n");
if(n==12)
printf("-------------------------------------------------------------------------\n");
if(n==13)
printf("||学号姓名性别C语言成绩英语成绩总分平均分\t||\n");
if(n==14){
printf("\t\t#################################################\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#\t\t1----------学生录入\t\t#\n");
printf("\t\t#\t\t0----------退出系统\t\t#\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#################################################\n");
}
if(n==15){
printf("*******************************************************************************\n");
printf("-------------------------<<欢迎您使用学生成绩管理系统>>------------------------\n");
printf("*******************************************************************************\n\n\n");
printf("\t\t*************************************************\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t1-----学生浏览-----\t\t*\n");
printf("\t\t*\t\t2-----管理员登陆---\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*\t\t-------------------\t\t*\n");
printf("\t\t*************************************************\n");
}
if(n==16){
printf("\t\t#################################################\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#\t\t2----------学生浏览\t\t#\n");
printf("\t\t#\t\t3----------学生查询\t\t#\n");
printf("\t\t#\t\t-------------------\t\t#\n");
printf("\t\t#\t\t5----------成绩统计\t\t#\n");
printf("\t\t#\t\t0----------退出系统\t\t#\n");
printf("\t\t#################################################\n");
}
}
//密码登录
intlog(){
intk=1;
system("cls");
inquireMenu(15);
printf("请输入(1--2)\n");
if(k!
=0&&k!
=1)
printf("您的输入有误,请重新输入\n");
scanf("%d",&k);
if(k==1)
returnk;
if(k==2){
charzhangHao[20]="letsgo";
charmiMa[20]="letsgo";
charachar,ZhangHao[MAX_MIMA],MiMa[MAX_MIMA];
inti,n=3;
while
(1){
i=0;
printf("您还有%d次输入机会\n请输入账号和密码,用回车间隔\n",n);
printf("账号:
");
scanf("%s",ZhangHao);
getchar();
printf("密码:
");
while
(1){
if((achar=getch())!
='\r'){
if(achar!
='\b'){
if(iMiMa[i]=achar;
putchar('*');
i++;
}
else
putchar('\7');
}
else{
if(i!
=0){
i++;
printf("\b\b");
}
}
}
else{
MiMa[i]=0;
break;
}
}
n=n-1;
if(n==0){
printf("\ngameover\n");
exit(0);
}
system("cls");
if(n!
=3){
if((strcmp(MiMa,miMa)==0)&&(strcmp(zhangHao,ZhangHao)==0)){
printf("\n输入的密码是正确\n");
returnk;
}
else
printf("\n您输入的账号或密码错误\n");
}
}
}
return0;
}
//输出函数
voidoutput(link*p){
if(p->node.sex==1)
printf("\t||\t%8d%15s男%4d%4d\t\t||\n",p->node.num,p->node.name,p->node.cYuYan,p->node.english);
else
printf("\t||\t%8d%15s女%4d%4d\t\t||\n",p->node.num,p->node.name,p->node.cYuYan,p->node.english);
}
//单科预览
voidoutput(inti,link*p){
if(i==1){
if(p->node.sex==1)
printf("\t||\t%8d%15s男%4d\t||\n",p->node.num,p->node.name,p->node.cYuYan);
else
printf("\t||\t%8d%15s女%4d\t||\n",p->node.num,p->node.name,p->node.cYuYan);
}
if(i==2){
if(p->node.sex==1)
printf("\t||\t%8d%15s男%4d\t||\n",p->node.num,p->node.name,p->node.english);
else
printf("\t||\t%8d%15s女%4d\t||\n",p->node.num,p->node.name,p->node.english);
}
if(i==3||i==4){
if(p->node.sex==1)
printf("||%8d%15s男%4d%4d",p->node.num,p->node.name,p->node.cYuYan,p->node.english);
else
printf("||%8d%15s女%4d%4d",p->node.num,p->node.name,p->node.cYuYan,p->node.english);
}
}
//读取数据中学生的个数
intstudentNum(){
intn=0;
FILE*fp;
if((fp=fopen("studentNum.txt","r"))==NULL){
returnn;
}
fread(&n,LEN1,1,fp);
fclose(fp);
returnn;
}
//输出学生个数
intnumber(){
intnum;
num=studentNum();
inquireMenu(9);
if(num!
=0)
printf("\t||数据库中有%d个学生的信息,可以继续\t\t\t||\n",num);
else
printf("\t||这个数据库为空,请先录入学生信息\t\t\t||\n");
inquireMenu(9);
returnnum;
}
//学生信息录入
voidinput(){
FILE*fp;
intnum,n=1;
num=studentNum();
if(num==0)
fp=fopen("studentSystem.txt","w");
while(num){
system("cls");
inquireMenu(5);
if(n!
=0&&n!
=1&&n!
=2)
printf("您输入的有误,请重新输入\n");
scanf("%d",&n);
switch(n){
case1:
{fp=fopen("studentSystem.txt","w");num=0;}break;
case2:
{fp=fopen("studentSystem.txt","a");num=studentNum();}break;
case0:
return;
}
if(n==0||n==1||n==2)
break;
}
link*p1;
p1=(link*)malloc(LEN);
while
(1){
system("cls");
printf("录入系统\n请输入第%d个学生的学号姓名性别(男=1,女=2)英语成绩C语言成绩\n学生具体信息用回车继续,以输入0为输入结束\n",num+1);
printf("学号:
");
scanf("%d",&p1->node.num);
if(p1->node.num==0){
fclose(fp);
free(p1);
fp=fopen("studentNum.txt","w");
fwrite(&num,sizeof(int),1,fp);
fclose(fp);
return;
}
printf("姓名:
");
scanf("%s",p1->node.name);
printf("性别:
");
scanf("%d",&p1->node.sex);
printf("C语言成绩:
");
scanf("%d",&p1->node.cYuYan);
printf("英语成绩:
");
scanf("%d",&p1->node.english);
fwrite(p1,LEN1,1,fp);
num=num+1;
}
}
//读取学生信息
link*readStudent(void){
intnum;
num=studentNum();
FILE*fp;
link*head,*p1,*p2;
fp=fopen("studentSystem.txt","r");
head=p1=(link*)malloc(LEN);
p1->next=NULL;
for(inti=0;ip2=p1;
p1=(link*)malloc(LEN);
p2->next=p1;
fread(p2,LEN1,1,fp);
}
p2->next=NULL;
fclose(fp);
returnhead;
}
//学生浏览
voidbrowse(){