- 1、本文档共35页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构课程设计报告
【问题描述】
1、有3个文件:
Student.txt中的内容:
Sno Sname Ssex Sage Sdept 李勇 男 20 CS 刘晨 女 19 CS 王敏 女 18 MA 张立 男 19 IS
Course.txt中的内容:
Cno Cname Ccredit
1 英语 4
2 数学 2
3 信息系统 4
4 操作系统 3
5 数据结构 4
6 数据处理 2
7 C/C++ 4
SC.txt中的内容:
Sno Cno Grade 1 90 2 80 4 85 1 86 3 82 5 88 7 90
2、为存储学生、课程和选课信息设计数据结构,将以上文件内容导入其中;
3、对学生表进行插入、删除、修改和查询操作;
插入时注意学号的处理,可以不填吗?是否重复?其他数据是否可以乱填?如何控制?
删除时一要防止误操作,二要考虑该生的选课信息,如何处理?
修改时同样要考虑各数据项的性质;
查询要求可以实现多条件查询
4、对选修表进行插入、删除、修改操作;
5、综合查询
6、最后把系统中的数据保存回文件中。
【解题思路】
1、创建表:分别创建结构体,作为链表结点的data类型,从文件中分别读取、插入。
2、学生表
(1)插入:初始化一个Student类型的结构体,输入信息(学号不能为空),验证,若未插入 过,生成结点,在尾部插入。
(2)删除:输入要删除的学生的学号,查询并验证,若找到确定要删除,free该结点,并删 除该学生相应的选课信息。
(3)修改:输入要修改的学生的学号,若查找到,选择要修改的选项,赋值修改。
(4)查询:设计多条件查询,选择查询方法,输入信息进行比较,找到输出信息。
选修表
(1)插入:初始化一个SC类型的结构体,按提示输入信息(成绩可以为空),在学生表和课 程表验证,若存在且在选课表中未插入,生成结点,在尾部插入。
(2)删除:输入要删除学生的学号和课程号,进行查找,若找到确定要删除,free该结点; 否则输出未找到该信息。
(3)修改:输入要修改学生的学号和课程号,进行查找,若找到并确定修改成绩;否则输出 未找到该信息。
综合查询
(1)查询选修了某一门课的所有学生的信息
先输入课程名在课程表中进行查找验证,若存在,在选修表中找到选修了该门课的学生 的学号,然后在学生表中查找信息。
(2)查询某个学生获得的学分
先输入学生学号在学生表中进行查找验证,若存在,在选修表中找到该学生选修的课程 的课程号,然后在课程表中找到各课程的学分,依次相加并输出。
5、依次把系统中的数据保存回文件中。
打开原文件,重写原文件。
6、本次课程设计采用C语言编写。
【算法描述】
学生管理系统总模块
主函数的流程图
从学生管理系统菜单中选择相应操作的序号,执行相应的操作,如想继续,返回主菜单 继续选择,否则停止结束。
基本操作的流程图
(1)学生表、课程表、选修表的输入(读取)
(3)学生表的删除
(5)学生表的查询
选修表的插入
(8)选修表的删除
(10)查询选修了某一门课的所有学生的信息
(12)将学生表、课程表、选修表的最终结果保存回文件中
【程序设计】
1、本程序中所有用到的数据及其数据结构的定义
(1)头文件
#include stdio.h
#includestring.h
#includestdlib.h
#includemath.h
#includemalloc.h
#includeprocess.h
#define OK 1
#define ERROR 0
typedef int Status;
(2
文档评论(0)