1、。显示学生信息,print()函数;将以存在得学生信息输出.按某科成绩对学生进行排序,sot()函数;五、详细设计及运行结果、菜单:2、 reat()函数、3、 d()函数、in1():find2():3、 de()函数、4、 insert()函数、 pri()函数、6、 sot()函数、六、调试情况,设计技巧及体会通过这次课程设计,我对这门课又有了一个新得理解,最大得喜悦不就是写出程序,而就是从中学会了怎么去写,该如何去写,在老师得严格监督下,自己也养成了独立思考得习惯,真得从中得到了很多好处,从思想到着手,所有都就是程序化得,必须踏踏实实得来。 通过学生信息管理系统得设计,使我对链表有了更
2、深得了解,也懂得了如何用链表进行输入,插入,排序等操作,两个礼拜得实习很快就过去了,这一次真得学到了很多东西,我也将会将自己所学到得东西用到自己以后得学习中去。七、参考文献C语言程序设计-科学出版社数据结构(语言描述)清华大学出版社数据结构(使用C语言)-电子科技大学出版社八、附录:源代码#includtdi、h#inclue#dine siof(struct su)oidclrsre() /清屏函数*/gtar(); ste(cls”);strt dte /定义出生年月日得结构体*/ nyear; int mouh; i y; ;tr s /定义学生信息得结构体/ int number; c
3、har ae3; har ex; strtae bith; cha mail30; ch one3; nt core,mscre; stuctu *nxt; ; /输出函数*/int rint(struct tu p) wie(p!=ULL) /如果P所指得结点不为空执行循环/ prntf(学号 姓名 性别 出生日期 Email 电话 C成绩数学成绩); prinf( %2d6%6s8d-%2d2d%1s1s8dn”,pnumber,nme,p-ex,p-brthay、yar,p-birhday、muth,pbirtday、ay,p-mai,-phone,pcsre,p-scoe ); =p-
4、next; pif(”nn按回车键返回n); getchar(); retur0;/创建链表/sruct su*ce() srct stu p,*ead; nt i,k; prntf(”请输入学生得数:n”); ca(d”,k); p=head(strutu*)mc(N); ri(”请输入学号n”); scanf(d”,pnumber); printf(姓名n); saf(s”,pnam); ntf(性别n cnf(”%s,&sex); prit(”出生日期n sanf(-d%d”,&p-brthdy、year,pirthday、mouth,&pbirthd、d); if(”Eil”); sc
5、anf(%s,pail); print(电话n scnf(s,&p-ne); prnf(c成绩”); scan(”%d,p-cscre); rif(数学成绩n); san(%,mcor); if(1) for(i1;ibith、year,p-brda、mout,p-bithday、ay);prif(”miln”); saf(”,p-mail); printf(电话 canf(%”,ppone); prntf(”c成绩n”); saf(d”,-cscoe); print(”数学成绩n”);scaf(d,pmcoe); next=LL; reurn he;/查找链表*stuct stu *fn1(
6、struct stu *p) intnumbe; if(p=ULL) rntf(提示:没有资料可以查询!n); retun ; prntf(”请输入要查找得学生学号: sca(,&umber); while(!NUL) f(pnumbe=nmr) return(p); brak; ee p-next; rernNLL;sruct st fid(stut stu *p) char nm30; if(p=NUL) prnf(n提示:); rturn 0;pint(请输入要查找得学生姓名: sanf(,nme); whie(p!=ULL) (scm(pa,name)=0) retur(p); ele
7、 =pnext; returnNULL; /*删除链表/in del(strut su *h) ube; stct stu p,p0; (*=L) rtun; printf(”请输入要删除得学号”);snf(”d”,nuber); p0; (0umer=nmbr) hp-nxt; ree(p0); rer 1; p=p0-ext; hile(!L) if(pe=numer) 0net=pnxt; fee(p); rtr 1; 0=p; ;pintf(”n按回车键返回n); tch(); ern 0; /插入链表it inst (tuct stu *h) stucsu p,*p0; =(stuc
8、 stu *)malloc(N); rintf(请输入要插入得学号 scan(%ld,pbr);p0=*;if(p0numbr=pmer)return 0; prntf(”姓名n”); sanf(p-nae); printf(”性别n scanf(”s,&p-sx); prntf(出生日期”); scnf(dd%dp-brthday、yer,pbirthday、out,-rthday、dy); print(Emailn”); scan(s”,pmail); rntf(电话n”); cnf(%,&phon); pritf(c成绩n); scanf(d,p-cscore); printf(”数学成
9、绩n snf(”,p-mcore); pnext=UL; (h=ULL) =p; rtur1; 0; if(p0-numberpnuber) pnext=; p; rtur; hile(p0next!=L&p-xtnumberext; if(p0-net=LL) 0-nexp; rtun 1; p-next=p0next; p0next=; rif(”n按回车键返回nn gtcha(); retur 1; /排序*/truct u* sot(sruct stu p0) trustu t,p,q,*z;if(p=NLL) print(”没有学生信息可排序!n”); reur 0; f(p=NL)
10、(pnex=NUL)/当节点不存在或者只有一个节点时/ eturn 0;t=p; pt-nxt; tnext=ULL; /将头节点孤立出来/whl(p)/t始终指向头节点*/ q=pnxt; i(pscoretcscoe) /用头节点得后一个节点与头节点进行比较/ nxt=t;*将分数大得放在前面/ t; *始终指向当前第一个节点/ l z=t; while(et&z-xcscore=cscore) z=next; nxtz- znet=; p=q; p0t; up0;void main() suctsu ead,p; ina; in b; printf(”*西安邮电学院学生管理系统*n pn
11、f(要进入系统请按任意键n getchar(); prt(*欢迎您!您已进入管理系统*n); prinf(”*学生成绩管理系统*n do clearsceen(); print(”学生纪录操作:n);printf(1:输入学生信息 rintf(2:查找学生信息n”); print(”3:删除学生信息n print(4:插入学生信息n); inf(”5:显示学生信息n”);6:按语言成绩排序); rinf(0:退出系统n prinf(”请选择(06):”); scanf(%d”,); wc() case :headreat(); prnt(head); brea; case :printf(请输
12、入要查找得种类:如为学号请输1,如为姓名请输2:n”); sca(”%d”,&a); switc(a) cas 1:=find1(ea);break; case2:p=in2(ea);bra; i() intf(”找到情况如下:”); etchar(); printf(学号:d 姓名:s 性别:出生日期:-%-Email:% 电话:%s C成绩:d 数学成绩:%dn,pnumber,pnae,ex,pbitday、yr,pbith、mouh,pbhda、a,pmail,pphone,scoe,p-mscoe); else rif(”没有找到! gchr(); break; case 3:i(del(&head) pnt(已正确删除! le prtf(要删除得结点不存在! gethar(); brk; case :f(inser(hed) prntf(已成功插入! els prnt(”此学生已存在,插入失败! etchr(); reak; case 5:prit(had); break; se 6:pst(hea); print(p); reak; cas :beak; defut : pint( 输入错误!请重新输入!n); hie(!0);
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1