员工工资管理系统

#include<iostream.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define FILENAME "staff.txt"              //数据文件
/
struct Staff             //职工机构体
{
char CarNumber[10];         //卡号
char Name[10];              //姓名
int Month;                  //月份
float SPWages;              //应发工资
float APWages;     //实发工资
float Water;     //水费
float Electrical;    //电费
float Tax;      //税金
};
// 文件操作模块
FILE *FP;       //全局文件指针
FILE * FileOpen(char FileName[])                  //文件打开函数
{
FILE *fp;
if((fp=fopen(FileName,"r"))==NULL)
{
fp=fopen(FileName,"w");
cout<<"文件打开失败重新创建记录文件";
return fp;
}
fp=fopen(FileName,"r+");
return fp;
}

void FileClose(FILE *fp)
{
if(fclose(fp)==0)
cout<<"安全关闭"<<endl;
else
cout<<"文件关闭失败"<<endl;
}

void Increase()              //添加职工信息
{
FP=FileOpen(FILENAME);
Staff temp;
cout<<endl;
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<<"信息添加成功,请选择浏览工资信息选项进行查看"<<endl;
FileClose(FP);
}
//
void PrintInformation()   //浏览工资信息
{
FP=FileOpen(FILENAME);
rewind(FP);
Staff temp;
while(fread(&temp,sizeof(Staff),1,FP)==1)
{
   cout<<"姓名:"<<temp.Name<<endl;
   cout<<"卡号:"<<temp.CarNumber<<endl;
   cout<<"月份:"<<temp.Month<<endl;
   cout<<"应发工资:"<<temp.SPWages<<endl;
   cout<<"水费:"<<temp.Water<<endl;
   cout<<"电费:"<<temp.Electrical<<endl;
   cout<<"税金:"<<temp.Tax<<endl;
   cout<<"实发工资:"<<temp.APWages<<endl;
   cout<<endl;
}
FileClose(FP);
}
//
void Statistics()       //统计工资信息
{
Staff temp;
char nametemp[10];
float sum=0;
int monthstart=0,monthover=0;
cout<<"请输入统计的人员姓名:"<<endl;
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<<"职工"<<nametemp<<"从"<<monthstart<<"月至"<<monthover<<"月合计"<<sum<<"元。"<<endl;

}

void NameSearch()
{
char tempname[10];
Staff temp;
cout<<endl;
cout<<"请输入要查询的职工的名称:";
cin>>tempname;
FP=FileOpen(FILENAME);
while(fread(&temp,sizeof(Staff),1,FP)==1)
{
   if(strcmp(temp.Name,tempname))
   {
   cout<<"姓名:"<<temp.Name<<endl;
   cout<<"卡号:"<<temp.CarNumber<<endl;
   cout<<"月份:"<<temp.Month<<endl;
   cout<<"应发工资:"<<temp.SPWages<<endl;
   cout<<"水费:"<<temp.Water<<endl;
   cout<<"电费:"<<temp.Electrical<<endl;
   cout<<"税金:"<<temp.Tax<<endl;
   cout<<"实发工资:"<<temp.APWages<<endl;
   cout<<endl;
   }
}
FileClose(FP);
}
int Search()
{
int Choose=0;
while(1)
{
   cout<<endl;
   cout<<"请选择查询方式"<<endl;
   cout<<"1、按照卡号查询"<<endl;
   cout<<"2、按照姓名查询"<<endl;
   cout<<"0、返回上级目录"<<endl;
   cout<<"请输入查询方式:"<<endl;
   cin>>Choose;
   switch(Choose)
   {
   case 1:;break;
   case 2:NameSearch();break;
   case 0:return 0;break;
   }
}
}
//
void ShowMenu()      //目录显示函数
{
int Choose=0;
while(1)
{
   cout<<endl;
   cout<<"工资信息管理系统"<<endl;
   cout<<"1、添加工资信息。"<<endl;
   cout<<"2、浏览工资信息。"<<endl;
   cout<<"3、统计工资信息。"<<endl;
   cout<<"4、查询工资信息。"<<endl;
   cout<<"0、退出系统。"<<endl;
   cout<<"请输入服务类型:";
   cin>>Choose;
   switch(Choose)
   {
   case 1:Increase();break;
   case 2:PrintInformation();break;
   case 3:Statistics();break;
   case 4:Search();break;
   case 0:exit(0);break;
   }
}
}
void main()
{
ShowMenu();
}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
.2.2 职工需求描述 对于职工来说,职工可以修改其密码信息,查询其基本信息和工资信息,收发留言信息。 职工登陆 职工在登陆时输入自己的用户名和密码,如无误后进入职工信息中心界面。默认的密码由管理员分配。如果密码错误则提示密码出错请重新输入,职工可以返回登陆界面。 职工密码修改 职工在登陆后,可以修改自己的密码。在修改密码界面中,需要两次输入自己的新密码,然后系统经过判断修改密码。下次可以通过新密码登陆系统。 职工考勤信息查询 在职工登陆后,进入考勤查询界面,页面给出每月的考勤信息,点击相应的年月,可以查看自己每个月的考勤记录详细信息。 职工工资信息查询 进入查询界面,职工可以查看详细工资情况,职工可以通过选择月份,便可以查询职工固定月份的工资信息。职工还可以查询自己的奖惩信息。 职工留言管理 职工可以向管理员发送留言,查看管理员发送给自己的留言。 3.2.3 管理员需求描述 对于管理员来说,管理员的能够实现的功能是该工资管理系统的核心功能,包括员工基本档案信息的管理,工资的设定与计算,考勤记录与统计,奖惩或其他重要事项的记录,留言管理,科室信息管理等。 管理员登陆 管理员在登陆框选择身份为管理员,输入自己的管理员号以及密码。如无误后进入管理员界面。如果密码不正确则提示密码错误信息,需要重新输入,返回管理员登陆界面。 密码修改 管理员可以修改自己的密码,下次登陆时管理员就需要输入自己的新密码登陆系统。 科室管理 随着医院规模的扩大,医院可能需要增加某些科室,修改科室信息等,管理员登陆系统后,可以对科室信息进行管理、操作。 员工信息管理 管理员登陆后,可以进行查看员工信息,增加员工,修改员工信息,删除员工信息等操作。 员工奖惩信息管理 根据 人民医院管理制度,管理员可以使用系统记录每个员工的奖励 ,惩罚等其他重要信息,以便确定员工的工作状况,实现相应的奖励和处罚。 员工工资设置 管理员登陆系统后,可以设置每个员工的每月工资信息,其中工资项包括基本工资,基本津贴,财务人员需要为每个在职的员工设定基本工资与基本津贴。财务人员根据员工的具体工资情况,输入奖金,税率等,系统自动计算应发,扣发,实发等工资项。 工资统计与报表打印 统计每个月所有员工的工资信息,并提供报表打印功能。 留言管理模块 职工查看自己的工资信息后,如有问题,可以向财务人员(系统管理员)发送留言,管理员可以回复留言,删除留言信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值