免费预览已结束,剩余25页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数学与计算机学院 课程设计说明书 课 程 名 称 面向对象程序设计 课程设计 课 程 代 码 8401650 题 目 学生选课管理系统 年级 专业 班 2009 级信科 1 班 学 生 姓 名 何永彬 学 号 312009070102119 开 始 时 间 2010 年 05 月 2 23 日 完 成 时 间 2010 年 0606 月 2020 日 课程设计成绩 学习态度及平 时成绩 30 技术水平与实际能 力 20 创新 5 说明书撰写质量 45 总 分 100 指导教师签名 年 月 日 学生选课管理系统 目 录 1 1 引引 言言 1 1 1 1 问题的提出 1 1 2 任务与分析 1 2 2 程序的主要功能程序的主要功能 1 1 2 1 添加功能 1 2 2 删除功能 2 2 3 查看功能 2 2 4 选课功能 2 2 5 退选功能 2 2 6 打印功能 2 3 3 程序运行平台程序运行平台 2 2 4 4 总体设计总体设计 2 2 5 5 程序类的说明程序类的说明 3 3 6 6 模块分析模块分析 6 6 6 1 选课端登录验证模块 6 6 2 学生选课端选课模块 6 6 3 学生选课端退选课程模块 9 6 4 学生选课端查看已选课程模块 10 6 5 学生选课端打印模块 11 6 6 管理员密码验证模块 12 6 7 管理端增加模块 13 6 8 管理端查看模块 14 6 9 管理端删除模块 14 7 7 系统测试系统测试 1 15 5 8 8 结论结论 2626 致谢致谢 2727 参考文献参考文献 2727 学生选课管理系统 摘摘 要要 随着计算机的普及 各高校均采用计算机进行学生选课 而对学生选课相 关信息的管理由学生选课管理系统实现 经过分析其学生选课端和系统管理端的 各项功能 利用面向对象的 C 编程实现了学生选课管理系统 该系统选课端具 有学生选课 退选课程 查看已选课程 打印选课信息等功能 而管理端具有对 学生 教师 备选课程等信息的管理 主要包括增加 删除 查看等功能 关键词 关键词 学生选课管理系统 计算机 面向对象 C 0 学生选课管理系统 1 引引 言言 1 1 问题的提出问题的提出 我国高校都实行了学分制 其核心就是允许学生自由选课 自主权交给学生 如果选课能够通过计算机实现 那么就可以节约很多的人力 物力 因此 为学生 选课提供一个好的系统不仅方便学校对学生选课的管理 也方便学生自由选课 所 以 针对此问题有必要做一个学生选课管理系统软件 1 2 任务与分析任务与分析 学生选课管理系统实现对学生选课相关信息的管理 能处理学生 教师 课程信 息的管理及选课操作 1 每个学生包括有学号 姓名 总学分等内容 2 每个教师包括工作证号 姓名 职称等信息 3 课程包括课程号 课程名 任课教师 学分等信息 4 能提供若干门课 由学生进行选择 打印出学生选课情况 本课题主要的目的是通过面向对象的 C 编程 实现学生选课管理系统对学生选课 相关信息的管理 能处理学生 教师 课程信息的管理及选课操作 其中每个学生包 括有学号 姓名 已选课程和总学分 每个教师包括工作证号 姓名 职称等信息 课程包括课程号 课程名 任课教师 学分等信息 最终要实现能通过管理端提供若 干门课 供学生进行选择 退选 并打印出学生选课情况 在功能实现的基础上 还 要设计出良好的界面 2 2 程序的主要功能程序的主要功能 2 1 添加功能添加功能 这是系统管理端的一个功能 主要是对学生 课程和教师的增加 其中 学生包 括学号 姓名 课程包括课程号 课程名 任课教师和学分 教师包括教师证号 教 师姓名 职称 1 学生选课管理系统 2 2 删除功能删除功能 这是系统管理端的一个功能 主要是对学生 课程 教师分别按学号 课程号 教师证号进行删除 2 3 查看功能查看功能 在系统管理端 可以分别显示所有学生 课程 教师的信息以供查看 在学生选 课端 则可以查看学生的已选课程 2 4 选课功能选课功能 这是学生选课端的一个功能 学生通过输入课程号选课 并在选课同时可以查看 课程及任课教师的信息 2 5 退选功能退选功能 这是学生选课端的一个功能 学生通过输入课程号退选课程 2 6 打印功能打印功能 这是学生选课端的一个功能 学生可以打印出选课的所有信息 包括学号 姓名 已选课程和已选课程的总学分等信息 3 3 程序运行平台程序运行平台 VC 6 0 具体操作如下 打开 VC 6 0 新建一个空工程 添加相应的源文件 再编译 链接 执行 4 4 总体设计总体设计 2 学生选课管理系统 学生选课管理系统 学 生 选 课 端 管 理 员 验 证 退 出 系 统 系 统 管 理 端 删 除 学 生 返 回 主 菜 单 增 加 课 程 查 看 所 有 课 程 删 除 课 程 增 加 教 师 删 除 教 师 查 看 所 有 教 师 选 择 课 程 退 选 课 程 查 看 已 选 课 程 打 印 选 课 情 况 返 回 主 菜 单 查 看 所 有 学 生 增 加 学 生 图 4 1 系统总体框架图 5 5 程序类的说明程序类的说明 subjectsubject 类的声明类的声明 class subject 课程信息类 Course head 头指针 Course p 当前指针 public subject head p NULL void Add 增加课程 void Delete 删除课程 int Search char nu 根据课程号查找课程 void ReadFile 从文件中读取课程信息 3 学生选课管理系统 void WriteFile 向文件写入课程信息 void Display 在屏幕中输出全部课程信息 friend XS friend JS friend void xuanke XS P char nu char na JSJS 类的声明类的声明 class JS 教师信息类 Teacher head 头指针 Teacher p 当前指针 public JS head p NULL void Add 增加教师 void Delete 删除教师 void Search char na 通过教师姓名查找任课教师 int Search1 char nu 通过教师号查找教师 void ReadFile 从文件中读取教师信息 void WriteFile 向文件写入教师信息 void Display 在屏幕中输出全部教师信息 friend XS stustu 类的声明类的声明 class stu 学生信息类 Student head 头指针 Student p 当前指针 public stu head p NULL void Add 增加学生 4 学生选课管理系统 void Delete 删除学生 int Search char nu char na 按学生学号和姓名查找 int Search char nu 按学生学号查找 void ReadFile 将所有学生的信息写入文件 void WriteFile 从文件读出学生信息 void Display 显示所有学生 friend XS XSXS 类的声明类的声明 class XS 学生类 char num 10 学号 char name 20 姓名 Course head 已选课程头指针 Course p 已选课程当前指针 float tcredit 已选课程总学分 public XS head p NULL tcredit 0 void set char nu char na strcpy num nu strcpy name na void Addcourse char nu 学生选课 int Search char nu 按课程号查找以选课程 void Deletecourse char nu 退选 void Showcourse 显示已选课程 float get tcredit 获取已选课程总学分 void ReadFilecourse 读取已选课程 void WriteFilecourse 将已选课程写入文件 friend void tuixuan XS P char nu char na 5 学生选课管理系统 6 6 模块分析模块分析 6 16 1 选课端登录验证模块选课端登录验证模块 在主菜单选择 1 时 便进入选课端登录验证 该模块会提示用户输入学号 nu 10 和姓名 na 20 当输入完成后 调用 int stu Search nu na 当返回值为 0 则 输出提示信息 对不起 学号或姓名输入错误 按任意键返回 然后返回主菜单 当返回值为 1 则登录学生选课系统 关键代码如下 P0 int b1 b2 b0 menu stu p1 subject p2 JS p3 XS p if b0 1 system cls p1 ReadFile char nu 10 na 20 cout nu cout na if p1 Search nu na 0 cout n n t t 对不起 学号或姓名输入错误 按任意键返回 getchar getchar goto P0 else P1 b1 menu1 6 26 2 学生选课端选课模块学生选课端选课模块 在学生选课系统中选择 1 进入选课模块 此时调用 void xuanke XS P char nu char na 函数 此函数首先调用 subject ReadFile subject Display 将 所有的课程输出来 并提示 请输入要选择的课程号 然后输入课程号 kh 10 此时会提示 是否查看任课教师信息 y n 输入 y 将输出任课教师信息 如果没 有此教师信息 输出 没有此任课教师的信息 当输入 n 则不输出教师信息 此 时调用 XS Addcourse kh 选课 再输出 是否继续选课 y n 如输入 y 重复以 6 学生选课管理系统 上选课操作 当输入 n 则调用 XS WriteFilecourse 保存已选课程 关键代码如下 void xuanke XS P char nu char na 选课功能函数 system cls JS J J ReadFile subject sub sub ReadFile sub Display P set nu na P ReadFilecourse Loop1 cout kh cout Y N if Y N Y Y N y char t 20 Course kc sub head while kc NULL 7 学生选课管理系统 if strcmp kc um kh 0 break kc kc next if kc NULL strcpy t kc kecheng cteacher J Search t else cout 没有此任课教师的信息 endl else if Y N N goto Loop3 P Addcourse kh getchar cout Y N if Y N Y Y N y goto Loop1 else if Y N N Y N n P WriteFilecourse else 8 学生选课管理系统 cout 输入不正确 请重新输入 goto Loop2 getchar cout 按任意键继续 getchar 6 36 3 学生选课端退选课程模块学生选课端退选课程模块 在学生选课系统中选择 2 进入退选课程模块 由 void tuixuan XS P char nu char na 函数完成 首先调用 XS ReadFilecourse 和 XS Showcourse 输出 已选课程 然后提示 请输入要退选的课程号 此时可输入课程号 kh 10 在 调用 XS Deletecourse kh XS WriteFilecourse 退选课程并保存 此后会提示 是否继续退选课程 y n 输入 y 重复退课操作 输入 n 则退出此模块 关键代码如下 void tuixuan XS P char nu char na 退选课程功能函数 system cls P set nu na P ReadFilecourse Loop3 if P head NULL system cls P Showcourse cout kh P Deletecourse kh 9 学生选课管理系统 P WriteFilecourse getchar cout Y N if Y N Y Y N y goto Loop3 else if Y N N goto Loop4 else cout n n t t 没有已选课程 不能退选 endl endl getchar cout 按任意键继续 getchar 6 46 4 学生选课端查看已选课程模块学生选课端查看已选课程模块 在学生选课系统中选择 3 进入查看已选课程模块 由函数 void lookyixuan XS P char nu char na 实现 通过调用 XS ReadFilecourse XS Showcourse 显示已选课程 关键代码如下 void lookyixuan XS P char nu char na 查看学生已选课程函数 system cls 10 学生选课管理系统 P set nu na P ReadFilecourse P Showcourse getchar cout 按任意键继续 getchar 6 56 5 学生选课端打印模块学生选课端打印模块 在学生选课系统中选择 4 进入打印模块 由函数 void dayin XS P char nu char na 实现 先输出学生的信息 再调用 XS Showcourse 输出已选课程 最 后调用 P get tcredit 输出总学分 关键代码如下 void dayin XS P char nu char na 打印学生选课情况函数 system cls P set nu na P ReadFilecourse system cls cout 学号 nu t 姓名 na endl endl cout 已选课程 endl endl P Showcourse cout 已选课程总学分 P get tcredit endl endl getchar getchar cout 按任意键继续 getchar 11 学生选课管理系统 6 66 6 管理员密码验证模块管理员密码验证模块 在主菜单中选择 2 进入管理员密码验证 通过函数 void password 实现 首 先提示输入管理员密码 再由用户输入密码 正确则进入选课系统管理端 错误则提 示重新输入 如果错误输入超过 3 次 就强制退出 关键代码如下 void password 密码检查功能函数 int k 0 i char A 000000 B 10 a system cls for i 0 i 6 i cout endl printf t t t 请输入管理员密码 while k 2 i 0 while 1 a getch if a 13 break B i a i printf B i 0 if strcmp A B 0 return else 12 学生选课管理系统 k if k 3 cout 3 cout n n t t t 输入错误密码超过三次 请按任意键退出 getch tuichu 6 76 7 管理端添加模块管理端添加模块 该模块是对学生 课程 教师的增加操作 由于三者功能相同 故通过函数模板 template void ADD T P 实现 首先询问增加多少个 学生 课程 教师 再输入个数 然后对每一个对象的详细信息进行输入 如果已经存在该信息 则提示 不能重复添加 输入完成后保存到文件中 关键代码如下 template 增加功能函数模板 void ADD T P system cls P ReadFile int N i cout N for i 0 i N i cout 第 i 1 个 endl P Add cout endl 13 学生选课管理系统 P WriteFile getchar cout 按任意键继续 getchar 6 86 8 管理端查看模块管理端查看模块 该模块是对学生 课程 教师的查看操作 由于三者功能相同 故通过函数模板 template void LOOK T P 实现 调用各自的 Display 函数 将所有信息 输出 关键代码如下 template 查看功能函数模板 void LOOK T P system cls P ReadFile P Display getchar cout 按任意键继续 getchar 6 96 9 管理端删除模块管理端删除模块 该模块是对学生 课程 教师的删除操作 由于三者功能相同 故通过函数模板 template void DELETE T P 实现 首先输出 学生 课程 教师 所有信 息 再调用各自的 Delete 函数将对象删除 最后将删除后的信息保存到文件中 关键代码如下 template 删除功能函数模板 void DELETE T P system cls 14 学生选课管理系统 P ReadFile P Display P Delete P WriteFile getchar cout 按任意键继续 getchar 7 系统测试 首先进入 VC 6 0 打开工程 选课管理系统 dsw 进入源程序运行 运行程序后出现主菜单界面 如图 7 1 图 7 1 主菜单 输入 2 进入管理员密码验证 管理员密码 000000 当输入错误密码三 次 如图 7 2 所示 输入正确密码就进入 选课管理系统 菜单界面 如图 7 3 所示 15 学生选课管理系统 图 7 2 错误密码验证 图 7 3 选课系统管理端菜单 输入 1 进入增加学生界面 再输入 4 增加 4 个学生 再根据提示输入学 生相关信息 到第 4 个时输入第 1 个学生的学号 第 4 个学生将不能被添加 如图 7 4 16 学生选课管理系统 图 7 4 增加学生 按任意键后 回到管理端菜单 输入 2 查看所有学生信息 如图 7 5 所示 图 7 5 查看所有学生 按任意键后 回到管理端菜单 输入 3 进入删除学生界面 输入要删除的学 生学号 10002 完成对学生 zhangxiong 的删除 如图 7 6 当输入的学号没有时 如图 7 7 所示 再查看学生 确认删除操作成功 如图 7 8 17 学生选课管理系统 图 7 6 删除学生 图 7 7 删除的学生不存在 图 7 8 查看删除后的所有学生 按任意键返回选课管理菜单 输入 4 进入增加课程界面 再输入 4 增加 4 门课程 再根据提示输入课程相关信息 到第 4 个时输入第 1 个课程的课程号 第 4 个课程将不能被添加 如图 7 9 所示 18 学生选课管理系统 图 7 9 增加课程 按任意键返回管理端菜单 输入 5 查看所有课程信息 如图 7 10 所示 图 7 10 查看课程 按任意键回到管理端菜单 输入 6 进入删除课程界面 输入要删除的课程号 10002 此时没有此课程 如图 7 11 当输入的课程号 20002 时 如图 7 12 所 示 再查看课程 确认删除操作成功 如图 7 13 19 学生选课管理系统 图 7 11 删除的课程不存在 图 7 12 删除课程 图 7 13 查看删除后的所有课程 按任意键返回选课管理菜单 输入 7 进入增加教师界面 再输入 4 增加 4 名教师 再根据提示输入教师相关信息 到第 4 个时输入第 2 个教师的教师号 第 4 个教师将不能被添加 如图 7 14 所示 20 学生选课管理系统 图 7 14 增加教师 按任意键返回管理端菜单 输入 8 查看所有教师信息 如图 7 15 所示 图 7 15 查看教师 按任意键回到管理端菜单 输入 9 进入删除教师界面 输入要删除的教师证 号 10000 此时没有此教师 如图 7 16 当输入的课程号 30002 时 如图 7 17 所示 再查看教师 确认删除操作成功 如图 7 18 21 学生选课管理系统 图 7 16 删除的教师不存在 图 7 17 删除教师 图 7 18 查看删除后的所有教师 按任意键回到管理端菜单 可以在此再增加一些课程 教师等 以供选课时有更 多的选择 输入 0 返回主菜单 再输入 1 进入学生选课系统登录界面 输入 的学号和姓名不存在或不匹配 则如图 7 19 输入的学号和姓名存在且匹配 则进入 选课端菜单 如图 7 20 图 7 19 学生选课系统错误登录 22 学生选课管理系统 图 7 20 学生选课系统菜单 在选课系统菜单中输入 1 进入选课 分别输入 20001 20002 20003 123456 测试选课 如图 7 21 23 学生选课管理系统 图 7 21 学生选课 按任意键返回选课系统菜单 输入 3 查看已选课程 如图 7 22 图 7 22 查看已选课程 按任意键返回选课系统菜单 输入 4 打印选课信息 如图 7 23 图 7 23 打印选课信息 按任意键返回选课系统菜单 输入 2 进入退选课程界面 输入 54321 没 有此课程 如图 7 24 再输入 y 然后输入 20002 删除课程 Chinese 如图 7 25 所示 再输入 n 返回选课系统菜单 输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025福建省华兴集团有限责任公司招聘3人考试笔试备考题库及答案解析
- 物业企业节能减排项目实施细则
- 2025贵州思州润峰建设投资(集团)有限公司招聘8人考试笔试模拟试题及答案解析
- 中考说明文阅读答题技巧
- 中小企业知识产权保护及管理策略
- 中考英语模拟试题及详解2023版
- 气焊用气体、焊丝及焊剂教学设计-2025-2026学年中职专业课-焊工工艺基础-智能设备运行与维护-装备制造大类
- 2025广西桂林市全州县事业单位直接考核招聘服务期满且考核合格以上“三支一扶”人员9人笔试考试备考题库及答案解析
- 2026长江航道勘察设计院(武汉)有限公司人员招聘7人考试笔试备考题库及答案解析
- 2025四川内江鑫永凌建设开发有限公司招聘工作人员30人笔试考试备考试题及答案解析
- 2026年高考作文备考训练之作文讲评:“预测”渗透在人类生活的各个领域
- 2025年度春季中国南水北调集团水网发展研究有限公司招聘拟聘人员笔试历年备考题库附带答案详解试卷2套
- 中原银行笔试题目及答案
- 北京邮电大学招聘笔试真题2024
- JJG 693-2011可燃气体检测报警器
- 电梯扶梯易损件清单
- 挖掘机安全技术交底书
- DB11- 588-2008-埋地油罐防渗漏技术规范-(高清有效)
- 登高车安全安全操作规程
- 盐酸的理化性质及危险特性表9
- T∕CCIAT 0040-2021 建设工程人工材料设备机械数据分类标准及编码规则
评论
0/150
提交评论