1、学生成绩管理系统c语言代码#incluesdio.h#iclu#defne Nizf(sruct ST)#define GSH -ld0s%-4d/-2d/%-d%-2s%-12s%sn#efin PRINTF学号姓名 性别 生日 系别 班级 家庭住址nstrt adfile();*声明*/int insert(strct STH*);int n=;tructdtit yea; /*全局变量*/ it mon; int da;tct TH lo nm;/*学号不能以0开头*/cr ne9;har sx5; tut dt bith; cha x0;char ba20; ha ad30;sruc
2、ST*nt;ead;/输入模块*input_mssage()car ch; int flag=1;do i(inst(head)!=0)n+; *计数*/lse rntf(n有相同的的学号!); pitf(n是否继续?(n)); getcar();scn(%c,ch);if(chy|c=Y) pint(继续!); eth();lg=1;/*标志程序不结束* lse fl0; il(flg1); se_msse(); rintf(按任意键继续.); etch();/insrt()模块*/*被输入和插入模块所调用/intnst(strut S*h) struct STH p,*p0;=(sruc
3、STH*)mallc(); printf(n请输入学号:); scanf(%ld,&p-nm);pintf(n请输入姓名:);scf(s,p-ame); pint(n请输入性别:);tchar(); /*取走上一个留下来得n/scn(%s,p-e);rntf(n请输入生日(年月日,用回车隔开):n); caf(%d%d%d,p-birt.ye,prth.onth,&pth.day); prit(n请输入系别:); scnf(%,p-xi); pritf(n请输入班级:);scanf(,p-ba);pintf(n请输入家庭住址:);canf(s,-add); p-ext=NUL; if(*h=N
4、ULL) *p; reurn 1; p0=*h; if(pnum-nu) p-extp0; hp; reurn 1; while(0next!=NLL&0-next-nn)p=p0ext;i(pnxt=L) p0next=; rturn 1; el if(p0-nxt-num=p-nu) re(p); /*有相同数据输入失败*/ etur 0; lse p-nxt=p-next; p-nxtp; rurn 1; /*读文件模块*/ /读文件模块中创建了一个新的链表,其返回值为新链表的头指针*/struct T *readfle()IL *p; struct STH p,*p0;chr ch;
5、int i; if(fp=fope(TH.txt,r)=ULL) pritf(不能读取文件!n); return NULL; /*注意要该*/ head=p=p0=(strcSH)mallc(); scaf(fp,%d,&n); fsa(p,%,&h); /*为了使学号和信息个数分开加入一个*/ caf(f,ldsd%d%s%s%s, p-um,-nam,p-sex,&p-rth.yer,&p-birhonth,-irthday,p-,-ban,padd); p-nxtNULL;i=1; /*如果只有一个数时跳出*/if(n!1) p=(sruct SH )malloc(N);fca(f,%s
6、%d%d%d%s%s, &p-num,pname,-sex,&-bithr,&ih.onth,&-br.day,p-xi,p-ban,pad); -nx=p; p0=p; i+; whle(n); -next=NULL; fclose(f); reurn ead;插入模块*/ist_meage() truct SH *p; intlg1;car ch; head=ead(); o if(inser(hea)!=) n+;save_messge(); pnf();/*计数* else printf(n添加失败!n有相同的的学号!); save_mesag();eth(); pitf(n是否继续?
7、(y/)); etar(); ch=getca(); i(|ch=Y) intf(n继续!); lag1;/标志程序不结束*/ ee flag=;hile(fla=1); rntf(按任意键继续.); getc();/*修改模块*/enew_messae() strt ; inti,lag=1; lg nm;p=ed=readil(); if(head=NLL) rintf(读文件有误!); geth(); else prinf(n请按输入要修改的学生的学号:); scnf(%l,&nu); or(i=;num=num) p-um=num; rint(n已找到要%ld号学生的信息!n,num)
8、; prin(原姓名为s要修改为:,p-nam);cn(%s,p-name); pin(原性别为%s 要修改为:,-sex); scanf(%,p-x); pinf(原生日为%d/%d% 要修改为:,p-bhyear,-birth.mth,-irth.day); sca(%d%,p-irth.year,&pbirth.mnt,birthdy); rit(原系别为%s 要修改为:,p-xi); canf(s,p-i); pif(原班级为%s 要修改为:n,pban); scaf(%s,p-an);pintf(原家庭住址为%s要修改为:,p-ad);scn(%s,-add); rin(你所更改后的
9、信息为:); ptf(RINTF); rinf(ESHI,p-u,pname,psx,pbryar,p-birtmont,p-brh.y,p-,pan,-add); pri(n按任意键退出!n); getch();fla=; beak; els p=p-next; if(flag!1) rintf(无此人信息!); ls vemssage(); gec();/*删除模块*/mssag() ntfla; num; char ch;struct STH*p,0; p0=p=adeadfle(); i(head=NULL) prntf(文件读取出错!);etc();ese rintf(请输入要删除学
10、生的学号:n); cf(%ld,num); if(-n=n)hed=p0-next; re(p0); fla=1; n-; /学生数减一*/ p=net; wile(!NLL) if(pu=num) p0-next-xt;fe(p);flag=1; n-; else p0=;pp-next; if(et=UL) flag0; i(lag=1) ritf(n永久删除%ld号学生的信息?(/),num); gchr(); h=gecha(); i(chy|ch=) sae_ssage(); lse printf(n撤消删除!); getch(); else prif(删除失败!); getch()
11、;/*查询模块*nqure_essage() int i,flag=; ln um; tuc SH ; =had=radfie(); if(hd=NULL) pritf(文件读取出错!); gech(); ese prit(请输入要查询学生的学号:n); sanf(%d,num); for(i0;inumnm) prnt(n信息已找到:n); getch(); clscr(); pritf(*FOUND*n);rnf(-);rint(PRINT); pinf(H, pnum,p-name,p-ex,pbirh.ear,pbrth.oth,prtha,p-xi,p-ban,pad);prntf(
12、n-n);printf(*D*n); flag=1;rek; else p=pext; f(fag=0) prinf(n无此人信息!); lse pinf(n显示完毕!按任意键返回主菜单.);et(); /*显示模块*/utpu_essage()it i=; srct T*p; phead=redfie(); if(head=NUL) prinf(文件读取出错!);getch(); else clrscr(); pritf(n*STUD*n); printf(-n); ri(INTF); whie(inm,-nae,x,p-rth.ear,p-birthmon,p-birth.,p-xi,-b
13、a,p-ad); p=pext;i+; print(-n);rnt(*N*);rinf(n显示完毕!n共d条信息.n按任意键返回主菜单.,n); etc(); /*存档模块*aemesage()FILE p; iti; trtH*p; p=hed; if((fp=oe(THtt,w)=NULL) printf(读文件错误!!); exit(0); printf(fp,d,n); fintf(f,%c,/); /注意要该*/fr(i0;inum,p-me,p-sex,-birth.yar,p-birh.month,p-brthday,p-xi,pan,-add); p=-next; fclose(fp); printf(n信息已经保存在ST.txt文件中!);getch(); /*主函数*/vod man(void) in choice; har ch; FILE *p;struct dte; gtdte(&d); f(pfopen(SH.txt,r)=NULL)=fpe(T.txt,w); fritf(fp,%d,0); fclse(p); ee fsf(fp,%d,n);cos(f); clrsc(); pintf(制作人:通工051李艺凡); rit(nnn); pinf( * n); prif( 欢迎进入学生户籍系统 ); prin( 1 创建记录n);prin(
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1