小型教师与干部管理信息系统的设计与实现.docx
- 文档编号:9672925
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:11
- 大小:21.93KB
小型教师与干部管理信息系统的设计与实现.docx
《小型教师与干部管理信息系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《小型教师与干部管理信息系统的设计与实现.docx(11页珍藏版)》请在冰豆网上搜索。
小型教师与干部管理信息系统的设计与实现
12.小型教师与干部管理信息系统的设计与实现
分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
要求:
(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Techear_Cadre类中还包含数据成员wages(工资)。
(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
(4)在类体中声明成员函数,在类外定义成员函数。
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
(6)人员的基本信息分别存储在磁盘文件Teacher.txt,Cadre.txt和Teacher_Cadre.txt文件中,Teacher.txt的格式是:
(姓名、年龄、性别、地址、电话、职称),Cadre.txt的格式是:
(姓名、年龄、性别、地址、电话、职务),Teacher_Cadre.txt的格式是:
(姓名、年龄、性别、地址、电话、职称、职务、工资),要求在操作系统中建立上述文件,并按照上述格式手工录入几条记录,程序首先从文件中读取相应数据,然后完成上述功能。
封皮
(按学校要求手工填写)
课程设计任务书
学院
专业
学生姓名
学号
设计题目
小型教师与干部管理信息系统的设计与实现
内容及要求:
分别定义Teacher(教师)类和Cadre(干部)类,采用多重继承方式由这两个类派生出新类Teacher_Cadre(教师兼干部)。
要求:
(1)在两个基类中都包含姓名、年龄、性别、地址、电话等数据成员。
(2)在Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在Techear_Cadre类中还包含数据成员wages(工资)。
(3)对两个基类中的姓名、年龄、性别、地址、电话等数据成员用相同的名字,在引用这些数据成员时,指定作用域。
(4)在类体中声明成员函数,在类外定义成员函数。
(5)在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
(6)人员的基本信息分别存储在磁盘文件Teacher.txt,Cadre.txt和Teacher_Cadre.txt文件中,Teacher.txt的格式是:
(姓名、年龄、性别、地址、电话、职称),Cadre.txt的格式是:
(姓名、年龄、性别、地址、电话、职务),Teacher_Cadre.txt的格式是:
(姓名、年龄、性别、地址、电话、职称、职务、工资),要求在操作系统中建立上述文件,并按照上述格式手工录入几条记录,程序首先从文件中读取相应数据,然后完成上述功能。
进度安排:
第17周:
分析题目,查阅课题相关资料,进行类设计、算法设计;
第18周:
程序的设计、调试与实现;
第19周:
程序测试与分析,撰写课程设计报告,进行答辩验收。
指导教师(签字):
年月日
学院院长(签字)
年月日
1需求分析
(1)计算机软件技术发展到今天,各种软件系统已经越来越复杂,软件开发也越来越困难,软件复用技术就日益受到人们的重视,软件复用一方面能够降低软件开发的工作量和成本,提高开发效率,另一方面也能够提高软件的可靠性。
继承机制是面向对象技术提供的另一种解决软件复用问题的途径,记在定义一个新的类时,先把一个或多个已有类的功能全部包含进来,然后再给出新功能的定义或对已有的类的某项功能重新定义。
继承不需要修改已有软件代码,很好地体现了程序的相关性,又实现了程序的可扩充性,它是一种基于目标代码的复用机制。
(2)在C++语言中,原有的类叫做基类,新建立的类叫做派生类。
一个派生类可以从一个基类派生,称为单继承;也可以从多个基类派生,称为多继承。
(3)本次程序设计目的是设计与实现一个小型教师与干部管理信息系统,先分别建立一个教师类与干部类,然后通过多继承方式由这两个基类派生出新类——教师兼干部类,这个新类继承前两个类的功能,并生成新的功能。
2算法基本原理
定义一个Teacher(老师)类,将数据成员姓名、年龄、性别、地址、电话的属性声明为protected(保护类型),这样只有本类和派生类的成员函数才能访问,类外的任何访问都是非法的。
在类定义中只给出成员函数setvalue()和display()的类型,属于public(公共类型)。
然后将以上的两个成员函数的函数体写在类的定义之外。
接着定义一个Cadre(干部)类,同上,在类定义中只给出成员函数原型,而成员函数体写在类的定义之外。
然后以Teacher(教师)类和Cadre(干部)类为基类派生出Teacher_Cadre(教师兼干部)类,定义新的成员函数wages,在派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
3类设计
从上面的算法分析可以看到,本设计面临的计算问题的关键是多继承。
定义一个老师类Teacher和干部类Cadre作为基类,然后由这两个类派生出教师兼干部类Teacher_Cadre。
老师类Teacher和干部类Cadre都包含姓名、年龄、性别、地址、电话等数据成员,另外Teacher类中还包含数据成员title(职称),在Cadre类中还包含数据成员post(职务),在教师兼干部类Teacher_Cadre中还扩充包含数据成员wages(工资)。
从问题的需要来看,教师兼干部类Teacher_Cadre的数据除了从老师类Teacher和干部类Cadre继承过来的姓名、年龄、性别、地址、电话、职称、职务成员外,还应该包括数据成员wages。
教师兼干部类Teacher_Cadre的主要操作有set()、show(),用来输入职位和工资以及调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
Teacher教师类和干部类Cadre与教师兼干部类Teacher_Cadre组成及相互关系如图1所示。
Teacher
-name:
string
-age:
int
-sex:
string
-address:
string
-tele:
string
-title:
string
+setvalue():
void
+display():
void
cadre
-name:
string
-age:
int
-sex:
string
-address:
string
-tele:
string
-post:
string
+setvalue():
void
+display():
void
Teacher_Cadre
继承自基类
新增成员
-name:
string
-age:
int
-sex:
string
-address:
string
-tele:
string
-title:
string
-post:
string
-wages:
float
+setvalue():
void
+display():
void
+set():
void
+show():
void
图1Teacher类和cadre类与Teacher_Cadre类的派生关系的UML图形表示
Teacher_Cadre继承了Teacher类和Cadre类中的数据成员姓名、年龄、性别、地址、电话、职称、职务,同时新增数据成员wages,访问控制设置为private(私有)类型。
这样派生类Teacher_Cadre的成员函数show中调用Teacher类中的display函数,输出姓名、年龄、性别、职称、地址、电话,然后再用cout语句输出职务与工资。
4详细设计
整个程序分为三个独立的文档,Techear_Cadre.h文件中包括类Teacher、类Cadre、类Teacher_Cadre的声明,Techear_Cadre.h.cpp文件中包括这三个类的成员函数实现文件;main.cpp文件包括程序的主函数,主函数中定义了一个类Teacher_Cadre的对象tc,通过这个对象承载所有信息。
4.1类的接口设计
//Techear_Cadre.h文件,实现类的声明
#include
#include
usingnamespacestd;
classTeacher//基类Teacher的声明
{
public:
//外部接口
voidsetvalue();//定义成员函数
voiddisplay();//定义成员函数
protected:
stringname;//姓名
intage;//年龄
stringsex;//性别
stringaddr;//地址
stringtele;//电话号码
stringtitle;//职称
};
classCadre//基类Cadre的声明
{
public:
//外部接口
voidsetvalue();//定义成员函数
voiddisplay();//定义成员函数
protected:
stringname;//姓名
intage;//年龄
stringsex;//性别
stringaddr;//地址
stringtele;//电话号码
stringpost;//职务
};
classteacher_cadre:
publicteacher,publiccadre//公有派生类teacher_cadre的声明
{
public:
//外部接口
voidset();//定义成员函数
voidshow();//定义成员函数
private:
floatwages;//工资
};
经过公有派生,teacher_cadre类获得了Teacher类和Cadre类的全部成员,由于基类的成员是公有和保护类型,因此在派生类中的成员函数中,基类继承来的成员全部可以访问,而对于建立Linequ类对象的外部模块来讲,基类的保护成员是无法访问的。
通过保护访问类型和公有的继承方式,实现了基类Teacher和类Cadre的数据的有效共享和可靠保护。
4.2类的实现
teacher_cadre.cpp文件,类实现
//类Teacher的实现
voidteacher:
:
setvalue()//设置数据成员管理函数
{
cout<<"string类型,姓名:
"< cin>>name;//输入姓名 cout<<"int类型,年龄: "< cin>>age;//输入年龄 cout<<"string类型,性别: "< cin>>sex;//输入性别 cout<<"string类型,地址: "< cin>>addr;//输入地址 cout<<"string类型,电话: "< cin>>tele;//输入电话号码 cout<<"string类型,职称: "< cin>>title; } voidteacher: : display()//定义一个输出函数 { cout<<"name: "< cout<<"age: "< cout<<"sex: "< cout<<"addr: "< cout<<"tele: "< cout<<"title: "< } voidcadre: : setvalue()//设置数据成员管理函数 { cout<<"string类型,姓名: "< cin>>name;//输入姓名 cout<<"int类型,年龄: "< cin>>age;//输入年龄 cout<<"string类型,性别: "< cin>>sex;//输入性别 cout<<"string类型,地址: "< cin>>addr;//输入地址 cout<<"string类型,电话: "< cin>>tele;//输入电话号码 cout<<"string类型,职务: "< cin>>post;//输入职务 } voidcadre: : display()//定义输出函数 { cout<<"name: "< cout<<"age: "< cout<<"sex: "< cout<<"addr: "< cout<<"number: "< cout<<"post: "< } voidteacher_cadre: : set()//定义一个输入函数 { teacher: : setvalue();//调用类Teacher的成员函数setvalue() cout<<"职位: "< cin>>post;//输入职务 cout<<"工资: "< cin>>wages;//输入工资 } voidteacher_cadre: : show()//定义一个输出函数 { teacher: : display();//调用Teacher类中的成员函数display() cout<<"post: "< cout<<"wages: "< } 在类的成员函数实现过程中,派生类的构造函数使用参数调用了基类的成员函数,只是整个调用过程中完全是由系统内部完成。 基类的保护数据成员,经过公有派生之后,在派生类中是以保护成员的身份出现的,派生类的成员函数可以自由地进行访问。 4.3主函数设计 //main.cpp主函数 intmain() { teacher_cadretc;//定义类teacher_cadre对象tc cout<<"请用户输入信息: "< tc.set();//通过对象访问类的成员函数set() cout<<"显示的信息为: "< tc.show();//通过对象访问类的成员函数show() return0; } 7参考文献 [1]徐士良.C常用算法程序集.北京: 清华大学出版社,1995 [2]郑莉,董渊,张瑞丰.C++语言程序设计(第3版).北京: 清华大学出版社,2007 [3]钱能.C++程序设计教程(第二版).北京: 清华大学出版社,2007 [4]陈志泊,王春玲.面向对象的程序设计语言—C++.北京: 人民邮电出版社,2002 [5]李庆扬,王能超,易大义.数值分析.湖北: 华中理工大学出版社,1986
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 教师 干部 管理信息系统 设计 实现