C++课程设计——选课系统报告.doc
《C++课程设计——选课系统报告.doc》由会员分享,可在线阅读,更多相关《C++课程设计——选课系统报告.doc(26页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、20102011(2)面向对象程序设计课程设计报告姓名: 学号: 班级: 日期: 指导教师: 课程设计的题目: 学生选课管理系统 等级: 等级三 同组成员: 组长: 一、本系统的设计1.1系统功能模块图图1.1系统功能模块图1.2 系统UML图图1.2系统UML图1.3功能模块描述与主要类描述本程序综合运用面向对象的设计方法,主要运用了STL中的map来储存从文件读出的数据。模块一:学生端模块功能(1)查看课程:此模块通过SearchAllCourse()函数,在界面上显示所有可选课程。(2)选择课程:此模块通过choosecourse()函数,通过输入你要选择的课程号进行选课。(3)退选课程
2、:此模块通过Deletecourse()函数,用map中的erase()函数,删除已选课程。(4)查看已选课程:此模块通过Searchcourse()函数,将显示该学生所选课程的情况。模块二:管理端各功能:(1) 增加学生:此模块调用了头文件为student.h里的成员和GL类里的AddStudent()成员函数,要求用户输入学生的相关信息。如果学号相同,系统将会提示该学生已存在,然后自动返回管理端。(2) 增加课程:此模块调用GL类里的函数AddCourse(),要求用户输入课程相关信息。如果课程号相同,系统会提示课程已存在,并自动返回管理端。(3) 删除学生通过输入学号,程序调用函数Del
3、eteStudent(),删除该学生相关信息,然后自动返回管理端。如果要删除的学号不存在,则系统提示该学生不存在,然后自动返回管理端。(4) 删除课程(5) 通过输入课程号,程序调用函数DeleteCourse(),删除该课程相关信息,然后自动返回管理端。如果要删除的课程号不存在,则系统提示该课程不存在,然后自动返回管理端。(6) 修改课程信息通过输入课程号,程序会进入修改课程信息界面,通过switch()函数,用户可选择需要修改的项目。(7) 修改学生信息通过输入学号号,程序会进入修改学生信息界面,通过switch()函数,用户可选择需要修改的项目。(8) 查看选课情况该模块显示可选的课程信
4、息。(9) 查看所有学生该模块显示已存在的学生信息。本学生选课系统采用了面向对象的程序设计方法。所有的方法均以类为基础。所涉及的类包括:(1)基础类class People 基础人员信息类:该类是一个基类,设置了包括姓名、性别、年龄、电话的基本信息及相关的构造函数,接口函数,修改私有成员函数。可以给学生类继承。class Student 学生信息类:该类继承了People类,增加了学号,学院,所选课程的信息。class Course 课程信息类:该类设置了一些基本的课程信息,包括课程号、课程名称、学分、授课老师、分类。(2)功能类class XS 学生管理类:该类定义了前文模块一学生登录端里面
5、的四个功能的实现。此类的作用在于将学生登陆端的功能集成并定义使用的主要方法。class GL 系统管理类:该类定义了前文模块二系统登录端里面的八个功能的实现。此类的作用在于将系统登陆端的功能集成并定义使用的主要方法。1.4选课流程图图1.3选课流程图 二、本系统的实现过程主函数里调用map类,通过学号和课程号自动排序学生信息和课程信息,读写文件student、course初始化学生信息以及课程信息。再调用while语句循环学生管理系统、学生选课端、系统管理端,以满足用户输入需求。相关代码:void main()int a,a1,a2;int sn; string sm;XS _xs ;map
6、students;map courses;ReadFile_student(students);WriteFile_student(students);ReadFile_course(courses);WriteFile_course(courses);while(a=mainmenu() if(a=1)coutsn;coutsm;if(password(sn,sm)map:iterator itor=students.find(sn);if(itor=students.end()cout该学生不存在!second);while(a1=studentmenu()switch(a1)case 1
7、:_xs.SearchAllCourse(courses);break;/查看所有课程case 2:_xs.Choosecourse(_takecourse,courses,students);break;/选课case 3:_xs.Deletecourse(_takecourse,students);break;/退选case 4:_xs.SearchCourse(_takecourse,students);break;/查看已选课程elsecout该学生不存在或者密码输入错误!endl;if(a=2)while(a2=adminmenu()GL _gl;switch(a2)case 1:_
8、gl.AddStudent(students);break;/增加学生case 2:_gl.AddCourse(courses);break;/增加课程case 3:_gl.DeleteStudent(students);break;/删除学生case 4:_gl.DeleteCourse(courses);break;/删除课程case 5:_gl.ModifyStudent(students);break;/修改学生信息case 6:_gl.ModifyCourse(courses);break;/修改课程信息case 7:_gl.SearchCourse(courses);break;/
9、查询所有课程case 8:_gl.SearchStudent(students);break;/查询所有学生相关代码:int mainmenu()int n;system(cls);couttt=ntt| |ntt| 学生选课系统 |ntt| |ntt|=|ntt| |ntt| |ntt| 1.学生选课端 |ntt| 2.系统管理端 |ntt| 0.退出 |ntt| |ntt| |ntt|=|n endl;cout请选择登陆端:n;while(n2)coutn;return n;学生选课端:通过已存的password.txt文件里的学号及相关密码,可以进入学生登录端界面相关代码:int stu
10、dentmenu()int n;couttt=ntt| |ntt| 学生登陆端 |ntt| |ntt|=|ntt| |ntt| |ntt| 1.查看课程 |ntt| 2.选择课程 |ntt| 3.退选课程 |ntt| 4.查看已选课程 |ntt| 0.返回主菜单 |ntt| |ntt| |ntt| |ntt|=|n endl;cout请选择操作方式:n;while(n4)coutn;return n;当“请选择操作方式”语句下输入1时,程序执行以下语句:void XS:SearchAllCourse(std:map &courses) /查询所有课程map:iterator itor=cour
11、ses.begin();coutsetiosflags(ios_base:left)setw(10)课程号setiosflags(ios_base:left)setw(15)课程名称setiosflags(ios_base:left)setw(10)学分setiosflags(ios_base:left)setw(15)上课老师setiosflags(ios_base:left)setw(15)所属分类endl;while(itor!=courses.end()coutsetiosflags(ios_base:left)setw(10)second.GetCnum()setiosflags(i
12、os_base:left)setw(15)second.GetCname()setiosflags(ios_base:left)setw(10)second.GetCredit()setiosflags(ios_base:left)setw(15)second.GetTeacher()setiosflags(ios_base:left)setw(15)second.GetSort()endl;itor+;当“请选择操作方式”语句下输入2时,程序执行以下语句:void XS:Choosecourse(Student &st,map &courses,map &students)int n;cou
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 课程设计 选课 系统 报告
限制150内