永发信息网

显示所有学生信息的c语言代码

答案:2  悬赏:50  手机版
解决时间 2021-03-16 23:33
  • 提问者网友:棒棒糖
  • 2021-03-16 14:25
显示所有学生信息的c语言代码
最佳答案
  • 五星知识达人网友:傲气稳了全场
  • 2021-03-16 15:07
显示所有学生信息的c语言代码 我这有
全部回答
  • 1楼网友:底特律间谍
  • 2021-03-16 16:26
#include #include #include void frist_print() { printf("\t\t********************************\n\n"); //欢迎信息 printf("\t\t\t欢迎进入学生成绩系统\n"); } void menu() { printf("\n\t\t********************************\n"); //管理菜单 printf("\t\t==\t1.录入学生成绩\n\t\t+\n"); printf("\t\t==\t2.显示学生成绩\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("please choise 1--8:\t"); putchar(10); } struct mm // 结构体定义变量 { char num[20]; char name[10]; float pay; int many; }mm; void scanf_1() //第一次输入信息并保存在文件中 { char ch; file *fp; if((fp=fopen("dd.dat","wb+"))==null) { printf("cannot open file\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(struct mm),1,fp)!=1) { printf("file write error\n"); exit(0); } printf("是否继续输入y or n ?\t"); getchar(); ch=getchar(); }while(ch=='y'||ch=='y'); fclose(fp); } void find() //查询成绩的信息 { int a,b=0; char ch[20]; file *fp; if((fp=fopen("dd.dat","rb"))==null) { printf("cannot open file\n"); exit(0); } printf("请输入要查询的成绩的方式\n\t1.编号 2.姓名:\n\t请选择 1 or 2 \t"); scanf("%d",&a); if(a==1) { getchar(); printf("请输入成绩的编号:\t"); gets(ch); while(fread(&mm,sizeof(struct mm),1,fp)==1) if(strcmp(mm.num,ch)==0) { 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); } if(b==0) printf("对不起!没有找到相关信息:\n"); } else if(a==2) { printf("请输入成绩的姓名:\t"); getchar(); gets(ch); while(fread(&mm,sizeof(struct mm),1,fp)==1) if(strcmp(mm.name,ch)==0) { 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); } if(b==0) printf("input error!\n"); } fclose(fp); } void scanf_2() //第二次输入信息并保存在文件中 { char ch; file *fp; if((fp=fopen("dd.dat","ab"))==null) { printf("cannot open file\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(struct mm),1,fp)!=1) { printf("file write error\n"); exit(0); } printf("是否继续输入y or n ?\t"); getchar(); ch=getchar(); }while(ch=='y'||ch=='y'); fclose(fp); } void print() //输出文档中的信息 { file *fp; if((fp=fopen("dd.dat","rb"))==null) { printf("cannot open file\n"); return ; } printf("编号\t姓名\t价格\t\t学号\n"); while(fread(&mm,sizeof(struct mm),1,fp)==1) printf("%s\t%s\t%.3f\t\t%d\n",mm.num,mm.name,mm.pay,mm.many); fclose(fp); } void change() { //修改信息的函数,定义另一个文件,把要修改的信息放到该文件中 struct xx //然后把其余的信息复制到该文件中;并把该文件从新命名为原来的名 { //把原来的文件移除; char num[20]; char name[10]; float pay; int many; }xx; file *fp2; int a,b=0,c=0,n=0; char ch[20],ck; file *fp; do{ if((fp=fopen("dd.dat","rb"))==null) { printf("cannot open file\n"); exit(0); } if((fp2=fopen("temp.dat","wb"))==null) { printf("cannot open file\n"); exit(0); } printf("请输入要修改成绩的编号:\t"); scanf("%s",ch); n++; while(fread(&mm,sizeof(struct mm),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"); gets(xx.num); printf("请输入成绩的新姓名:\t"); gets(xx.name); printf("请输入成绩的新价格:\t"); scanf("%f",&xx.pay); printf("请输入成绩新学号:\t"); scanf("%d",&xx.many); getchar(); fwrite(&xx,sizeof(struct xx),1,fp2); } if(strcmp(mm.num,ch)!=0) fwrite(&mm,sizeof(struct mm),1,fp2); } if(b==0) { printf("\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"); } void del() { //删除函数和修改很相似 file *fp2; int a,b=0,c=0,n=0; char ch[20],ck; file *fp; do { if((fp=fopen("dd.dat","rb"))==null) { printf("cannot open file\n"); exit(0); } if((fp2=fopen("temp.dat","wb"))==null) { printf("cannot open file\n"); exit(0); } printf("请输入要删除成绩的编号:\t"); scanf("%s",ch); n++; while(fread(&mm,sizeof(struct mm),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); } else if(strcmp(mm.num,ch)!=0) fwrite(&mm,sizeof(struct mm),1,fp2); } if(b==0) { printf("\t没有找到相关信息!\n"); getchar(); } rewind(fp); getchar(); getchar(); printf("删除成功!"); getchar(); //如果要继续修改的话,要把标记返回到文件的开头; 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"); } void myexit() { int a; char ch; printf("\t是否确定退出?请选择 y or n: "); getchar(); ch=getchar(); if(ch=='y'||ch=='y') exit(0); else menu(); } int main() { int a; frist_print(); menu(); while(1) { scanf("%d",&a); if(a==1) scanf_1(); else if(a==2) print(); else if(a==3) find(); else if(a==4) scanf_2(); else if(a==5) change(); else if(a==6) del(); else if(a==7) system("cls"); else if(a==8) myexit(); else printf("输入错误!!!请重新输入:\t"); printf("\t按任意键继续!\n"); getch(); menu(); } getch(); } 一个成绩管理系统,注释不是太多,写的不太好,能运行,符合你初级水平。 满意请采纳。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯