配色: 字号:
C语言学生信息管理系统
2016-06-30 | 阅:  转:  |  分享 
  
C语言编辑学生信息管理系统#include#include#include#inc
ludevoidfrist_print(){?printf("\t\t开发者:中国匿名者黑客组织");//欢迎
信息?}voidmenu()?{?printf("\n\t\t\
n");//管理菜单?printf("\t\t==\t1.录入学生成绩\n\t\t+\n");?printf("\t\t==\t
2.显示学生成绩\n\t\t+\n");?printf("\t\t==\t3.查询学生成绩\n\t\t+\n");?printf(
"\t\t==\t4.添加学生成绩\n\t\t+\n");?printf("\t\t==\t5.修改学生成绩\n\t\t+\n")
;printf("\t\t==\t6.删除学生成绩\n\t\t+\n");printf("\t\t==\t7.清空页面\n\t\t
+\n");?printf("\t\t==\t8.退出系统\n");?printf("\t\t
\n");?printf("pleasechoise1--8:\t");?putchar(10);
?}structMM//结构体定义变量?{charnum[20];charname[10];floatpay;int
many;}mm;voidscanf_1()//第一次输入信息并保存在文件中?{charch;?FILEfp;if((f
p=fopen("dd.dat","wb+"))==NULL){printf("cannotopenfile\n");exit
(0);?}?do{printf("请输入成绩的--编号:\t");getchar();gets(mm.num);printf("
姓名:\t");gets(mm.name);?printf("成绩:\t");scanf("%f",&mm.pay);printf
("学号:\t");scanf("%d",&mm.many);if(fwrite(&mm,sizeof(structMM),1,
fp)!=1){printf("filewriteerror\n");exit(0);}?printf("是否继续输入yor
n?\t");getchar();ch=getchar();}while(ch==''y''||ch==''Y'');?fclose(
fp);?}voidfind()//查询成绩的信息?{inta,b=0;charch[20];?FILEfp;if(
(fp=fopen("dd.dat","rb"))==NULL){printf("cannotopenfile\n");exi
t(0);?}?printf("请输入要查询的成绩的方式\n\t1.编号2.姓名:\n\t请选择1or2\t");sca
nf("%d",&a);?if(a==1){getchar();printf("请输入成绩的编号:\t");gets(ch);w
hile(fread(&mm,sizeof(structMM),1,fp)==1)if(strcmp(mm.num,ch)==0
){?b++;printf("编号\t姓名\成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",
mm.num,mm.name,mm.pay,mm.many);}if(b==0)printf("对不起,没找到啦~:\n");}
elseif(a==2){printf("请输入成绩的姓名:\t");getchar();gets(ch);while(fre
ad(&mm,sizeof(structMM),1,fp)==1)if(strcmp(mm.name,ch)==0){b++;p
rintf("编号\t姓名\t成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm.num,
mm.name,mm.pay,mm.many);}?if(b==0)printf("inputerror!\n");?}fcl
ose(fp);?}?voidscanf_2()//第二次输入信息并保存在文件中?{charch;?FILEfp;if(
(fp=fopen("dd.dat","ab"))==NULL){printf("cannotopenfile\n");exi
t(0);?}?do{printf("请输入要添加成绩的--编号:\t");getchar();gets(mm.num);prin
tf("姓名:\t");gets(mm.name);?printf("成绩:\t");scanf("%f",&mm.pay);pr
intf("学号:\t");scanf("%d",&mm.many);if(fwrite(&mm,sizeof(structMM
),1,fp)!=1){printf("filewriteerror\n");exit(0);}?printf("是否继续输入
yorn?\t");getchar();ch=getchar();}while(ch==''y''||ch==''Y'');?fcl
ose(fp);?}?voidprint()//输出文档中的信息?{FILEfp;if((fp=fopen("dd.dat
","rb"))==NULL){printf("cannotopenfile\n");return;?}?printf("编
号\t姓名\t成绩\t\t学号\n");while(fread(&mm,sizeof(structMM),1,fp)==1)pr
intf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many);?fclos
e(fp);?}voidchange(){//修改信息的函数,定义另一个文件,把要修改的信息放到该文件中?structXX
//然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名?{//把原来的文件移除;?charnum[20];char
name[10];floatpay;intmany;}xx;?FILEfp2;inta,b=0,c=0,n=0;char
ch[20],ck;?FILEfp;do{?if((fp=fopen("dd.dat","rb"))==NULL){prin
tf("cannotopenfile\n");exit(0);?}?if((fp2=fopen("temp.dat","wb"
))==NULL){printf("cannotopenfile\n");exit(0);?}?printf("请输入要修改成
绩的编号:\t");scanf("%s",ch);n++;while(fread(&mm,sizeof(structMM),1,
fp)==1){?if((strcmp(mm.num,ch)==0)){?b++;//b的值如果一直没有改变说明,没有找到相关的
信息;?printf("编号\t姓名\t价格\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm
.num,mm.name,mm.pay,mm.many);getchar();printf("请输入成绩的新编号:\t");get
s(xx.num);printf("请输入成绩的新姓名:\t");gets(xx.name);printf("请输入成绩的新成绩:
\t");scanf("%f",&xx.pay);printf("请输入成绩新学号:\t");scanf("%d",&xx.man
y);getchar();?fwrite(&xx,sizeof(structXX),1,fp2);?}?if(strcmp(mm
.num,ch)!=0)fwrite(&mm,sizeof(structMM),1,fp2);?}if(b==0)?{?prin
tf("\t对不起,没找到啦~\n");getchar();}rewind(fp);//如果要继续修改的话,要把标记返回到文件的
开头;?printf("是否继续修改?enter''y''or''n''\t");ck=getchar();?fclose(fp)
;fclose(fp2);remove("dd.dat");rename("temp.dat","dd.dat");?}while
(ck==''y''||ck==''Y'');if(b!=0)//如果没有找到相关信息就不能输出?printf("\t修改成功:\n")
;}voiddel(){//删除函数和修改很相似?FILEfp2;inta,b=0,c=0,n=0;charch[20
],ck;?FILEfp;do{if((fp=fopen("dd.dat","rb"))==NULL){printf("ca
nnotopenfile\n");exit(0);?}?if((fp2=fopen("temp.dat","wb"))==NU
LL){printf("cannotopenfile\n");exit(0);?}?printf("请输入要删除成绩的编号:\
t");scanf("%s",ch);n++;while(fread(&mm,sizeof(structMM),1,fp)==1
){?if((strcmp(mm.num,ch)==0)){?b++;//b的值如果一直没有改变说明,没有找到相关的信息;?pr
intf("编号\t姓名\t成绩\t\t学号\n");printf("%s\t%s\t%.3f\t\t%d\n",mm.num,m
m.name,mm.pay,mm.many);}?elseif(strcmp(mm.num,ch)!=0)fwrite(&mm,
sizeof(structMM),1,fp2);?}if(b==0)?{?printf("\t对不起,没找到啦~\n");get
char();}rewind(fp);getchar();getchar();printf("删除成功!");?getchar()
;//如果要继续修改的话,要把标记返回到文件的开头;?printf("是否继续删除?enter''y''or''n''\t");
ck=getchar();?fclose(fp);fclose(fp2);remove("dd.dat");rename("tem
p.dat","dd.dat");?}while(ck==''y''||ck==''Y'');if(b!=0)//如果没有找到相关信息就
不能输出?printf("\t保存成功:\n");}voidmyexit(){inta;charch;printf("\t是
否确定退出?请选择yorn:");getchar();ch=getchar();if(ch==''y''||ch==''Y'')
exit(0);elsemenu();}intmain(){inta;?printf("\n\n\n");?printf("\
t\t\t欢迎进入学生成绩系统\n\n");getch();frist_print();menu();while(1){scanf("%d",&a);if(a==1)scanf_1();elseif(a==2)print();elseif(a==3)find();elseif(a==4)scanf_2();elseif(a==5)change();elseif(a==6)del();?elseif(a==7)system("cls");elseif(a==8)?myexit();elseprintf("输入错咯,请再输入一次:\t");printf("\t按任意键继续!\n");getch();menu();}getch();}
献花(0)
+1
(本文系萌大奶首藏)