完成如下功能:
1)数据的输入操作
2)数据的修改
⑴ 输入错误的数据修改
⑵ 职工减员
⑶ 职工增加
3)按姓名查询有关数据
4)数据计算
应发工资=基本工资+洗礼费+奖金
实发工资=应发工资-房费-水费-电费
5)数据输出
输出工资条(每人)和汇总表
#include "stdio.h"
#include "conio.h"
#include "stdlib.h"
#define TRUE 1
struct zhigong
{
int month,id,jbgz,jj,xlf,yfs,ff,sf,df,yks,sfs;
};
struct zhigong zg[50];
struct zhigong zgone;
int n=0;
char numstr[50];
main()
{
char ch;
n=0;
while(TRUE)
{
printf("\n");
printf("===========================================\n");
printf(" 请选择( 1-7 ) : \n");
printf("1. 添加职工信息 \n");
printf("2. 删除职工信息 \n");
printf("3. 修改职工信息 \n");
printf("4. 以ID方式输出 \n");
printf("5. 输出所有信息 \n");
printf("6. 存档 \n");
printf("7. 退出 \n");
printf("===========================================\n");
ch=getche();
switch(ch)
{
case '1':addone();break;
case '2':delone();break;
case '3':modone();break;
case '4':idone();break;
case '5':listall();break;
case '6':wfile();break;
case '7':rfile();break;
case '8':return;
default:printf("请重新选择\n");
}
}
}
addone(void)
{
printf("\n");
printf("编号: \n");
gets(numstr);
zg[n].id=atof(numstr);
printf("基本工资: \n");
gets(numstr);
zg[n].jbgz=atof(numstr);
printf("奖金: \n");
gets(numstr);
zg[n].jj=atof(numstr);
printf("洗礼费: \n");
gets(numstr);
zg[n].xlf=atof(numstr);
zg[n].yfs=(zg[n].jbgz)+(zg[n].jj)+(zg[n].xlf);
printf("房费: \n");
gets(numstr);
zg[n].ff=atof(numstr);
printf("水费: \n");
gets(numstr);
zg[n].sf=atof(numstr);
printf("电费: \n");
gets(numstr);
zg[n].df=atof(numstr);
zg[n].yks=(zg[n].ff)+(zg[n].sf)+(zg[n].df);
zg[n].sfs=(zg[n].yfs)-(zg[n].yks);
n++;
}
delone(void)
{
struct zhigong tmp[50];
int zhigongid;
int j,k;
int flagfind;
flagfind=0;
k=0;
printf("\n 请输入职工编号: \n");
gets(numstr);
zhigongid=atof(numstr);
for(j=0;j<=n;j++)
{
if(zg[j].id==zhigongid)
{
flagfind=1;
}
else
{
tmp[k]=zg[j];
k++;
}
}
if(flagfind==1)
{
for(j=0;j<=(n-1);j++)
{
zg[j]=tmp[j];
}
printf("\n 删除记录 \n");
n=n-1;
}
else
{
printf("\n 未发现记录 \n");
}
return;
}
modone(void)
{
float zhigongid;
int j;
int flagfind;
flagfind=0;
printf("\n 请输入职工编号: \n");
gets(numstr);
zhigongid=atof(numstr);
for(j=0;j<=n;j++)
{
if(zg[j].id==zhigongid)
{
printf("职工编号%d\t",zg[j].id);
printf("基本工资:%d\t",zg[j].jbgz);
printf("基本工资: \t");
gets(numstr);
zg[j].jbgz=atof(numstr);
printf("奖金:%d\t",zg[j].jj);
printf("奖金: \n");
gets(numstr);
zg[j].jj=atof(numstr);
printf("洗礼费:%d\t",zg[j].xlf);
printf("洗礼费: \n");
gets(numstr);
zg[j].xlf=atof(numstr);
zg[j].yfs=(zg[j].jbgz)+(zg[j].jj)+(zg[j].xlf);
printf("房费:%d\t",zg[j].ff);
printf("房费: \n");
gets(numstr);
zg[j].ff=atof(numstr);
printf("水费:%d\t",zg[j].sf);
printf("水费: \n");
gets(numstr);
zg[j].sf=atof(numstr);
printf("电费:%d\t",zg[j].df);
printf("电费: \n");
gets(numstr);
zg[j].df=atof(numstr);
zg[j].yks=(zg[j].ff)+(zg[j].sf)+(zg[j].df);
zg[j].sfs=(zg[j].yfs)-(zg[j].yks);
flagfind=1;
}
else
{
flagfind=0;
}
}
if(flagfind==0)printf("\n 不能读取记录 \n");
return;
}
idone(void)
{
float zhigongid;
int j;
int flagfind;
flagfind=0;
printf("\n 请输入职工编号: \n");
gets(numstr);
zhigongid=atof(numstr);
for(j=0;j<=n;j++)
{
if(zg[j].id==zhigongid)
{
printf("\n %d record found! \n |",j+1);
printf("职工编号%d\t",zg[j].id);
printf("基本工资:%d\t",zg[j].jbgz);
printf("奖金:%d\t",zg[j].jj);
printf("洗礼费:%d\t",zg[j].xlf);
printf("应发数:%d\t",zg[j].yfs);
printf("房费:%d\t",zg[j].ff);
printf("水费:%d\t",zg[j].sf);
printf("电费 :%d\t",zg[j].df);
printf("应扣数:%d\t",zg[j].yks);
printf("实发数:%d\t",zg[j].sfs);
flagfind=1;
}
else
{
flagfind=0;
}
}
if(flagfind==0)printf("\n 不能读取记录 \n");
return;
}
listall(void)
{
int j;
if(n<1)
{
printf("\n 无记录 \n");
}
else
{
for(j=0;j<n;j++)
{
printf("\n NO:%d |",j+1);
printf("职工编号%d\t",zg[j].id);
printf("基本工资:%d\t",zg[j].jbgz);
printf("奖金:%d\t",zg[j].jj);
printf("洗礼费:%d\t",zg[j].xlf);
printf("应发数:%d\t",zg[j].yfs);
printf("房费:%d\t",zg[j].ff);
printf("水费:%d\t",zg[j].sf);
printf("电费:%d\t",zg[j].df);
printf("应扣数:%d\t",zg[j].yks);
printf("实发数:%d\n",zg[j].sfs);
}
}
}
wfile(void)
{
FILE *fptr;
printf("\n 存档中... \n");
if((fptr=fopen("gongzi.txt","wb"))==NULL)
printf("Can not open file gongzi.txt! \n");
else
{int i;
for (i=0;i<n;i++)
fprintf(fptr,"%d","zg[j].id");
fclose(fptr);
printf("File of %d records written! \n",n );
}
}
rfile(void)
{
FILE *fptr;
n=0;
if((fptr=fopen("gongzi.txt","rb"))==NULL)
printf("Can not open file gongzi.txt! \n");
else
{
while(fread(&zg[n],sizeof(zg[n]),1,fptr)==1)
n++;
fclose(fptr);
printf(" 全部 %d 读取记录! \n",n);
}
}
c语言、编写工资管理系统,请帮忙改动!
答案:1 悬赏:10 手机版
解决时间 2021-05-13 21:49
- 提问者网友:溺爱和你
- 2021-05-13 15:33
最佳答案
- 五星知识达人网友:逐風
- 2021-05-13 17:12
又见到一个.....
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯