东华理工大学
课程设计报告
课程设计题目: 学生选修课程系统设计
学
姓
专
班
号
名
业
级
1021113324
邓仁福
软件工程
10211133
指导教师
王志波
2011 年 12 月 1 日
东华理工大学
目录
一、设计目的与任务........................................................................ 2
1、本课程设计的目的.........................................................................................................................2
2、本课程设计的任务.........................................................................................................................2
二、设计方案.....................................................................................3
1. 总体设计...................................................................................................................................... 3
2. 系统功能...................................................................................................................................... 3
3. 系统截图......................................................................................................................................4
4. 核心代码设计 ..............................................................................................................................6
三.心得体会......................................................................................13
1
东华理工大学
一、设计目的与任务
1、本课程设计的目的
1)课程设计是实践教学环节。设置课程设计的目的 是加强学生对本课程及相关
课程知识的理解,培养学生综合运用理论知识分析扣 解决实际问题的方法与能
力。有助于提高学生的创新能力和创新意识。搞好课程 设计教学工作,对实现专
业培养目标,提高学生全面素质有重要作用。
2)通过课程设计更进一步理解 C++的基础知识。
3)训练用系统的观点和软件开发一般规范进行软件开发,并在此过程中培 养严
谨的科学态度和良好的工作作风。初步掌握软件开发过程的问题分析、系统 设
计、程序编码、测试等基本方法和技能。
4)熟练掌握 C++知识在程序中的应用,了解书本知识在解决实际问题下的 用
途。
2、本课程设计的任务
假定有 n 门课程,每门课程有课程编号,课程名称,课程性质,总学时, 授
课学时,实验或上机学时,学分,开课学期等信息,学生可按要求 (如总学分
不得少于 60)自由选课。试设计一选修课程系统,使之能提供以下功能:
系统以菜单方式工作
(1)课程信息录入功能(课程信息用文件保存)--输入
(2)课程信息浏览功能--输出
(3)查询功能:(至少一种查询方式)--算法
(4)按学分查询
(5)按课程性质查询
(6)学生选修课程(可选项)
2
东华理工大学
二、设计方案
1. 总体设计
我们设计一个程序对学生选课信息进行保存,对学生的选课信息进行可执行多种
操作, 该程序包括以下功能模块: 1) 学生信息添加模块:能够输入学生基本
信息并保存到文件中。 2) 查看模块:显示所有可选修课程的信息。 3)查询:
显示所有符合要求的课程信息。 4) 选课:显示学生已选课程信息和选课。 5)
退出系统。 为了完善系统,我们还添加了一个登录界面。
2. 系统功能
首先编写一个 Course 类和一个 main()函数,程序开始运行时调用 main 函数,通过
main 函数中的循环语句来调用 Course 中的相关函数和数据来达到程序的要求。
Course
CourseInfoInput(),CourseInfoOutput(),
Search(),SearchByCredithhour(),SearchByCourseKind()来实现信息输入,信息输
出,查找信息,按学分查找,按照课程类型查找。
类 中 主 要 有
系统功能图与流程图
学生选修课
程系统设计
Course
类
Main
函数
CourseInfoI
nput()
CourseInfo
Output()
SearchByCr
edithhou()
SearchByCo
urseKind()
3
东华理工大学
开始
输入与功能对
应的的数字
判断有否
是
执行相应功能
结束
否
3.系统截图
主界面(图 1)
录入界面(图 2)
4
东华理工大学
浏览界面(图 3)
查询界面(图 4)
5
东华理工大学
4.核心代码设计
(1) 头文件
#include
#include
#include
#include
#include
using namespace std;
(2)类编写
通过定义一个 course 的类,将信息的输出、输入、查找定义为公有,将与其对应
的课程的编号、课程名、课程性质、学分、总课时、实验课时、开课时间定义为
私有。
class Course
{
public:
void CourseInfoInput();
void CourseInfoOutPut();
void Search();
void SearchByCredithour(float);
void SearchByCourseKind(string);
private:
int courseNumber;
string courseName;
string courseKind;
int coursePeriod;
int schoolPeriod;
int experimentPeriod;
float credithour;
string courseterm;
};
6
东华理工大学
(3)课程信息的录入
将课程信息定位到 C 盘下的 course.txt,即在 c 盘可以看到建立了文本文档。创
建一个文件输出流对象,判断文件是否存在,若不存在,提示文件打开失败,存
在就根据提示逐个输入选课信息。输入完成后关闭文件。
//将课程信息定位到 C 盘下的 course.txt
const char* coursefile="C:\\course.txt";
void Course::CourseInfoInput()
{
ofstream outcoursefile;
outcoursefile.open(coursefile);
if(!outcoursefile)
cout << "文件打开失败!"<< endl;
return ;
{
//无限循环,给出指定条件退出
}
while(1)
{
cout
\n";
\n";
<<
"*********************************** 课 程 信 息
***********************************\n";
cout << "
按任意键开始信息录入
输入 q 退出
cout << "
if(getch()=='q')
{
break;
}
cout<<"请输入课程编号: ";
cin>>courseNumber;
cout<<"请输入课程名称:";
cin>>courseName;
cout<<"请输入课程性质:";
cin>>courseKind;
cout<<"请输入总学时:";
cin>>coursePeriod;
cout<<"请输入授课学时:";
cin>>schoolPeriod;
cout<<"请输入实验&上机学时:";
cin>>experimentPeriod;
cout<<"请输入学分:";
cin>>credithour;
7