《面向对象程序设计cpp》课程设计指导书.docx
- 文档编号:29005034
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:12
- 大小:72.25KB
《面向对象程序设计cpp》课程设计指导书.docx
《《面向对象程序设计cpp》课程设计指导书.docx》由会员分享,可在线阅读,更多相关《《面向对象程序设计cpp》课程设计指导书.docx(12页珍藏版)》请在冰豆网上搜索。
《面向对象程序设计cpp》课程设计指导书
《面向对象程序设计》
课程设计
指导书
一、课程设计目的
通过本课程设计,培养上机动手能力,使学生巩固《面向对象程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关。
二、课程设计题目
0、人事管理系统
1、物业管理系统
2、客房管理系统
3、学生管理系统
4、民航订票系统
5、商场销售管理系统
6、通讯录
7、图书馆管理系统
8、商场(工厂)库存管理系统
9、“一二九”合唱评委打分系统
学生课设选题根据学号的尾数确定。
(例学号为17号的学生做7号题目)
三、课程设计任务
1、任务:
在两周内独立正确完成至少1道题目。
2、学生完成课设后,向指导老师提出答辩申请。
答辩时要检查的内容为:
(1)课程设计纸质文档;
(2)课程设计源代码及其运行结果;
(3)老师提出相关问题,学生对问题进行作答。
3、时间:
指导:
第十六,十七周。
答辩时间:
第十七周
四、课程设计考核方式
课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的30%。
优(90分以上):
按要求完成,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好,能很好的回答老师所提出的问题;
良(80-90分):
按要求完成,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进,能较好的回答老师所提出的问题;
中(70-80分):
按要求完成,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确,能基本回答老师所提出的问题;
及格(60-70分):
按要求完成,有完整的符合标准的文档,有基本实现设计方案的软件,但不能完全运行,设计方案基本正确,不能完全回答老师所提出的问题;
不及格(60分以下):
不能完成程序,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确,不能回答老师所提出的问题。
五、提交的资料
1、软件
软件需提供源程序,并能正常运行。
注:
对于程序中未能实现的部分需要加以说明。
对于程序中所参考的部分代码需要加以声明,并说明出处。
2、文档
(1)设计文档的格式尽量按照《中华人民共和国国家标准UDC681.3计算机软件产品开发文件编制指南GB8567-88》的标准书写。
(2)内容(以下仅提供参考)
1、需求分析;
2、类设计及说明;
3、定义的函数主要功能说明;
4、主要算法说明:
举例说明1、2个比较有特点的算法;
5、系统总框图;
6、 存在的问题与不足及对策;
7、使用说明(操作手册);
8、程序源代码及说明;
(3)文档要求
1、程序中必须使用类定义对象完成设计。
2、所写的有效代码不得少于200行。
3、用A4幅面的纸打印出文档。
4、在程序中,使用结构体数组或文件作为数据载体。
5、使用VisualC++6.0编译器。
附:
课程设计范例
课程设计文档 ----简单的人员信息管理系统
1.需求分析:
需要实现的主要功能如下:
(1)存储雇员的编号,级别,月薪
(2)修改雇员的编号,级别,月薪
(3)删除雇员的编号,级别,月薪
(4)查询雇员的编号,级别,月薪
(5)显示 雇员的编号,级别,月薪
………………………………………
2.类设计及说明
3.定义的函数主要功能说明:
(1)employee类
setname-----设置姓名;
getname------提取成员姓名;
getindividualempno--------提取成员编号;
…………………………..
(2)technician类
Setworkhours-----设置工作时间
…………………
(3)salesman类
…………………..
(4)manager类
…………………………….
(5)salesmanager类
…………………
4.主要算法说明
(1) Main函数中主要利用循环实现雇员姓名的连续录入,利用基类指针访问各派生类函数…….
(2)………..
5.系统总框图:
主函数
退出
用户菜单
成员链表
各个函数
文件
6.存在的问题:
(1)功能不是很完善,只实现了对人员工资级别等的存储及输出,对于员工级别,工资,薪级的修改,删除的功能还未实现。
(2)系统的操作界面需进一步优化,如能用菜单形式实现更为方便。
7.操作手册:
运行程序后,先出现一蓝色背景,显示提示语:
"Welcometoinformationmanagementsystem!
"它会在屏幕上运动一周,然后自行消失。
随之出现一红色背景,上面有提示语句,分别按照这些提示语句输入信息,就会出现一个菜单。
根据菜单的提示即可进行操作。
8.源程序代码及说明:
//employee.h
classemployee
{
protected:
charname[20];//姓名
intindividualEmpNo;//个人编号
intgrade;//级别
floataccumPay;//月薪总额
staticintemployeeNo;//本公司职员编号目前最大值
public:
employee();//构造函数
~employee();//析构函数
virtualvoidpay()=0;//计算月薪函数(纯虚函数)
virtualvoidpromote(intincrement=0);//升级函数(虚函数)
voidSetName(char*);//设置姓名函数
char*GetName();//提取姓名函数
intGetindividualEmpNo();//提取编号函数
intGetgrade();//提取级别函数
floatGetaccumPay();//提取月薪函数
};
classtechnician:
publicemployee//兼职技术人员类
{
private:
floathourlyRate;//每小时酬金
intworkHours;//当月工作时数
public:
technician();//构造函数
voidSetworkHours(intwh);//设置工作时数函数
voidpay();//计算月薪函数
voidpromote(int);//升级函数
};
classsalesman:
virtualpublicemployee//兼职推销员类
{
protected:
floatCommRate;//按销售额提取酬金的百分比
floatsales;//当月销售额
public:
salesman();//构造函数
voidSetsales(floatsl);//设置销售额函数
voidpay();//计算月薪函数
voidpromote(int);//升级函数
};
classmanager:
virtualpublicemployee//经理类
{
protected:
floatmonthlyPay;//固定月薪数
public:
manager();//构造函数
voidpay();//计算月薪函数
voidpromote(int);//升级函数
};
classsalesmanager:
publicmanager,publicsalesman//销售经理类
{
public:
salesmanager();//构造函数
voidpay();//计算月薪函数
voidpromote(int);//升级函数
};
//employee.cpp
#include
#include
#include"employee.h"
usingnamespacestd;
intemployee:
:
employeeNo=1000;//员工编号基数为1000
employee:
:
employee()
{individualEmpNo=employeeNo++;//新输入的员工编号为目前最大编号加1
grade=1;//级别初值为1
accumPay=0.0;}//月薪总额初值为0
employee:
:
~employee()
{}
voidemployee:
:
promote(intincrement)
{grade+=increment;}//升级,提升的级数由increment指定
voidemployee:
:
SetName(char*names)
{strcpy(name,names);}//设置姓名
char*employee:
:
GetName()
{returnname;}//提取成员姓名
intemployee:
:
GetindividualEmpNo()
{returnindividualEmpNo;}//提取成员编号
intemployee:
:
Getgrade()
{returngrade;}//提取成员级别
floatemployee:
:
GetaccumPay()
{returnaccumPay;}//提取月薪
technician:
:
technician()
{hourlyRate=100;}//每小时酬金100元
voidtechnician:
:
SetworkHours(intwh)
{workHours=wh;}//设置工作时间
voidtechnician:
:
pay()
{accumPay=hourlyRate*workHours;}//计算月薪,按小时计酬
voidtechnician:
:
promote(int)
{employee:
:
promote
(2);}//调用基类升级函数,升2级
salesman:
:
salesman()
{CommRate=0.04;}//销售提成比例4%
voidsalesman:
:
Setsales(floatsl)
{sales=sl;}//设置销售额
voidsalesman:
:
pay()
{accumPay=sales*CommRate;}//月薪=销售提成
voidsalesman:
:
promote(int)
{employee:
:
promote(0);}//调用基类升级函数,升0级
manager:
:
manager()
{monthlyPay=8000;}//固定月薪8000元
voidmanager:
:
pay()
{accumPay=monthlyPay;}//月薪总额即固定月薪数
voidmanager:
:
promote(int)
{employee:
:
promote(3);}//调用基类升级函数,升3级
salesmanager:
:
salesmanager()
{monthlyPay=5000;
CommRate=0.005;}
voidsalesmanager:
:
pay()
{accumPay=monthlyPay+CommRate*sales;}//月薪=固定月薪+销售提成
voidsalesmanager:
:
promote(int)
{employee:
:
promote
(2);}//调用基类升级函数,升2级
#include
#include
#include"employee.h"
usingnamespacestd;
voidmain()
{
managerm1;
techniciant1;
salesmanagersm1;
salesmans1;
charnamestr[20];//输入雇员姓名时首先临时存放在namestr中
employee*emp[4]={&m1,&t1,&sm1,&s1};
inti;
for(i=0;i<4;i++)
{
cout<<"请输下一个雇员的姓名:
";
cin>>namestr;
emp[i]->SetName(namestr);//设置每个成员的姓名
emp[i]->promote();//升级,通过基类指针访问各派生类函数
}
cout<<"请输入兼职技术人员"< "; intww; cin>>ww; t1.SetworkHours(ww);//设置工作时间 cout<<"请输入销售经理"< "; floatsl; cin>>sl; sm1.Setsales(sl);//设置销售额 cout<<"请输入推销员"< "; cin>>sl; s1.Setsales(sl);//设置销售额 for(i=0;i<4;i++) { emp[i]->pay();//计算月薪,通过基类指针访问各派生类函数 cout< <<"级别为"< } }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向对象程序设计cpp 面向 对象 程序设计 cpp 课程设计 指导书