2014.10.05

开学时候的课程设计
不多说了,直接上程序~
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include <windows.h>
#include <malloc.h>
struct epl
{
char num[10];//职工号
char name[10];//姓名
char bumen[10];//部门
float wage;//岗位工资
float jintie;//岗位津贴
float bufa;//补发工资
float yiliao;//医疗保险
float tax;//所得税
float sd;//水电费
float yingfa;//应发工资
float shifa;//实发工资
struct epl *next;
}ep[50];
struct epl *head=&ep[0];
int xuhao=0;
int *welco=&xuhao;//序号
int system(const char *string);
void xinxishuru(struct epl ep[],int *q1);
void xinxichaxun(struct epl ep[],int *q2);
void zhucaidan(struct epl ep[]);
void renshujiance();
int shuishou(float c);
void qingkongxinxi();
void bumen();
void charu();
void xieru();
void del();
/********************主函数***********************/
int main()
{
    system("mode con cols=140 lines=60");//窗口宽度高度
renshujiance();
zhucaidan(ep);
}
/********************主菜单***********************/
void zhucaidan(struct epl ep[])
{
printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");
printf("                              **********************************************\n");
printf("                              *           欢迎进入职工工资管理系统         *\n");
printf("                              **********************************************\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");
printf("                              *************---请选择0~8----****************\n");
printf("                                                选择");                             
int i;
scanf("%d",&i);
switch(i)
{
case 0 :return;
case 1 :xinxishuru(ep,welco);break;
case 2 :xinxichaxun(ep,welco);break;
case 3 :bumen();break;
case 4 :charu();break;
case 5 :del();break;
case 6 :break;
case 7 :break;
case 8 :qingkongxinxi();break;
default:printf("输入错误\n");

}
}
/*********************------信息输入----***************************/
void xinxishuru(struct epl ep[],int *q1)
{     
    int t;
t=*q1;
FILE *fp;
fp=fopen("c:\\ep.txt","a+");
system("cls");
printf("请输入职工号");
scanf("%s",ep[t].num);  fprintf(fp,"%s   ",ep[t].num);//职工号
printf("请输入姓名");
scanf("%s",ep[t].name);  fprintf(fp,"%s   ",ep[t].name);//姓名
printf("请输入部门");
scanf("%s",ep[t].bumen);  fprintf(fp,"%s   ",ep[t].bumen);//部门
printf("请输入岗位工资");
scanf("%f",&ep[t].wage);  fprintf(fp,"%5.1f   ",ep[t].wage);//岗位工资
printf("请输入岗位津贴"); 
scanf("%f",&ep[t].jintie);  fprintf(fp,"%5.1f   ",ep[t].jintie);//岗位津贴
printf("请输入补发工资");
scanf("%f",&ep[t].bufa);  fprintf(fp,"%5.1f   ",ep[t].bufa);//补发工资
printf("请输入医疗保险");
scanf("%f",&ep[t].yiliao);  fprintf(fp,"%5.1f   ",ep[t].yiliao);//医疗保险
printf("请输入水电费");
scanf("%f",&ep[t].sd); fprintf(fp,"%5.1f   ",ep[t].sd);//水电费
ep[t].yingfa=ep[t].wage+ep[t].jintie+ep[t].bufa+ep[t].yiliao;
ep[t].tax=shuishou(ep[t].yingfa);
ep[t].shifa=ep[t].yingfa-ep[t].tax;
fprintf(fp,"%5.1f   ",ep[t].tax);
fprintf(fp,"%5.1f   ",ep[t].yingfa);
fprintf(fp,"%5.1f\n",ep[t].shifa);
fclose(fp);
(*welco)++;
system("cls");
zhucaidan(ep);
}
/*************************------信息查询----**********************************/
void xinxichaxun(struct epl ep[],int *q2)
{
system("cls");
FILE *eu;
eu=fopen("c:\\ep.txt","r");
int t;
for(t=0;t<(*welco);t++)
fscanf(eu,"%s   %s   %s   %f   %f   %f   %f   %f   %f   %f   %f",ep[t].num,ep[t].name,ep[t].bumen,
&ep[t].wage,&ep[t].jintie,&ep[t].bufa,&ep[t].yiliao,&ep[t].sd,&ep[t].tax,&ep[t].yingfa,&ep[t].shifa);
int tem;
printf("***********************************************************************************************\n");
printf("*                                           信息查询                                          *\n");
printf("***********************************************************************************************\n");
printf("*职工号  姓名  部门  岗位工资  津贴  补发工资  医疗保险  水电费  税收  应发工资  实发工资      \n");
for(t=0;t<(*welco);t++)
{
    printf("%s\t%s\t%s\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t%5.1f\t\n",ep[t].num,ep[t].name,ep[t].bumen,
ep[t].wage,ep[t].jintie,ep[t].bufa,ep[t].yiliao,ep[t].sd,ep[t].tax,ep[t].yingfa,ep[t].shifa);
}
printf("***********************************************************************************************\n");
    printf("\n");
printf("                                  总人数为 %d\n",*welco);
printf("\n                               输入0返回主菜单");
scanf("%d",&tem);
if(tem==0)
{
system("cls");
zhucaidan(ep);
}
}
/********************------人数检测----*********************/
void renshujiance()
{
FILE *fq;
fq=fopen("c:\\ep.txt","a+");
int i;
i=0;
char tenr[100];
while(fgets(tenr,99,fq))i++;
*welco=i;
}
/********************------应纳税收----*********************/
int shuishou(float c)
{
if((0<c)&&(c<800))return 0;
if((800<c)&&(c<1300))return c*0.05;
if((1300<c)&&(c<2800))return c*0.1;
if((2800<c)&&(c<5800))return c*0.15;
if((5800<c)&&(c<20800))return c*0.2;
}
/********************------清空职工信息----*********************/
void qingkongxinxi()
{
FILE *fe;
fe=fopen("c:\\ep.txt","w+");
fprintf(fe,"");
fclose(fe);
*welco=0;
printf("                                             清除成功!");
Sleep(999);
system("cls");
zhucaidan(ep);
}
/******************------部门工资总数查询----**********************/
void bumen()
{
system("cls");
int i,k=0;
char t[10];
int tem;
int y;
printf("请输入查询的部门");
scanf("%s",t);
char bumenk[20][10];//分配20个部门
float sum[20];
for(i=0;i<(*welco);i++)// i 扫描全部职工
{
if(i==0){strcpy(bumenk[k],ep[i].bumen);sum[k]=ep[i].shifa;k++;i++;}// k是部门序号
for(y=0;y<k;y++)
{
if(strcmp(bumenk[y],ep[i].bumen)==0)//相等
{sum[y]=sum[y]+ep[i].shifa;}
else//不相等
{k++;strcpy(bumenk[k],ep[i].bumen);sum[k]=ep[i].shifa;}
}
}//统计所有部门
for(k=0;k<20;k++)
{
if(strcmp(t,bumenk[k])==0)
{printf("总和是%10.1f",sum[k]);break;}
}
printf("\n                               输入0返回主菜单");
scanf("%d",&tem);
if(tem==0)
{
system("cls");
zhucaidan(ep);
}
}
/******************------职工工资信息插入 ----**********************/
void charu()
{
system("cls");
printf("请输入插入的序号");
int k,t,tem,temp;
scanf("%d",&k);
for(t=(*welco+1);t>=k;t--)
{
strcpy(ep[t].bumen,ep[t-1].bumen);
strcpy(ep[t].name,ep[t-1].name);
strcpy(ep[t].num,ep[t-1].num);
ep[t].wage=ep[t-1].wage;
ep[t].jintie=ep[t-1].jintie;
ep[t].bufa=ep[t-1].bufa;
ep[t].yiliao=ep[t-1].yiliao;
ep[t].tax=ep[t-1].tax;
ep[t].sd=ep[t-1].sd;
ep[t].yingfa=ep[t-1].yingfa;
ep[t].shifa=ep[t-1].shifa;
}
        k=k-1;
printf("请输入职工号");
scanf("%s",ep[k].num); //职工号
printf("请输入姓名");
scanf("%s",ep[k].name); //姓名
printf("请输入部门");
scanf("%s",ep[k].bumen); //部门
printf("请输入岗位工资");
scanf("%f",&ep[k].wage); //岗位工资
printf("请输入岗位津贴"); 
scanf("%f",&ep[k].jintie);//岗位津贴
printf("请输入补发工资");
scanf("%f",&ep[k].bufa); //补发工资
printf("请输入医疗保险");
scanf("%f",&ep[k].yiliao);//医疗保险
printf("请输入水电费");
scanf("%f",&ep[k].sd); //水电费
ep[k].yingfa=ep[k].wage+ep[k].jintie+ep[k].bufa+ep[k].yiliao;
ep[k].tax=shuishou(ep[k].yingfa);
ep[k].shifa=ep[k].yingfa-ep[k].tax;
(*welco)++; 
xieru();
printf("按1显示插入后的信息");
scanf("%d",&tem);
if(tem==1)
{system("cls");xinxichaxun(ep,welco);}
}
/******************------信息写入文本----**********************/
void xieru()
{
FILE *fp;int t;
fp=fopen("c:\\ep.txt","w");
for(t=0;t<(*welco);t++)
{
fprintf(fp,"%s   ",ep[t].num);//职工号
fprintf(fp,"%s   ",ep[t].name);//姓名
fprintf(fp,"%s   ",ep[t].bumen);//部门
fprintf(fp,"%5.1f   ",ep[t].wage);//岗位工资
fprintf(fp,"%5.1f   ",ep[t].jintie);//岗位津贴
fprintf(fp,"%5.1f   ",ep[t].bufa);//补发工资
fprintf(fp,"%5.1f   ",ep[t].yiliao);//医疗保险
fprintf(fp,"%5.1f   ",ep[t].sd);//水电费
ep[t].yingfa=ep[t].wage+ep[t].jintie+ep[t].bufa+ep[t].yiliao;
ep[t].tax=shuishou(ep[t].yingfa);
ep[t].shifa=ep[t].yingfa-ep[t].tax;
fprintf(fp,"%5.1f   ",ep[t].tax);
fprintf(fp,"%5.1f   ",ep[t].yingfa);
fprintf(fp,"%5.1f\n",ep[t].shifa);
}
    fclose(fp);
}
/*************************------信息删除----**********************************/
void del()
{
system("cls");
printf("请输入要删除的员工职工号");
char i[10];
scanf("%s",i);
int k,tem=0;
for(k=0;k<(*welco);k++)
{
if(strcmp(i,ep[k].num)==0)
{
for(;k<(*welco);k++)
{
strcpy(ep[k].bumen,ep[k+1].bumen);
strcpy(ep[k].name,ep[k+1].name);
strcpy(ep[k].num,ep[k+1].num);
ep[k].wage=ep[k+1].wage;
ep[k].jintie=ep[k+1].jintie;
ep[k].bufa=ep[k+1].bufa;
ep[k].yiliao=ep[k+1].yiliao;
ep[k].tax=ep[k+1].tax;
ep[k].sd=ep[k+1].sd;
ep[k].yingfa=ep[k+1].yingfa;
ep[k].shifa=ep[k+1].shifa;
} tem=1;
}
if (tem==1) break;
}
*welco--;
xieru();
printf("按1显示插入后的信息");
scanf("%d",&tem);
if(tem==1)
{system("cls");xinxichaxun(ep,welco);}
}
 开学啦开学啦   麻痹  以后没周末了  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值