人员信息管理系统课程设计报告Word文档格式.docx
《人员信息管理系统课程设计报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《人员信息管理系统课程设计报告Word文档格式.docx(88页珍藏版)》请在冰豆网上搜索。
否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。
(6)统计功能
能根据多种参数进行人员的统计。
例如:
统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。
(7)保存功能
将当前系统中各类人员记录存入文件中。
(8)读取功能
将保存在文件中的人员信息读入到当前系统中,以供用户使用。
2总体设计
系统功能分析:
系统通过调用函数来实现信息添加、信息查询、信息显示、信息修改、信息删除、以及数据读取保存文件等功能。
add()函数用于录入信息;
search()函数用来查询信息;
show()函数用来显示信息;
alter()函数用来修改信息;
del()函数用来删除信息;
stat()函数用来统计信息read()函数用于将文件中的数据读取到内存中;
save()函数用于将内存中的信息存入文件内;
主函数main()用于调用这些函数。
系统功能模块划分与设计:
系统定义了manger类、technician类、salesman类、salesmanger类这四个类,定义了add()、search()、show()、alter()、del()、stat()、read()、save()、input()、output()等函数来实现系统所需功能。
系统功能模块图:
类的设计
(1)employee类(抽象类)的设计
图employee类
(2)经理类的设计
图经理类
(3)技术人员类的设计
图技术人员类
(4)销售人员类的设计
图销售人员类
(5)成绩类的设计
图销售经理类
(6)各个类的关系描述
3详细设计及实现
employee类(抽象类)的实现
#include<
string>
usingnamespacestd;
classemployee
{
public:
employee(void);
~employee(void);
virtualvoidadd()=0;
virtualvoidsearch()=0;
virtualvoidshow()=0;
virtualvoidalter()=0;
virtualvoiddel()=0;
virtualvoidstat()=0;
virtualvoidsave()=0;
virtualvoidread()=0;
virtualvoidinput()=0;
virtualvoidoutput()=0;
protected:
stringnumber;
stringname;
stringsex;
stringdepartment;
stringrank;
floatsalary;
};
经理类的实现
#include"
"
classmanager:
virtualpublicemployee
{
public:
manager(void);
~manager(void);
voidadd();
voidsearch();
voidshow();
voidalter();
voiddel();
voidstat();
voidsave();
voidread();
voidinput();
voidoutput();
};
#include<
iostream>
fstream>
iomanip>
usingnamespacestd;
constintMAX=100;
managerM[MAX];
intstatictop1=0;
manager:
:
manager(void)
}
~manager(void)
voidmanager:
input()
cout<
<
输入编号:
endl;
cin>
>
number;
输入姓名:
name;
输入性别:
sex;
输入部门:
department;
输入级别:
rank;
输入固定月薪:
salary;
output()
{cout<
number<
\t"
name<
sex<
department<
rank<
salary<
read()
top1=0;
system("
cls"
);
ifstreaminflie("
经理.txt"
ios:
in);
if(!
inflie)
{
cout<
打开失败!
return;
}
inti=0;
while(inflie>
M[i].number>
M[i].name>
M[i].sex>
M[i].department>
M[i].rank>
M[i].salary)
i++;
top1=i;
();
save()
ofstreamoutflie("
out);
outflie)
inti;
for(i=0;
i<
top1;
i++)
outflie<
M[i].number<
M[i].name<
M[i].sex<
M[i].department<
M[i].rank<
M[i].salary<
保存成功!
add()
read();
if(top1>
=MAX)
人员已满"
输入要添加的编号:
stringn;
n;
for(inti=0;
if(n==M[i].number)
该编号的人员已存在"
managerm;
请再次输入新添加人员的信息"
是否确认添加1、是2、否"
inta;
a;
if(a==1)
M[top1]=m;
top1=top1+1;
save();
else
放弃添加"
search()
if(top1==0)
当前系统没有储存记录!
intchoice;
请选择查找方式:
1、按编号查找2、按姓名查找0、退出"
choice;
switch(choice)
case1:
{
cout<
请输入要查找的编号:
stringnum;
cin>
num;
for(inti=0;
{
if(M[i].number==num)
{
cout<
编号"
姓名"
性别"
部门"
级别"
月薪"
M[i].output();
return;
}
}
查无此人!
};
break;
case2:
请输入要查找的姓名"
stringname;
if(M[i].name==name)
case0:
default:
cout<
输入错误!
请输入0~3的数字"
system("
pause"
search();
show()
无数据!
M[i].output();
alter(