1、数据结构课程设计学生信息管理系统题目、 学生信息管理系统一、课程设计目得1. 数据结构课程设计就是综合运用数据结构课程中学到得几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整得应用系统得设计与开发2。 通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计得方法与步骤,灵活运用并深刻理解典型数据结构在软件开发中得应用。3. 学会将知识应用于实际得方法,提高分析与解决问题得能力,增加综合能力. 学生信息管理系统:(1)熟练掌握链表存储结构及其建立过程与常用操作;()学会自己调试程序得方法并掌握一定得技巧二、课程设计内容建立学生信息管理系统,
2、通过链表实现对学生信息得输入,查找,删除,插入与排序等操作。三、需求分析 1.每位学生得信息有:学号,姓名,性别,出生日期,Emile,电话,c成绩,数学成绩等,用链表对学生得信息进行存储。 2.全部数据可以只放在内存中; 3.系统能实现得操作与功能如下: a) 输入学生信息: 对不同学生分别输出下列信息:学号,姓名,性别,出生日期,mile,电话,c成绩,数学成绩等. b) 查找学生信息: 根据学生得学号或姓名对学生得信息进行查找。 c) 删除学生信息:删除某个学生得所有信息. d) 插入学生信息:将某个学生得信息插入到已经输入得信息中。e) 显示学生信息: 将所有学生得信息显示出来. f)
3、 排序: 将所有学生按某个学科得成绩依次排序。四、概要设计1。系统结构图(功能模块图).功能模块说明。输入学生信息,ea()函数:建立单向链表,组织循环,将学生得信息依次录入。:查找学生信息:a、按学号查找,nd1()函数;b、按姓名查找,ind2()函数; 。删除学生信息,del()函数: 建立指针,在链表中寻找要删除信息得学生得学号,找到后p-extxtnt,将其删除。.插入学生信息,nser()函数;输入要插入得信息,建立指针,寻找要插入得节点。显示学生信息,print()函数;将以存在得学生信息输出.按某科成绩对学生进行排序,sot()函数;五、详细设计及运行结果、菜单:2、 reat
4、()函数、3、 d()函数、in1():find2():3、 de()函数、4、 insert()函数、 pri()函数、6、 sot()函数、六、调试情况,设计技巧及体会通过这次课程设计,我对这门课又有了一个新得理解,最大得喜悦不就是写出程序,而就是从中学会了怎么去写,该如何去写,在老师得严格监督下,自己也养成了独立思考得习惯,真得从中得到了很多好处,从思想到着手,所有都就是程序化得,必须踏踏实实得来。 通过学生信息管理系统得设计,使我对链表有了更深得了解,也懂得了如何用链表进行输入,插入,排序等操作,两个礼拜得实习很快就过去了,这一次真得学到了很多东西,我也将会将自己所学到得东西用到自己以
5、后得学习中去。七、参考文献C语言程序设计-科学出版社数据结构(语言描述)清华大学出版社数据结构(使用C语言)-电子科技大学出版社八、附录:源代码#includtdi、h#inclue#dine siof(struct su)oidclrsre() /清屏函数*/gtar(); ste(cls”);strt dte /定义出生年月日得结构体*/ nyear; int mouh; i y; ;tr s /定义学生信息得结构体/ int number; char ae3; har ex; strtae bith; cha mail30; ch one3; nt core,mscre; stuctu
6、*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-next; pif(”nn按回车键返回n); getchar(); retur0;/创建链表/sruct su*ce() srct stu p,*
7、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”); scanf(%s,pail); print(电话n); scnf(s,&p-ne); prnf(c成绩”); scan(”%d,p-cscre
8、); 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(struct stu *p) intnumbe; if(p=ULL) rntf(提示:没有资料可以查询!n); retun ; p
9、rntf(”请输入要查找得学生学号:); 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(%s,nme); whie(p!=ULL) (scm(pa,name)=0) retur(p); ele =pnext; returnNULL; /*删除链表/in del(strut su *h)
10、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 stu *)malloc(N); rintf(请输入要插入得学号); scan(%ld,pb
11、r);p0=*;if(p0numbr=pmer)return 0; prntf(”姓名n”); sanf(,&p-nae); printf(”性别n); scanf(”s,&p-sx); prntf(出生日期”); scnf(dd%d,&p-brthday、yer,pbirthday、out,-rthday、dy); print(Emailn”); scan(s”,pmail); rntf(电话n”); cnf(%,&p-phon); pritf(c成绩n); scanf(d,p-cscore); printf(”数学成绩n); snf(”,p-mcore); pnext=UL; (h=ULL
12、) =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)(pnex=NUL))/当节点不存在或者只有一个节点时/ et
13、urn 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-next; znet=; p=q; p0t; up0;void main() suctsu ead,p; ina; in b; printf(”*西安邮电学院学生管理系统*n); pnf(要进入系统请按任意键n); getcha
14、r(); prt(*欢迎您!您已进入管理系统*n); prinf(”*学生成绩管理系统*n); do clearsceen(); print(”学生纪录操作:n);printf(1:输入学生信息); rintf(2:查找学生信息n”); print(”3:删除学生信息n); print(4:插入学生信息n); inf(”5:显示学生信息n”);printf(6:按语言成绩排序); rinf(0:退出系统n); prinf(”请选择(06):”); scanf(%d”,); wc() case :headreat(); prnt(head); brea; case :printf(请输入要查找得
15、种类:如为学号请输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(已正确删除!n); le prtf(要删除得结点不存在!”); gethar(); brk; case :f(inser(hed) prntf(已成功插入!n”); els prnt(”此学生已存在,插入失败!n”); 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