C++程序设计编程:人力资源管理

来源:百度知道 编辑:UC知道 时间:2024/05/19 12:58:48
人事管理系统
(1)设计一个人事管理的People(人员)类.考虑到通用性,这里只抽象出所有类型人员都具有的属性:name(姓名),number(编号),sex(性别),birthday(出生日期),id(身份证号)等等.其中"出生日期"定义为一个"日期"类(具有属性:year(年),month(月),date(日)内嵌子对象.用成员函数实现对人员信息的录入和显示等必要功能操作(自己独立思考设计).要求包括:构造函数和析构函数,拷贝构造函数,内联成员函数.
(2)从People(人员)类派生出student(学生)类,添加属性:班号char chassNO〔7〕;从People类派生出teacher(教师)类,添加属性:职务char principalship〔11〕,部门char department〔21〕.从student类中派生出graduate(研究生)类,添加属性:专业char subject〔21〕,导师teacher adviser(为(教师类内嵌子对象);从graduate类和teacher类派生出TA(助教生)类,注意虚基类的使用,重载相应的成员函数.
(3)对People类重载”==”运算符和”=”运算符,”==”运算符判断两个People类对象的id属性是否相等;”=”运算符实现People类对象的赋值操作.
(4)定义一个对People类对象数组按编号排序的函数,一个按编呈查找people对象的函数.
(5)设计主控模块程序.
(6)对给出的程序源代码要给出各部分的详细注释.
(7)自己根据能力及需要添加相应功能模块,增强模拟系统功能.

clear all
close all
%channel system order
sysorder = 5 ;
% Number of system points
N=2000;
inp = randn(N,1);
n = randn(N,1);
[b,a] = butter(2,0.25);
Gz = tf(b,a,-1);
%This function is submitted to make inverse Z-transform (Matlab central file exchange)
%The first sysorder weight value
%h=ldiv(b,a,sysorder)';
% if you use ldiv this will give h :filter weights to be
h= [0.0976;
0.2873;
0.3360;
0.2210;
0.0964;];
y = lsim(Gz,inp);
%add some noise
n = n * std(y)/(10*std(n));
d = y + n;
totallength=size(d,1);
%Take 60 points for training
N=60 ;
%begin of algorithm
w = zeros ( sysorder , 1 ) ;
for n = sysorder : N
u = inp(n:-1:n-sysorder+1) ;
y(n)= w' * u;
e(n) = d(n) - y(n) ;
% Start with big mu for speeding the convergence then slow down to reach the correct weights
if n < 20