职工信息管理系统外加课程设计报告.docx

上传人:b****5 文档编号:4671670 上传时间:2022-12-07 格式:DOCX 页数:31 大小:164.23KB
下载 相关 举报
职工信息管理系统外加课程设计报告.docx_第1页
第1页 / 共31页
职工信息管理系统外加课程设计报告.docx_第2页
第2页 / 共31页
职工信息管理系统外加课程设计报告.docx_第3页
第3页 / 共31页
职工信息管理系统外加课程设计报告.docx_第4页
第4页 / 共31页
职工信息管理系统外加课程设计报告.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

职工信息管理系统外加课程设计报告.docx

《职工信息管理系统外加课程设计报告.docx》由会员分享,可在线阅读,更多相关《职工信息管理系统外加课程设计报告.docx(31页珍藏版)》请在冰豆网上搜索。

职工信息管理系统外加课程设计报告.docx

职工信息管理系统外加课程设计报告

/*职工信息管理系统

建立一个职工信息管理系统,对于普通员工只能查询和修改自己的详细信息

和查询其他员工的简单信息,对于人事部门人员可以查询、修改、增加所有职工的详细信息

(但不包含修改工资),对于财务部门人员可以查询所有职工的详细信息,和修改职工的工资。

(1)进入系统需要密码验证

(2)具有简单的菜单功能。

(不同类型的员工的菜单形式不同)

(3)能够按要求完成职工信息的增加,删除,查询和更新相关信息

(4)对程序源代码要给出各部分的详细注释。

(5)雇员信息以文件的形式存储。

(6)自己根据能力及需要添加相应功能模块,增强模拟系统功能。

*/

#include

#include//因为要用到控制符,所以添加其定义

#include//输入输出文件流类

#include

#defineSIZE100

usingnamespacestd;

classinfomation//定义包含需要处理信息的类

{

public:

charname[10];//姓名

charnum[10];//工号

charsex[3];//性别

intage;//年龄

intdepartment;//部门1普通职工2人事部门人员3财务部门人员

charaddress[10];//地址

floatsalary;//工资

chardate[12];//出生日期

charpswd[10];//密码

};

infomationstu[SIZE];//每个元素对应一条信息

intlen;//总数

intID;//登录者的索引

classperson//定义普通职工类

{

public:

person();

~person();

voidload();//读取信息

voidsave();//保存信息

intmenu();//菜单

voidmodify();//修改信息

voidsearch();//信息查询

intcheck(chars[],inti);//检查是否有信息重复

};

classrenshi:

publicperson//定义人事部门类

{

public:

voidinput();//录入信息

voiddel();//删除信息

};

classcaiwu:

publicperson//定义财务部门类

{

public:

voidmodify_salary();//修改工资

};

charfilename[]="person.txt";

person:

:

person(){}

person:

:

~person(){}

voidcaiwu:

:

modify_salary()

{

chars[20];

system("cls");//清屏

cout<<"请输入要修改工资的职工的工号:

";

cin>>s;

for(inti=0;i

if(strcmp(stu[i].num,s)==0)

break;//存在

if(i==len)//相等,说明输入信息不存在

{

cout<<"对不起!

没有你输入工号的相关信息。

"<

system("pause");//任意键继续

return;

}

cout<<"请输入工资:

";

cin>>stu[i].salary;

save();//保存

cout<<"工资修改成功!

"<

system("pause");//任意键继续

}

voidperson:

:

load()//读取所需信息

{

fstreamfile(filename,ios:

:

in);//以读的方式打开文件,ios:

:

in见与书上245页

inti=0;

if(file.is_open())

{

while(!

file.eof())//判断是否到文件末尾

{

file>>stu[i].name

>>stu[i].num

>>stu[i].sex

>>stu[i].age

>>stu[i].department

>>stu[i].address

>>stu[i].salary

>>stu[i].date

>>stu[i].pswd

;//读取文件

if(!

file.eof())

i++;

}

file.close();//关闭文件

}

else

{

strcpy(stu[0].name,"管理员");

strcpy(stu[0].num,"0");//初始登录工号

strcpy(stu[0].pswd,"0");//初始登录密码

stu[0].department=2;//为人事部门人员

strcpy(stu[0].sex,"男");

strcpy(stu[0].address,"北京");

strcpy(stu[0].date,"2010-10-01");

stu[0].age=22;

stu[0].salary=2000;

i=1;

}

len=i;

}

voidperson:

:

save()//保存录入职工信息

{

fstreamfile(filename,ios:

:

out|ios:

:

trunc);

if(file.is_open())

{

for(inti=0;i

file

<

<

<

<

<

<

<

<

<

<

file.close();//关闭文件

}

}

intperson:

:

check(chars[],inti)//检查是否重复

{

intg=0;

for(;g

if(strcmp(stu[g].num,s)==0&&i!

=g)//比较是不是一样,一样就说明重复了

return1;//表示重复了

return0;//查找了整个数组都没发现重复的表示没有重复

}

voidrenshi:

:

input()//录入信息

{

charch;

system("cls");//清屏

for(inti=len;i

{

cout<<"请输入姓名:

";

cin>>stu[i].name;

cout<<"请输入工号:

";

cin>>stu[i].num;

while(check(stu[i].num,i)==1)

{

cout<<"工号重复,请重新输入:

";

cin>>stu[i].num;

}

cout<<"请选择性别(1、男2、女):

";

while

(1)

{

cin>>ch;

if(ch=='1'||ch=='2')

break;

else

cout<<"输入错误请重新输入:

";

}

if(ch=='1')

strcpy(stu[i].sex,"男");

else

strcpy(stu[i].sex,"女");

cout<<"请输入年龄:

";

cin>>stu[i].age;

cout<<"请选择部门(1、普通职工2、人事部门人员3、财务部门人员):

";

while

(1)

{

cin>>stu[i].department;

if(stu[i].department==1||stu[i].department==2||stu[i].department==3)

break;

else

cout<<"输入错误请重新输入:

";

}

cout<<"请输入地址:

";

cin>>stu[i].address;

cout<<"请输入初始工资:

";

cin>>stu[i].salary;

cout<<"请输入出生日期(格式:

2012-01-02):

";

cin>>stu[i].date;

cout<<"请输入密码:

";

cin>>stu[i].pswd;

len++;//个数加1

cout<<"一条信息录入完成,是否继续录入?

(y/n):

";

while

(1)

{

cin>>ch;

if(ch=='y'||ch=='Y'||ch=='n'||ch=='N')

break;

else

cout<<"输入错误请重新输入:

";

}

if(ch=='n'||ch=='N')

break;

}

save();//保存

}

voidrenshi:

:

del()//删除信息

{

chars[20];

system("cls");//清屏

cout<<"请输入要删除的工号:

";

cin>>s;

for(inti=0;i

if(strcmp(stu[i].num,s)==0)

break;//存在结束循环

if(i==len)//这二者相等说明查找完所有信息也没找到输入信息,说明输入信息不存在

{

cout<<"对不起!

没有你输入工号的相关信息。

\n";

system("pause");//任意键继续

return;

}

stu[i]=stu[len-1];//用最后一条信息覆盖要删除的信息

len--;//信息条数减一

save();//保存

cout<<"删除成功!

"<

system("pause");//任意键继续

}

voidperson:

:

modify()//修改信息

{

inti;

chars[20],ch;

system("cls");//清屏

if(stu[ID].department==1)//是普通职工

{

i=ID;

}

else

{

cout<<"请输入要修改的工号:

";

cin>>s;

for(i=0;i

if(strcmp(stu[i].num,s)==0)

break;//存在结束循环

if(i==len)//相等,说明输入信息不存在

{

cout<<"对不起!

没有你输入工号的相关信息。

\n";

system("pause");//任意键继续

return;

}

}

cout<<"请输入姓名:

";

cin>>stu[i].name;

cout<<"请输入工号:

";

cin>>stu[i].num;

while(check(stu[i].num,i)==1)

{

cout<<"工号重复,请重新输入:

";

cin>>stu[i].num;

}

cout<<"请选择性别(1、男2、女):

";

while

(1)

{

cin>>ch;

if(ch=='1'||ch=='2')

break;

else

cout<<"输入错误请重新输入:

";

}

if(ch=='1')

strcpy(stu[i].sex,"男");

else

strcpy(stu[i].sex,"女");

cout<<"请输入年龄:

";

cin>>stu[i].age;

cout<<"请选择部门(1、普通职工2、人事部门人员3、财务部门人员):

";

while

(1)

{

cin>>stu[i].department;

if(stu[i].department==1||stu[i].department==2||stu[i].department==3)

break;

else

cout<<"输入错误请重新输入:

";

}

cout<<"请输入地址:

";

cin>>stu[i].address;

cout<<"请输入出生日期(格式:

2012-01-02):

";

cin>>stu[i].date;

cout<<"请输入密码:

";

cin>>stu[i].pswd;

save();//保存

cout<<"修改成功!

"<

system("pause");//任意键继续

}

voidperson:

:

search()//职工信息查询

{

chars[20];

system("cls");//清屏

cout<<"请输入要查询的工号:

";

cin>>s;

for(inti=0;i

if(strcmp(stu[i].num,s)==0)

break;//存在

if(i==len)//相等,说明输入信息不存在

{

cout<<"对不起!

没有你输入工号的相关信息。

\n";

system("pause");//任意键继续

return;

}

cout<<"查询结果如下:

"<

cout<<"********************************************************************************"<

if(i==ID||ID>1)//是自己或不是普通职工

{

cout<<"姓名工号性别年龄部门地址工资出生日期"<

cout.setf(ios:

:

left);//设置左对齐

cout<

:

fixed)<

(2)//设置保留小数,其用法见书上228页的格式输出

<

<

<

<

<

<

<

<

<

}

else

{

cout<<"姓名:

工号:

性别:

年龄:

部门:

出生日期:

"<

cout.setf(ios:

:

left);//设置左对齐

cout<

:

fixed)<

(2)//设置保留小数,其用法见书上228页的格式输出

<

<

<

<

<

<

<

}

cout<<"*****************************************************************************"<

cout<<"备注:

1、普通职工2、人事部门人员3、财务部门人员"<

system("pause");//任意键继续

}

voidlogin()//实现职工登录

{

charnum[10],pswd[10];

system("cls");//清屏

cout<<"******************************************************************************"<

cout<<"人事部门初始工号:

0密码:

0"<

cout<<"******************************************************************************"<

cout<<"\n\n\n\n\n\n\n请输入工号:

";

cin>>num;

for(inti=0;i

if(strcmp(stu[i].num,num)==0)

break;//存在

if(i==len)//相等,说明输入信息不存在

{

cout<<"对不起!

没有你输入工号的相关信息。

";

system("pause");//任意键继续

exit(0);

}

cout<<"请输入密码:

";

cin>>pswd;

if(strcmp(pswd,stu[i].pswd)!

=0)//匹配密码

{

cout<<"对不起!

密码错误,登录失败。

";

system("pause");//任意键继续

return;

}

else

{

ID=i;//登录者索引

cout<<"登录成功。

";

system("pause");//任意键继续

}

}

intperson:

:

menu()//总的功能菜单

{

intc;

system("cls");//清屏

if(stu[ID].department==1)

{

cout<<"********************************************************"<

cout<<"1、修改职工信息"<

cout<<"********************************************************"<

cout<<"2、查询职工信息"<

cout<<"********************************************************"<

cout<<"3、返回登录"<

cout<<"********************************************************"<

}

elseif(stu[ID].department==2)

{

cout<<"**********************************************************"<

cout<<"1、增加职工信息"<

cout<<"**********************************************************"<

cout<<"2、修改职工信息"<

cout<<"**********************************************************"<

cout<<"3、查询职工信息"<

cout<<"**********************************************************"<

cout<<"4、删除职工信息"<

cout<<"**********************************************************"<

cout<<"5、返回登录"<

cout<<"**********************************************************"<

}

elseif(stu[ID].department==3)

{

cout<<"**********************************************************"<

cout<<"1、修改职工工资"<

cout<<"**********************************************************"<

cout<<"2、查询职工信息"<

cout<<"**********************************************************"<

cout<<"3、返回登录"<

cout<<"**********************************************************"<

}

cout<<"请选择:

";

cin>>c;

returnc;

}

//以下是对普通员工、人事部门、财务部门权限的分类

intperson1()//普通员工所具有的权限设置

{

personstud;

stud.load();//读取文件信息

while

(1)

{

intsel=stud.menu();//获取选择

switch(sel)

{

case1:

stud.modify();break;//修改

case2:

stud.search();break;//查询

case3:

return0;//返回登录

}

}

return0;

}

intrenshi1()//人事部门的功能

{

renshistud;

stud.load();//读取文件信息

while

(1)

{

intsel=stud.menu();//获取选择

switch(sel)

{

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

当前位置:首页 > 高中教育 > 高中教育

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

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