1 / 28
文档名称:

学生选课系统.doc

格式:doc   大小:5,086KB   页数:28页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

学生选课系统.doc

上传人:mh900965 2018/3/22 文件大小:4.97 MB

下载得到文件列表

学生选课系统.doc

文档介绍

文档介绍:目录
1 需求分析
…………………………………………………(2)
………………………………………(2)
2 概要设计
………………………………………(3)
…………………………………………(3)
3 详细设计
………………………………………(3)
…………………………………………(6)
4 调试分析
…………………………………………(8)
…………………………………………………(8)
5 用户使用说明
…………………………………………………(8)
…………………………………………………(9)
6 测试结果
…………………………………………………(9)
7 附录
…………………………………………………(11)
…………………………………………………(12)
1 需求分析

制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括:课程编码、课程名称、适用专业、课程类型(必修、限选、必选、实践、学****学分、学时、主讲教师等。学生信息管理,学生选课管理(学生选课学分总数有一定范围),学生可以对课程进行查询、浏览,选完课后可以退选、重选,并可以按学号、姓名进行查询和统计。
要求:。


,适当的注释。


,需要定义一个结构体类型,成员包括课程编码、课程名称、适用专业、课程类型、学分、学时、主讲教师,所选人数等等,并建立链表,定义该结构体类型的指针,用于指向各节点;
,需要定义一个结构体类型,成员包括学生编码、学生姓名、所选课程编码、所选课程学分和等等,并建立链表,定义该结构体类型的指针,用于指向各节点;
,可以选择从键盘输入也可选择从文件中打开原来存盘的信息,并对他们分别建立添加、删除、浏览、查询等功能的子函数,完成相应的功能,对程序实现模块化。这其中要用到对链表的删除、插入、增加等知识。删除包括课程删除和学生信息删除,删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的课程编号或学生学号,若相等就删除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置按照学生姓名、学生编号等多种方式。
,如果在已经输入的学生信息中找不到此学号,则提示需要先输入自己的信息。如找到了自己的学号,则可以进行选课。在选课之前要先对所有的课程信息进行浏览。选课有一定的学分限制,超过相应的学分(这里设置的是10个学分),系统就会显示可以选满的信息。此系统还可以实现删除所选课程的功能,设计思路与选课功能相似。
,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。

2 概要设计

对程序进行模块化可以使整个程序清晰明了。对课程信息和学生信息建立从文件中输入、从键盘中输入、添加、删除、查询和浏览的功能,其各个子函数中运用链表储存数据。选课管理建立学生选课、推选、查询、浏览的功能,其各个子函数中运用链表储存数据。从主函数开始执行,依次调用各个子函数,并运用文件的相关知识将信息进行存盘。

学生选课系统

课程信息
从文件录入
从键盘录入
增加
删除
学生信息
从文件录入
从键盘录入
增加
删除
选课
退课
信息存储
3 详细设计

主要功能模块的算法设计思路如下:
课程信息录入函数(void load())
①从键盘录入(void zhang( ))
I 定义指向结构体变量的指针;
II 从头指针指向的结构体开始依次录入结构体中所包含的各个成员;
III直到输入的结构体成员的编号为0,录入结束
②从文件录入(void zhang1( ))
I 分别定义指向结构体变量的指针和指向文件的指针;
II 输入文件的路径,打开文件,若没有找到则有提示;
III 将文件中的信息依次读出,最后结构体的指针为NULL
课程信息管理(void managementc())
①增加课程信息(void insert(struct course *incourse))
I 定