1、 计算机与通信学院 2011 年春季学期 C程序设计程序设计 课程设计课程设计 题 目:学生选课系统 专业班级: 姓 名: 学 号: 指导教师: 成 绩: 摘 要 学生选课系统是一个教育单位不可缺少的重要系统组成部分,它 对于学校的决策者、管理者管理、查看课程来说都有至关重要,所以 学生选课管理系统应该能够为广大学、 师生提供充足的信息和快捷的 课程选择过程,有助于学生选好每一门课程,此系统系统选课方便、 快捷,用简单的界面来展示学生的选课信息,应用简单明了、存储量 大、可靠性高、保密性好、寿命长、成本低等优点,可以极大的提高 对学生信息管理的效率。利用 C 语言开发,实现了简单的学生课程信
2、息的录入、修改、查询、删除等操作,并且能够利用文件系统长久的 保留原始数据。 目 录 一、需求分析 1 二、总体设计 1 三、详细设计 2 1、数据定义 错误错误!未定义书签。未定义书签。 2、算法流程图 .2 四、编码6 五、调试7 六、设计总结 10 致谢 . 11 参考文献 12 附录 . 13 1 一、需求分析一、需求分析 语言文字描述系统要做什么 数据结构可用结构体, 包括课程和选修两个结构体, 其中课程结构体成员结构体成员包 括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期。 选修结构体成员包括学号, 课程编号, 该结构体的建立主要是为了查询某门课程
3、学生选修情 况。 二、总体设计二、总体设计 系统由哪几个功能模块构成,给出功能模块图。C 中模块化的工具是函数 根据上面的需求分析,可以将这个系统的设计分为如下七大模块: 选课模块、按学分查找模块、按编号查找模块、查看课程模块、查看选课情况模块、课程输 入模块、完成选择模块。 菜单选择模块 录 入 学 生信息 学 生 选 课 系 统 信 息 查 看 及储存 退 出 系 统 完成选择模块 学生信息 管 理 录 入 课 程信息 课程 管理 2 三、详三、详细设计细设计 1.数据定义 2,算法流程图 (1)录入课程信息表 显示一系列功能选项 输入 n,判断 n 是否是 1-7 根据 n 的值调用各功
4、能模块函数 录入课程信息 从文件输入 输入课程编号 保存信息到 student.txt 显示录入成功,转入完成选择菜单 3 (2)课程管理 Y (3)录入课程信息 Y 录入课程信息 输 入 数 据 保 存 显示失败 新 增 课 程 输入课程 信息 保 存 4 (4)学生信息管理 Y Y (5)学生选课 查 询 可 选 课 程 查 询 已 选 课 程 返回主 菜 单 输 入 学 号 输 入 学 号 新增学生信息 或删除学生信息 输入姓名,考号. 保 存 学 生 选 课 5 (6)系统信息及查看系统 (7)退出系统 系统信息及查看系统 查看课程信息 查看学生信息 存储信息 返回主菜单 存储课程信
5、存储学生信息 返回主菜单 输 入 路 径,保存 完成选择菜单模块 退出系统 主菜单 6 四、编码四、编码 1.struct couse * head1;结构 2. void keyboardc()/录入课程子函数(从键盘录入) 3. void filec()/录入键盘子函数(从文件录入) 4. void inputc()/录入课程主函数 5. void insertc(struct couse *incouse)/课程管理子函数(增加课程) 6. void delc(int num1)/课程管理子函数(删除课程) 7. void elect(struct student * s)/选课 8.
6、void cheak()/学生选课子函数(查询可选课程) 9. void back(struct student * p)/退课 10. void hcheak()/学生选课子函数(查询已选课程) 11.void elective()/学生选课主函数 12.void listc()/输出课程信息 13.void lists()/输出学生信息 14.void intoc()/存储课程信息 15.void intos()/存储学生信息 16.void into()/存储信息 17.void store()/信息主函数 18. int main()/主函数 7 五、测试五、测试 1主菜单 2录入课程信息录入课程信息 8 3,从文件输入,从文件输入 4,学生选课菜单,学生选课菜单 9 5,学生信息管理,学生信息管理 6,管理员输入管理员输入课程信息界面:课程信息界面: 10 六、设计总结 问题一:无法读取文 txt 文件。 困难就是 txt 无法读取,输入路径后没有文件显