C语言编程学生成绩管理系统.docx
- 文档编号:17061315
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:29
- 大小:182.56KB
C语言编程学生成绩管理系统.docx
《C语言编程学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《C语言编程学生成绩管理系统.docx(29页珍藏版)》请在冰点文库上搜索。
C语言编程学生成绩管理系统
#include
#include
#include
#include
#include
#include
typedefstructStudent
{
charid[20];
charyuwen[20];
charshuxue[20];
charyingyu[20];
structStudent*next;
}student;
typedefstructUser
{
charuserid[20];
charpassword[20];
structUser*next;
}user;
voidmainmenu(user*U,student*dqad);
voidusermenu(user*U,user*dqur,student*dqad);
voiduserdatamenu(user*U,user*dqur,student*dqad);
voidstudentmenu(user*dqur,student*dqad);
voidpassword_change(user*dqur);
voiduser_read(user*U);
voiduser_save(user*U);
voiduser_display(user*U);
voiduser_input(user*U,student*dqad);
voiduser_register(user*U,student*dqad);
voidstudent_read(user*dqur,student*dqad);
voidstudent_save(user*dqur,student*dqad);
voidstudent_deleteone(user*dqur,student*dqad);
voidstudent_deleteall(user*dqur,student*dqad);
voidstudent_displayone(user*dqur,student*dqad);
voidstudent_input(user*dqur,student*dqad);
voidstudent_change(user*dqur,student*dqad);
voidstudent_changemenu(user*dqur,student*dqad,student*dqco);
intmain()
{
user*U;
U=(user*)malloc(sizeof(user));U->next=NULL;
student*dqad;
dqad=(student*)malloc(sizeof(student));
dqad->next=NULL;
mainmenu(U,dqad);
return0;
}
voiduser_read(user*U)
{
FILE*fp;intreadnum;
user*qbur,*qbtu;qbur=U;
fp=fopen("USER.txt","r");
if(fp==NULL)
printf("Cannotopenoutputfile.\n");
elseif(fp!
=NULL)
{
while(!
feof(fp))
{
qbtu=(user*)malloc(sizeof(user));
qbtu->next=NULL;
readnum=fread(qbtu,sizeof(user),1,fp);
if(readnum!
=0)
{
qbur->next=qbtu;
qbur=qbtu;
}
}
fclose(fp);printf("readfromafileok!
\n");
}
}
voidstudent_read(user*dqur,student*dqad)
{
student*qbdy,*qbtd;qbdy=dqad;
charfile[80];FILE*fp;
sprintf(file,"%s.txt",dqur->userid);
fp=fopen(file,"a+");
if(fp==NULL)
{
perror("fopen");
}
elseif(fp!
=NULL)
{
while(!
feof(fp))
{
qbtd=(student*)malloc(sizeof(student));
qbtd->next=NULL;
fread(qbtd,sizeof(student),1,fp);
qbdy->next=qbtd;
qbdy=qbtd;
}
}
fclose(fp);printf("allthestudent'sdatahavebeenreaded\n");
}
voiduser_save(user*U)
{
user*qbur;qbur=U->next;intwritenum;
FILE*fp;fp=fopen("User.txt","w+");
if(fp==NULL)
{
perror("fopen");exit
(1);
}
while(qbur!
=NULL)
{
writenum=fwrite(qbur,sizeof(user),1,fp);
if(writenum==EOF)
{
perror("fwrite");exit
(1);
}
qbur=qbur->next;
}
fclose(fp);
printf("alltheuser'sdatahavebeensaved\n");
}
voidstudent_save(user*dqur,student*dqad)
{
charfile1[80];FILE*fp1;intwritenum;
student*svad;svad=dqad->next;
sprintf(file1,"%s.txt",dqur->userid);
fp1=fopen(file1,"w+");
if(fp1==NULL)
{
perror("fopen");
}
elseif(fp1!
=NULL)
{
while(svad!
=NULL)
{
writenum=fwrite(svad,sizeof(student),1,fp1);
if(writenum==EOF)
{
perror("fwrite");
}
svad=svad->next;
}
}
fclose(fp1);printf("allthestudent'sdatahavebeensaved\n");
}
voiduser_register(user*U,student*dqad)
{
user*zcur,*dqtu;
zcur=(user*)malloc(sizeof(user));
zcur->next=NULL;
while
(1)
{
printf("请输入用户名:
\n");
scanf("%s",zcur->userid);
dqtu=U->next;inti,flag=0;
while(dqtu!
=NULL)
{
if(strcmp(zcur->userid,dqtu->userid)==0)
{
flag=1;
break;
}
if(strcmp(zcur->userid,dqtu->userid)!
=0)
dqtu=dqtu->next;
}
if(flag==0)
{
for(i=0;i<20;i++)
zcur->password[i]='0';
printf("请输入六位数密码:
\n");
for(i=0;i<6;i++)
{
zcur->password[i]=getch();
printf("*");
}
dqtu=U;
while(dqtu->next!
=NULL)
dqtu=dqtu->next;
dqtu->next=zcur;
dqtu=zcur;
printf("\n注册成功!
\n");
user_save(U);
mainmenu(U,dqad);
break;
}
elseif(flag==1)
printf("theuseridisexisted,pleaseinputagain!
!
!
\n");
}
}
voiduser_input(user*U,student*dqad)
{
user*sftu1=U->next;
user*sftu2;
sftu2=(user*)malloc(sizeof(user));
sftu2->next=NULL;
inti,j,flag=0;
printf("输入用户名:
\n");
scanf("%s",sftu2->userid);
printf("输入密码:
\n");
for(i=0;i<20;i++)
sftu2->password[i]='0';
for(i=0;i<6;i++)
{
sftu2->password[i]=getch();
printf("*");
}
printf("\n");
while(sftu1!
=NULL)
{
if(strcmp(sftu2->userid,sftu1->userid)==0)
{
if(strcmp(sftu2->password,sftu1->password)==0)
{
flag=1;
break;
}
elseif(strcmp(sftu2->password,sftu1->password)!
=0)
{
flag=0;
break;
}
}
else
sftu1=sftu1->next;
}
if(flag==1)
{
printf("\n登入成功!
\n");
usermenu(U,sftu1,dqad);
}
elseif(flag==0||sftu1==NULL)
{
printf("\n用户名不存在或密码输入错误!
\n");
do{
printf("请重新进行选择:
\n");
mainmenu(U,dqad);
}while(sftu1==NULL);
}
}
voidstudent_input(user*dqur,student*dqad)
{
student*dqtd,*dqdy;dqtd=dqad;
dqdy=(student*)malloc(sizeof(student));
dqdy->next=NULL;
while
(1)
{
printf("inputid:
\n");
scanf("%s",dqdy->id);
dqtd=dqad->next;inti,flag=0;
while(dqtd!
=NULL)
{
if(strcmp(dqdy->id,dqtd->id)==0)
{
flag=1;
break;
}
if(strcmp(dqdy->id,dqtd->id)!
=0)
dqtd=dqtd->next;
}
if(flag==0)
{
printf("inputyuwen:
\n");scanf("%s",dqdy->yuwen);
printf("inputshuxue:
\n");scanf("%s",dqdy->shuxue);
printf("inputyingyu:
\n");scanf("%s",dqdy->yingyu);
dqtd=dqad;
while(dqtd->next!
=NULL)
dqtd=dqtd->next;
dqtd->next=dqdy;
dqtd=dqdy;
student_save(dqur,dqad);
printf("\n记录成功!
\n");
break;
}
elseif(flag==1)
printf("theidisexisted,pleaseinputagain!
!
!
\n");
}
}
voidpassword_change(user*dqur)
{
printf("pleaseintputthepasswordyouwanttochange:
\n");
inti;charpassword[20];
for(i=0;i<20;i++)
dqur->password[i]='0';
for(i=0;i<6;i++)
{
dqur->password[i]=getch();
printf("*");
}
}
voidstudent_changemenu(user*dqur,student*dqad,student*dqco)
{
intk;
student*dqtd,*dqdy;dqtd=dqad;
dqdy=(student*)malloc(sizeof(student));
dqdy->next=NULL;
printf("Enterstudentchangemenuisok!
\n");
printf("thisisthestudentchangemenu\n");
printf("pleaseinputwhatyouwanttochange:
\n");
printf("1.changetheidofthisstudent\n");
printf("2.changetheyuwenofthisstudent\n");
printf("3.changetheshuxueofthisstudent\n");
printf("4.changetheyingyuofthisstudent\n");
printf("5.exit\n");
while
(1)
{
printf("pleaseinputwhatyouwanttochoose:
\n");
scanf("%d",&k);
if(k==1||k==2||k==3||k==4||k==5)
{
switch(k)
{
case1:
while
(1)
{
printf("pleaseintputtheidyouwanttochange:
\n");
scanf("%s",dqdy->id);
dqtd=dqad->next;inti,flag=0;
while(dqtd!
=NULL)
{
if(strcmp(dqdy->id,dqco->id)==0)
{
break;
}
elseif(strcmp(dqdy->id,dqtd->id)==0)
{
flag=1;
break;
}
if(strcmp(dqdy->id,dqtd->id)!
=0)
dqtd=dqtd->next;
}
if(flag==0)
{
strcpy(dqco->id,dqdy->id);
break;
}
elseif(flag==1)
printf("theidisexisted,pleaseinputagain!
!
!
\n");
}
break;
case2:
printf("pleaseintputtheyuwenyouwanttochange:
\n");
charyuwen[20];
scanf("%s",dqco->yuwen);
break;
case3:
printf("pleaseintputtheshuxueyouwanttochange:
\n");
charshuxue[20];
scanf("%s",dqco->shuxue);
break;
case4:
printf("pleaseintputtheyingyuyouwanttochange:
\n");
charyingyu[1000];
scanf("%s",dqco->yingyu);
break;
case5:
returnstudentmenu(dqur,dqad);
break;
}
break;
}
elseif(k!
=1&&k!
=2&&k!
=3&&k!
=4&&k!
=5)
printf("theinputiserror,pleaseinputagain!
!
!
\n");
}
}
voidstudent_change(user*dqur,student*dqad)
{
student*dqtd,*dqcd;dqtd=dqad;
dqcd=(student*)malloc(sizeof(student));
dqcd->next=NULL;
while
(1)
{
printf("inputid:
\n");
scanf("%s",dqcd->id);
dqtd=dqad->next;inti,flag=0;
while(dqtd!
=NULL)
{
if(strcmp(dqcd->id,dqtd->id)==0)
{
flag=1;
student_changemenu(dqur,dqad,dqtd);
student_save(dqur,dqad);
returnstudentmenu(dqur,dqad);
break;
}
if(strcmp(dqcd->id,dqtd->id)!
=0)
{
dqtd=dqtd->next;
}
}
if(flag==1)
{
break;
}
elseif(flag==0)
{
intk2;
printf("theidisnotexisted\n");
printf("Nowyouhavetwochoicestochoose:
\n");
printf("1.Inputtheidagain\n");
printf("2.Exit\n");
while
(1)
{
printf("pleaseinputwhatyouwanttochoose:
\n");
scanf("%d",&k2);
if(k2==1||k2==2)
{
switch(k2)
{
case1:
printf("Nowpleaseinputtheidagain:
\n");
break;
case2:
returnstudentmenu(dqur,dqad);
break;
}
break;
}
elseif(k2!
=1&&k2!
=2)
printf("theinputiserror,pleaseinputagain!
!
!
\n");
}
}
}
}
voiduser_display(user*dqur)
{
printf("thealldataofthisuser:
\n");
printf("%s\n",dqur->userid);
printf("%s\n",dqur->password);
}
voidstudent_displayone(user*dqur,student*dqad)
{
student*dqtd,*dqpo;dqtd=dqad;
dqpo=(student*)malloc(sizeof(student));
dqpo->next=NULL;
while
(1)
{
printf("inputid:
\n");
scanf("%s",dqpo->id);
dqtd=dqad->next;inti,flag=0;
while(dqtd!
=NULL)
{
if(strcmp(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 编程 学生 成绩管理系统