c语言课程设计报告职工工资系统Word文档格式.docx

上传人:b****1 文档编号:4683480 上传时间:2023-05-03 格式:DOCX 页数:31 大小:335.99KB
下载 相关 举报
c语言课程设计报告职工工资系统Word文档格式.docx_第1页
第1页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第2页
第2页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第3页
第3页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第4页
第4页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第5页
第5页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第6页
第6页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第7页
第7页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第8页
第8页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第9页
第9页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第10页
第10页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第11页
第11页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第12页
第12页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第13页
第13页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第14页
第14页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第15页
第15页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第16页
第16页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第17页
第17页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第18页
第18页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第19页
第19页 / 共31页
c语言课程设计报告职工工资系统Word文档格式.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计报告职工工资系统Word文档格式.docx

《c语言课程设计报告职工工资系统Word文档格式.docx》由会员分享,可在线阅读,更多相关《c语言课程设计报告职工工资系统Word文档格式.docx(31页珍藏版)》请在冰点文库上搜索。

c语言课程设计报告职工工资系统Word文档格式.docx

voidcount(ZGGZ*p,intnum)输入工资上下限按范围统计人数

voidsort(ZGGZ*p,intnum)按实发工资排序

voidsave(ZGGZ*p,intnum)将输入的职工信息保存到文件中

voiddisplay(ZGGZ*p,intnum)显示已有的职工信息

三.函数分析

1.函数的原型和参数说明

*p为结构体数组的指针,num是已有的职工数

intlocated(ZGGZ*p,intnum,inti)按照输入的信息定为职工的信息存储的位置,i表示按编号查询还是按姓名查询

2.函数的流程图(选择若干函数算法,绘制函数流程图)

主结构

 

3.程序清单

#include<

stdio.h>

string.h>

typedefstructempoyee//职工信息结构体

//保存职工编号

//保存职工姓名

//保存职工基本工资

floatjj;

//保存职工奖金

//保存职工扣款

//保存职工应发工资

//保存职工税款

//保存职工实发工资

intceshi=0;

voidmenu()//菜单正确

printf("

|----------------------------------------------------|\n"

);

|菜单|\n"

||\n"

|******************欢迎您使用本系统******************|\n"

|1输入****************2删除|\n"

|3查询****************4修改|\n"

|5插入****************6合计|\n"

|7排序****************8保存|\n"

|9显示****************0退出|\n"

}

intjudge(ZGGZ*p,inti,intnum[])

inta,k;

for(a=0;

a<

i;

a++)

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

{

k=-1;

break;

}

else

k=1;

returnk;

intinput(ZGGZ*p,inti)//输入职工信息正确

intlocated(ZGGZ*p,intnum,inti);

intjud;

charyon;

floata;

a=0.0;

while

(1)

{

请输入职工的编号(小于十位数字):

"

scanf("

%s"

p[i].num);

jud=judge(p,i,p[i].num);

if(jud==-1)

printf("

此编号已存在!

\n"

是否重新输入?

(y/n)\n"

getchar();

scanf("

%c"

&

yon);

if(yon=='

n'

continue;

}

请输入职工的姓名:

p[i].name);

请输入职工的基本工资:

%f"

p[i].jbgz);

请输入职工的奖金:

p[i].jj);

请输入职工的扣款:

p[i].kk);

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

p[i].sk=(float)(p[i].yfgz*0.02);

p[i].sfgz=p[i].yfgz-p[i].sk;

i++;

ceshi++;

是否继续输入下一个职工信息?

(y/n)"

getchar();

if(yon!

='

y'

break;

returni;

intdel(ZGGZ*p,intnum)//删除职工信息正确

voiddisplay(ZGGZ*p,intnum);

inti,adres,a;

charysn;

请选择按编号查询还是名字查询\n"

1.姓名2.编号\n"

%d"

i);

adres=located(p,num,i);

if(adres>

=num)

printf("

无该记录!

getchar();

scanf("

ysn);

if(ysn=='

break;

else

continue;

for(adres;

adres<

num;

adres++)

{

a=adres+1;

p[adres]=p[a];

}

num--;

ceshi++;

display(p,num);

是否继续删除?

if(ysn=='

returnnum;

intlocated(ZGGZ*p,intnum,inti)//定位正确

inta=0;

charname[15],number[10];

if(i==1)

请输入姓名:

name);

for(a;

if(strcmp(name,p[a].name)==0)

else

请输入编号:

number);

if(strcmp(number,p[a].num)==0)

returna;

voidsearch(ZGGZ*p,intnum)//查找正确

inti,searchnum;

请选择按姓名查找或者按编号查找:

1、姓名2、编号\n"

searchnum=located(p,num,i);

if(searchnum>

是否重新输入!

编号姓名基本工资奖金扣款应发工资税款实发工资\n"

%s"

p[searchnum].num);

p[searchnum].name);

%.2f"

p[searchnum].jbgz);

p[searchnum].jj);

p[searchnum].kk);

p[searchnum].yfgz);

p[searchnum].sk);

%.2f\n"

p[searchnum].sfgz);

是否继续查询?

voidmodify(ZGGZ*p,intnum)//修改正确

ZGGZnewone;

inti,searchnum,a,jud;

searchnum=located(p,num,i);

if(searchnum>

查无此记录!

if(ysn='

%s%s%.2f%.2f%.2f%.2f%.2f%.2f\n"

p[searchnum].num,p[searchnum].name,p[searchnum].jbgz,p[searchnum].jj,p[searchnum].kk,p[searchnum].yfgz,p[searchnum].sk,p[searchnum].sfgz);

是否进行修改?

if(ysn=='

请选择要修改的部分:

1、编号2、姓名3、基本工资4、奖金5、扣款\n"

a);

switch(a)

case1:

jud=judge(p,i,p[searchnum].num);

if(jud==-1)

}}break;

case2:

printf("

scanf("

break;

case3:

p[searchnum].jbgz);

case4:

p[searchnum].jj);

case5:

p[searchnum].kk);

p[searchnum].yfgz=p[searchnum].jbgz+p[searchnum].jj-p[searchnum].kk;

p[searchnum].sk=(float)(p[searchnum].yfgz*0.02);

p[searchnum].sfgz=p[searchnum].yfgz-p[searchnum].sk;

是否继续操作?

intinsert(ZGGZ*p,intnum)//插入正确

inti,searchnum,jud;

continue;

for(i=num-1;

i>

searchnum;

i--)

p[i]=p[i+1];

请输入要插入的职工信息:

p[searchnum+1].num);

jud=judge(p,num,p[searchnum+1].num);

p[searchnum+1].name);

p[searchnum+1].jbgz);

p[searchnum+1].jj);

p[searchnum+1].kk);

p[searchnum+1].yfgz=p[searchnum+1].jbgz+p[searchnum+1].jj-p[searchnum+1].kk;

p[searchnum+1].sk=(float)(p[searchnum+1].yfgz*0.02);

p[searchnum+1].sfgz=p[searchnum+1].yfgz-p[searchnum+1].sk;

num++;

是否继续插入?

voidcount(ZGGZ*p,intnum)//合计正确

floatmin,max;

inta=0,b=0,c=0,i;

请输入工资的范围\n"

工资上限:

max);

工资下限:

min);

for(i=0;

i<

i++)

if((p[i].sfgz)>

max)

a++;

if((p[i].sfgz)<

min)

b++;

c++;

工资在%f元以上的职工有%d人。

max,a);

工资在%f元以下的职工有%d人。

min,b);

工资在%f元以上%f元以下的职工有%d人。

max,min,c);

是否继续统计?

voidsort(ZGGZ*p,intnum)//排序正确

inti,j,k;

ZGGZonlyone[100];

num-1;

k=i;

for(j=i+1;

j<

j++)

if((p[j].sfgz)<

(p[k].sfgz))

k=j;

onlyone[0]=p[k];

p[k]=p[i];

p[i]=onlyone[0];

display(p,num);

voidsave(ZGGZ*p,intnum)//保存正确

FILE*fp;

inti=0;

fp=fopen("

职工信息.txt"

"

a"

for(i;

fwrite(&

p[i],sizeof(ZGGZ),1,fp);

fclose(fp);

文件保存完毕!

ceshi=0;

voiddisplay(ZGGZ*p,intnum)//显示职工信息

while(i<

num)

%-10s"

%-10.2f"

p[i].jbgz);

p[i].jj);

p[i].kk);

p[i].yfgz);

p[i].sk);

%-10.2f\n"

p[i].sfgz);

i++;

是否返回?

{;

voidmain()

ZGGZzggz[10000];

intchoice,num=0;

//读取文件。

if((fp=fopen("

r"

))==NULL)

暂无记录!

while(!

feof(fp))

if((fread(&

zggz[num],sizeof(ZGGZ),1,fp))==1)

num++;

}

fclose(fp);

已有%d个记录。

num);

while

(1)//死循环,if判断是否结束

menu();

请输入数字0~9选择所需的功能\n"

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2