职工工资管理系统课程设计题目.doc

上传人:wj 文档编号:5384460 上传时间:2023-05-08 格式:DOC 页数:6 大小:59.50KB
下载 相关 举报
职工工资管理系统课程设计题目.doc_第1页
第1页 / 共6页
职工工资管理系统课程设计题目.doc_第2页
第2页 / 共6页
职工工资管理系统课程设计题目.doc_第3页
第3页 / 共6页
职工工资管理系统课程设计题目.doc_第4页
第4页 / 共6页
职工工资管理系统课程设计题目.doc_第5页
第5页 / 共6页
职工工资管理系统课程设计题目.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

职工工资管理系统课程设计题目.doc

《职工工资管理系统课程设计题目.doc》由会员分享,可在线阅读,更多相关《职工工资管理系统课程设计题目.doc(6页珍藏版)》请在冰点文库上搜索。

职工工资管理系统课程设计题目.doc

职工工资管理系统课程设计题目:

实现一个简单的工资管理系统。

系统的主要功能是计算职工当月工资并存档。

公司内有5种不同类型的职工:

技术人员、销售人员、文秘、技术经理和销售经理,他们的工资计算方式各不相同。

技术人员的工资根据他当月工作的小时数来定,时薪35元;销售人员的工资则是根据本人当月销售额来确定,工资为销售额的5%;文秘有4000元的基本工资,奖金视为当月工作情况而定;技术经理和销售经理都有6000元的固定工资,技术经理的工作业绩可分为3个等级,每级可获得1000元奖金,销售经理的奖金由他所管理的销售员的销售业绩而定,总销售额的02.%

职工工资管理系统的设计:

对于整个系统的设计思路是,首先,由员工输入用户信息,包括编号、姓名和职务;然后,在计算某职工的当月工资时,系统先从已输入的职工信息文件中获取职工的工作类型,接着调用不同的处理程序进行计算;最后将结果存档。

从用户需求中,可以发现5种类型的职员都可以分别设计为一个类。

首先,他们都属于雇员,因此可以设计一个基类employee(雇员),然后从中派生出technician(技术人员)类,salesman(销售人员)类、secretary(文秘)类。

对于技术经理和销售经理来说,他们都属于经理,所以设计时可以从employee类中派生出一个manager(经理)类作为techmanager(技术经理)和salesman(销售经理)类的父类。

而经理类本身并不对应实际的员工类型,由于技术经理有技术人员和经理的双重特点,因此techmanager类同时继承technician类和manger类;销售经理有销售人员和经理的双重特点,因此salesmanager类同时继承salesman类和manager类。

根据用户需要employee类应该拥有的属性有:

编号、姓名、职务、月份和工资。

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

#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();

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

当前位置:首页 > 外语学习 > 日语学习

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2