小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx

上传人:b****7 文档编号:22857083 上传时间:2023-02-05 格式:DOCX 页数:11 大小:21.93KB
下载 相关 举报
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx_第1页
第1页 / 共11页
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx_第2页
第2页 / 共11页
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx_第3页
第3页 / 共11页
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx_第4页
第4页 / 共11页
小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx

《小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。

小型教师与干部管理信息系统的设计与实现Word格式文档下载.docx

(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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1