C++人员信息管理系统Word下载.docx
《C++人员信息管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《C++人员信息管理系统Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
![C++人员信息管理系统Word下载.docx](https://file1.bdocx.com/fileroot1/2023-2/3/c965015d-3d81-4e0b-9581-5ff00333e1ca/c965015d-3d81-4e0b-9581-5ff00333e1ca1.gif)
ﻩlist.CloseList();
return 1;
ﻩ}
return0;
2.//人员信息定义:
classPerson
//编号、姓名、级别、月薪
public:
charNumber[20];
ﻩcharName[20];
ﻩintStatus;
ﻩfloatSalery;
int ID;
public:
friendostream& operator〈<
(ostream&
os,Personpe);
};
class Worker:
publicPerson//定义普通员工派生类,
public:
//由计算每月工资,设置工时,读出ID号码等功能
ﻩWorker();
voidPay3();
ﻩvoid Sethours();
ﻩvoid get(charnum[],char name[]);
ﻩvoidgetid(int id);
voidinsert();
private:
float InCome;
ﻩint basicweage;
floatRate;
ﻩintHours;
classSeller:
public Person//定义营销人员派生类
public:
//由计算每月工资,设置工时,读出ID号码等功能
Seller();
ﻩvoidget(charnum[],charname[] );
ﻩvoid getid(intid);
voidinsert();
voidPay2();
ﻩvoidSethours();
private:
ﻩintbasicweage;
float Rate;
intHours;
floatInCome;
class Manager:
publicPerson //定义部门经理派生类
public:
//由计算每月工资,设置工时,读出ID号码等功能
Manager();
voidget(char num[],charname[]);
voidgetid(int id);
voidinsert();
void Pay1();
private:
intbasicweage;
ﻩfloatInCome;
};
class Personlist //定义了一个全部人员链表类,并集合了各种操作
ﻩPersontest;
Persontest1;
std:
list〈Person>
personlist;
ﻩstd:
list<
Person>:
iteratorPtr;
public:
voidReadList();
//从文件中读出list成员到程序的list容器中
ﻩvoid Find(charnum[]);
//查找员工数据
ﻩvoid CountAll();
//计算每个等级员工的人数和总人数
voidPrintList();
//输出所有员工数据
ﻩvoid CloseList();
//关闭LIST并写入记事本
void ClearList();
//清空数据表
voidDeletePerson(charnum[]);
//删除信息;
ﻩvoidModify(char num[]);
//修改成员数据
intGetId();
//获取ID
ﻩvoidFileRead();
//将更新后的文本写入记事本
ﻩintFindSameNum(charnum[]);
//判断是否有重名现象
classdecorate //定义了所有控制台输出信息类,以及前端密码进入功能
{
public:
decorate();
ﻩvoidInfo_And_Chose();
//密码判断
ﻩvoidAccess();
//密码进入
ﻩvoidInfo_of_Operate();
ﻩchar Getch();
//登录用户判断
ﻩvoidInsert_of_Info();
private:
ﻩcharcode[10];
ﻩcharMastercode[10];
ﻩcharGuestcode[10];
ﻩchar way;
ﻩcharch;
class Exception //异常类
public:
intCheckNnumber(char num[]);
ﻩintCheckName(charn[]);
ﻩintCheckSameNum(charnum[]);
3.进入系统:
voiddecorate:
Info_And_Chose()
cout〈〈"
**欢迎进入C++课程设计之企业人事管理系统**”〈〈endl;
cout<
〈"**本小组成员有:
**"<<
endl;
ﻩwhile(1)
ﻩcout〈<"
请选择进入方式:
(游客入口'
G’,管理员入口’M’)”〈<endl;
ﻩﻩcin>
>
way;
ﻩif(way==’G’)
ﻩﻩ{
ﻩﻩch='
G'
ﻩﻩAccess();
break;
ﻩﻩ}
ﻩelseif(way=='M’)
{
ﻩﻩﻩch=’M’;
ﻩAccess();
ﻩﻩbreak;
ﻩelse
ﻩﻩcout〈<
”您未正确的进行输入!
”<
endl;
ﻩ
4.人员信息的录入、修改和删除
#include ”Main_Class_H.h"
voidPersonlist:
ReadList() //所有记录单元全部放在链表中,方便操作ﻩ
ﻩifstream filein;
filein.open("
tom.txt”);
ﻩif (!
filein)
ﻩﻩcout<
”Cann'
topenthefile!
"〈〈endl;
ﻩreturn;
ﻩwhile(filein。
read((char*)&
test,sizeof(test)))
ﻩﻩpersonlist。
push_back(test);
ﻩfilein。
close();
ﻩ
}
voidPersonlist:
CountAll()
intcnt1=0,cnt2=0,cnt3=0,cnt4=0;
for (Ptr=personlist.begin();
Ptr!
=personlist。
end();
Ptr++)
ﻩ{
ﻩif(Ptr-〉Status==1)
ﻩcnt1++;
ﻩelseif(Ptr—>
Status==2)
ﻩﻩcnt2++;
ﻩelse
ﻩcnt3++;
cnt4++;
cout〈〈"
*************************”;
ﻩcout〈<
公司中经理成员的人数是:
〈cnt1〈<
"人***************************”<〈endl;
cout〈<
*************************"
ﻩcout〈<
公司中营销成员的人数是:
<cnt2<
人***************************"
〈<
endl;
ﻩcout〈〈"*************************”;
cout<<”公司中普通工人的人数是:
cnt3<
〈"
人***************************"
ﻩcout〈〈”*************************"
cout〈〈”公司中全部成员的人数是:
"〈〈cnt4<
”人***************************”〈〈endl;
voidPersonlist:
Find(char num[])
cout<
********************************员工数据信息表**********"
ﻩcout<
"***********************"
<〈endl;
cout<
〈endl;
ﻩcout<
endl;
cout<
〈”——--———--—-——---——-----—-—--—--———---———-----—-----——-——---—---————-——-———-——-—"
〈<endl;
ﻩcout〈〈”ID号码"
〈〈setw(15)〈〈”员工编号”<
setw(18)〈〈”等级";
cout〈〈setw(18)〈<
"姓名"
setw(12)<
工资”〈〈endl;
cout<
〈”-—----—-—--——-———--—--———-————--——-----—-———-——-——--—--------———-—---—-————--—-"
<<endl;
for (Ptr=personlist。
begin();
Ptr!
=personlist。
end();
)
ﻩ{
ﻩif(!
strcmp(Ptr-〉Number,num))
ﻩ{
ﻩﻩcout〈〈*Ptr;
ﻩﻩﻩPtr++;
ﻩ}
ﻩﻩelse
ﻩPtr++;
int Personlist:
FindSameNum(char num[])
ifstreamfilein;
filein。
open(”tom。
txt”);
ﻩwhile(filein.read((char*)&
test,sizeof(test)))
personlist.push_back(test);
close();
ﻩfor(Ptr=personlist.begin();
Ptr!
=personlist。
end();
{
if(!
strcmp(Ptr—>
Number,num))
{
ﻩﻩﻩcout〈<
*Ptr;
ﻩﻩﻩPtr++;
ﻩreturn 1;
}
ﻩ{
ﻩPtr++;
return0;
voidPersonlist:
PrintList()//输出所有员工数据
{
cout<
<"
********************************员工数据信息表**********”;
cout<<
”***********************”〈<endl;
ﻩcout<〈endl;
ﻩcout<〈endl;
cout〈<
”—-———---——--————---—----—--————————---—-—------——-——-—-——-—--——-——-————————-——-"
<endl;
cout〈〈”ID号码”<〈setw(15)<
”员工编号”〈<
setw(18)<
等级”;
setw(18)〈<"
姓名”〈〈setw(12)<
〈”工资”<
cout〈〈"—-——-—------—-—-—---——----——---—-—--—-————--—--------—---——------————-—----———-”〈<
for(Ptr=personlist.begin();
Ptr!
=personlist。
end();
Ptr++)
ﻩcout〈〈*Ptr;
void Personlist:
CloseList()
{
ﻩofstreamfileout("tom。
txt"
);
if (!
fileout)
ﻩcout<
〈"Cann'
topenthefile!
”<<
endl;
return;
for(Ptr=personlist。
begin();
Ptr!
=personlist.end();
Ptr++)
fileout.write((char*)&(*Ptr),sizeof(*Ptr));
ﻩFileRead();
ﻩpersonlist.clear();
voidPersonlist:
ClearList()
ReadList();
personlist.clear();
ﻩCloseList();
void Personlist:
DeletePerson(char num[])//删除信息
for(Ptr=personlist。
begin();
=personlist.end();
{
ﻩﻩif(!
strcmp(Ptr—>
Number,num))
ﻩﻩcout〈〈*Ptr;
ﻩpersonlist。
erase(Ptr++);
ﻩﻩﻩcout<
〈"已经删除!
ﻩelse
ﻩﻩPtr++;
intPersonlist:
GetId()
ﻩinti;
ﻩﻩReadList();
ﻩif(personlist.size()==0)
return1;
ﻩfor(Ptr=personlist。
Ptr!
=personlist.end();
)
ﻩﻩi=++(Ptr++)—〉ID;
ﻩﻩpersonlist.clear();
returni;
voidPersonlist:
Modify(char num[])
chartname[20];
chartnum[20];
inttstatus;
int choise;
ReadList();
ﻩfor (Ptr=personlist.begin();
Ptr!
=personlist.end();
ﻩif(!
strcmp(Ptr—〉Number,num))
ﻩﻩ{
cout〈〈"1.修改名字;
”〈<endl;
ﻩﻩcout<
2.修改编号;
〈〈endl;
ﻩcout<
〈”3。
修改职位;
〈〈endl;
ﻩﻩcin〉>
choise;
ﻩswitch(choise)
ﻩﻩ{
ﻩﻩcase1:
ﻩﻩcout<<
”输入新名字:
ﻩﻩﻩcin〉>
tname;
strcpy(Ptr-〉Name,tname);
ﻩﻩﻩcout〈<
”修改成功!
〈<endl;
ﻩbreak;
ﻩcase2:
ﻩﻩcout<
”输入新编号:
〈endl;
ﻩcin>
tnum;
ﻩstrcpy(Ptr-〉Number,tnum);
ﻩﻩcout<
修改成功!
”<〈endl;
ﻩbreak;
ﻩcase3:
ﻩcout<
”输入新职位:
ﻩﻩcin〉>
tstatus;
ﻩPtr—〉Status=tstatus;
ﻩcout<
〈endl;
ﻩﻩbreak;
ﻩdefault:
ﻩﻩcout<<"
请输入以上所对应的编号:
”〈<
break;
ﻩﻩ}
ﻩbreak;
}
ﻩelse
Ptr++;
ﻩif(Ptr==personlist.end())
cout〈<
无此编号!
〈〈endl;
CloseList();
void Personlist:
FileRead()
ofstream dataout;
dataout.open(”DataList.txt"
ﻩif(!
dataout)
ﻩﻩcout〈<
”Cann’t openthefile!
”〈〈endl;
ﻩreturn ;
ﻩintlen1=0,len2=0;
ﻩcharch;
for(Ptr=personlist.begin();
Ptr!
=personlist。
end();
Ptr++)
{
len1=strlen(Ptr—>
Number);
ﻩlen2=strlen(Ptr—〉Name);
ﻩfor(inti=0;
i〈len1;
i++)
ﻩﻩdataout。
put(*(Ptr->
Number+i));
ﻩfor(i=0;
i<8;
i++)
ﻩﻩdataout。
put('
'
);
ch=(Ptr—>Status+’0'
ﻩﻩdataout.put(ch);
for(i=0;
i〈8;
i++)
ﻩdataout。
put(’'
ﻩﻩfor(intj=0;
j〈len2;
j++)
ﻩdataout。
put(*(Ptr—〉Name+j));
ﻩﻩdataout。
put('
\n'
dataout。
close();