?姓名?职工工资条
第二篇:职工工资程序
/*通讯程序*/
/******头文件(.h)***********/
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#include "ctype.h"
#include "conio.h"
#define M 50
struct moneybook
{
int num; /*职工编号*/
char name[20]; /*职工姓名*/
char bumen[20]; /*所在部门*/
float yinggongzi; /*应发工资*/
float yiliao; /*医疗保险*/
float shigongzi; /*实发工资*/
};
typedef struct moneybook MoneyBook;
int Init(MoneyBook t[]); /*输入信息*/
void List(MoneyBook t[],int n); /*显示信息*/
void SearchOnName(MoneyBook t[],int n); /*根据姓名查询*/ void Searchnum(MoneyBook t[],int n);/*根据职工编号查询*/
int DeleteRecord(MoneyBook t[],int n); /*删除信息*/
int AlterRecord(MoneyBook t[],int n);/*修改信息*/
int AddRecord(MoneyBook t[],int n);/*增加*/
void SortOnshigongzi(MoneyBook t[],int n); /*实际工资从小到大排序*/
void Fanwei(MoneyBook t[],int n); /*根据工资范围查*/
void SaveRecord(MoneyBook t[],int n);
int LoadRecord(MoneyBook t[]);
int Menu_select();
void main()
{
MoneyBook mo[M];
int length;
system("cls");
while(1)
{
switch(Menu_select())
{
case 1: length=Init(mo);
SaveRecord(mo,length);
break;
case 2:length=LoadRecord(mo); List(mo,length);
break;
case 3:length=LoadRecord(mo);
SearchOnName(mo,length); getchar();
break;
case 4:length=LoadRecord(mo);
length=DeleteRecord(mo,length); SaveRecord(mo,length); break;
case 5:length=LoadRecord(mo);
length=AlterRecord(mo,length); SaveRecord(mo,length); break;
case 6:length=LoadRecord(mo);
length=AddRecord(mo,length); SaveRecord(mo,length); break;
case 7:length=LoadRecord(mo);
SortOnshigongzi(mo,length); SaveRecord(mo,length);
getchar();
List(mo,length);
getchar();
break;
case 8:length=LoadRecord(mo);
Fanwei(mo,length);
getchar(); getchar();
SaveRecord(mo,length);
// List(mo,length);
break;
case 0:exit(0); /*如返回值为0则程序结束*/ } }
}
/*菜单函数,函数返回值为整数,代表所选的菜单项*/ int Menu_select()
{
int c;
system("cls");
printf("********************************MENU***************
******************\n\n");
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");
do{
printf("\nEnter your choice(0-8):");
scanf("%d",&c);
getchar();
}while(c<0||c>8);
return c;
}
int Init(MoneyBook t[])
{
int i,n;
system("cls");
printf("\n请输入要输入的记录数:\n"); scanf("%d",&n);
printf("开始输入记录:\n");
for(i=0;i<n;i++)
{ system("cls");
printf("\n第%d条记录的职工编号:",i+1); scanf("%d",&t[i].num);
printf("第%d条记录的职工姓名:",i+1); scanf("%s",t[i].name);
printf("第%d条记录的职工所在部门:",i+1); scanf("%s",t[i].bumen);
printf("第%d条记录的职工应发工资:",i+1); scanf("%f",&t[i].yinggongzi); printf("第%d条记录的医疗保险:",i+1); scanf("%f",&t[i].yiliao);
}
return (n);
}
void List(MoneyBook t[],int n)
{
int i;
system("cls");
printf("\n\n*********************************MONEY***********************************\n");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("---------------------------------------------------------------------------\n");
for(i=0;i<n;i++)
{ printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
if((i+1)%10==0)
{
printf("Press any key continue...\n");
getchar();
}
}
printf("\n************************************end***********************************\n");
getchar();
}
/*查找记录*/
void SearchOnName(MoneyBook t[],int n)
{
char s[20];
int i,flag=0;
system("cls");
printf("请输入要查找的姓名:\n");
scanf("%s",s);
for(i=0;i<n;i++)
{
if(strcmp(s,t[i].name)==0)
{ flag=1;
/* clrscr();*/
printf("\n\n此人的信息如下:\n");
printf("\n\n*********************************MONEY***********************************\n");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("---------------------------------------------------------------------------\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n************************************end***********************************\n");
}
getchar();
}
if(flag==0)
printf("查无此人!!\n");
}
int DeleteRecord(MoneyBook t[],int n)
{ int s;
char ch='N';
int i,j,flag=0;
system("cls");
printf("请输入要删除的职工编号\n");
scanf("%d",&s);
for(i=0;i<n;i++)
{
if(s==t[i].num)
{ flag=1;
system("cls");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("---------------------------------------------------------------------------\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n************************************end***********************************\n");
printf("Are you sure delete it(Y/N)\n");
ch=getchar();
ch=getchar(); if (ch=='y'||ch=='Y')
{
for(j=i;j<n-1;j++) t[j]=t[j+1]; } n--; i--; }
}
if(flag==0)
printf("查无此人!!\n");
getchar();
return n;
}
/*修改记录*/
int AlterRecord(MoneyBook t[],int n)
{
int m;
int i,b;
system("cls");
printf("请输入要修改的职工编号\n");
scanf("%d",&m);
for(i=0;i<n;i++)
{
if(m==t[i].num)
{
system("cls");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("---------------------------------------------------------------------------\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n************************************end***********************************\n");
printf("请输入要修改第几项:");
scanf("%d",&b);
if (b==1)
{ printf("\n请输入新的数据\n");
scanf("%d",&t[i].num);
printf("\n修改后的数据为\n");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n************************************end***********************************\n");
}
else if(b==2)
{ printf("\n请输入新的数据\n");
scanf("%s",t[i].name);
printf("\n修改后的数据为\n");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保险 实发工资\n");
printf("---------------------------------------------------------------------------\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n************************************end***********************************\n");
}
}
return n;
}
int AddRecord(MoneyBook t[],int n)
{ }
int i,m;
system("cls");
printf("\n请输入在增加的记录数:\n"); scanf("%d",&m);
printf("开始追加记录\n");
for(i=n;i<n+m;i++)
{ system("cls");
printf("\n第%d条记录的职工编号:",i+1); scanf("%d",&t[i].num);
printf("第%d条记录的职工姓名:",i+1); scanf("%s",t[i].name);
printf("第%d条记录的职工所在部门:",i+1); scanf("%s",t[i].bumen);
printf("第%d条记录的职工的应发工资:",i+1); scanf("%f",&t[i].yinggongzi);
printf("第%d条记录的医疗保险:",i+1); scanf("%f",&t[i].yiliao);
}
return (n+m);
}
void SortOnshigongzi(MoneyBook t[],int n) { int i,j;
MoneyBook temp;
for(j=1;j<n;j++)
for(i=0;i<n-j;i++)
{if(t[i].shigongzi>t[i+1].shigongzi) /*比较大小*/ {
temp=t[i];
t[i]=t[i+1];
t[i+1]=temp;
}
}
printf("排序成功!!!\n");
}
/*按职工实际工资范围查询*/
void Fanwei(MoneyBook t[],int n)
{
float m,w;
int i,flag=0;
system("cls");
printf("请输入要查询的范围");
scanf("%f%f",&m,&w);
for(i=0;i<n;i++)
{ if ((t[i].shigongzi>=m)&&(t[i].shigongzi<=w))
{flag=1;
printf("\n\n*********************************MONEY***********************************\n");
printf("职工编号 职工姓名 所在部门 应发工资 医疗保 险实发工资\n");
printf("---------------------------------------------------------------------------\n");
printf("%-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); printf("%-14.2f", t[i].yinggongzi);
printf("%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
printf("%-10.2f\n", t[i].shigongzi);
printf("\n*********************************end***********************************\n");
}
} if(flag==0)
printf("未找到该范围内记录!!");
}
/*保存函数,参数为结构体数组和记录数*/
void SaveRecord(MoneyBook t[],int n)
{
int i;
FILE *fp; /*指向文件的指针*/
if((fp=fopen("d://1.txt","w"))==NULL)
{
printf("can not open file\n");
exit(1);
}
fprintf(fp,"%d",n);
fprintf(fp,"\r\n");
for(i=0;i<n;i++)
{
fprintf(fp," %-15d%-10s%-8s",t[i].num,t[i].name,t[i].bumen); fprintf(fp,"%-14.2f", t[i].yinggongzi);
fprintf(fp,"%-10.2f", t[i].yiliao);
t[i].shigongzi=t[i].yinggongzi-t[i].yiliao;
fprintf(fp,"%-10.2f\n", t[i].shigongzi);
fprintf(fp,"\r\n");
}
fclose(fp);/*关闭文件*/
}
/*读入函数,参数为结构体数组*/
int LoadRecord(MoneyBook t[])
{
int i,n;
FILE *fp;
if((fp=fopen("d://1.txt. ","r"))==NULL)
{
printf("can not open file\n");
exit(1);
}
fscanf(fp,"%d",&n);
for(i=0;i<n;i++)
fscanf(fp,"%-15d%-10s%-8s",&t[i].num,t[i].name,t[i].bumen); fscanf(fp,"%-14.2f",&t[i].yinggongzi);
fscanf(fp,"%-10.2f",&t[i].yiliao);
fscanf(fp,"%-10.2f",&t[i].shigongzi);
fclose(fp);
printf("从文件中成功读出记录!!!\n");
return n; }