c++课程设计:职工工资管理系统

2022-03-23 教育 75阅读
#include
#include
#include
#include
#defineFILENAME"staff.txt"//数据文件
/////////////////////////////////////////////
structStaff//职工机构体
{
charCarNumber[10];//卡号
charName[10];//姓名
intMonth;//月份
floatSPWages;//应发工资
floatAPWages;//实发工资
floatWater;//水费
floatElectrical;//电费
floatTax;//税金
};
//////////////////////////////////////////////文件操作模块
FILE*FP;//全局文件指针
FILE*FileOpen(charFileName[])//文件打开函数
{
FILE*fp;
if((fp=fopen(FileName,"r"))==NULL)
{
fp=fopen(FileName,"w");
cout<<"文件打开失败重新创建记录文件";
returnfp;
}
fp=fopen(FileName,"r+");
returnfp;
}

voidFileClose(FILE*fp)
{
if(fclose(fp)==0)
cout<<"安全关闭"<else
cout<<"文件关闭失败"<}
////////////////////////////////////////////////
voidIncrease()//添加职工信息
{
FP=FileOpen(FILENAME);
Stafftemp;
cout<cout<<"请输入姓名:";
cin>>temp.Name;
cout<<"请输入卡号:";
cin>>temp.CarNumber;
cout<<"请输入月份:";
cin>>temp.Month;
cout<<"请输入应发工资:";
cin>>temp.SPWages;
cout<<"请输入水费:";
cin>>temp.Water;
cout<<"请输入电费:";
cin>>temp.Electrical;
if(temp.SPWages<=800)temp.Tax=0;
if((temp.SPWages>800.0)&&(temp.SPWages<1400.0))temp.Tax=(temp.SPWages-800)*0.05;
if(temp.SPWages>1400){temp.Tax=(temp.SPWages-1400)*0.1;}
temp.APWages=temp.SPWages-temp.Water-temp.Electrical-temp.Tax;
fwrite(&temp,sizeof(temp),1,FP);
cout<<"信息添加成功,请选择浏览工资信息选项进行查看"<FileClose(FP);
}
//////////////////////////////////////////////
voidPrintInformation()//浏览工资信息
{
FP=FileOpen(FILENAME);
rewind(FP);
Stafftemp;
while(fread(&temp,sizeof(Staff),1,FP)==1)
{
cout<<"姓名:"<cout<<"卡号:"<cout<<"月份:"<cout<<"应发工资:"<cout<<"水费:"<cout<<"电费:"<cout<<"税金:"<cout<<"实发工资:"<cout<}
FileClose(FP);
}
//////////////////////////////////////////////////
voidStatistics()//统计工资信息
{
Stafftemp;
charnametemp[10];
floatsum=0;
intmonthstart=0,monthover=0;
cout<<"请输入统计的人员姓名:"<cin>>nametemp;
cout<<"请输入统计时间段的起始月份(如:3)";
cin>>monthstart;
cout<<"请输入统计时间段的终止月份(如:3)";
cin>>monthover;
FP=FileOpen(FILENAME);
while(fread(&temp,sizeof(Staff),1,FP)==1)
{
if(strcmp(temp.Name,nametemp)==0)
{
if(temp.Month>=monthstart&&temp.Month<=monthover)
{
sum=sum+temp.APWages;
}
}
}
cout<<"职工"<
}
////////////////////////////////////////////////
voidNameSearch()
{
chartempname[10];
Stafftemp;
cout<cout<<"请输入要查询的职工的名称:";
cin>>tempname;
FP=FileOpen(FILENAME);
while(fread(&temp,sizeof(Staff),1,FP)==1)
{
if(strcmp(temp.Name,tempname))
{
cout<<"姓名:"<cout<<"卡号:"<cout<<"月份:"<cout<<"应发工资:"<cout<<"水费:"<cout<<"电费:"<cout<<"税金:"<cout<<"实发工资:"<cout<}
}
FileClose(FP);
}
intSearch()
{
intChoose=0;
while(1)
{
cout<cout<<"请选择查询方式"<cout<<"1、按照卡号查询"<cout<<"2、按照姓名查询"<cout<<"0、返回上级目录"<cout<<"请输入查询方式:"<cin>>Choose;
switch(Choose)
{
case1:;break;
case2:NameSearch();break;
case0:return0;break;
}
}
}
//////////////////////////////////////////////
voidShowMenu()//目录显示函数
{
intChoose=0;
while(1)
{
cout<cout<<"工资信息管理系统"<cout<<"1、添加工资信息。"<cout<<"2、浏览工资信息。"<cout<<"3、统计工资信息。"<cout<<"4、查询工资信息。"<cout<<"0、退出系统。"<cout<<"请输入服务类型:";
cin>>Choose;
switch(Choose)
{
case1:Increase();break;
case2:PrintInformation();break;
case3:Statistics();break;
case4:Search();break;
case0:exit(0);break;
}
}
}
voidmain()
{
ShowMenu();
}
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com