- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《学生选课系统》
1 需求分析
任务要求
制做学生选课系统,共包括课程信息和学生信息两部分。课程
信息包括: 课程编码、 课程名称、 适用专业、 课程类型 (必修、限选、
必选、实践、学习) 、学分、学时、主讲教师等。学生信息管理,学
生选课管理(学生选课学分总数有一定范围) ,学生可以对课程进行
查询、浏览,选完课后可以退选、重选,并可以按学号、姓名进行查
询和统计。
要求: 1. 源文件采用多文件的工程结构。
2. 数据储存采用文件形式。
3. 标准的 C 输入输出。
4. 功能完善,适当的注释。
5. 关于文件的内容要自学。
系统功能需求分析
1. 为存储课程信息,需要定义一个结构体类型 , 成员包括课程编码、
课程名称、适用专业、课程类型、学分、学时、主讲教师,所选人数
等等,并建立链表,定义该结构体类型的指针,用于指向各节点;
2. 为存储学生信息,需要定义一个结构体类型,成员包括学生编码、
学生姓名、所选课程编码、所选课程学分和等等,并建立链表,定义
该结构体类型的指针,用于指向各节点;
3. 对于课程信息和学生信息, 可以选择从键盘输入也可选择从文件中
打开原来存盘的信息,并对他们分别建立添加、删除、浏览、查询等
功能的子函数,完成相应的功能,对程序实现模块化。这其中要用到
对链表的删除、插入、增加等知识。删除包括课程删除和学生信息删
除,删除时用一结构体指针指向链表的第一个结点, 检查该节点的值
是否等于输入的要删除的课程编号或学生学号, 若相等就删除, 不相
等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查
询功能要设置按照学生姓名、学生编号等多种方式。
4. 学生选课是要先输入自己的学号, 如果在已经输入的学生信息中找
不到此学号,则提示需要先输入自己的信息。如找到了自己的学号,
则可以进行选课。 在选课之前要先对所有的课程信息进行浏览。 选课
有一定的学分限制,超过相应的学分(这里设置的是 10 个学分),系
统就会显示可以选满的信息。此系统还可以实现删除所选课程的功
能,设计思路与选课功能相似。
5.为实现存储功能,需用到文件的相关函数,打开文件,将添加、
修改或删除的信息存入磁盘中。
6. 实现易于使用者理解和使用的友好界面。
2 概要设计
系统总体设计框架
对程序进行模块化可以使整个程序清晰明了。对课程信息和学
生信息建立从文件中输入、从键盘中输入、添加、删除、查询和浏览
的功能,其各个子函数中运用链表储存数据。 选课管理建立学生选课、
推选、查询、浏览的功能,其各个子函数中运用链表储存数据。从主
函数开始执行, 依次调用各个子函数, 并运用文件的相关知识将信息
进行存盘。
系统功能模块图
学生选课系统
选 退
从 从 从 从
文 键 文 键
课 课
件 盘 件 盘
3 详细设计
功能模块设计思路
主要功能模块的算法设计思路如下:
1、课程信息录入函数( void load ())
①从键盘录入( void zhang( ) )
I
文档评论(0)