永发信息网

C 语言小程序 用结构体数组初始化建立3个人的工资登记表,工资表包括姓名、部门、工资、税金等

答案:3  悬赏:70  手机版
解决时间 2021-04-03 21:45
C 语言小程序 用结构体数组初始化建立3个人的工资登记表,工资表包括姓名、部门、工资、税金等
最佳答案
标准答案,放心使用!
#include
#define NUM 100
void input()
;void search()
;void search_num();
void dele()
;void dele_name();
void dele_num()
;void modi()
;void modi_num();
void output()
;void stat()
;void fun()
;void run();
struct emploee
{
char no[5];
char name[8];
char sex[3];
int age;
int salar;
}emp[NUM],newemp;
main()
{int x;
printf(" 1. 输入职工记录\n");
printf(" 2. 查询职工记录\n");
printf(" 3. 修改职工记录\n");
printf(" 4. 删除职工记录\n");
printf(" 5. 打印职工记录\n");
printf(" 6. 调查工资情况\n");
printf(" 7. 追加职工记录\n");
printf(" 8. 结束使用\n");
printf(" 0. 退出系统\n");
printf("\n");
printf("*** 欢迎使用职工工资管理系统 ***\n");
printf("请选择(0-8):\n");
scanf("%d",&x);
switch(x)
{
case 1: input();break;
case 2: search();break;
case 3: modi();break;
case 4: dele();break;
case 5: output();break;
case 6: stat();break;
case 7: run();break;
case 8: fun();break;
default:printf("\n Wrong!");
}
if(x==0)break;
}
}
void input()
{
FILE *fp;
int n,i;
if ((fp=fopen("emp","wb"))==NULL)
{

printf("不能建立emp文件\n");
exit(1);
}
printf("输入职工人数:");
scanf("%d",&n);
printf("输入格式:职工号 姓名 性别 年龄 工资\n");
for(i=0;i {
printf("第%d个职工:",i+1);
scanf("%s%s%s%d%d",emp[i].no,emp[i].name,emp[i].sex,
&emp[i].age,&emp[i].salar);
}
for(i=0;i fwrite(&emp[i],sizeof(struct emploee),1,fp);
fclose(fp);
}

void stat( )
{
FILE *fp;
int n,num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("工资数:");
scanf("%d",&num);
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(n=0;fread(&emp,sizeof(struct emploee),1,fp);n++)
if(emp[n].salar>=num)
printf("%6d%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar);
fclose(fp);
}


void dele()
{
int x;
while(1)
{
printf("\n\n\t\t删除子菜单\n");
printf("\t\t*********\n");
printf("\t\t 1.按职工号删除记录\n");
printf("\t\t 0.返回主菜单\n");
printf("\t\t*********\n");
printf("\t 请选择(0-1):");
scanf("%d",&x);
switch(x)
{case 1:dele_num();break;
default:printf("\nWrong!");
}
if(x==0)break;
}
}
void dele_num()
{
FILE *fp;
int i,j,n;
char num[5];
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("删除前:\n");
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(n=0;fread(&emp[n],sizeof(struct emploee),1,fp);n++)
printf("%6s%6s%9s%4s%5d%6d\n",n+1,emp[n].no,emp[n].name,emp[n].sex,
emp[n].age,emp[n].salar);
printf("要删除的职工号:");
scanf("%s",num);

for(i=0;(strcmp(emp[i].no,num)!=0&&i if(i>=n)
{
printf("\t没有%s职工号的职工\n",num);
exit(2);
}
fclose(fp);
fp=fopen("emp","w+");
if(n==1)
{
fclose(fp);
exit(3);
}
for(j=0;j fwrite(&emp[j],sizeof(struct emploee),1,fp);
for(j=i+1;j fwrite(&emp[j],sizeof(struct emploee),1,fp);
printf("删除后:\n");
fseek(fp,0,SEEK_SET);
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
printf("%6s%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}

void modi()
{
int x;
while(1)
{
printf("\n\n\t\t修改子菜单\n");
printf("\t\t*********************\n");
printf("\t\t1. 按职工号修改\n");
printf("\t\t0. 返回主菜单\n");
printf("\t\t*********************\n");

printf("\t请选择(0-1):");
scanf("%d",&x);
switch(x)
{
case 1:modi_num();break;
default:printf("\n输错误!");
}
if(x==0)break;
}
}
void modi_num()
{
FILE *fp;
int i,j;
char num[5];
if((fp=fopen("emp","rb+"))==NULL)
{
printf("不能 打开emp文件\n");
exit(1);
}
printf("要修改的职工号:");
scanf("%s",num);
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num))break;
if(feof(fp))
{
printf("\t没有%s职工号的职工\n",num);
exit(2);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
printf("输入格式:职工号 姓名 性别 年龄 工资\n");
printf("第%d个记录:",i+1);
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,
&newemp.salar);

fseek(fp,-(long)sizeof(struct emploee),SEEK_CUR);

fwrite(&newemp,sizeof(struct emploee),1,fp);
printf(" 修改后:\n");
fseek(fp,0,SEEK_SET);
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}

void search( )
{
int x;
while(1)
{
printf("\n\n\t\t查子菜单\n");
printf("\t\t********************\n");
printf("\t\t 1.按职工号查询\n");
printf("\t\t 0.返回主菜单\n");
printf("\t\t********************\n");
printf("\t请选择(0-1):");
scanf("%d",&x);
switch(x)
{
case 1:search_num();break;
default :printf("\n Wrong!");
}
if(x==0) break;
}
}
void search_num()
{
FILE *fp;
int i;

char num;
if((fp=fopen("emp","rb"))==NULL)
{
printf("不能打开emp文件\n");
exit(1);
}
printf("要查询的职工号:");
scanf("%s",num);
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp);i++)
if(!strcmp(emp[i].no,num)) break;
if(feof(fp))
{
printf("\t查无此人\n");
exit(2);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
fclose(fp);
}

void output()
{int i;
FILE *fp;
if((fp=fopen("emp","r"))==NULL)
{printf("不能打开emp文件\n");
exit(0);
}
printf("记录号 职工号 姓名 性别 年龄 工资\n");
for(i=0;fread(&emp[i],sizeof(struct emploee),1,fp)!=0;i++)
{
printf("%6d%6s%9s%4s%5d%6d\n",i+1,emp[i].no,emp[i].name,emp[i].sex,
emp[i].age,emp[i].salar);
}
fclose(fp);
}

void run()
{
FILE *fp;
int n,i,j;
if((fp=fopen("emp","ab+"))==NULL)
{printf("不能打开emp文件\n");
exit(0);
}
printf("要追加的职工人数:");
scanf("%d",&n);
for(i=0;i { printf("输入格式:职工号 姓名 性别 年龄 工资\n");
printf("职工记录:");
scanf("%s%s%s%d%d",newemp.no,newemp.name,newemp.sex,&newemp.age,
&newemp.salar);

fwrite(&newemp,sizeof(struct emploee),1,fp);

}
fclose(fp);
}

void fun()
{printf("\t\t******************************************\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t* 谢 谢 使 用 ! *\n");
printf("\t\t* *\n");
printf("\t\t* *\n");
printf("\t\t******************************************\n");
}
全部回答
#include "stdio.h"
struct salary_list
{
char name[20];
char department[30];
double salary;
double Scot;
};
int main()
{
salary_list gzb[3] = {{"li","caiwu",4500.50,100.30},{"liu","houqin",2500.50,10.30},{"hu","yanfa",6500.50,300.30}};
for(int i=0;i<3;i++)
{
printf("%6s\t",gzb[i].name);
printf("%6s\t",gzb[i].department);
printf("%6lf\t",gzb[i].salary);
printf("%6lf\t",gzb[i].Scot);
printf("\n");
}
return 0;

}
#include "stdio.h"
static gz
{
char name[20];
char bumen[30];
double gongzi;
double shuijin;
}gzb[3];
main()
{
gzb[0].name=”abc“;
gzb[0].bumen=”aaa“;
gzb[0].gongzi=4000.00;
gzb[0].shuijin=50.00;
gzb[1].name=”abb“;
gzb[1].bumen=”bbb“;
gzb[1].gongzi=4200.00;
gzb[1].shuijin=55.00;
gzb[2].name=”acc“;
gzb[2].bumen=”ccc“;
gzb[2].gongzi=4800.00;
gzb[2].shuijin=58.00;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
建设银行信用卡代款怎么还款
回复:复旦第一才女,对对联,不服来
摩羯座的吉祥物是什么,摩羯座有什么兴趣或爱
求泰国电影love is coming第一部第二部不要压
跪求蛇蝎美人全季的百度云网盘,非常感谢了。
发邮件愿身体安好发给什么人合适
单选题甲、乙、丙三个学生在做测大气压的实验
在寒假中,玩得变懒了,开学后,怎么样调整好
关于人物心理的句子,描写人物心理活动的句子
怎样向老人自我介绍最能讨喜
为什么英雄联盟更新到6.11后总跳频
北史•傅永传阅读答案
玉器上四个童子什么意思
描写鸟的句子,求个位给,不要单一的,要连在一
外面一个门字,中间一个入字念什么啊?
推荐资讯
周公的生平事迹
"Howmanyelephantsdidyousee?" "_____"A.None
比邻一个号不能随机电话换了一个号又可以是怎
一个书架其中一层宽20分米,一本书厚4厘米,我
如图,图中以AB为边的三角形的个数是A.3B.4C.
将抛物线y=5x2向下平移3个单位,再向左平移2
流量3M等于MB
布加迪威龙有没有990万欧元左右的
如图,学校到家有3条路,走________路最近,
哪里有一本快穿小说的女主叫唐宝婵
荣耀9出来后,荣耀8什么时候降价,降价幅度多
ps怎么做到像QQ蓝天白云那样蓝色深浅不一
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?