人员管理系统.docx

上传人:b****9 文档编号:25332953 上传时间:2023-06-07 格式:DOCX 页数:65 大小:133.51KB
下载 相关 举报
人员管理系统.docx_第1页
第1页 / 共65页
人员管理系统.docx_第2页
第2页 / 共65页
人员管理系统.docx_第3页
第3页 / 共65页
人员管理系统.docx_第4页
第4页 / 共65页
人员管理系统.docx_第5页
第5页 / 共65页
点击查看更多>>
下载资源
资源描述

人员管理系统.docx

《人员管理系统.docx》由会员分享,可在线阅读,更多相关《人员管理系统.docx(65页珍藏版)》请在冰豆网上搜索。

人员管理系统.docx

人员管理系统

C++面向对象程序设计

课程设计报告

课程名称C++面向对象程序设计

课题名称公司人员信息管理系统

专业

班级

学号

姓名

指导教师

2013年12月25日

(一)、课程设计题目

公司人员信息管理系统

(2)、目的与要求:

1、目的:

(1)要求学生达到熟练掌握C++语言的基本知识和技能;

(2)基本掌握面向对象程序设计的基本思路和方法;

(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。

2、基本要求:

(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;

(2)要求在设计的过程中,建立清晰的类层次;

(3)在系统中至少要定义四个类,每个类中要有各自的属性和方法;

(4)在系统的设计中,至少要用到面向对象的一种机制。

3、创新要求:

在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。

(三)、设计方法和基本原理:

1.功能要求

(1)添加功能

程序能够任意添加上述四类人员的记录,可提供选择界面供用户选择所要添加的人员类别,要求人员的编号要唯一,如果添加了重复编号的记录时,则提示用户数据添加重复并取消添加。

(2)查询功能

可根据编号、姓名等信息对已添加的记录进行查询。

如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

(3)显示功能

可显示当前系统中所有记录。

(4)修改功能

可根据查询结果对相应的记录进行修改,修改时注意编号的唯一性。

(5)删除功能

对已添加的人员记录进行删除。

如果当前系统中没有相应的人员记录,则提示“记录为空!

”并返回操作;否则输入要删除的人员的编号或姓名,根据所输入的信息删除该人员记录,如果没有找到该人员信息,则提示相应的记录不存在。

(6)统计功能

能根据多种参数进行人员的统计。

例如:

统计四类人员数量以及总数,统计男、女员工的数量,统计平均工资、最高工资、最低工资等。

(7)保存功能

将当前系统中各类人员记录存入文件中。

(8)读取功能

将保存在文件中的人员信息读入到当前系统中,以供用户使用。

在完成以上基本功能的基础上,可自行进行扩展或完善。

2、问题的解决方案:

根据系统功能要求,可以将问题解决分为以下步骤:

1)应用系统分析,建立该系统的功能模块框图以及界面的组织和设计;

2)分析系统中的各个实体以及它们之间的关系;

3)根据问题描述,设计系统的类层次;

4)完成类层次中各个类的描述;

5)完成类中各个成员函数的定义;

6)完成系统的应用模块;

7)功能调试;

8)完成系统总结报告。

1.系统需求分析

系统设计的目的与意义:

现在的公司越做越大,公司的人员数量越来越多,因此需要一个公司人员管理系统来对公司的人员进行管理。

系统功能需求:

本系统有五个类:

Stuff类、Manager类、Salesman类、SalesManager类、Technicist类,存储基本信息、经理信息、销售人员信息、销售经理信息及技术人员信息。

1.基础信息的添加功能

程序能够任意添加经理信息、销售信息、销售经理信息和技术人员信息。

2.修改功能

对已添加的记录(经理信息、销售信息、销售经理信息和技术人员信息)进行修改。

3.删除功能

对已添加的记录(经理信息、销售信息、销售经理信息和技术人员信息)进行删除。

如果当前系统中没有相应的记录,则提示“记录为空!

”并返回操作;否则输入要删除的编号对该记录进行删除,如果没有找到,则提示相应的记录不存在。

4.查询功能

①可根据职位的编号查询某职位的所有职员信息。

②可根据职员的编号查询某职员的所有信息。

如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。

5.保存功能

将当前系统中各类记录存入文件中。

6.读取功能

将保存在文件中的信息读入到当前系统中,以供用户使用。

2.总体设计

系统功能分析:

系统通过调用函数来实现信息录入、信息修改、信息删除、信息查询以及数据保存文件等功能。

add()函数用于录入信息;modify()函数用来修改信息;del()函数用来修改信息;look()函数用来搜索职员信息;read()函数用于将文件中的数据读取到内存中;save()函数用于将内存中的信息存入文件内;count用于统计职员总数;show()显示职员信息;主函数main()用于调用这些函数。

系统功能模块划分与设计:

系统定义了Stuff类、Manager类、Salesman类、SalseManager类这五个类,定义了add()、modify()、del()、read()、save()、look()、count()、show()、等函数来实现系统所需功能。

系统功能模块图:

类的设计

(1)Stuff类(抽象类)的设计:

(2)经理类的设计:

(3)销售人员类的设计:

(4)销售经理类的设计:

(5)技术人员类的设计:

(6)各个类的关系描述:

3.详细设计及实现

类(抽象类)的实现

classStuff

{public:

virtualvoidread()=0;

virtualvoidadd()=0;

virtualvoidlook()=0;

virtualvoidshow()=0;

virtualvoidmodify(int)=0;

virtualvoiddel(int)=0;

virtualvoidcount()=0;

virtualvoidsave()=0;

virtualvoidInput()=0;

virtualvoidOutput()=0;

intnumber;

charname[100];

charsex[10];

chardepartment[10];

charrank[10];

floatmonpay;};

经理类的实现

#include""

classManager:

publicStuff

{public:

voidread();

voidadd();

voidlook();

voidshow();

voidmodify(int);

voiddel(int);

voidcount();

voidsave();

voidInput()

{cout<<"请输入经理的编号:

\n";

cin>>number;

cout<<"姓名:

\n";

cin>>name;

cout<<"性别:

\n";

cin>>sex;

cout<<"所在部门:

\n";

cin>>department;

cout<<"级别:

\n";

cin>>rank;

cout<<"固定工资:

\n";

cin>>pay;

monpay=pay;}

voidOutput()

{cout<

cout<

protected:

floatpay;};

voidManager:

:

read()

{fstreammanagerfile("经理信息管理.dat",ios:

:

in|ios:

:

out);managerfile>>m1[count_Manager].number>>m1[count_Manager].name>>m1[count_Manager].sex>>m1[count_Manager].department>>m1[count_Manager].rank>>m1[count_Manager].monpay;

while(!

())

{managerfile>>m1[count_Manager].number>>m1[count_Manager].name>>m1[count_Manager].sex>>m1[count_Manager].department>>m1[count_Manager].rank>>m1[count_Manager].monpay;

count_Manager++;}

();}

voidManager:

:

add()

{

m1[count_Manager].number=number;

strcpy(m1[count_Manager].name,name);

strcpy(m1[count_Manager].sex,sex);

strcpy(m1[count_Manager].department,department);

strcpy(m1[count_Manager].rank,rank);

m1[count_Manager].monpay=monpay;

m1[count_Manager].number=number;

count_Manager++;

}

voidManager:

:

look()

{

if(count_Manager==0)

{

cout<<"对不起,没有相关记录!

"<

return;

}

intchoice;

cout<<"请选择查找方式:

1、编号查找2、姓名查找"<

cin>>choice;

while(choice!

=1&&choice!

=2)

{cout<<"请输入正确的选择:

";cin>>choice;}

switch(choice)

{

case1:

{

cout<<"请输入要查找经理的编号:

";

intnumber;

cin>>number;

for(inti=0;i

{if(m1[i].number==number)

{

m1[i].Output();

return;

}

}

cout<<"没有相关人员!

"<

break;

}

case2:

{

cout<<"请输入要查找经理的姓名:

";

charname[100];

cin>>name;

for(inti=0;i

{

if(strcmp(m1[i].name,name)==0)

{

m1[i].Output();

return;

}

}

cout<<"没有相关人员!

"<

break;

}

default:

cout<<"无此选项,请重试!

"<

}

}

voidManager:

:

show()

{

for(inti=0;i<=count_Manager-1;i++)

m1[i].Output();

}

voidManager:

:

modify(intindex)

{

m1[index-1].number=number;

strcpy(m1[index-1].name,name);

strcpy(m1[index-1].sex,sex);

strcpy(m1[index-1].department,department);

strcpy(m1[index-1].rank,rank);

m1[index-1].monpay=monpay;

}

voidManager:

:

del(intindex)

{

for(inti=index;i<=count_Manager-1;i++)

{

m1[i-1].number=m1[i].number;

strcpy(m1[i-1].name,m1[i].name);

strcpy(m1[i-1].sex,m1[i].sex);

strcpy(m1[i-1].department,m1[i].department);

strcpy(m1[i-1].rank,m1[i].rank);

m1[i-1].monpay=m1[i].monpay;

}

count_Manager--;

}

voidManager:

:

count()

{

intsum=0;

intmale=0,female=0;

for(inti=0;i

{

if(!

strcmp(m1[i].sex,"男"))

male++;

if(!

strcmp(m1[i].sex,"女"))

female++;

sum++;

}

cout<<"总的人数是:

"<

cout<<"男的人数是:

"<

cout<<"女的人数是:

"<

}

voidManager:

:

save()

{

ofstreammanagerfile;

("经理信息管理.dat");

for(inti=0;i<=count_Manager-1;i++)

managerfile<

();

}

销售人员类的实现

#include""

classSalesman:

publicStuff

{

public:

voidread();

voidadd();

voidlook();

voidshow();

voidmodify(int);

voiddel(int);

voidcount();

voidsave();

voidInput()

{

cout<<"请输入销售人员的编号:

\n";

cin>>number;

cout<<"姓名:

\n";

cin>>name;

cout<<"性别:

\n";

cin>>sex;

cout<<"所在部门:

\n";

cin>>department;

cout<<"级别:

\n";

cin>>rank;

cout<<"销售额和提成百分比:

\n";

cin>>market>>rate;

monpay=market*rate;

}

voidOutput()

{

cout<

cout<

}

protected:

floatmarket;

floatrate;

};

voidSalesman:

:

read()

{

fstreamSalesmanfile("销售人员信息管理.dat",ios:

:

in|ios:

:

out);

Salesmanfile>>s1[count_Salesman].number>>s1[count_Salesman].name>>s1[count_Salesman].sex>>s1[count_Salesman].department>>s1[count_Salesman].rank>>s1[count_Salesman].monpay;

while(!

())

{Salesmanfile>>s1[count_Salesman].number>>s1[count_Salesman].name>>s1[count_Salesman].sex>>s1[count_Salesman].department>>s1[count_Salesman].rank>>s1[count_Salesman].monpay;

count_Salesman++;

}

();

}

voidSalesman:

:

add()

{

s1[count_Salesman].number=number;

strcpy(s1[count_Salesman].name,name);

strcpy(s1[count_Salesman].sex,sex);

strcpy(s1[count_Salesman].department,department);

strcpy(s1[count_Salesman].rank,rank);

s1[count_Salesman].monpay=monpay;

count_Salesman++;

}

voidSalesman:

:

look()

{

if(count_Salesman==0)

{

cout<<"对不起,没有相关记录!

"<

return;

}

intchoice;

cout<<"请选择查找方式:

1、编号查找2、姓名查找"<

cin>>choice;

while(choice!

=1&&choice!

=2)

{cout<<"请输入正确的选择:

";cin>>choice;}

switch(choice)

{

case1:

{

cout<<"请输入要查找销售人员的编号:

";

intnumber;

cin>>number;

for(inti=0;i

{if(s1[i].number==number)

{

s1[i].Output();

return;

}

}

cout<<"没有相关人员!

"<

break;

}

case2:

{

cout<<"请输入要查找销售人员的姓名:

";

charname[100];

cin>>name;

for(inti=0;i

{

if(strcmp(s1[i].name,name)==0)

{

s1[i].Output();

return;

}

}

cout<<"没有相关人员!

"<

break;

}

default:

cout<<"无此选项,请重试!

"<

}

}

voidSalesman:

:

show()

{

for(inti=0;i<=count_Salesman-1;i++)

s1[i].Output();

}

voidSalesman:

:

modify(intindex)

{

s1[index-1].number=number;

strcpy(s1[index-1].name,name);

strcpy(s1[index-1].sex,sex);

strcpy(s1[index-1].department,department);

strcpy(s1[index-1].rank,rank);

s1[index-1].monpay=monpay;

}

voidSalesman:

:

del(intindex)

{

for(inti=index;i<=count_Salesman-1;i++)

{

s1[i-1].number=s1[i].number;

strcpy(s1[i-1].name,s1[i].name);

strcpy(s1[i-1].sex,s1[i].sex);

strcpy(s1[i-1].department,s1[i].department);

strcpy(s1[i-1].rank,s1[i].rank);

s1[i-1].monpay=s1[i].monpay;

}

count_Salesman--;

}

voidSalesman:

:

count()

{

intsum2=0;

intmale2=0,female2=0;

for(inti=0;i

{

if(!

strcmp(s1[i].sex,"男"))

male2++;

if(!

strcmp(s1[i].sex,"女"))

female2++;

sum2++;

}

cout<<"总的人数是:

"<

cout<<"男的人数是:

"<

cout<<"女的人数是:

"<

}

voidSalesman:

:

save()

{

ofstreamSalesmanfile;

("销售人员信息管理.dat");

for(inti=0;i<=count_Salesman-1;i++)

Salesmanfile<

();

}

销售经理类的实现

classSalesmanager:

publicStuff

{

public:

floatpay1,market1,rate1;

voidread();

voidadd();

voidlook();

voidshow();

voidmodify(int);

voiddel(int);

voidcount();

voidsave();

voidInput()

{

cout<<"请输入销售经理的编号:

\n";

cin>>number;

cout<<"姓名:

\n";

cin>>name;

cout<<"性别:

\n";

cin>>

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

当前位置:首页 > 高等教育 > 艺术

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

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