职工工资管理系统课程设计题目Word格式文档下载.doc
《职工工资管理系统课程设计题目Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《职工工资管理系统课程设计题目Word格式文档下载.doc(6页珍藏版)》请在冰豆网上搜索。
Employee类的服务可以包括info()、search()、countSalary()、recordInfo()和recordSalary()。
其中,info()函数用于接收用户输入的职工信息;
search()函数用来根据职工名查找职工信息;
countSalary()函数为工资计算函数,但在基类中为空,原因是各类人员的工资计算方法不同,无法在基类中统一定义,必须在派生类中分别定义。
recordInfo()函数和recordSalary()函数分别是职工信息和职工工资的记录函数,分别将信息存入文件info.txt和salary.txt。
有的请发邮件至416459010@满意追加.
满意答案
為鉨/xin鈊動4级2011-01-11
职工基本信息:
如职工号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。
l工资基础信息:
技术职称编号、技术职称、基本工资、职务工资、各种补助等。
l费用扣除信息:
工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。
工资单数据:
工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。
其中:
税金计算方法为:
应发工资<
800元,税金=0;
800<
应发工资£
1400元,税金=(应发工资-800)´
5%
应发工资>
1400元,税金=(应发工资-1400)´
10%
总体设计,要有一个菜单,用于选择各项功能,其中
1)数据录入:
输入各种数据;
2)数据统计:
工资计算及最终按总工资进行的排序;
3)数据打印:
打印上述表格;
4)数据备份:
把相关数据写入文件;
5)退出:
退出本系统#include<
iostream.h>
#include<
stdio.h>
stdlib.h>
string.h>
#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;
}
r+"
voidFileClose(FILE*fp)
if(fclose(fp)==0)
安全关闭"
endl;
else
文件关闭失败"
////////////////////////////////////////////////
voidIncrease()//添加职工信息
FP=FileOpen(FILENAME);
Stafftemp;
请输入姓名:
cin>
>
temp.Name;
请输入卡号:
temp.CarNumber;
请输入月份:
temp.Month;
请输入应发工资:
temp.SPWages;
请输入水费:
temp.Water;
请输入电费:
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);
信息添加成功,请选择浏览工资信息选项进行查看"
FileClose(FP);
//////////////////////////////////////////////
voidPrintInformation()//浏览工资信息
rewind(FP);
while(fread(&
temp,sizeof(Staff),1,FP)==1)
cout<
姓名:
temp.Name<
卡号:
temp.CarNumber<
月份:
temp.Month<
应发工资:
temp.SPWages<
水费:
temp.Water<
电费:
temp.Electrical<
税金:
temp.Tax<
实发工资:
temp.APWages<
//////////////////////////////////////////////////
voidStatistics()//统计工资信息
charnametemp[10];
floatsum=0;
intmonthstart=0,monthover=0;
请输入统计的人员姓名:
nametemp;
请输入统计时间段的起始月份(如:
3)"
monthstart;
请输入统计时间段的终止月份(如:
monthover;
{
if(strcmp(temp.Name,nametemp)==0)
{
if(temp.Month>
=monthstart&
=monthover)
{
sum=sum+temp.APWages;
}
}
}
职工"
nametemp<
从"
monthstart<
月至"
monthover<
月合计"
sum<
元。
voidNameSearch()
chartempname[10];
请输入要查询的职工的名称:
tempname;
if(strcmp(temp.Name,tempname))
intSearch()
intChoose=0;
while
(1)
请选择查询方式"
1、按照卡号查询"
2、按照姓名查询"