1 《学生选课系统》 1 需求分析 1 .1 任务要求 制做学生选课系统,共包括课程信息和学生信息两部分。课程信息包括:课程编码、课程名称、适用专业、课程类型(必修、限选、必选、实践、学习)、学分、学时、主讲教师等。学生信息管理,学生选课管理(学生选课学分总数有一定范围),学生可以对课程进行查询、浏览,选完课后可以退选、重选,并可以按学号、姓名进行查询和统计。 要求:1.源文件采用多文件的工程结构。 2.数据储存采用文件形式。 3.标准的 C 输入输出。 4.功能完善,适当的注释。 5.关于文件的内容要自学。 1 .2 系统功能需求分析 1.为存储课程信息,需要定义一个结构体类型,成员包括课程编码、课程名称、适用专业、课程类型、学分、学时、主讲教师,所选人数等等,并建立链表,定义该结构体类型的指针,用于指向各节点; 2.为存储学生信息,需要定义一个结构体类型,成员包括学生编码、学生姓名、所选课程编码、所选课程学分和等等,并建立链表,定义该结构体类型的指针,用于指向各节点; 3.对于课程信息和学生信息,可以选择从键盘输入也可选择从文件中打开原来存盘的信息,并对他们分别建立添加、删除、浏览、查询等功能的子函数,完成相应的功能,对程序实现模块化。这其中要用到对链表的删除、插入、增加等知识。删除包括课程删除和学生信息删除,删除时用一结构体指针指向链表的第一个结点,检查该节点的值是否等于输入的要删除的课程编号或学生学号,若相等就删 2 课程信息 从文件录入 从键盘录入 增加 删除 学生信息 从文件录入 从键盘录入 增加 删除 选 课 退 课 信息存储 除,不相等则后移指针,直至表尾。插入时也要先找到相应结点,再添加。查询功能要设置按照学生姓名、学生编号等多种方式 。 4 .学生选课是要先输入自己的学号,如果在已经输入的学生信息中找不到此学号,则提示需要先输入自己的信息。如找到了自己的学号,则可以进行选课。在选课之前要先对所有的课程信息进行浏览。选课有一定的学分限制,超过相应的学分(这里设置的是 1 0 个学分),系统就会显示可以选满的信息。此系统还可以实现删除所选课程的功能,设计思路与选课功能相似。 5 .为实现存储功能,需用到文件的相关函数,打开文件,将添加、修改或删除的信息存入磁盘中。 6.实现易于使用者理解和使用的友好界面。 2 概要设计 2 .1 系统总体设计框架 对程序进行模块化可以使整个程序清晰明...