湖南文理学院学生学籍管理系统课程设计

上传人:shaoy****1971 文档编号:108281500 上传时间:2019-10-23 格式:DOC 页数:18 大小:89.50KB
返回 下载 相关 举报
湖南文理学院学生学籍管理系统课程设计_第1页
第1页 / 共18页
湖南文理学院学生学籍管理系统课程设计_第2页
第2页 / 共18页
湖南文理学院学生学籍管理系统课程设计_第3页
第3页 / 共18页
湖南文理学院学生学籍管理系统课程设计_第4页
第4页 / 共18页
湖南文理学院学生学籍管理系统课程设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《湖南文理学院学生学籍管理系统课程设计》由会员分享,可在线阅读,更多相关《湖南文理学院学生学籍管理系统课程设计(18页珍藏版)》请在金锄头文库上搜索。

1、 湖南文理学院课程设计报告课程名称:计算机软件技术课程设计 系 部: 电气与信息工程学院 专业班级: 通信工程T07101班 学生姓名: 邓 方 敏 指导教师: 曹 玲 玲 完成时间: 2009年12月3日 报告成绩: 评阅意见: 评阅教师 日期 目 录一、学生管理信息系统产生的背景3二、设计要求4三、设计的作用目的4四程序设计及各模块函数功能简述41.数据结构42.menu()主菜单53.main()主函数54.int()初始化55.createlist()创建链表66.search1()、search2()查找结点67.del()删除结点68.Out()清空变量69.insert()插入结

2、点610.printf()输出记录711.sort()排序7五、流程图如下:8六、调试结果9七、程序代码编写及注释:9八、心得体会17九、参考资料18学生学籍管理系统课程设计一、学生管理信息系统产生的背景随着社会的发展,基本上所有的具有一定数量数据的企事业单位或机关部门都开始使用计算机数据库来做管理。当然几乎所有学校也都已经在使用计算机管理数据的机制,大大减少了学校学籍管理的工作量。校园网教育应用平台代表了学校教育的管理水平和意识,是信息化时代的学校在管理方面的重要装备。一个完整的校园信息系统分为硬件平台集成和信息系统集成两部分。前者是基础,后者是目的。在各高等院校,用计算机管理学校的信息已经

3、越来越普遍了。在学校,学生信息管理工作是非常重要的一项工作,它负责整个学校的基础资料和应用信息,学生的学籍资料,以前是手工纪录,查询,效率很低。随着学校规模的扩大,教务工作者急切希望有一个自动化的计算机系统来处理相关信息的管理。用计算机不但可以提高工作效率,而且还节省了许多人力物力,增强了学校资料的安全性。提高了学校的管理能力,为此,用计算机来管理学校的信息,是非常必要的1研究课题的背景和任务管理信息系统(MIS)的概念是1961年美国人J.D.GALLAGHER首先提出来的,是一门新兴的、集管理科学、信息科学、系统科学及计算机科学为一体的综合性学科,研究的是企业中信息管理活动的全过程,以便有

4、效的管理信息,提供各类管理决策信息,辅助企业进行现代化管理。管理信息系统是企业的信息系统,它具备数据处理、计划、控制、预测和辅助决策功能,具体作用如下:(1) 学籍信息管理 每年的大量新生入学,老生毕业都需要处理大量的学生信息。通过这一模块,可以实现学生基本情况的添加、删除、更新。还能查询各个学生的情况,姓名、家庭电话、家庭住址、学号等各个消息(2) 班级信息管理实现班级的添加、删除、更新。查询班级所在系别,辅导员等。(3) 课程信息管理每个学期都会增加一些新的科目,通过本模块可以轻松的添加以及更新课程。可以根据学期条件或者班级条件的选择,也可根据课程名、课程号或者班级的选择,并对值的输入,可

5、以看到数据集中显示符合条件的课程数据信息,而且可以根据教工的修改要求进行数据的添加、删除、修改的操作。该项管理对课程的属性进行了具体化的分类,比如可以分辨是考试科还是考察课,而且根据条件的选择大大得提高了对各学期课程数据的记录操作,很大得帮助了教工们工作效率的提高。(4) 成绩信息管理本模块实现了成绩的输入、删除、更新。还能查询到平均成绩以及单科最高最低成绩以及个人成绩。把成绩统计这个繁琐的工作简单化,为学生成绩的管理方面提高工作效率。二、设计要求1、实现学生基本情况的录入、修改、删除等基本操作。2、对学生基本信息提供灵活的查询方式。3、完成一个班级的学期选课功能。4、实现学生成绩的录入、修改

6、、删除等基本操作。5、具有成绩统计、排名等功能。6、能输出常用的各种报表。三、设计的作用目的加深对数据库系统,软件工程,程序设计语言的理论知识的理解和应用水平;在理论和实验教学基础上进一步巩固已学基本理论及应用知识且能够加以综合提高;并学会将知识应用于实际的方法,提高分析和解决问题的能力,增强对手能力;为毕业设计和以后工作打下必要基础;使我们更加了解和掌握C语言程序设计的过程,方法及原理。四程序设计及各模块函数功能简述1.数据结构链表是线形表的一种,线形表分为顺序存储结构和链式存储结构。线形表的顺序存储结构的特点是逻辑关系上相邻的两个元素物理位置上也相邻,因此可以随机存取表中任一元素。链式存储

7、结构的特点是用一组任意的存储单元存储线形表的数据元素。链表的最大的优点是对表的添加、删除、查找、排序等操作比较方便,因此采用链表来存储学生相关信息。且对结点的定义如下:typedef struct stucode char no9;/*8位学号*/ char name15; /*姓名*/ double score4; /*成绩*/ struct stucode *next; STUDENT;2.menu()主菜单为了美化界面,制作双边框窗口,在窗口中显示主菜单。通过putch()输出图形符号的ASCII码值(十六进制),达到显示的目的。利用Windows函数制作显示窗口,该窗口比边框略小一点,

8、且正好包含在边框中,能过仔细计算且多次调试后得到其坐标值,用函数gotoxy()来实现光标的移动。设置文本和背景色输出菜单项。恢复原窗口,设计输入选择项,返回主函数。void menu(); void createlist(struct stucode *r); void out(struct stucode *r); void search1(struct stucode *r); void search2(struct stucode *r); void del(struct stucode *r); void insert(struct stucode *r); void sort(st

9、ruct stucode *r); 3.main()主函数主函数是程序入口,采用模块化设计。首先在主程序中打印欢迎界面,声明一些必要变量,作一无限循环程序,循环体为一开关语句,该语句设置一个断点,其条件值是通过调用主菜单函数得到的返回值,根据该值,调用相应的功能函数,同时设置一个断点,当返回值为一定条件时结束程序。4.int()初始化单链表需要一个头指针来指向表的第一个结点,对单链表的访问是从头指针开始的。初始化单链表为空,用NULL表示,该值在头文件stdio.h中定义为常数0。5.createlist()创建链表当用户选择输入增加记录后,进入该函数,输入学生信息,并把信息加入链表。在输入过

10、程中,有相关提示,如学号是八位,格式为20032300,性别是M或者F,且针对本次设计的相关要求,对scrorei所表示的科目作了相关说明,即score1-score4分别对应外语、高数、C语言、马哲。同时对某些信息作了限定,比如年龄,考虑到大学生年龄段情况,规定学生年年龄在15到30之间变化,若输入不在这个范围内,则系统使用ascii码的蜂鸣声报错报错,并提示重新输入。当输入结束后,系统自动计算该生的总分和平均分,并将名次置0,待排序结束后赋予新值。数据输入结束后返回链表的头指针到方函数。在生成链表时,每次新输入的结点放在表头,这样最先输入的结点存放在最后。6.search1()、searc

11、h2()查找结点按照姓、姓名、或者姓名的前几个字母来查找记录。从头结点开始顺序查找,当输入一个关键字符串后,用strlen()函数得到该串的长度len,在表中取学生姓名的前len个字母与所输入的字符串相比较,没有相同记录显示没有,遇到第一个匹配的记录则显示此记录,继续查找链表,仍有相同记录则继续显示,直到尾结点结束。7.del()删除结点删除指定学号的学生记录。输入要删除的结点的学号,根据学号顺序查找结点,如果没找到,则输出没有找到的信息;否则显示找到的结点信息。如果删除的是头结点,则修改头指针,将该结点的前趋指针指向其后继结点,然后释放该结点。8.Out()清空变量 函数会清空变量,即使变量

12、已经赋值也不行,退出函数时所有out引用的变量都要赋值,ref引用的可以修改,也可以不修改。 9.insert()插入结点在指定结点前面插入新结点,申请空间得到指针info,输入新结点信息,存放info中,设链表头指针为h,p为指定结点的指针,q为p的前趋指针。从头结点开始循环移动指针p查找指定结点,查找和插入时分两种情况处理:1).指针p为空,如果p等于h,说明链表为空,则新结点即为头结点,修改指针h=info。否则,说明表中没有指定结点,则新结点插入在表尾部,此是q把指的结点是最后一个结点,所以修改指针q-next=info。2).指针p不为空,如果p等于h,说明新结点插入在当前第一个结点

13、之前,为新的头结点,修改指针info-next=p,h=info。否则,说明新结点的位置应在q和p两个结点之间,修改指针info-next=p,q-next=info。10.printf()输出记录采用顺序访问的方法输出和查找记录,定义一个指向结点的临时变量p,初值为单链表的头指针,输出指针所记录的数据后,将指针后移一个记录,直到p指针值为空,则所有记录输出完毕。11.sort()排序本函数实现按总分排序的功能。课程设计要求按照平均分排序,容易看到,对与本程序来说,每个学生的总成绩=平均成绩4,按总成绩排序和按平均分排序结果一致,由于计算平均成绩会多出一步运算,所以程序用总分代替平均分排序。在

14、算法上,选择直接插入算法,即:每步将一个待排序的按其排序码值的大小插到前面已经排好序的表中,直到全部插入为止。先将链表的头结点看作是已经排好序的结点,然后取下一个结点作为待排序的结点,插入到已排好序的表中。其具体做法为:(1).先将原表头结点作为新排好序表的头结点h,原表下一个结点作为原表头结点h1。(2).原表头结点为待排序结点,将其总分与新表结点的总分进行比较,如果待排序结点总分大,则插在表头,否则插入在其后,原表头结点后移一位。(3).重复第二步,即将原表头结点的总分和新表结点的总分进行比较,如果待排序结点总分小,则移动新表指针,直到找到合适的位置将其插入。当原表为空时,所有结点排序完毕。五、流程图如下:建立链表条件判断case a 插入学生信息 真 假条件判断case b 查询学生信息真 假条件判断case c删除学生信息真输出结果退出程序 假条件判断case d学生成绩统计真

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号