公司人事管理系统

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(5)读取职员信息
(6)修改职员信息
(7)排序职员信息
(8)统计员工信息
(9)查找员工信息
(10)退出系统
【2】普通员工的功能
(1)显示职员信息
(2)公司职员状况
(3)查找职员信息
(4)退出系统
需求说明
(1随着现代社会的发展,公司的人员信息资料变化较大。在这个信息爆炸的时代再像曾经用笔那样记录人员信息效率较低,工作量较大。与此相对应的信息登记电子化则很好的解决此问题。故推出本人事管理系统令你摆脱往日与笔墨为伴的岁月。
{
flage=fla;//标记
sale_num=s_n;
sale_object=s_ob;
sale_numRate=;
sale_objectRate=;
salary=sale_objectRate*sale_object+sale_num*sale_numRate;
}
(4)ቤተ መጻሕፍቲ ባይዱ售经理(SalesManage)类
会出现错误或者乱码,若是改成char level[20],文件的读写能实现但是会有警告。*/
char sex;//性别
float salary;//工资
int flage;//标记
public:
employee(char nam[20],char lev[20],int nu,char se,int fla);
employee(){}
void show();
float Salary();
char * GetName();//提取姓名函数
int GetEmpNo();//提取编号
char * Level();//提取级别
char Sex();//提取性别
int GetFla();
friend class boss;
2总体设计
功能模块图
该系统按功能模块划分如下:
功能描述
(1)身份选择模块是公司人事管理系统的入口,是用来完成用户操作命令的接口,用户可以根据提示进入不同的身份的功能界面,进而实现不同用户的不同需求
(2)进入公司人员管理界面开始选择功能,如果系统读取到之前的保存的信息可以增删查改等常见功能,如没有则可初始化人员,然后进行相应操作。
employee(char nam[20],char lev[20],int nu,char se,int fla);
employee(){}
void show();
float Salary();
char * GetName();//提取姓名函数
int GetEmpNo();//提取编号
char * Level();//提取级别
:Technical(nam,lev,nu,se,fla,1)
{
strcpy(name,nam);///姓名
strcpy(level,lev);//等级
number=nu;//编号
sex=se;//性别
flage=fla;
salary=5000;
bonus=bon;
salary=salary+bonus;
float sale_object;//项目额
};
SalesManager::SalesManager(charnam[20],char lev[20],int nu,char se,int fla,float s_n,float s_ob):Manager(nam,lev,nu,se,fla)
{
strcpy(name,nam);///姓名
软件学院
课程设计报告
设计名称:C++课程设计
选题名称:人事管理系统
姓名:
学号:1515
专业班级:
系(院):
设计时间:
设计地点:
1需求分析
需求概述
设计一个公司人事管理系统,该系统主要实现了对老板和普通员工(游客)不同的操作。
【1】老板身份的功能:
(1)增加职员信息
(2)显示职员信息
(3)删除职员信息
(4)保存职员信息
salesman(){}
salesman(char nam[20],char lev[20],int nu,char se,int fla,float s_n,float s_ob);
void show();
};
salesman::salesman(char nam[20],char lev[20],int nu,char se,int fla,float s_n,float s_ob):employee(nam,lev,nu,se,fla)
系统流程图
老板功能流程图





员工功能流程图
是 否
是 否
是 否
否 是
3详细设计
类的设计
在;人事管理系统中共设计了六个类,分别是:文书(employee)类,销售员(salesman)类,销售经理(SalesManager)类,技术员(Technical)类,技术经理(TechnicalManager)类,老板(boss)类,employee类作为基类,其他类均由employee类派生。
(3)对人员信息的查询可以运用独一无二的编号快速查找职工。
(4)在删除商品信息模块中仅允许老板身份人员对职员信息进行删除操作
(5)修改职员信息中老板可以根据需要对某些职员进行提拔,调整工资等功能。·
(6)在统计职员信息功能中,统计出当前所有职员的一些信息。如男女职员的数目,某一职务的人数,所有职员数目等等功能。
class SalesManager: public Manager
{
public:
SalesManager(char nam[20],char lev[20],int nu,char se,int fla,float s_n,float s_ob);
void show();
protected:
float sale_num;//销售额
(2 本系统能记录常见的姓名,性别,编号,职务,月薪等基本工资。
对于录入的人员的信息都能用文件保存起来,并且可以任意对其进行删除,浏览,修改,增加等常见操作。
(3显示所有人员信息有一定规范的格式,以便老板以及其他员工的查看,分析等应用。
(4该管理系统是以大菜单下细分小菜单的方式进行工作,为不同用户提供清晰且不同菜单功能的使用提示,依据不同用户的不同选择进行不同操作任意切换
char Sex();//提取性别
int GetFla();
friend class boss;
employee *next;
};
(2)经理(Manager)类
class Manager:public employee//经理
{
public:
Manager(char nam[20],char lev[20],int nu,char se,int fla);
{
public:
TechnicalManager(char nam[20],char lev[20],int nu,char se,int fla,float bon);
protected:
float bonus;
};
TechnicalManager::TechnicalManager(char nam[20],char lev[20],int nu,char se,int fla,float bon)
{
strcpy(name,nam);///姓名
strcpy(level,lev);;//等级
number=nu;//编号
sex=se;//性别
flage=fla;
code_price=1000;
salary=C_n*code_price;
}
(6)技术经理(TechnicalManager)类
class TechnicalManager: public Technical
(7)在普通职员身份仅仅能查看公司特定信息,任何具有修改信息的功能模块,考虑到安全性均不能实现。
数据结构
在公司人事管理系统中主要的数据结构是职员的信息,包含职员姓名,职员性别,职员编号,职员工资,职员职务,等在处理过程中可以作为一个员工的不同类别进行处理,其中员工类别包括文书类,技术人员类,技术经理类,业务员类,业务员经理类等等。用户可以根据菜单提示对信息进行不同处理
}
(7)老板(boss)类
class boss
{
public:
void creat_head();//增
void creat();
void delete_inf();//删
void seach();
void show();
void sort();
void read_file();//读文件
int write_file();//写入文件*/
{
strcpy(name,nam);//姓名
strcpy(level,lev);//等级
number=nu;//编号
sex=se;//性别
salary=1500;
flage=fla;
}
char* employee::GetName()
{
return name;
}
(1)文书(employee)类
class employee//普通职工
{
protected:
char name[20];//姓名
int number;//编号
char level[20];//职务
char sex;//性别
float salary;//工资
int flage;//标记
public:
void modify();
void count();
protected:
employee *head;
};
画出类图
4 编 码
头文件
#include<iostream>
#include<cstring>
#include<fstream>
#include<>
#include<>
#include<>
int n=1515900;
{
protected:
float code_num;
float code_price;
public:
Technical(char nam[20],char lev[20],int nu,char se,int fla,float C_n);
};
Technical::Technical(char nam[20],char lev[20],int nu,char se,int fla,float C_n)
void pay();
void show();
};
Manager::Manager(char nam[20],char lev[20],int nu,char se,int fla):
employee(nam,lev,nu,se,fla)
{
salary=5000;
flage=fla;
}
(3)销售员(salesman)类
strcpy(level,lev);//等级
number=nu;//编号
sex=se;//性别
flage=fla;
sale_num=s_n;
sale_object=s_ob;
salary=salary+(sale_object+sale_num)*;
}
(5)技术人员(Technical)类
class Technical: public employee
using namespace std;//姓名,编号,级别,低薪,工资总额
void Register();
void Login();
void Correct();
光标位置函数
extern void gotoxy(int x, int y)
{
COORD pos = {x,y};
HANDLE hOut =
class salesman: public employee//销售员
{
protected:
float sale_num;//销售额
float sale_object;//项目额
float sale_numRate;//销售额提成率
float sale_objectRate;//项目额提成率
public:
employee *next;
};
void employee::show()
{
cout<<name<<"\t\t"<<number<<"\t\t"<<level<<"\t\t"<<sex<<"\t\t"<<salary<<endl;
}
employee::employee(char nam[20],char lev[20],int nu,char se,int fla)//初始化编号,基本工资,级别
GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOut, pos);
}
class employee//普通职工
{
protected:
char name[20];//姓名
int number;//编号
char level[20];/*如果用string类型文件读到职位这个数据时
相关文档
最新文档