1、 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 1 目目 录录 第一部分:课程设计编号、名称、内容 2 第二部分:程序总体设计思路 3 第三部分:程序功能模块划分、图示及流程图 4 4 第四部分:程序设计数据、运行结果 1010 第五部分:程序的优缺点 错误!未定义书签。 第六部分:程序改进思路 1818 第七部分:附录(源代码) 2020 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 2 第一部分:课程设计编号、名称、内容第一部分:课程设计编号、名称、内容 编号 :C 语言课程设计指导书 71 页第九题 名称:学生选修课系统设计 【要求】 假定有 n 门课程, 每
2、门课程有课程编号, 课程名称, 课程性质, 总学时,授课时间,实验或上级时间,学分,开课学期等信息,学生 可按要求(如总学分不超过 60)自由选课。是设计一选修课课程系 统,使只能提供以下功能: (1) 系统一菜单方式工作 (2) 课程信息和学生选课信息录入功能(课程信息用文件保存 输入 (3) 课程信息浏览功能输出 (4) 查询功能(至少一种查询方式)算法 (5) 按学分查询 (6) 某门课程学生选修情况(可选项) 【提示】 数据结构可用结构体, 包括授课和选课两个结构体,其中课程 结构体成员包括编号,课程名称,课程性质,总学时,授课学时,实 验或上机时间,学分,开课学期。学秀结构体成员包括
3、学号,课程编 号,该结构体的建立主要是为了查询某门课程学生选修情况。 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 3 第二部分第二部分 程序总体设计思路程序总体设计思路 由于 C 语言是面对过程的语言, 故我的设计思路是根据目标程序 运行的过程来编写的。 在编写本程序的过程中,首先借助老师给的指导材料,确定了目 标程序运行的次序与界面, 即本程序首先运行 【用户系统】 菜单界面, 其次程序运行【用户插入课程信息】及【用户浏览课程】菜单界面, 最后程序运行【统计选课信息】及【选课】界面。如果用户选择【插 入用户信息】选项则程序进入出入用户课程信息界面。需要一次输入 课程编号,课程
4、名称,课程性质,总学时,授课时间,实验或上机学 时,学分,开课学期等信息;如果用户选择【浏览课程】选项则程序 进入 【浏览课程】 界面, 将会显示所选课程的信息; 如果用户选择 【查 询】选项则会显示按学分查询的选课信息; 一次用户还可以查看某门 课程的所选情况。 其次,根据目标程序运行的次序与界面,确定设 计顺利,设计界面(包括各部分菜单与用户提示信息) 。再次是按照 程序运行的各界面下的菜单功能编写各功能模块, 并调试程序各功能 模块,使各模块能够稳定高效准确地完成对应功能。 最后是程序的总体调试及功能完善,此部分从学生选课的角度 出发,考虑了更加人性化、更加合理、更加高效准确、更加智能化
5、的 设计。 说明:关于各个功能模块的设计思路及程序运行具体过程见报告 的第三、四、五部分。 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 4 第三部分:程序功能模块划分、图示及流程图第三部分:程序功能模块划分、图示及流程图 3.1 系统的结构图 学生可选修课系统 学生可选修课系统学生端 插 入 课 程 信 息 浏 览 课 程 信 息 查 找 选 课 信 息 统 计 选 课 情 况 进 行 选 课 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 5 3.2 系统的功能模块图 3.3 函数模块说明 函数模块 功 能 说 明 insert 插入课程信息 bowser 浏览课
6、程信息 search 查找课程信息 xanke_information 进行选课统计 3.4 功能模块说明及其流程图 (1) 【插入信息功能】 【设计思路简述【设计思路简述】 先检查文件是否为空,若为空,则显示“cannot open file “ 若不为空,则屏幕显示 “the format is num name xingzhi menu() insert browser search xuanke_information 选取日期选取日期 C 语 言 课 程 设 计 供2 3 页 6 time ttime etime mark term:: ”及需要一次插入课程编号,课 程名称,课程性质,总学时,授课时间,实验或上机学时,学分,开 课学期的信息。填写完这些信息后,程序将关闭所写入文件,并跳入 系统菜单进行其他功能的运行。 【模块