卓卓教育网 > > 小学 > 学生成绩管理系统c

学生成绩管理系统c

来源:https://www.zzjyw.cn 时间:2024-07-05 编辑:admin 手机版

#include stdio.h

#include#include #include struct book{ char number[21]; char shuming[30]; int shuliang; int jiage; char zhuanye[20]; char zuozhe[26]; char chubanshe[20]; char beizhu[100]; struct book *next; }; struct book *creat() /*创建链表*/ { struct book *p,*head,*end; head=end=p=(struct book *)malloc(sizeof(struct book)); printf(输入教材编号为0结束输入,每项信息都必须输入内容。\n); do { printf(\n教材编号:); gets(p->number); if(strcmp(p->number,0)==0){ end->next=NULL; return head;} end=p; printf(\n教材名称:); gets(p->shuming); printf(\n教材数量:); scanf(%d,&p->shuliang); printf(\n教材价格:); scanf(%d,&p->jiage); getchar(); printf(\n教材专业:); gets(p->zhuanye); printf(\n教材作者:); gets(p->zuozhe); printf(\n教材出版社:); gets(p->chubanshe); printf(\n备注:); gets(p->beizhu); p=(struct book *)malloc(sizeof(struct book)); end->next=p; }while(1); } void save(struct book *head) /*保存链表*/ {FILE *fp; struct book *p; char filename[30]; int ch; printf(请输入“文件名.后缀”:); scanf(%s,filename); if((fp=fopen(filename,r))!=NULL) { printf(\n该文件已存在,是否覆盖?1,是 2,否); scanf(%d,&ch); if(ch!=1) return; } if((fp=fopen(filename,w))==NULL) { printf(\n文件保存失败);getchar();return;} p=head; do{ fprintf(fp,\n%s,p->number); fprintf(fp,\n%s,p->shuming);; fprintf(fp,\n%d,p->shuliang); fprintf(fp,\n%d,p->jiage); fprintf(fp,\n%s,p->zhuanye); fprintf(fp,\n%s,p->zuozhe); fprintf(fp,\n%s,p->chubanshe); fprintf(fp,\n%s,p->beizhu); p=p->next; }while(p!=NULL); fprintf(fp, over); printf(\n成功保存); getchar(); getchar(); fclose(fp); } void print(struct book *head) /*输出链表*/ { struct book *p; p=head; if(p==NULL) { printf(未打开任何文件,无法显示); getch();return;} do{ printf(\n\n教材编号:%s,p->number); printf(\n教材名称:%s,p->shuming);; printf(\n数量:%d,p->shuliang); printf(\n价格:%d,p->jiage); printf(\n专业:%s,p->zhuanye); printf(\n作者:%s,p->zuozhe); printf(\n出版社:%s,p->chubanshe); printf(\n备注:%s,p->beizhu); p=p->next; }while(p!=NULL); } struct book *openfile() /*打开文件*/ {struct book *p,*f,*head; FILE *fp; char filename[20]; printf(\n请输入路径,文件名,和后缀):); scanf(%s,filename); if((fp=fopen(filename,r))==NULL){ printf(\n文件找不到,请检查是否有该文件和路径是否正确);getchar();return NULL;} head=f=p=(struct book *)malloc(sizeof(struct book)); fscanf(fp,%s%s%d%d%s%s%s%s,p->number,p->shuming,&p->shuliang,&p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu); while(!feof(fp)) { p=(struct book *)malloc(sizeof(struct book)); f->next=p; fscanf(fp,%s%s%d%d%s%s%s%s,p->number,p->shuming,&p->shuliang,&p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu); if(strcmp(p->number,over)==0){ f->next=NULL; printf(\n文件打开成功,可以显示此信息);getchar(); return head; } f=p; } return head; } void namesort(struct book *head) /*按教材名称排序*/ { struct book *p,*t,*f,*h; char ch[20]; int i; h=t=f=p=head; if(head==NULL) {printf(未打开任何文件);getchar();return; }; f=p->next; for(p=head;p->next!=NULL;p=p->next) { for(t=head,f=t->next;t->next!=NULL;f=f->next,t=t->next) { if(strcmp(t->shuming,f->shuming)>0) { strcpy(ch,t->number ); strcpy(t->number,f->number); strcpy(f->number,ch); strcpy(ch,t->shuming ); strcpy(t->shuming,f->shuming); strcpy(f->shuming,ch); i=t->shuliang ; t->shuliang=f->shuliang; f->shuliang=i; i=t->jiage ; t->jiage=f->jiage; f->jiage=i; strcpy(ch,t->zhuanye); strcpy(t->zhuanye,f->zhuanye); strcpy(f->zhuanye,ch); strcpy(ch,t->zuozhe); strcpy(t->zuozhe,f->zuozhe); strcpy(f->zuozhe,ch); strcpy(ch,t->chubanshe); strcpy(t->chubanshe,f->chubanshe); strcpy(f->chubanshe,ch); strcpy(ch,t->beizhu); strcpy(t->beizhu,f->beizhu); strcpy(f->beizhu,ch); } } } print(h); } void chubanshesort(struct book *head) /*按出版社排序*/ { struct book *p,*t,*f,*h; char ch[20]; int i; h=t=f=p=head; if(head==NULL) {printf(未打开任何文件);getchar();return; } f=p->next; for(p=head;p->next!=NULL;p=p->next) { for(t=head,f=t->next;t->next!=NULL;f=f->next,t=t->next) { if(strcmp(t->chubanshe,f->chubanshe)>0) { strcpy(ch,t->number ); strcpy(t->number,f->number); strcpy(f->number,ch); strcpy(ch,t->shuming ); strcpy(t->shuming,f->shuming); strcpy(f->shuming,ch); i=t->shuliang ; t->shuliang=f->shuliang; f->shuliang=i; i=t->jiage ; t->jiage=f->jiage; f->jiage=i; strcpy(ch,t->zhuanye); strcpy(t->zhuanye,f->zhuanye); strcpy(f->zhuanye,ch); strcpy(ch,t->zuozhe); strcpy(t->zuozhe,f->zuozhe); strcpy(f->zuozhe,ch); strcpy(ch,t->chubanshe); strcpy(t->chubanshe,f->chubanshe); strcpy(f->chubanshe,ch); strcpy(ch,t->beizhu); strcpy(t->beizhu,f->beizhu); strcpy(f->beizhu,ch); } } } print(h); } void shumingsearch(struct book *head) /*按教材名称查找*/ { struct book *p; char name[20]; int c; if(head==NULL) {printf(未打开任何文件);getchar();return;} printf(1,查找专业 2,查找教材名称:); scanf(%d,&c); getchar(); if(c==2) printf(请输入要查找的教材名称:); else printf(请输入要查找的专业:); gets(name); p=head; do{ if(c==2) if(strcmp(p->shuming,name)==0) { printf(教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n,p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu); } if(c==1) if(strcmp(p->zhuanye,name)==0) { printf(教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n,p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu); } p=p->next; }while(p!=NULL); printf(查找完成); return; } struct book *add(struct book *head) /*增加记录*/ { struct book *p,*e,*f,*h; if(head==NULL) {printf(未打开任何文件);getchar(); return NULL;} h=f=e=head; p=(struct book *)malloc(sizeof(struct book)); printf(\n教材编号:); gets(p->number); printf(\n教材名称:); gets(p->shuming); printf(\n数量:); scanf(%d,&p->shuliang); printf(\n价格:); scanf(%d,&p->jiage); getchar(); printf(\n专业:); gets(p->zhuanye); printf(\n作者:); gets(p->zuozhe); printf(\n出版社:); gets(p->chubanshe); printf(\n备注:); gets(p->beizhu); if(strcmp(f->number,p->number)>0) { p->next=f;h=p;printf(\n添加成功);return h;} if(f->next==NULL) { f->next=p;p->next=NULL;printf(\n添加成功);return h;} do{ if(f->next!=NULL) if(strcmp(f->number,p->number)>0) { e->next=p;p->next=f;printf(\n添加成功);return h; } if(f->next==NULL) { f->next=p; p->next=NULL; printf(\n添加成功); return h; } f=f->next; e=e->next; }while(1); } struct book *delet(struct book *head) /*删除记录*/ { struct book *p,*e; char num[20]; if(head==NULL) {printf(未打开任何文件);getchar();return NULL;} printf(请输入要删除的教材编号:); scanf(%s,num); p=e=head; if(strcmp(p->number,num)==0) { head=head->next; print(head);return head;} else p=p->next; do{ if(strcmp(p->number,num)==0) { if(p->next!=NULL) e->next=p->next; if(p->next==NULL) e->next=NULL; print(head); return head; } p=p->next; e=e->next; }while(p!=NULL); printf(搜索完毕,未找到该记录); return head; } struct book *change(struct book *head) /*修改记录*/ { struct book *p; char num[20]; if(head==NULL) {printf(未打开任何文件);getchar();return NULL;} printf(请输入要修改的教材编号:); scanf(%s,num); getchar(); p=head; do{ if(strcmp(p->number,num)==0) { printf(教材编号:%s\n教材名称:%s\n数量:%d\n价格:%d\n专业:%s\n作者:%s\n出版社:%s\n备注:%s\n,p->number,p->shuming,p->shuliang,p->jiage,p->zhuanye,p->zuozhe,p->chubanshe,p->beizhu); printf(\n教材编号:); gets(p->number); printf(\n教材名称:); gets(p->shuming); printf(\n数量:); scanf(%d,&p->shuliang); printf(\n价格:); scanf(%d,&p->jiage); getchar(); printf(\n专业:); gets(p->zhuanye); printf(\n作者:); gets(p->zuozhe); printf(\n出版社:); gets(p->chubanshe); printf(\n备注:); gets(p->beizhu); printf(修改成功); return head; } p=p->next; }while(p!=NULL); printf(未找到要修改的记录); return head; } int mima() { FILE *fp; char mima1[20],mima2[20]; if((fp=fopen(mima,r))==NULL) { printf(尚未设置密码请输入:); scanf(%s,mima1); printf(请再次输入密码:); scanf(%s,mima2); if(strcmp(mima1,mima2)!=0) { printf(两次密码不一样);return 0;} else { fp=fopen(mima,w); fprintf(fp,%s,mima1); printf(密码设置成功); return 1; } } printf(请输入初始化密码:); scanf(%s,mima1); fscanf(fp,%s,mima2); if(strcmp(mima1,mima2)==0) { printf(密码正确); printf(请输入要删除的文件名:); scanf(%s,mima1); if(remove(mima1)==0) { printf(删除成功); getchar(); return 1; } else { printf(删除失败,请检查是否存在该文件或路径是否正确); getchar(); return 0; } } else { printf(密码错误); getchar(); return 0; } } void main() { struct book *head=NULL; char i; printf( \n); printf( db \n); printf( d88888 88888b \n); printf( d88P 88b \n); printf( 888' `88b \n); printf( 88P Y88 \n); printf( 88 88\n); printf( 88 88\n); printf( 88 88\n); printf( 88 88\n); printf( 88 88\n); printf( 88 ,aa. ,aa. 88 \n); printf( 88 d88b d88b 88 \n); printf( ,=88 Y88P Y88P 88=, \n); printf( ,d88P' `' _aa_ `' `Y88b, \n); printf( 88P' (8888) `Y88 ad88888b \n); printf( 88 ~^^~ 88 d88Y Y8b\n); printf( Yb._ _.d8 d8Y 88\n); printf( d88888888ba888=,. .,=8888 d88 88 \n); printf( ★☆88P Y88~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~★☆\n); printf( ★☆ 88 88 ★☆\n); printf( ★☆88 88 欢迎使用本教材系统,按任意键进入系统 ★☆\n); printf( ★☆ 8b,___,d8 ★☆\n); printf( ★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆\n); getch(); system(cls); do{ printf( ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n); printf(m--菜单 h--帮助); printf(\n请输入命令:); i=getch(); if(i=='h') { printf(\n1,录入教材信息的时候,每一个项目都必须输入相应的内容。\n2,修改,增加,删除,查找记录前必须先打开一个文件,修改完后必须记得保存教材信息。\n3,必须使用正确的路径打开文件,建议保存文件时候不用输入路径(此时是默认路径,即保存在程序目录下。)); getch(); break; } if(i=='m') break; system(cls); }while(i!='m'||i!='h'); system(cls); do{ printf( ☆★☆★☆★ 教材管理系统 ☆★☆★☆★\n); printf(┌————-———┐\n); printf(│1,录入教材信息│\n│2,显示教材信息│\n│3,打开一个记录│\n│4,编辑一个记录│\n│5,保存教材信息│\n│6,查找记录 │\n│s,初始化系统 │\n│e,退出系统 │\n); printf(└———————-┘\n); printf(\n请输入功能编号:); i=getch(); system(cls); switch(i) { case '1': head=creat();save(head);break; case '2': print(head);break; case '3': head=openfile();break; case '4': system(cls); printf(┌————-———┐\n); printf(│1,增加一个记录│\n); printf(│2,删除一个记录│\n); printf(│3,修改一个记录│\n); printf(└———————-┘\n); i=getch(); switch(i) { case '1': head=add(head);break; case '2': head=delet(head);break; case '3': head=change(head);break; default: break; } break; case '5': save(head);break; case '6': shumingsearch(head);break; case 's': mima();break; case 'e': exit(0); default :break; } system(cls); }while(1); } 我想这个程序包含了你那个成绩管理系统的全部要求,但我这个是教材管理系统我想改一下就可以了,具体如何改就要看楼主的天赋咯,呵呵。参考一下吧

最近更新

小学排行榜精选