用C语言设计并实现一个员工信息管理系统 用C语言设计职工信息管理系统

作者&投稿:爱新觉罗旭 (若有异议请与网页底部的电邮联系)
#include <iostream>
#include <cstring>
using namespace std;

typedef struct wage {
char unit[8];
char name[10];
char sex[4];
char birthdate[12];
char title[20];
double basewage;
double subsidy;
double tax;
double expenses;
double residualwage;
}WAGE;

void ComputerResidualwage(WAGE a[],int n) {
for(int i = 0; i < n; ++i)
a[i].residualwage = a[i].basewage + a[i].subsidy - a[i].tax - a[i].expenses;
}

void PrintTitle(void) {
cout << "单  位 姓  名 性别  出生年月  职  称 基本工资  津  贴   个  税  水电费 实发工资
";
for(int i = 0; i < 79; ++i) cout << "*"; cout << endl;
}

void RowShow(WAGE a[], int i) {
cout << a[i].unit << " ";
if(strlen(a[i].name) == 4) {
a[i].name[6] = a[i].name[4];
a[i].name[5] = a[i].name[3];
a[i].name[4] = a[i].name[2];
a[i].name[2] = a[i].name[3] = ' ';
}
cout << a[i].name << "  " << a[i].sex << "  " << a[i].birthdate;
if(strlen(a[i].title) == 4) {
a[i].title[6] = a[i].title[4];
a[i].title[5] = a[i].title[3];
a[i].title[4] = a[i].title[2];
a[i].title[2] = a[i].title[3] = ' ';
}
cout << " " << a[i].title << " ";
cout.precision(2);
cout.width(8);
cout << fixed << a[i].basewage << "  "; cout.width(6);
cout << fixed << a[i].subsidy << " ";
cout.width(8);
cout << fixed << a[i].tax << "  ";
cout.width(6);
cout << fixed << a[i].expenses << " ";
cout.width(8);
cout << fixed << a[i].residualwage << endl;
}

void Show(WAGE a[], int n) {
for(int i = 0; i < n; ++i)  RowShow(a,i);
}

void Search1(WAGE a[], int n) {
int i,flag = 1;
for(i = 0; i < n; ++i) {
if(strcmp(a[i].unit,"理学院") == 0 && a[i].basewage > 900.00 &&
strcmp(a[i].title,"副教授") == 0 && strcmp(a[i].sex,"男") == 0)  {
RowShow(a,i);
flag = 0;
}
}
if(flag) cout << "(没找到符合条件者)
";
}

void Search2(WAGE a[], int n) {
int i,flag = 1;
for(i = 0; i < n; ++i) {
if(strcmp(a[i].unit,"理学院") == 0 && a[i].basewage < 1200.00 &&
strcmp(a[i].title,"教  授") == 0 && strcmp(a[i].sex,"男") == 0) {
RowShow(a,i);
flag = 0;
}
}
if(flag) cout << "(没找到符合条件者)
";
}

int main() {
WAGE a[] = {
{"理学院","赵志军","男","1957-06-25","教  授",1150,411,176.6,90},
{"商学院","于  铭","女","1979-10-21","助  教",500,471,208.9,91},
{"工学院","许炎锋","女","1954-03-08","教  授",1250,630,306.2,96},
{"理学院","王  嘉","女","1971-06-06","讲  师",850,475,100.3,89},
{"工学院","李新江","男","1962-10-02","教  授",950,399,49.5,87},
{"商学院","郭海英","女","1963-02-07","副教授",950,332,77.6,85},
{"工学院","马淑恩","女","1960-06-09","副教授",900,791,60.5,45},
{"理学院","王金科","男","1956-09-10","教  授",1050,480,325.6,93},
{"理学院","李东慧","女","1950-08-07","教  授",1350,364,52.3,94},
{"工学院","张  宁","女","1980-01-01","助  教",500,395,78,89},
{"商学院","王  孟","男","1966-09-08","讲  师",800,463,220.3,98},
{"工学院","马会爽","女","1970-02-09","讲  师",800,368,101.1,69},
{"工学院","史晓赟","女","1952-06-06","教  授",1200,539,520.3,50},
{"理学院","刘燕凤","女","1959-08-07","教  授",1200,892,180.9,86},
{"工学院","齐  飞","男","1961-04-05","副教授",1200,626,245.6,74},
{"商学院","张  娟","女","1975-09-25","助  教",650,374,625.3,86},
{"理学院","潘成文","男","1965-10-09","讲  师",950,402,1050,90},
{"工学院","邢  易","女","1981-02-25","助  教",600,325,300,90},
{"商学院","谢枭豪","女","1950-11-18","教  授",1350,516,200,90},
{"工学院","胡洪静","女","1952-06-24","教  授",1350,277,100,86},
{"工学院","李云飞","男","1969-05-04","讲  师",960,729,56,89},
{"商学院","张  奇","女","1970-05-28","讲  师",960,331,69,89},
{"理学院","夏小波","女","1968-08-01","讲  师",960,482,89,45},
{"工学院","王  玮","女","1972-11-05","讲  师",960,340,98,79},
{"理学院","张  帝","女","1950-03-26","教  授",1300,335,124,90},
{"商学院","孙  帅","男","1966-05-24","讲  师",900,748,326,79},
{"工学院","卜辉娟","女","1960-05-23","教  授",960,481,651,78},
{"工学院","李辉玲","女","1978-09-09","助  教",630,379,400,77},
{"理学院","刘亚静","男","1969-08-09","副教授",890,377,23,66},
{"工学院","尹  娴","女","1958-06-09","教  授",1050,955,59,65},
{"商学院","马春英","男","1964-12-06","讲  师",850,387,78,69},
{"工学院","孟  梦","女","1965-08-09","副教授",850,753,485.6,93},
{"工学院","梁晓萌","女","1975-06-09","助  教",650,551,136.5,99},
{"理学院","张  然","女","1973-03-03","讲  师",800,761,203.1,100},
{"工学院","彭雁南","男","1978-05-09","助  教",650,200,200,90}
};
int i,n = sizeof(a)/sizeof(a[0]);
if(n == 0) return 1;
ComputerResidualwage(a,n);
PrintTitle();
for(i = 0; i < n; ++i) RowShow(a,i);
for(i = 0; i < 79; ++i) cout << "*";
cout << endl; cout << "
理学院,基本工资高于900元的男副教授有:

"; 
PrintTitle();
Search1(a,n);
for(i = 0; i < 79; ++i) cout << "*";
cout << endl;
cout << "
理学院,基本工资低于1200元的男教授有:

";
PrintTitle();
Search2(a,n);
for(i = 0; i < 79; ++i) cout << "*";
cout << endl << endl;
return 0;
}


用c语言编写设计,职工信息管理系统。~

我给你个大概提示吧,
首先你要做的是个大体的框架
分三个权限一是管理员权限,人事部门权限以及员工权限。
1.管理员权限实现包括员工基本信息增删改查功能。
2.人事权限包括员工拓展信息,比如工资,奖金等等数据的维护和更新。
3.员工权限包括个人信息查询以及问题反馈。
三个双向链表,节点数据存入以上所有信息。
链表操作不多说了吧。。。
文件读写问题,这里考虑到如果是一般情况的话直接调用readwrite函数就行了
如果内容过多还是连接数据库吧。
系统开始的初始化和更新也很重要。

#include
#include
#include
usingnamespacestd;

constn=50;//定义系统可录入的员工最大数值

stringename[n];
longenum[n];
charesex[n];
inteage[n];
charemarriage[n];
intedepart[n];
inteposition[n];
intedegree[50];
inteworktime[n];
floatepay[n];

classemployee
{
public:
stringemployeename;
longemployeenum;
charemployeesex;
intemployeeage;
charemployeemarriage;
intemployeedepart;
intemployeeposition;
intemployeedegree;
intemployeeworktime;
floatemployeepay;


staticlongemployeemaxnum;
staticfloatemployeebasepay;

voidnewinfo();
voidshowinfo();
voidshowall();
voidshowdepart(intdepart);
voidshowdegree(intdegree);
voidshowage(intmin,intmax);
voidshownum(longnumber);
voidrefreshinfo();
voiddeleteinfo();
floatpay(intemployeegrade);
staticintmaxnum();
};



classdboperate
{
public:
stringemployeename;
longemployeenum;
charemployeesex;
intemployeeage;
charemployeemarriage;
intemployeedepart;
intemployeeposition;
intemployeedegree;
intemployeeworktime;
floatemployeepay;


staticlongemployeemaxnum;
staticfloatemployeebasepay;


voidwritein(intiflag);
voidreadout();
voidrefreshmaxnum(intiflag);//i=1or-1or0
};




longemployee::employeemaxnum=1000;
floatemployee::employeebasepay=1500;


intemployee::maxnum()//返回系统已经存储的人数
{
intmn=0;
ifstreammyf;
myf.open("employeemaxnum.txt");
myf>>mn;
cout<<mn<<endl;
myf.close();
returnmn;
}



voidemployee::newinfo()//添加新成员函数
{
cout<<"新员工姓名:";
cin>>employee::employeename;

employee::employeenum=employeemaxnum+employee::maxnum()+1;

cout<<"新员工性别(f为女性,m为男性):";
cin>>employee::employeesex;

cout<<"新员工年龄:";
cin>>employee::employeeage;

cout<<"新员工婚姻状况(y为已婚,n为未婚):";
cin>>employee::employeemarriage;

cout<<"新员工学历,请输入相应学历的序号:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
while(employee::employeedegree!=1&&employee::employeedegree!=2&&employee::employeedegree!=3&&employee::employeedegree!=4&&employee::employeedegree!=5)
{
cout<<"输入有误,请重新输入:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}

cout<<"新员工所在部门,请输入相应部门的序号:"<<endl;
cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
while(employee::employeedepart!=1&&employee::employeedepart!=2&&employee::employeedepart!=3&&employee::employeedepart!=4&&employee::employeedepart!=5)
{
cout<<"输入有误,请重新输入:"<<endl;
cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
}

cout<<"新员工职位,请输入相应职位的序号:"<<endl;
cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
while(employee::employeeposition!=1&&employee::employeeposition!=2&&employee::employeeposition!=3&&employee::employeeposition!=4&&employee::employeeposition!=5)
{
cout<<"输入有误,请重新输入:"<<endl;
cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
}

cout<<"新员工的工作时(不需要输入单位):";
cin>>employee::employeeworktime;


employee::employeepay=employee::pay(employee::employeeposition);

dboperatedbo;
dbo.readout();

intmaxnum=employee::maxnum();

enum[maxnum]=employee::employeenum;
ename[maxnum]=employee::employeename;
esex[maxnum]=employee::employeesex;
eage[maxnum]=employee::employeeage;
emarriage[maxnum]=employee::employeemarriage;
edegree[maxnum]=employee::employeedegree;
edepart[maxnum]=employee::employeedepart;
eposition[maxnum]=employee::employeeposition;
eworktime[maxnum]=employee::employeeworktime;
epay[maxnum]=employee::employeepay;

dbo.writein(1);
cout<<"添加新成员成功!"<<endl;

return;
}



voidemployee::showinfo()//程序主体数据输出函数
{

intchoice1,choice2,min,max;
longsearchnum;
employeee;


cout<<"请选择查询方式:"<<endl;
cout<<"******************************************"<<endl;
cout<<"*输出全体职工信息---------------------1"<<endl;
cout<<"*按职工部门输出-----------------------2"<<endl;
cout<<"*按职工学历输出-----------------------3"<<endl;
cout<<"*按职工年龄输出-----------------------4"<<endl;
cout<<"*按职工编号输出-----------------------5"<<endl;
cout<<"******************************************"<<endl;
cin>>choice1;

switch(choice1)
{
case1:showall();break;
case2:cout<<"请输入要查询职工的部门编号:[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>choice2;
e.showdepart(choice2);break;
case3:cout<<"请输入要查询职工的学历编号:[1:初中2:高中3:本科4:硕士5:博士]";
cin>>choice2;
e.showdegree(choice2);break;
case4:cout<<"请输入要查询的年龄范围:";
cout<<"最小值:";
cin>>min;
cout<<"最大值:";
cin>>max;
e.showage(min,max);break;
case5:cout<<"请输入要查询的员工号:";
cin>>searchnum;
e.shownum(searchnum);break;

default:cout<<"出错啦!"<<endl;break;

}

}

voidemployee::showall()//全体员工输出函数
{inti;longnumber;for(i=0;i{number=enum[i];shownum(number);}
}

voidemployee::showdepart(intdepart)//按员工所在部门输出函数
{
inti;
switch(depart)
{
case1:cout"<<endl;break;
case2:cout"<<endl;break;
case3:cout"<<endl;break;
case4:cout"<<endl;break;
case5:cout"<<endl;break;
default:cout"<<endl;break;
}
for(i=0;i<employee::maxnum();i++)
{
if(edepart[i]==depart)
{
longnumber=enum[i];
shownum(number);
}elsecontinue;

}
}



voidemployee::showdegree(intdegree)//按员工学历输出函数
{
inti;
switch(degree)
{
case1:cout<<"初中学历的员工有:"<<endl;break;
case2:cout<<"高中学历的员工有:"<<endl;break;
case3:cout<<"本科学历的员工有:"<<endl;break;
case4:cout<<"硕士学位的员工有:"<<endl;break;
case5:cout<<"博士学位的员工有:"<<endl;break;
}
for(i=0;i<employee::maxnum();i++)
{
if(edegree[i]==degree)
{
longnumber=enum[i];
shownum(number);
}elsecontinue;

}
}


voidemployee::showage(intmin,intmax)//按员工年龄段输出函数
{
inti;
for(i=0;i<employee::maxnum();i++)
{
if(eage[i]>=min&&eage[i]<=max)
{
longnumber=enum[i];
shownum(number);
}
elsecontinue;
}
}




voidemployee::shownum(longnumber)//按员工编号输出函数
{
inti;
for(i=0;i<employee::maxnum();i++)
{
if(enum[i]==number)
{
cout<<"**********************************"<<endl;
cout"<<enum[i]<<endl;
cout"<<ename[i]<<endl;
cout";
if(esex[i]=='f')cout<<"女"<<endl;
elseif(esex[i]=='m')cout<<"男"<<endl;
cout"<<eage[i]<<"岁"<<endl;
cout";
if(emarriage[i]=='y')cout<<"已婚"<<endl;
elseif(emarriage[i]=='n')cout<<"未婚"<<endl;
cout";
switch(edegree[i])
{
case1:cout<<"初中"<<endl;break;
case2:cout<<"高中"<<endl;break;
case3:cout<<"本科"<<endl;break;
case4:cout<<"硕士"<<endl;break;
case5:cout<<"博士"<<endl;break;
}

cout";
switch(edepart[i])
{
case1:cout<<"董事会"<<endl;break;
case2:cout<<"市场部"<<endl;break;
case3:cout<<"公关部"<<endl;break;
case4:cout<<"客服中心"<<endl;break;
case5:cout<<"信息中心"<<endl;break;
}

cout";
switch(eposition[i])
{
case1:cout<<"临时成员"<<endl;break;
case2:cout<<"正式员工"<<endl;break;
case3:cout<<"主任"<<endl;break;
case4:cout<<"部门经理"<<endl;break;
case5:cout<<"董事长"<<endl;break;
}

cout"<<eworktime[i]<<"小时"<<endl;
cout"<<epay[i]<<"元"<<endl;
cout<<"**********************************"<<endl;
}
elsecontinue;
}
}



voidemployee::refreshinfo()//修改员工信息的函数
{
intcnum=1000;
dboperatedbo;
dbo.readout();
voidemployee::shownum(longnumber);

cout";
cin>>cnum;
intmn;
mn=employee::maxnum();

for(inti=0;i<mn;i++)//遍历数据文件,查找要修改的员工数据
{
if(enum[i]==cnum)
{
employee::shownum(cnum);

cout<<"请输入该员工的新信息:"<<endl;

cout<<"新员工姓名:";//录入员工的新的数据,员工号保持不变
cin>>employee::employeename;
ename[i]=employee::employeename;

cout<<"新员工性别:[f为女性,m为男性]:";
cin>>employee::employeesex;
esex[i]=employee::employeesex;

cout<<"新员工年龄:";
cin>>employee::employeeage;
eage[i]=employee::employeeage;

cout<<"新员工婚姻状况(y为已婚,n为未婚):";
cin>>employee::employeemarriage;
emarriage[i]=employee::employeemarriage;

cout<<"新员工学历,请输入相应学历的序号:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
while(employee::employeedegree!=1&&employee::employeedegree!=2&&employee::employeedegree!=3&&employee::employeedegree!=4&&employee::employeedegree!=5)
{
cout<<"输入有误,请重新输入:"<<endl;
cout<<"[1:初中2:高中3:本科4:硕士5:博士]";
cin>>employee::employeedegree;
}
edegree[i]=employee::employeedegree;

cout<<"新员工所在部门,请输入相应部门的序号:"<<endl;
cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
while(employee::employeedepart!=1&&employee::employeedepart!=2&&employee::employeedepart!=3&&employee::employeedepart!=4&&employee::employeedepart!=5)
{
cout<<"输入有误,请重新输入:"<<endl;
cout<<"[1:董事会2:市场部3:公关部4:客服中心5:信息中心]";
cin>>employee::employeedepart;
}
edepart[i]=employee::employeedepart;

cout<<"新员工职位,请输入相应职位的序号:"<<endl;
cout<<"[1:临时职员2:正式职员3:主任4:部门经理5:董事长]";
cin>>employee::employeeposition;
while(employee::employeeposition!=1&&employee::employeeposition!=2&&employee::employeeposition!=3&&employee::employeeposition!=4&&employee::employeeposition!=5)
{
cout<<"输入有误,请重新输

员工信息管理系统,用C语言做
答:exit(0);} for (i=0;i<m;i++) /*将内存中职工的信息输出到磁盘文件中去*/ { fprintf(fp , "%s %xxxxxxx\n" , em[i].xxxx , ... ); //每个员工信息写一行,中间用空格分隔开 } fclose(fp);} ...

用C语言编写一个人名数据管理系统
答:界面友好,使用方便;利用结构体数组实现数据结构设计;系统具有增加,查询,插入,排序、统计等基本功能;系统的各个功能模块要求用函数的形式实现;数据用文件保存参考书:教材、其... 界面友好,使用方便;利用结构体数组实现数据结构设计;系统具有...

用c语言写一个职工工资管理程序
答:思路:使用结构体保存职工信息,设计单独的函数,实现录入,按职工工资排序,分解单双数职工,读取和写入文件,显示数据等功能。1 - 从键盘录入信息到数组结构并保存至文件,录入+写入文件。2 - 从磁盘文件中读出这些数据,...

C语言程序设计——职工信息管理系统(急)
答:C语言程序设计——职工信息管理系统(急) 5 设计和实现一个“职工信息管理系统”,满足以下要求:1.系统以菜单方式工作;2.使用链表或结构数组对职工信息进行管理和维护;3.使用二进制文件在磁盘上保存职工记录信息;4.链表中各... 设计...

C语言程序设计题
答:试设计一职工信息管理系统,使之能提供以下功能:系统以菜单方式工作,密码登陆。1.职工信息的录入(增... 五、职工信息管理系统职工信息包括职工号、姓名、性别、年龄、学历、联系方式。试设计一职工信息管理系统,使之能提供以下功能:系统...

求一道C语言编程题(职工信息管理程序)
答://再花了1个小时测试,全部正确了 //所以一定要给我加分哦,要求100分以上,哈哈 //不然下次就没信心帮你写了 //职工管理系统 //职工号,姓名,性别,年龄,学历,工资,住址,电话等 / 1、录入职工信息,若录入的...

C++写的公司员工信息管理系统(可加分)
答:{ public:string name;string sex;string techang;string xuexing;string xingzuo;string attend;string getin;string birthday;int static number;int grade;int money;long call;employee(){number++;grade=1;};void ...

用C语言编写一个通讯录管理系统
答:C语言编写一个通讯录管理系统的源代码如下:include<stdio.h> include<string.h> include<stdlib.h> /*定义保存通迅录的信息*/ structfriends { charname[20];/*名字*/ charprovince[20];/*省份*/ charcity[20];/...

c语言实验报告册怎么写?是关于员工信息管理系统的程序。能帮忙填写大...
答:} /* 函数readaddr用于输入一个通信录函数 */ int readaddr(struct addr *dpt){ int len;char buf[120];/*输入字符串的缓冲区*/ printf("\nPlease input the Name:\n");/*输入姓名*/ if(scanf("%s",buf)=...

c语言程序设计、工资管理系统
答:用C语言实现工资信息的管理,具体功能如下:1.录入职工工资信息。2.按姓名和年月查询职工工资。3.按年对职工工资进行统计。4... 每个员工信息包括姓名,编号,年月,工资额4项信息。用C语言实现工资信息的管理,具体功能如下:1.录入职工工资...