C语言课程设计——职工工资管理系统 职工管理系统课程设计

C语言课程设计报告-工资管理系统

一. 系统功能

设计一个职工工资管理系统,其功能包括:

(1)职工基本工资信息录入

包括工号,姓名,应发工资,奖金,扣款,应发工资,扣税,实发工资。

(2)职工基本工资信息保存

(3)职工基本工资信息查询

按照工号查询

按照姓名查询

(4)职工基本工资信息显示

在屏幕上显示所有的职工基本工资信息。

(5)职工基本工资信息更新

能够实现修改,删除,插入,排序功能。

(6)职工基本工资信息统计

统计公司员工工资在各等级的人数

主界面系统主界面应有如下功能选项

录入职工基本工资信息

查询职工基本工资信息

保存职工基本工资信息

删除职工基本工资信息

插入职工基本工资信息

修改职工基本工资信息

统计职工基本工资信息

排序职工基本工资信息

显示职工基本工资信息

退出

代码如下:

#include<stdio.h>

typedefstruct employee

{

char num[10];//保存职工编号

char name[15];//保存职工姓名

float jbgz;//保存职工基本工资

float jj;//保存职工奖金

float kk;//保存职工扣款

floatyfgz;//保存职工应发工资

float sk;//保存职工税款

float sfgz;//保存职工实发工资

}ZGGZ;

voidmenu()

{

printf("Empoyee Systemn");

printf("--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@n");

printf("*1 inputrecord*2 deleterecordn");

printf("*3 searchrecord*4 modifyrecordn");

printf("*5 insertrecord*6 countrecordn");

printf("*7 sortrecord*8 saverecordn");

printf("*9 displayrecord*0 quitrecordn");

printf("--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@--<-<-<@n");

printf("Please enter you choice(0-9)n");

}

intinput(ZGGZ a[],int k)

{

int j,x;

char str[10];

j=x=0;

while(1)

{

printf("----------------------------n");

printf("请输入职工的编号:(按0返回主菜单)");

scanf("%s",str);

strcpy(a[k].num,str);

for(j=0;j<k;j++)

{

if(strcmp(a[j].num,str)==0)

{

printf("已经有工号为%s的员工信息!请重新输入员工号。n",str);

printf("请输入职工的编号:");

scanf("%s",str);

strcpy(a[k].num,str);

}

}

if(strcmp(a[k].num,"0")==0)

break;

printf("请输入职工的姓名:");

scanf("%s",a[k].name);

printf("请输入职工的基本工资:");

scanf("%f",&a[k].jbgz);

printf("请输入职工的奖金:");

scanf("%f",&a[k].jj);

printf("请输入职工的扣款:");

scanf("%f",&a[k].kk);

a[k].yfgz=a[k].jbgz+a[k].jj-a[k].kk;

a[k].sk=a[k].yfgz*(0.05);

a[k].sfgz=a[k].yfgz*(0.95);

k++;

}

return k;

}

intdel(ZGGZ a[],int y)

{

int i=0;

int x=0;

char str[15];

printf("请输入你要删除的编号或姓名:");

scanf("%s",str);

printf("--------删除成功--------n");

for(i=0;i<y;i++)

if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name))

{

while(i<y)

{

strcpy(a[i].num,a[i+1].num);

strcpy(a[i].name,a[i+1].name);

a[i].jbgz=a[i+1].jbgz;

a[i].jj=a[i+1].jj;

a[i].kk=a[i+1].kk;

a[i].sfgz=a[i+1].sfgz;

a[i].sk=a[i+1].sk;

a[i].yfgz=a[i+1].yfgz;

i++;

}

x++;

}

if(x==0)

{

printf("输入的编号或姓名不存在,请重新输入:n");

}

return y-x;

}

intsear(ZGGZ a[],int y)

{

int i;

int x=0;

char str[15];

printf("请输入你要查找的编号或姓名:");

scanf("%s",str);

for(i=0;i<y;i++)

if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name))

{

printf("员工编号为%sn",a[i].num);

printf("员工姓名为%sn",a[i].name);

printf("基本工资:%fn",a[i].jbgz);

printf("奖金:%fn",a[i].jj);

printf("扣款:%fn",a[i].kk);

printf("应发工资:%fn",a[i].yfgz);

printf("税款:%fn",a[i].sk);

printf("实发工资:%fn",a[i].sfgz);

x++;

}

if(x==0)

{

printf("未找到该记录n");

return -1;

}

}

voidmod(ZGGZ a[],int y)

{

int i;

int x=0;

char str[15];

printf("请输入你要修改的编号:");

scanf("%s",str);

for(i=0;i<y;i++)

if(!strcmp(str,a[i].num)||!strcmp(str,a[i].name))

{

printf("请输入修改后职工的姓名:");

scanf("%s",a[i].name);

printf("请输入修改后职工的基本工资:");

scanf("%f",&a[i].jbgz);

printf("请输入修改后职工的奖金:");

scanf("%f",&a[i].jj);

printf("请输入修改后职工的扣款:");

scanf("%f",&a[i].kk);

printf("-------------修改成功------------n");

a[i].yfgz=a[i].jbgz+a[i].jj-a[i].kk;

a[i].sk=a[i].yfgz*(0.05);

a[i].sfgz=a[i].yfgz*(0.95);

x++;

}

if(x==0)

{

printf("未找到要修改的编号n");

}

}

intinsert(ZGGZ a[],int y)

{

int i;

int x=0;

char str[15];

printf("请输入你要插入的编号:");

scanf("%s",str);

printf("请输入一条新的记录信息:n");

for(i=0;i<y;i++)

if(strcmp(str,a[i].num)==0)

{

x=i;

for(i=y;i>x+1;i--)

{

a[i].jbgz=a[i-1].jbgz;

a[i].jj=a[i-1].jj;

a[i].kk=a[i-1].kk;

a[i].sfgz=a[i-1].sfgz;

a[i].sk=a[i-1].sk;

a[i].yfgz=a[i-1].yfgz;

strcpy(a[i].name,a[i-1].name);

strcpy(a[i].num,a[i-1].num);

}

}

x++;

printf("请输入职工的编号:");

scanf("%s",a[x].num);

printf("请输入职工的姓名:");

scanf("%s",a[x].name);

printf("请输入职工的基本工资:");

scanf("%f",&a[x].jbgz);

printf("请输入职工的奖金:");

scanf("%f",&a[x].jj);

printf("请输入职工的扣款:");

scanf("%f",&a[x].kk);

a[x].yfgz=a[x].jbgz+a[x].jj-a[x].kk;

a[x].sk=a[x].yfgz*(0.05);

a[x].sfgz=a[x].yfgz*(0.95);

return y+1;

}

voidcount(ZGGZ a[],int y)

{

int q[11]={0,0,0,0,0,0,0,0,0,0,0};

int i;

int x;

for(i=0;i<y;i++)

{

x=(int)a[i].yfgz/1000;

switch(x)

{

case 9:q[1]++;break;

case 8:q[2]++;break;

case 7:q[3]++;break;

case 6:q[4]++;break;

case 5:q[5]++;break;

case 4:q[6]++;break;

case 3:q[7]++;break;

case 2:q[8]++;break;

case 1:q[9]++;break;

case 0:q[10]++;break;

default:q[0]++;break;

}

}

printf("应发工资在10000以上的人数为%dn",q[0]);

printf("应发工资在9000到10000 的人数为%dn",q[1]);

printf("应发工资在8000到9000的人数为%dn",q[2]);

printf("应发工资在7000到8000的人--数为%dn",q[3]);

printf("应发工资在6000到7000的人数为%dn",q[4]);

printf("应发工资在5000到6000的人数为%dn",q[5]);

printf("应发工资在4000到5000的人数为%dn",q[6]);

printf("应发工资在3000到4000的人数为%dn",q[7]);

printf("应发工资在2000到3000的人数为%dn",q[8]);

printf("应发工资在1000到2000的人数为%dn",q[9]);

printf("应发工资在1000以上的人数为%dn",q[10]);

}

voidsort(ZGGZ a[],int y)

{

int i,j;

float t;

char str[15];

for(j=0;j<y-1;j++)

for(i=0;i<y-1-j;i++)

if(a[i].sfgz>a[i+1].sfgz)

{

t=a[i].sfgz;

a[i].sfgz=a[i+1].sfgz;

a[i+1].sfgz=t;

t=a[i].jbgz;

a[i].jbgz=a[i+1].jbgz;

a[i+1].jbgz=t;

t=a[i].jj;

a[i].jj=a[i+1].jj;

a[i+1].jj=t;

t=a[i].kk;

a[i].kk=a[i+1].kk;

a[i+1].kk=t;

t=a[i].yfgz;

a[i].yfgz=a[i+1].yfgz;

a[i+1].yfgz=t;

t=a[i].sk;

a[i].sk=a[i+1].sk;

a[i+1].sk=t;

strcpy(str,a[i].num);

strcpy(a[i].num,a[i+1].num);

strcpy(a[i+1].num,str);

strcpy(str,a[i].name);

strcpy(a[i].name,a[i+1].name);

strcpy(a[i+1].name,str);

}

}

voidsave(ZGGZ a[],int n)

{

FILE *fp;

int i;

if((fp=fopen("sj.txt","wb"))==NULL)

{

printf("cannot open filen");

return;

}

for(i=0;i<n;i++)

if(fwrite(&a[i],sizeof(structemployee),1,fp)!=1)

C语言课程设计——职工工资管理系统 职工管理系统课程设计

printf("file write errorn");

fclose(fp);

}

voiddisplay(ZGGZ a[],int n)

{

int i=0;

if(n==0)

{

printf("Files are emptyn");

return;

}

do

{

printf("----------------------------n");

printf("员工编号为%sn",a[i].num);

printf("员工姓名为%sn",a[i].name);

printf("基本工资:%fn",a[i].jbgz);

printf("奖金:%fn",a[i].jj);

printf("扣款:%fn",a[i].kk);

printf("应发工资:%fn",a[i].yfgz);

printf("税款:%fn",a[i].sk);

printf("实发工资:%fn",a[i].sfgz);

i++;

}while(i<n);

}

voidmain()

{

int selete,c=0;

int i=0;

int z=0;

char q,p,x,s;

ZGGZ b[100];

FILE *fp;

if((fp=fopen("sj.txt","rb"))==NULL)

printf("Not Found!n");

else

{

do

{

fread(&b[i],sizeof(structemployee),1,fp);

i++;

}while(!feof(fp));

fclose(fp);

c=i-1;

}

while(1)

{

menu();

scanf("%d",&selete);

if(selete==0)

{

printf("Thank you for your use ( ^_^ ) Byen");

break;

}

switch(selete)

{

case1:c=input(b,c);break;

case2:

{

display(b,c);

do

{

c=del(b,c);

printf("是否继续删除,是按y,否则请按任意值n");

getchar();

scanf("%c",&p);

}while(p=='Y'||p=='y');

break;

}

case3:

{

do

{

sear(b,c);

printf("是否继续查找,是按y,否则请按任意值n");

getchar();

scanf("%c",&x);

}while(x=='Y'||x=='y');

break;

}

case4:

{

display(b,c);

do

{

mod(b,c);

printf("是否继续修改,是按y,否则请按任意值n");

getchar();

scanf("%c",&q);

}while(q=='Y'||q=='y');

break;

}

case5:

{

do

{

c=insert(b,c);

printf("是否继续插入,是按y,否则请按任意值n");

getchar();

scanf("%c",&s);

}while(s=='Y'||s=='y');

break;

}

case6:count(b,c);break;

case7:display(b,c);sort(b,c);break;

case8:save(b,c);break;

case9:display(b,c);break;

default:printf("Please try againn");

}

}

}

  

爱华网本文地址 » http://www.aihuau.com/a/25101016/295826.html

更多阅读

C语言视频教程30课曾怡 c语言教学视频曾怡

最好的c语言视频教程----曾怡副教授讲解30课,csf格式C程序设计视频教程(曾怡):本套视频教程由曾怡副教授讲解,使用教材为:《C语言程序设计》 谭浩强清华大学出版社出版。是难得的C语言学习视频教程。全程共30讲,每讲45分钟左右,CSF视频格

C语言学习经验总结

1. 类型在使用C开发时,一个类型占多少个字节是个很重要的信息元素,像C语言本身的类型系统并不能体现出这一点,容易使人混乱。一种好的方式是定义一套简洁易懂又一致的类型比如:定义一个stdint.h头文件#ifndef __STDINT_H#define __STDINT

PIC单片机C语言编程教程(1) pic单片机c语言教程

PIC 单片机 C 语言编程简介用 C语言来开发单片机系统软件最大的好处是编写代码效率高、软件调试直观、维护升级方便、代码的重复利用率高、便于跨平台的代码移植等等,因此C 语言编程在单片机系统设计中已得到越来越广泛的运用。针

“C语言之父”DennisRitchie去世 guy ritchie

这学期给同学们讲述计算概论,其中很主要的部分是C语言,DennisRitchie是C语言之父,自己在很多年前还听过他在图书馆北配殿的报告。很多人都用过C语言,因此DennisRitchie在信息技术领域的影响也不在小吧(以下内容转自网络)在日益纷繁复杂的

声明:《C语言课程设计——职工工资管理系统 职工管理系统课程设计》为网友莫名的小情绪分享!如侵犯到您的合法权益请联系我们删除