【课程设计】职工信息管理系统_课程设计职工管理系统

2020-02-27 其他范文 下载本文

【课程设计】职工信息管理系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“课程设计职工管理系统”。

题目:职工信息系统

功能包括:

 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话) 根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信息简表) 增加新职工信息(由人事秘书完成,需要身份确认) 删除职工信息(由人事秘书完成,需要身份确认) 修改职工工资(由财务处人员完成,需要身份确认) 要求所有信息能够存储在文件中,并具有良好的用户界面

#include #include #include #include using namespace std;const char * file = “staff.dat”;const int LIM =8;int ct=0;int Admin;int na;

//ct用来储存文件中数据组数,Admin用来储存登陆后该用户的权限,//na用来储存登录所输的编号,方便主菜单内使用其显示当前用户

void hline(int);inline void eatline(){while(cin.get()!='n')continue;} cla staff {/*职工编号,姓名,性别,年龄,职务,电话,工资和家庭成员信息*/ public:

};void staff::printf()

//输出的选择,判断其职务,选择调用哪个输出 { if(Admin==1||Admin==2)printf1();else int num;char name[LIM],sex[3];int age;char job[10],phone[15];double wages;char home[20];int admin;void printf();void printf1();void printf2();void printf3();

}

if(Admin==3)printf2();else printf3();void staff::printf1()

//领导及人事秘书能见的输出 {

} void staff::printf2()

//财务人员能见的输出 {

} void staff::printf3()

//普通员工能见的输出 { cout

} hline(3);cout

//输出信息的头部 {

switch(n){ case 1:{cout

};break;case 2:{cout

};break;case 3:{cout

}

}

};break;void menu()

//主菜单 { cout

//二级菜单 { cout

//登陆的实现部分 { cout

int w=0;while(!(cin>>na)){ cin.clear();while(cin.get()!='n')continue;cout

for(int i=1;i

{

streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){

cerr

exit(EXIT_FAILURE);

} find.read((char *)&stu, sizeof stu);if(stu.num==na){ } w=1;Admin=stu.admin;}

if(w==0){cout

}

int stu_num()

//计算数据组数 {

} staff stu;ifstream stunum;stunum.open(file,ios_base::in|ios_base::binary);if(stunum.is_open()){

} stunum.close();return ct;stunum.seekg(0);while(stunum.read((char *)&stu,sizeof stu))ct++;system(“pause”);system(“cls”);void setadmin(staff &stu,char jobs[10])

//增加职工时根据职务设置权限 { char job1[10]=“总经理”;char job2[10]=“副总经理”;char job3[10]=“人事秘书”;char job4[10]=“财务人员”;

}

void add()

// 输入数据的函数,增加职工 {

if(Admin==2){ staff stu;if((!strcmp(stu.job,job1))||(!strcmp(stu.job,job2)))stu.admin=1;else

if(!strcmp(stu.job,job3))stu.admin=2;else if(!strcmp(stu.job,job4))stu.admin=3;

ofstream fout(file, ios_base::out | ios_base::app | ios_base::binary);

if(!fout.is_open())

{

cerr

exit(EXIT_FAILURE);

}

cout

cin.get(stu.name, LIM);

while(stu.name[0]!= '')

{

cout

cin>>stu.num;cout >stu.age;

cout

cout

cin.get(stu.phone, 15);

cout >stu.wages;

cout

eatline();

cin.get(stu.home, 20);setadmin(stu,stu.job);

fout.write((char *)&stu, sizeof stu);cout

eatline();cin.get(stu.name,LIM);

}

fout.close();

} else cout

void output()

//输出全部职工信息的函数 { staff stu;

} ifstream find;find.open(file,ios_base::in|ios_base::binary);hline(1);while(find.read((char *)&stu,sizeof stu)){ cout

//修改数据函数 {

if(Admin==3){

fstream change;

int w=0;staff stu;streampos place;

change.open(file,ios_base::in|ios_base::out|ios_base::binary);if(change.eof())change.clear();

//清除EOF cout>rec;eatline();for(int i=0;i

place =i* sizeof stu;change.seekg(place);if(change.fail()){

cerr

exit(EXIT_FAILURE);

} change.read((char *)&stu, sizeof stu);if(stu.num==rec){ } w=1;

cout

}

if(w==1){ cout > stu.wages){

if(stu.wages100000)

{

cout

cin.clear();

while(cin.get()!='n');

continue;

}

break;} change.seekp(place);

// 回到查找到的地点

change.write((char *)&stu, sizeof stu)

cerr

n“;

}

exit(EXIT_FAILURE);} change.close();cout

void del()

//删除指定编号的职工信息 {

if(Admin==2){

while(1){ eatline();int delnum;cout

cin>>delnum;fstream in;in.open(”staff.dat“,ios_base::in|ios_base::binary);if(!in){ cout

} in.close();temp.close();//修改完成,将原文件清空,并将临时文件内容q=0;if(stu.num==delnum){ } if(q==0)temp.write((char*)&stu,sizeof(stu));in.read((char*)&stu,sizeof(stu));q=1;复制回原文件

} { out.write((char*)&stu,sizeof(stu));temp.read((char*)&stu,sizeof(stu));out.open(”staff.dat“,ios_base::out|ios_base::trunc|ios_base::binary);temp.read((char*)&stu,sizeof(stu));while(!temp.eof())//将文件内容修改后临时寸到另一个文件

temp.open(”temp.dat“,ios_base::in|ios_base::binary);if(!temp){ cout

cout>x;if(!(x=='y'||x=='Y'))break;} else cout

void find()

//查找职工的实现部分 {

while(1){ menu2();//eatline();int a;int w=0;cin>>a;int na;char sna[LIM];fstream find;find.open(file,ios_base::in|ios_base::out|ios_base::binary);eatline();staff stu;switch(a){ case 1:cout>na;break;

case 2:cout>sna;break;case 3:{w=1;

if(Admin==1||Admin==2)output();else cout

}break;default:{

} for(int i=1;i

streampos place =(i-1)* sizeof stu;find.seekp(place);if(find.fail()){

cout

cerr

exit(EXIT_FAILURE);} find.read((char *)&stu, sizeof stu);switch(a){ case 1:if(stu.num==na){

w=1;

stu.printf();};break;case 2:if(!strcmp(stu.name,sna))

{

w=1;

stu.printf();

};break;case 3:break;default:{

cout

cin.clear();

while(cin.get()!='n');continue;

}

} }

n”;

} if(w==0)cout>x;if(!(x=='y'||x=='Y'))break;} /* 建立职工信息数据(职工编号,姓名,性别,年龄,电话,职务,工资和家庭成员信息)和信息简表(编号,姓名,电话)根据职工编号查询职工信息(查询时需要身份确认。单位领导和人事秘书可以看到

职工所有信息;财务处人员可以看到职工编号,姓名,性别,年龄,电话,工资;一般职工仅能查到信 息简表)

增加新职工信息(由人事秘书完成,需要身份确认)

删除职工信息(由人事秘书完成,需要身份确认)

修改职工工资(由财务处人员完成,需要身份确认)

要求所有信息能够存储在文件中,并具有良好的用户界面 */

int main(){

system(“color 6F”);ifstream fin;fin.open(file,ios_base::in|ios_base::binary);if(!fin.is_open()){ staff st[5]={ {10001,“张三”,“男”,35,“总经理”,“***”,20000,“父母,弟弟,姐姐”,1},{10002,“李四”,“男”,32,“副总经理”,“***”,12000,“父母,兄长”,1},{10003,“

”,“

”,25,“

书”,“***”,10000,“---略---”,2},{10004,“陈六”,“女”,25,“财务人员”,“***”,8000,“---略---”,3},{10005,“Obama”,“

”,23,“

工”,“***5”,7000,“---略---”,0}};ofstream fout(file,ios_base::out|ios_base::binary);

for(int i=0;i>n;switch(n){ case '1':eatline();find();break;case '2':add();break;case '3':del();break;case '4':change();break;case '5':exit(EXIT_FAILURE);

n “;

default:{

cout

cin.clear();

while(cin.get()!='n');

continue;}

清除已经输入的内容,程序选择

}

system(”pause“);

system(”cls");

cin.clear();}

return 0;}

//如果选择错误,cin.clear等语句

《【课程设计】职工信息管理系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
【课程设计】职工信息管理系统
点击下载文档
相关专题 课程设计职工管理系统 信息管理系统 课程设计 职工 课程设计职工管理系统 信息管理系统 课程设计 职工
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文