数据结构课程设计学生信息管理系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
题目2。学生信息管理系统
一、课程设计目的
1.数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2.通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。
3.学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。学生信息管理系统:
(1)熟练掌握链表存储结构及其建立过程和常用操作;
(3)学会自己调试程序的方法并掌握一定的技巧
二、课程设计内容
建立学生信息管理系统,通过链表实现对学生信息的输入,查找,删除,插入和排序等操作。
三、需求分析
1.每位学生的信息有:学号,姓名,性别,出生日期,E—mile,电话,c成绩,数学成绩等,用链表对学生的信息进行存储。
2.全部数据可以只放在内存中;
3.系统能实现的操作和功能如下:
a)输入学生信息:
对不同学生分别输出下列信息:学号,姓名,性别,出生日期,E—mile,电话,c成绩,数学成绩等。
b) 查找学生信息:
根据学生的学号或姓名对学生的信息进行查找。
c)删除学生信息:
删除某个学生的所有信息。
d) 插入学生信息:
将某个学生的信息插入到已经输入的信息中.
e)显示学生信息:
将所有学生的信息显示出来.
f)排序:
将所有学生按某个学科的成绩依次排序。
四、概要设计
1.系统结构图(功能模块图)
2.功能模块说明
①.输入学生信息,creat()函数:
建立单向链表,组织循环,将学生的信息依次录入.
②:查找学生信息:
a.按学号查找,find1()函数;
b。按姓名查找,find2()函数;
③.删除学生信息,del()函数:
建立指针,在链表中寻找要删除信息的学生的学号,找到后p—〉next=p—〉next-〉next,将其删除。
④.插入学生信息,insert()函数;
输入要插入的信息,建立指针,寻找要插入的节点。
⑤.显示学生信息,print()函数;
将以存在的学生信息输出
⑥.按某科成绩对学生进行排序,sort()函数;
五、详细设计及运行结果
1。菜单:
2。creat()函数。
Compare()
Add添加
且输入n
p!=null
输入信息
p=p->next
p==null
存入链表
显示最终结果
fclose(fp)
结束
3. find ()函数.
查找成功,输出
输入学生信息
p :null
否
find()
p->num:num !=
=
没有该学生信息
=
结束
find1():find2():
3。del()函数。
没有该学生信息
输入学号
del()
p:null =
结束
p:null 否
p->num:num
!=
否
p0->next=p->next 删除成功
4。 insert()函数。
5. print()函数.
没有该学生信息
输入信息
insert()
p->num:a !=
结束
head:null 否
p->p->next
!=
否
s->next=hesd,hesd=s
插入成功
q->next=s;s->next=p
插入成功
=
是
6. sort()函数。
排序完毕,输出信息
sort ()
结束
head:null 否
没有学生信息可以
查询
是
p->next:t->next
t->next=p
分数大的放在前面,
p 始终指向第一个节点
p :null !=
=
六、调试情况,设计技巧及体会
通过这次课程设计,我对这门课又有了一个新的理解,最大的喜悦不是写出程序,而是从中学会了怎么去写,该如何去写,在老师的严格监督下,自己也养成了独立思考的习惯,真的从中得到了很多好处,从思想到着手,所有都是程序化的,必须踏踏实实的来.
通过学生信息管理系统的设计,使我对链表有了更深的了解,也懂得了如何用链表进行输入,插入,排序等操作,两个礼拜的实习很快就过去了,这一次真的学到了很多东西,我也将会将自己所学到的东西用到自己以后的学习中去。
七、参考文献
C语言程序设计—-——-——-——--——科学出版社
数据结构(C语言描述)---—-清华大学出版社
数据结构(使用C语言)——-——电子科技大学出版社
八、附录:源代码
#include〈stdio。h〉
#include〈string。h〉
#include #define N sizeof(struct stu) void clearscreen() /*清屏函数*/