小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx
- 文档编号:22857083
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:11
- 大小:21.93KB
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx
《小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
(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的格式是:
进度安排:
第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:
-address:
-tele:
-title:
+setvalue():
void
+display():
cadre
-post:
Teacher_Cadre
继承自基类
新增成员
string
-wages:
float
+set():
+show():
图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<
iostream>
string>
usingnamespacestd;
classTeacher//基类Teacher的声明
{
public:
//外部接口
voidsetvalue();
//定义成员函数
voiddisplay();
//定义成员函数
protected:
stringname;
//姓名
intage;
//年龄
stringsex;
//性别
stringaddr;
//地址
stringtele;
//电话号码
stringtitle;
//职称
};
classCadre//基类Cadre的声明
voidsetvalue();
voiddisplay();
//年龄
//性别
//电话号码
stringpost;
//职务
classteacher_cadre:
publicteacher,publiccadre//公有派生类teacher_cadre的声明
//外部接口
voidset();
voidshow();
private:
floatwages;
//工资
经过公有派生,teacher_cadre类获得了Teacher类和Cadre类的全部成员,由于基类的成员是公有和保护类型,因此在派生类中的成员函数中,基类继承来的成员全部可以访问,而对于建立Linequ类对象的外部模块来讲,基类的保护成员是无法访问的。
通过保护访问类型和公有的继承方式,实现了基类Teacher和类Cadre的数据的有效共享和可靠保护。
4.2类的实现
teacher_cadre.cpp文件,类实现
//类Teacher的实现
voidteacher:
:
setvalue()//设置数据成员管理函数
cout<
<
"
string类型,姓名:
endl;
cin>
>
name;
//输入姓名
int类型,年龄:
age;
//输入年龄
string类型,性别:
sex;
//输入性别
string类型,地址:
addr;
//输入地址
string类型,电话:
tele;
//输入电话号码
string类型,职称:
title;
}
display()//定义一个输出函数
name:
name<
//输出姓名
age:
age<
//输出年龄
sex:
sex<
//输出性别
addr:
addr<
//输出地址
tele:
tele<
//输出电话号码
title:
title<
//输出职称
voidcadre:
string类型,性别:
string类型,职务:
post;
//输入职务
display()//定义输出函数
//输出地址
number:
post:
post<
//输出职务
voidteacher_cadre:
set()//定义一个输入函数
teacher:
setvalue();
//调用类Teacher的成员函数setvalue()
职位:
工资:
wages;
//输入工资
show()//定义一个输出函数
display();
//调用Teacher类中的成员函数display()
//输出职务
wages:
wages<
//输出工资
在类的成员函数实现过程中,派生类的构造函数使用参数调用了基类的成员函数,只是整个调用过程中完全是由系统内部完成。
基类的保护数据成员,经过公有派生之后,在派生类中是以保护成员的身份出现的,派生类的成员函数可以自由地进行访问。
4.3主函数设计
//main.cpp主函数
intmain()
teacher_cadretc;
//定义类teacher_cadre对象tc
请用户输入信息:
tc.set();
//通过对象访问类的成员函数set()
显示的信息为:
tc.show();
//通过对象访问类的成员函数show()
return0;
7参考文献
[1]徐士良.C常用算法程序集.北京:
清华大学出版社,1995
[2]郑莉,董渊,张瑞丰.C++语言程序设计(第3版).北京:
清华大学出版社,2007
[3]钱能.C++程序设计教程(第二版).北京:
[4]陈志泊,王春玲.面向对象的程序设计语言—C++.北京:
人民邮电出版社,2002
[5]李庆扬,王能超,易大义.数值分析.湖北:
华中理工大学出版社,1986
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 小型 教师 干部 管理信息系统 设计 实现