职工工资管理系统.docx

上传人:b****5 文档编号:7024036 上传时间:2023-01-16 格式:DOCX 页数:13 大小:117.41KB
下载 相关 举报
职工工资管理系统.docx_第1页
第1页 / 共13页
职工工资管理系统.docx_第2页
第2页 / 共13页
职工工资管理系统.docx_第3页
第3页 / 共13页
职工工资管理系统.docx_第4页
第4页 / 共13页
职工工资管理系统.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

职工工资管理系统.docx

《职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统.docx(13页珍藏版)》请在冰豆网上搜索。

职工工资管理系统.docx

职工工资管理系统

设计人:

蔡晓春

指导老师:

周杨萍

时间:

第13周(2011.11.28~2011.12.2)

一、实训目的

C语言程序设计实训是C语言程序设计课程教学的重要组成部分。

本课程通过提供学生一个实训练习的机会,巩固、提高学生的基本编程能力,同时通过训练编写综合程序的方式,提高学生分析问题和解决问题的能力,为后续课程的学习打下良好的基础。

二、实训题目和程序清单(包括程序运行截图界面)

(一)实训题目:

职工工资管理系统。

参考运行界面如下:

具体要求:

出现上述界面后,用户可以通过输入1-6之间的数字完成所提示的功能。

循环往复,直到输入7,退出系统。

本系统具有职工的工资基本信息(职工号、姓名、应发工资、奖金、水电费、公积金、医疗保险、扣款合计、实发工资),能够根据需要追加、查询、修改、删除、统计并浏览职工的工资信息。

具体功能如下:

1.初始化信息(职工信息的输入,包括职工号、姓名、应发工资、奖金、水电费、公积金、医疗保险);

2.追加职工信息(继续添加职工的信息,要求职工号不重复);

3.根据职工号查询(完成按职工号查询指定职工的工资信息);

4.根据职工号修改(完成按职工号修改指定职工的工资信息);

5.根据职工号删除(完成按职工号删除指定职工的工资信息);

6.统计并浏览(完成扣款合计和实发工资的统计,并显示所有职工的工资信息);

7.退出(退出系统)。

(提示:

在使用字符界面的菜单编程时,需要清屏,可以使用system("cls")函数将屏幕清屏。

需要退出系统时,可以使用exit(0)函数退出。

需要暂停程序的执行时,可以使用system("pause")函数暂停。

使用这些函数时应包含"stdlib.h"系统函数头文件。

 

(二)

程序清单:

#include//输入输出函数头文字

#include//系统函数头文件

#include//字符串函数头文件

#defineN100//定义常量n的值为

structworker//定义结构体

{

intzgh;

charxm[10];

floatyfgz;

floatjj;

floatsdf;

floatgjj;

floatylbx;

floatkkhj;

floatsfgz;

}work[N];

intcount=1;//计数

voidcsh()//***************初始化信息***************

{

/*对第一位进行初始化*/

work[1].zgh=001;

strcpy(work[1].xm,"aa");

work[1].yfgz=1000;

work[1].jj=500;

work[1].sdf=200;

work[1].gjj=100;

work[1].ylbx=98;

work[1].kkhj=work[1].sdf+work[1].gjj+work[1].ylbx;

work[1].sfgz=work[1].yfgz+work[1].jj-work[1].kkhj;

/****对第二位进行初始化****/

work[2].zgh=002;

strcpy(work[2].xm,"bb");

work[2].yfgz=2000;

work[2].jj=300;

work[2].sdf=200;

work[2].gjj=100;

work[2].ylbx=90;

work[2].kkhj=work[2].sdf+work[2].gjj+work[2].ylbx;

work[2].sfgz=work[2].yfgz+work[2].jj-work[2].kkhj;

/****对第三位进行初始化****/

work[3].zgh=003;

strcpy(work[3].xm,"cc");

work[3].yfgz=1000;

work[3].jj=500;

work[3].sdf=200;

work[3].gjj=100;

work[3].ylbx=98;

work[3].kkhj=work[3].sdf+work[3].gjj+work[3].ylbx;

work[3].sfgz=work[3].yfgz+work[3].jj-work[3].kkhj;

/****对第四位进行初始化****/

work[4].zgh=004;

strcpy(work[4].xm,"dd");

work[4].yfgz=1000;

work[4].jj=500;

work[4].sdf=200;

work[4].gjj=100;

work[4].ylbx=98;

work[4].kkhj=work[4].sdf+work[4].gjj+work[4].ylbx;

work[4].sfgz=work[4].yfgz+work[4].jj-work[4].kkhj;

count=5;

printf("..................初始化成功....................\n");

system("pause");

}

voidzjxx()//***************追加职工信息***************

{

chari;

system("cls");

printf("请输入第%d个职工信息\n",count);

printf("输入职工号:

\n");

scanf("%d",&work[count].zgh);

printf("输入姓名:

\n");

scanf("%s",work[count].xm);

printf("输入应发工资:

\n");

scanf("%f",&work[count].yfgz);

printf("输入奖金:

\n");

scanf("%f",&work[count].jj);

printf("输入水电费:

\n");

scanf("%f",&work[count].sdf);

printf("输入公积金:

\n");

scanf("%f",&work[count].gjj);

printf("输入医疗保险:

\n");

scanf("%f",&work[count].ylbx);

work[count].kkhj=work[count].sdf+work[count].gjj+work[count].ylbx;

work[count].sfgz=work[count].yfgz+work[count].jj-work[count].kkhj;

count++;

printf("还需要再添加吗?

(Y/N)\n");

scanf("\n%c",&i);

if(i=='y'||i=='Y')

zjxx();

else

return;

system("pause");

}

voidcx()//***************根据职工号查询***************

{

inti,zgh;

printf("请输入要查询的职工号\n");

scanf("%d",&zgh);

for(i=1;i<=count;i++)

{

if(work[i].zgh==zgh)break;

}

if(i<=count)

{

printf("....................职工的所有信息...........................\n");

printf("职工号:

%d\n姓名:

%s\n应发工资:

%.2f\n奖金:

%.2f\n水电费:

%.2f\n公积金:

%.2f\n医疗保险:

%.2f\n扣款合计:

%.2f\n实发工资:

%.2f\n",

work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,

work[i].ylbx,work[i].kkhj,work[i].sfgz);

}

else

printf("sorry,meiyouciren");

system("pause");

}

voidxg()//***************根据职工号修改***************

{

inti,zgh;

printf("请输入要修改的职工号\n");

scanf("%d",&zgh);

for(i=1;i<=count;i++)

{

if(work[i].zgh==zgh)break;

}

if(i<=count)

{

printf("....................职工的所有信息...........................\n");

printf("职工号:

%d\n姓名:

%s\n应发工资:

%.2f\n奖金:

%.2f\n水电费:

%.2f\n公积金:

%.2f\n医疗保险:

%.2f\n扣款合计:

%.2f\n实发工资:

%.2f\n",

work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,

work[i].ylbx,work[i].kkhj,work[i].sfgz);

}

else

{

printf("sorry,meiyouciren");

}

printf("请重新输入姓名");

scanf("%s",&work[i].xm);

printf("请重新输入应发工资:

\n");

scanf("%f",&work[i].yfgz);

printf("请重新输入奖金:

\n");

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

printf("请重新输入水电费:

\n");

scanf("%f",&work[i].sdf);

printf("请重新输入公积金:

\n");

scanf("%f",&work[i].gjj);

printf("请重新输入医疗保险:

\n");

scanf("%f",&work[i].ylbx);

}

voidsc()//***************根据职工号删除***************

{

inti,zgh;

chars;

printf("请输入要删除的员工所在的职工号");

scanf("%d",&zgh);

for(i=1;i<=count;i++)

{

if(work[i].zgh==zgh)break;

}

if(i<=count)

{

printf("....................职工的所有信息...........................\n");

printf("职工号:

%d\n姓名:

%s\n应发工资:

%.2f\n奖金:

%.2f\n水电费:

%.2f\n公积金:

%.2f\n医疗保险:

%.2f\n扣款合计:

%.2f\n实发工资:

%.2f\n",

work[i].zgh,work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,

work[i].ylbx,work[i].kkhj,work[i].sfgz);

printf("确定要删除吗?

请输入Y/N确认\n");

setbuf(stdin,NULL);//清除输入缓冲区数据(回车)

scanf("%c",&s);

if(s=='Y'||s=='y')

{

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

{

work[i].zgh=work[i+1].zgh;

strcpy(work[i].xm,work[i+1].xm);

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

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

work[i].sdf=work[i+1].sdf;

work[i].gjj=work[i+1].gjj;

work[i].ylbx=work[i+1].ylbx;

work[i].kkhj=work[i+1].kkhj;

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

}

work[i].zgh=0;

strcpy(work[i].xm,"0");

work[i].yfgz=0;

work[i].jj=0;

work[i].sdf=0;

work[i].gjj=0;

work[i].ylbx=0;

work[i].kkhj=0;

work[i].sfgz=0;

count--;

printf("所选信息已删除");

}

}

else

printf("sorry!

meiyouciren");

system("pause");

}

voidtjll()//***************统计浏览*****************

{

inti;

floatyfgz=0,jj=0,sdf=0,gjj=0,ylbx=0,kkhj=0,sfgz=0;

system("cls");

printf("职工号姓名应发工资奖金水电费公积金医疗保险扣款合计实发工资\n");

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

for(i=1;i<=count;i++)

{

printf("%d%s%.2f%.2f%.2f%.2f%.2f%.2f%.2f\n",work[i].zgh,

work[i].xm,work[i].yfgz,work[i].jj,work[i].sdf,work[i].gjj,

work[i].ylbx,work[i].kkhj,work[i].sfgz);

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

yfgz=yfgz+work[i].yfgz;

jj=jj+work[i].jj;

sdf=sdf+work[i].sdf;

gjj=gjj+work[i].gjj;

ylbx=ylbx+work[i].ylbx;

}

kkhj=sdf+gjj+ylbx;

sfgz=yfgz+jj-kkhj;

printf("汇总:

职工人数%d\n",count-1);

printf("应发工资%.2f\n",yfgz);

printf("奖金%.2f\n",jj);

printf("水电费%.2f\n",sdf);

printf("公积金%.2f\n",gjj);

printf("医疗保险%.2f\n",ylbx);

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

printf("扣款合计%.2f\n",kkhj);

printf("实发工资%.2f\n",sfgz);

system("pause");

}

voidmain()//***************主函数,主界面**************

{intxz;

do

{system("cls");//清屏,清除屏幕上的所有信息

printf("********《职工工资管理系统》制作人:

********\n");

printf("1-----初始化信息\n");

printf("2-----追加职工信息\n");

printf("3-----根据职工号查询\n");

printf("4-----根据职工号修改\n");

printf("5-----根据职工号删除\n");

printf("6-----统计并浏览\n");

printf("7-----退出\n");

printf("**********************************************\n");

printf("输入您的选择(-7):

");

scanf("%d",&xz);

switch(xz)

{case1:

csh();break;//执行子函数csh(完成初始化功能)

case2:

zjxx();break;//执行子函数zjxx(完成追加职工信息)

case3:

cx();break;//执行子函数cx(完成根据职工号查询)

case4:

xg();break;//执行子函数xg(完成根据职工号修改)

case5:

sc();break;//执行子函数sc(完成根据职工号删除)

case6:

tjll();break;//执行子函数tjll(完成统计并浏览)

case7:

printf("\n-----------谢谢,欢迎下次光临!

----------\n\n");

default:

exit(0);//退出系统,exit(0)函数功能是退出程序。

}

}

while

(1);

}

程序运行界面

1.运行主界面:

2追加职工

3查询职工信息:

4修改职工信息:

5统计浏览:

 

三、实训心得体会

这C语言实训总体来说收获很大。

通过一个星期的学习,巩固和提高了基本编程能力。

当然其中遇到过很多问题,当在自己的思考中把这些问题一一解决之后,才发现只有自己认真对待了,没有解决不了的问题。

就像一开始根本就没有一点思路,因为毕竟是第一次做这么一个大题目,但我们到处都有学习的机会,通过同学们的相互讨论和老师的教导,终于找到了自己的解决方法。

虽然我们的专业不是编程,但老师也说过,最主要的通过这一次机会来提高自己。

 

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1