C++课程设计-学生选课系统程序设计文档.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《C++课程设计-学生选课系统程序设计文档.doc》由会员分享,可在线阅读,更多相关《C++课程设计-学生选课系统程序设计文档.doc(142页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、*实践教学* 兰州理工大学计算机与通信学院2017年春季学期 C+ 课程设计题 目: 学生选课管理系统 专业班级: 软件工程15级2班 姓 名: 学 号: 指导教师: 成 绩: 目 录摘 要21 题目要求32 需求分析33 概要设计54 详细设计95 程序实现166 软件测试25总结30参考文献31致谢32摘 要随着无纸化办公的普遍实现,信息的自动处理以及网络式的信息交互方式已经被人们广泛应用。让计算机来管理学生的信息是现在各个高校都在积极进行的工作之一,也是高校教学管理工作的重要内容之一。网上选课与传统的选课方式相比更加节约资源,增加了学生选课自主权。 学生选课系统作为一种现代化的教学技术,
2、越来越受到人们的重视,是一个学校不可或缺的部分, 学生选课系统就是为了管理好选课信息而设计的。学生选课系统的将使选课管理工作规范化、系统化、程序化,避免选课管理的随意性,提高信息处理的速度和准确性,能够准确、及时、有效的查询和修改学生选课情况。与传统的选课方式相比,网上选课系统利用局域网为学生选课带来了极大的便捷。学生在公共机房,或者宿舍的个人电脑上便可以通过校园网络来选课。在选课期间内,学生能够使用选课系统灵活的修改自己的选课情况,大大提高了学校选课工作的效率。教务处的教师则可以通过选课系统的管理员子系统来管理学生的选课情况,使得学生选课工作达到系统化和自动化,大大提高了学校的工作效率,为广
3、大师生及相关人员节省了极多的时间。数据库对于一个应用系统的意义是相当重要的,一个设计良好的数据库系统一方面,能够给开发者带来便捷,更轻松的进行系统设计与编码;另一方面,对于系统的后期维护也非常重要,一个良好的数据库系统能够保证系统的可扩充性,以及系统的移植性等问题。关键词: 学生选课管理系统 、C+ 、MySQL1题目要求该设计要求学生以学生选课信息管理为背景,设计、开发一个“学生选课系统”软件。通过该题目的设计、开发,巩固和加深学生对C+课程的基本知识的理解和掌握,使学生掌握C+编程和程序调试的基本技能及利用C+进行简单软件设计的基本思路和方法,全面培养软件开发过程中的分析、设计、编码、测试
4、及文档规范书写的能力,提高学生运用C+解决实际问题的能力。2需求分析2.1 产品需求概述2.1.1 功能简介随着教育科技的进步,原始的选课方式已经不能满足当今社会大学生选课的需求,该系统主要针对选课的大学生,可以使大学生按要求自由选课。每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息。“学生选课系统”可以实现以下功能:(1)系统以菜单方式工作;(2)课程信息录入功能(课程信息用文件保存);(3)课程信息浏览功能;(4)查询功能:按学分查询、按课程性质查询、学生已选课信息查询;(5)信息的删除与修改等功能。2.1.2 运行环境最低配置:Windows
5、 xp系统,推荐配置:Windows 7系统;2.2 功能需求功能需求描述系统特性,即产品所提供的主要服务。课程信息录入功能可以由管理员进入,管理员打开录入界面,可以根据提示进行课程的录入工作,例如:管理员选择添加可程后,界面会先后弹出课程编号、课程性质、总学时、总学分以及继续添加按钮。如果课程添加完毕,即可退出程序。2.2.2 删除课程功能 删除课程功能由管理员进入,在此选项中管理员可以通过键入课程编码来删除相应的课程,继续删除按回车键,退出输入“0”。2.2.3 查询功能查询功能管理员和学生都可一进入,输入查询编号进入,输入文件夹,可以看到三个带编号的选项,分别时按课程名称查询,按课程性质
6、查询,按学时学分查询,操作者可根据自己的意图来进行相应的选择。在此功能中,选课学生可以在查看了课程之后,输入自己想选的课程代码,用空格分开,选课要求学分不能少于30,科目不能超过6科,学生可根据要求自由选课。学生可以在学生菜单中输入对应的功能编号进入,输入文件夹,即可查询到自己已选的课程。学生输入对应的功能编号,即可进入删除功能,输入要删除课程的编号按回车,继续删除再按回车,结束删除输入“0”回车。此程序不支持游客进入,因为在进入管理员和学生入口都有单独的密码,并且没有设置游客入口,所以不能实现游客的进入。2.3 数据描述int num; /*课程编号*/ char name20; /*课程名
7、称*/ char kind10; /*课程性质*/ int stime; /*总学时*/ int ttime; /*授课学时*/ int etime; /*实验或上机学时*/ int score; /*学分*/ int term; /*开课学期*/3概要设计3.1 系统体系结构图 本系统首先分为两个模块:管理员模块和学生模块。管理员进入程序需要输入密码。学生模块分为:1.浏览所有课程,2.选择课程,3.删除选择错误的课程,4.修改已选择的课程,5.查看已选择的课程。管理员模块分为:1.录入供选择的课程,2.查看所有课程,3.修改已有课程,4.删除课程。 图3-1.系统体系结构图其中:1. 添加
8、课程包括课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息;2. 查询课程可以根据课程编号、名称、学分查看课程;3. 删除课程是删除错误课程,或者不想选择的课程。3.1.1 模块描述 模块1: 管理员入口名 称管理员入口标识 in子系统名 称以管理员身份系统名称学生选课系统接口说明输入admin输出Enter password功能说明管理员操作的入口,用户根据帐号、密码登录进入运行环境说明调用关系说明调用模块浏览、查询、添加、删除被调用模块主菜单模块2: 学生入口名 称学生入口标识 in子系统名 称以学生员身份系统名称学生选课系统接口说明输入151627026
9、6输出Enter password功能说明学生操作的入口,用户根据帐号、密码登录进入运行环境说明调用关系说明调用模块浏览、查询、选课、退选、已选查询被调用模块主菜单3.2 数据模型的设计E-R图图3-2-1 学生实体E-R图图3-2-2 教师实体E-R图图3-2-3 管理员实体E-R图 图3-2-4 专业实体E-R图图3-2-5 系实体E-R图图3-2-6 课程专业实体E-R图 图3-2-7 全局E-R图4详细设计4.1 系统主要函数说明 函数名称函数功能savefile()保存文件prin()浏览所有课程insert()插入课程信息del()删除课程choose()选课函数 各函数调用图:M
10、angers()Students()exitprin() search() insert() del() returnreadfile() savefile()readfile() savefile1() readfile() savefile1()prin() search() choose() prin() del() return主函数Mangers()Students()exitprin() search() insert() del() returnreadfile() savefile()readfile() savefile1() readfile() savefile1()pr
11、in() search() choose() prin() del() return主函数Mangers()Students()exitprin() search() insert() del() returnreadfile() savefile()readfile() savefile1() readfile() savefile1()prin() search() choose() prin() del() return主函数Mangers()Students()exitprin() search() insert() del() returnreadfile() savefile()r
12、eadfile() savefile1() readfile() savefile1()prin() search() choose() prin() del() return主函数本系统主要是根据函数之间的关系以及各函数调用来进行构建的。从主函数往下分别是管理员函数Mangers(),学生函数Students()以及退出函数。管理员函数往下分别是查看prin(),查找search(),添加insert(),删除del() 和返回return。学生函数下面分别是查看prin(),查找search(),选择choose(),删除del()和返回return。控制整个程序的运行,通过主函数模块分别
13、调用各个模块,实现各项功能。 图4-1 学生功能模块图4-2 教师功能模块图4-3 管理员功能模块首先进入主界面,可选择以学生身份进入或以管理员身份进入。以学生身份进入,可进行选课、修改已选课程、删除已选课程、查看选择的课程。最后存入学生文件中。以教师身份进入,可查看个人信息、查看课程信息、查看选课信息。以管理员身份进入,可录入课程信息、修改课程信息、删除课程信息和查看课程信息,最后存入课程文件中。添加信息函数main(),定义指针fp,创建文件2017课设.txt。打开文件,并且课程编号,课程名称,课程性质,授课学时,总学时,学分,开课学期等信息添加进文件2017课设.txt中。如图4所示。
14、课程编号课程名称课程性质总学时授课、上机学时学分开课学期继续添加是主菜单否课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学时学分开课学期继续添加是主菜单否课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学时学分开课学期继续添加是主菜单否课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学时学分开课学期课程编号课程名称课程性质总学时授课、上机学
15、时学分开课学期继续添加是主菜单否 删除函数del(),输入需要删除的编号,存在则删除成功,不存在则返回,如图5所示。输入课程编号否存在课程是删除成功主菜单输入课程编号否存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程是删除成功主菜单输入课程编号否存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程是删除成功主菜单存在课程是删除成功主菜单输入课程编号否存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程是删除成功主菜单存在课程是删除成功主菜单否存在课程是删除成功主菜单存在课程
16、是删除成功主菜单存在课程是删除成功主菜单存在课程是删除成功主菜单学生若发现选择的课程不符合要求,可删除自己已经选择的课程,再重新进行选择课程。查看时首先打开学生选择课程的文件,输入课程编号,若存在,则进行删除;若不存在则需重新输入课程编号。删除成功后,返回主菜单,可以查看剩余课程,如果不符合学分要求,则需要重新选择。4.5查看课程函数查看函数search(),通过菜单选择需要查看的类型。有按课程编号查看、按课程名称查看、按学分查看。如图6所示。按课程编号查看13选择查看类型按课程名称查看按学分查看2返回继续查看否是按课程编号查看13选择查看类型3选择查看类型按课程名称查看按学分查看2返回继续查
17、看否是按课程编号查看13选择查看类型3选择查看类型3选择查看类型按课程名称查看按学分查看2返回继续查看否是按课程编号查看13选择查看类型3选择查看类型3选择查看类型3选择查看类型按课程名称查看按学分查看2返回继续查看否是首先打开课程储存文件,进入查看课程界面后,可以选择按课程编号查看,按课程名称查看和按学分查看三种查看方式。查看课程完成后则返回上一个菜单界面。4.6选课函数选课函数choose(),学生进入之后,输入想选的课程,空格隔开,结束回车,如果总学分不够6,选修失败,重新选修。如图7所示:进入选课 退出 输入课程编码学分30 ? 选修成功是否 在选课函数中,学生被要求选修科目不超过6门
18、,总学分不能低于30,当超过6门时,程序则会停止运行,学分低于30分则要求重新进行选课。5 系统实现登录界面图5-1 登陆界面void CSystemDlg:OnOK() / TODO: Add extra validation here/从界面控件中获取信息更新到控件变量中. if(!UpdateData() return; /检查帐号密码是否为空 if(m_UserID.IsEmpty()|m_UserPSD.IsEmpty() AfxMessageBox(帐号或密码不能为空!); return; /定义一个CDatabase对象 CDatabase m_db; /打开数据库,并捕获异常
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 学生 选课 系统 程序设计 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内