数据结构课程设计学生信息管理系统(共18页).doc
《数据结构课程设计学生信息管理系统(共18页).doc》由会员分享,可在线阅读,更多相关《数据结构课程设计学生信息管理系统(共18页).doc(18页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上题目2. 学生信息管理系统一、课程设计目的1 数据结构课程设计是综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发2 通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用 。3 学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 学生信息管理系统:(1)熟练掌握链表存储结构及其建立过程和常用操作;(3)学会自己调试程序的方法并掌握一定的技巧二、课程设计内容 建立学生信息管理系统,通过链
2、表实现对学生信息的输入,查找,删除,插入和排序等操作。三、需求分析 1每位学生的信息有:学号,姓名,性别,出生日期,E-mile,电话,c成绩,数学成绩等,用链表对学生的信息进行存储。 2全部数据可以只放在内存中; 3系统能实现的操作和功能如下: a) 输入学生信息: 对不同学生分别输出下列信息:学号,姓名,性别,出生日期,E-mile,电话,c成绩,数学成绩等。 b) 查找学生信息: 根据学生的学号或姓名对学生的信息进行查找。 c) 删除学生信息:删除某个学生的所有信息。 d) 插入学生信息:将某个学生的信息插入到已经输入的信息中。e) 显示学生信息: 将所有学生的信息显示出来。 f) 排序
3、: 将所有学生按某个学科的成绩依次排序。四、概要设计1系统结构图(功能模块图)主函数输入学生信息查找学生信息删除学生信息插入学生信息显示学生信息按成绩进行排序退出按学号按姓名2功能模块说明输入学生信息,creat()函数:建立单向链表,组织循环,将学生的信息依次录入。:查找学生信息:a.按学号查找,find1()函数;b.按姓名查找,find2()函数; 删除学生信息,del()函数: 建立指针,在链表中寻找要删除信息的学生的学号,找到后p-next=p-next-next,将其删除。 插入学生信息,insert()函数;输入要插入的信息,建立指针,寻找要插入的节点。显示学生信息,print(
4、)函数;将以存在的学生信息输出按某科成绩对学生进行排序,sort()函数;五、详细设计及运行结果开始main()菜单是输入:1输入:2输入:4输入:3输入:6输入:5creat()sort() print()insert()del()1.find1()输入:0退出exit()2.find2()1. 菜单:输入信息存入链表显示最终结果fclose(fp)Add添加且输入np!=nullCompare()p=p-next结束p=null2. creat()函数. 3. find()函数. 查找成功,输出输入学生信息p:null否find()p-num:num!=没有该学生信息=结束find1():
5、find2():3. del()函数.没有该学生信息输入学号del()p:null=结束p:null否p-num:num!=否p0-next=p-next删除成功4. insert()函数.没有该学生信息输入信息insert()p-num:a!=结束head:null否p-p-next!=否s-next=hesd,hesd=s插入成功q-next=s;s-next=p插入成功=是5. print()函数.6. sort()函数.排序完毕,输出信息sort() 结束head:null否没有学生信息可以查询是p-next:t-nextt-next=p分数大的放在前面,p始终指向第一个节点p:nul
6、l!=六、调试情况,设计技巧及体会通过这次课程设计,我对这门课又有了一个新的理解,最大的喜悦不是写出程序,而是从中学会了怎么去写,该如何去写,在老师的严格监督下,自己也养成了独立思考的习惯,真的从中得到了很多好处,从思想到着手,所有都是程序化的,必须踏踏实实的来。 通过学生信息管理系统的设计,使我对链表有了更深的了解,也懂得了如何用链表进行输入,插入,排序等操作,两个礼拜的实习很快就过去了,这一次真的学到了很多东西,我也将会将自己所学到的东西用到自己以后的学习中去。七、参考文献C语言程序设计-科学出版社数据结构(C语言描述)-清华大学出版社数据结构(使用C语言)-电子科技大学出版社八、附录:源
7、代码#include#include#include#define N sizeof(struct stu)void clearscreen() /*清屏函数*/ getchar(); system(cls);struct date /*定义出生年月日的结构体*/ int year; int mouth; int day; ;struct stu /*定义学生信息的结构体*/ int number; char name30; char sex5; struct date birthday; char mail30; char phone30; int cscore,mscore; struct
8、 stu *next; ; /*输出函数*/int print(struct stu *p)while(p!=NULL) /*如果P所指的结点不为空 执行循环*/ printf(学号 姓名 性别 出生日期 E-mail 电话 C成绩 数学成绩n); printf( %2d%6s%6s%8d-%2d-%2d%11s%11s%6d%8dn,p-number,p-name,p-sex,p-birthday.year,p-birthday.mouth,p-birthday.day,p-mail,p-phone,p-cscore,p-mscore); p=p-next;printf(nn按回车键返回nn
9、); getchar(); return 0;/*创建链表*/struct stu *creat() struct stu *p,*head; int i,k; printf(请输入学生的数:n); scanf(%d,&k); p=head=(struct stu *)malloc(N); printf(请输入学号n); scanf(%d,&p-number); printf(姓名n); scanf(%s,&p-name); printf(性别n); scanf(%s,&p-sex); printf(出生日期n); scanf(%d-%d-%d,&p-birthday.year,&p-birt
10、hday.mouth,&p-birthday.day); printf(E-mailn); scanf(%s,&p-mail); printf(电话n); scanf(%s,&p-phone); printf(c成绩n); scanf(%d,&p-cscore); printf(数学成绩n); scanf(%d,&p-mscore); if(k1) for(i=1;inext=(struct stu *)malloc(N); p=p-next; printf(请输入学号n); scanf(%d,&p-number); printf(姓名n); scanf(%s,&p-name); printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据结构 课程设计 学生 信息管理 系统 18
限制150内