推荐 C++课程设计 教职工信息管理系统源代码 精品Word下载.docx
《推荐 C++课程设计 教职工信息管理系统源代码 精品Word下载.docx》由会员分享,可在线阅读,更多相关《推荐 C++课程设计 教职工信息管理系统源代码 精品Word下载.docx(21页珍藏版)》请在冰点文库上搜索。
friendostream&
operator<
<
(ostream&
output,Telem&
friendintoperator-(Time&
t1,Time&
t2);
classPeople:
virtualpublicTelem//雇员类
People();
virtualvoidAddF()=0;
//添加
virtualvoidAddall()=0;
virtualvoidAdd()=0;
virtualvoidDisplay();
//输出数组的内容
virtualvoidDisplaypart(charp[]);
virtualvoidFindname(charn[]);
virtualvoidFindyear(int);
virtualvoidDel(charn[])=0;
virtualvoidDel(int);
protected:
Telemdata[maxsize];
Timenow;
intlength;
classTeacher:
virtualpublicPeople//派生虚基类
virtualvoidAddF();
virtualvoidAddall();
virtualvoidAdd();
virtualvoidDel(inti);
virtualvoidDel(charn[]);
classworker:
People:
:
People()//系统自动生成的构造函数
length=0;
now.year=2010;
now.month=7;
now.day=6;
}
voidPeople:
Display()//引用
inti;
for(i=0;
i<
length;
i++)
cout<
data[i];
Displaypart(charp[])//引用数组
inti,c;
if(strcmp(data[i].wage,p)==0)
{
"
输出选择姓名1性别2编号3工资4出生日期5工作时间6年龄7系别8退出选择9"
endl;
while(cin>
c)
switch(c)
{case1:
姓名:
data[i].name<
break;
case2:
性别:
data[i].sex<
case3:
编号:
data[i].num<
case4:
工资:
data[i].wage<
case5:
出生日期:
data[i].birthtime.year<
"
data[i].birthtime.month<
data[i].birthtime.day<
case6:
工作时间:
data[i].worktime.year<
data[i].worktime.month<
data[i].worktime.day<
case7:
年龄:
data[i].year<
case8:
系别:
data[i].department<
case9:
gotoloop;
default:
cout<
操作错误......"
}
loop:
;
Findname(charn[])//引用
if(strcmp(data[i].name,n)==0)//对象引用
Findyear(inty)
if(data[i].year==y)
Del(inti)
intj;
if(i<
1||i>
length)
不存在第"
个元素"
for(j=i;
j<
j++)
data[j-1]=data[j];
length--;
voidworker:
AddF()
intflag=0;
iofile.open("
worker_information.txt"
ios:
in|ios:
binary);
//文件的打开与关闭
while(iofile.seekg(ios:
cur))
iofile.seekg(length*sizeof(data[length]),ios:
beg);
iofile.read((char*)&
data[length],sizeof(data[length]));
//文件的随机访问
length++;
if(length==maxsize)
{
flag=1;
}
People:
Del(length);
添加人员信息成功......"
if(1==flag)
人员信息储存空间已满......"
iofile.close();
Addall()
charans;
out|ios:
do
cin>
data[length];
data[length].year=now-data[length].birthtime;
iofile.write((char*)&
contine(Y|N)?
ans;
}while('
y'
==ans||'
Y'
==ans);
loop:
Add()
app|ios:
Display()
★☆★☆★☆★☆★☆工人信息★☆★☆★☆★☆★☆"
if(0==length)
cout<
无......"
Del(charn[])
inti,j,k;
if(strcmp(data[i].name,n)==0)
k=i+1;
if(k<
1)
不存在姓名"
n<
的人员信息"
for(j=k;
删除人员信息成功......"
删除成功......"
voidTeacher:
Teacher_information.txt"
while(iofile.seekg(sizeof(data[length]),ios:
if(iofile.seekg(length*sizeof(data[length]),ios:
beg))
else
break;
★☆★☆★☆★☆★☆教师信息★☆★☆★☆★☆★☆"
1)cout<
istream&
T)
inty,m,d;
请输入姓名(以*结尾):
input.getline(T.name,20,'
*'
);
请输入性别(以*结尾男或女):
input.getline(T.sex,10,'
编号(以*结尾):
input.getline(T.num,20,'
工资(以*结尾):
input.getline(T.wage,20,'
请输入出生日期:
input>
y>
m>
d;
T.birthtime.year=(y>
=1900&
&
y<
=2100)?
y:
1900;
T.birthtime.month=(m>
=1&
m<
=12)?
m:
1;
T.birthtime.day=(d>
d<
=31)?
d:
请输入系别(以*结尾):
input.getline(T.department,20,'
参加工作时间:
T.worktime.year=(y>
T.worktime.month=(m>
T.worktime.day=(d>
returninput;
ostream&
姓名:
output<
T.name<
性别:
T.sex<
编号:
T.num<
工资:
T.wage<
出生日期:
T.birthtime.year<
T.birthtime.month<
T.birthtime.day<
系别:
T.department<
T.worktime.year<
T.worktime.month<
T.worktime.day<
年龄:
T.year<
returnoutput;
intoperator-(Time&
t2)
returnt1.year-t2.year;
voidShowmenu()
欢迎进入教职工信息管理系统"
endl<
2010年7月7日发布"
版权所有:
swa"
★☆★☆★☆★☆★人员信息管理系统★☆★☆★☆★☆★"
★1-从键盘录入全部人员记录☆"
☆2-增加一位人员记录★"
★3-显示全部人员记录☆"
☆4-按系别输出人员信息(可选)★"
★5-按姓名或年龄检索所有信息☆"
☆6-显示菜单目录★"
★7-结束程序运行☆"
★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆"
intmain()
Teachertea;
workerstu;
People*pt=&
tea;
People*ps=&
stu;
intc=0,k=0,l=0,i=0;
charnam[20],part[20];
Showmenu();
for(;
)
请根据菜单执行相应操作:
c;
case1:
{
★☆★☆★☆★录入全部人员记录★☆★☆★☆★"
★☆★☆★从键盘输入教师信息☆★☆★☆"
pt->
Addall();
★☆★☆★☆★☆★☆从键盘输入工人信息★☆★☆★☆★☆★☆"
ps->
}
★☆★☆★☆★☆从键盘增加一位人员记录★☆★☆★☆★☆"
★☆★☆★☆★☆教师操作请按1工人操作请按2★☆★☆★☆★☆"
k;
if(1==k)
Add();
elseif(2==k)
操作错误..."
★☆★☆★☆★☆★☆显示全部人员记录★☆★☆★☆★☆★☆"
Display();
★☆★☆★☆★☆★☆按部门输出人员信息(可选)★☆★☆★☆★☆★☆"
co