员工工资管理系统计算机程序课程设计.docx
- 文档编号:17096179
- 上传时间:2023-07-21
- 格式:DOCX
- 页数:38
- 大小:597.99KB
员工工资管理系统计算机程序课程设计.docx
《员工工资管理系统计算机程序课程设计.docx》由会员分享,可在线阅读,更多相关《员工工资管理系统计算机程序课程设计.docx(38页珍藏版)》请在冰点文库上搜索。
员工工资管理系统计算机程序课程设计
课程设计报告
课程计算机程序课程设计
题目员工工资管理系统
学院物理与电子工程学院
年级2012级专业光电信息工程
班级光电121学号050312122
学生姓名汪洋
指导老师马二俊职称副教授
报告提交日期2014.7.6
员工工资管理系统
摘要
本文主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,在VC++6.0的环境下开发此次程序。
至少具有如下功能:
对职工信息的录入、修改或删除,通过职工姓名或工号进行查找,并逐项列出相关的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
关键词c语言管理信息工资状况VC++6.0
目录
1.设计目的……………………………………………………1
2.功能描述……………………………………………1
3.总体设计………………………………………………6
3.1功能模块设计………………………………………………6
3.1.1.主控main函数执行流程………………………………………………7
3.1.2输入记录模块………………………………………………7
3.1.3查看记录模块………………………………………………7
3.1.4查询记录模块………………………………………………7
3.1.5删除记录模块………………………………………………7
3.1.6统计记录模块………………………………………………7
3.1.7修改记录模块………………………………………………7
3.2数据结构设计………………………………………………7
3.3函数功能描述………………………………………………7
4.程序实现…………………………………………9
4.1源码分析………………………………………………9
4.2运行结果………………………………………………19
5.设计小结……………………………………………………23
6.参考文献……………………………………………………24
1设计目的
在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增加、删除、修改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用c语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规范化和自动化,为企业提高工作效率。
2功能描述
主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增加、删除、修改、统计、输出等操作。
逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
有一个文本菜单来调用各个功能的函数及一个主菜单来提示用户如何操作。
职工工资管理系统
退出
文件中读取
保存职工信息
修改职工信息
输入职工信息
显示职工信息
查找职工信息
删除职工信息
添加职工信息
图2.1员工工资管理系统功能模块图
(1)输入职工信息。
通过界面的提示信息,输入用户想输入的员工信息。
(2)显示职工信息。
可以显示出刚刚用户所输入的职工的信息。
(3)查看:
查看所有职工信息,包括职工号,姓名,基本工资,职务工资,津贴。
图2.2查看职工信息流程图
(4)查找:
输入职工的职工号或姓名,并在文件中查找。
若找到,则显示该职工的工资详情;否则提示未找到。
无论查找成功否,应还可选择继续查找或退出。
图2.3查找员工信息流程图
(5)删除:
输入职工的职工号,并在文件中查找。
若找到,提示是否确定删除。
若选择是,则删除文件中该职工信息;若选择否,则取消。
若未找到则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
图2.4删除员工信息流程图
(6)修改:
输入职工的职工号在文件中查找。
若找到,显示该职工的所有信息,否则提示无此职工信息。
无论查找成功否,应还可选择继续查找或退出。
图2.5修改员工信息流程图
(7)统计:
分类汇总并输出所有职工的总工资,并计算出平均工资。
图2.6统计员工工资流程图
(8)退出:
退出程序。
3总体设计
3.1功能模块设计
1.主控main函数执行流程
本员工工资管理系统执行主流程如图3.1所示。
他先以可读写的方式打开数据文件。
当打开文件操作成功后,他则从文件中一次读出一条记录。
然后按照菜单只是惊醒操作。
图3.1主控main()函数执行主流程图
在判断键值时,有效的输入为0-8之间的任意数值,其他输入都被视为错误按键。
2.输入记录模块
输入记录模块主要时为了将数据输入单链表中,这部分的操作比较简单,进入主菜单后按1,然后按照界面上的提示输入要存储的数据信息即可。
3.查看记录模块
这部分即为查看用户之前输入的信息,只需在主菜单输入2就可以看到以前所存储的所有信息、
4.查询记录模块
这部分是为了方便用户找到自己想要的信息,在主菜单中输入3,然后根据条件来搜索自己想要查看的信息。
5.删除记录模块
此部分是为了删除不需要的信息,在主菜单中输入4,跟军条件来选择自己要删除的信息项目。
6.统计记录模块
在这个部分可以直观的看见所有员工的总工资,以及员工的平均工资。
7.修改记录模块
在这个部分用户可以修改数据,在主菜单输入6,然后根据界面显示的信息来选择自己要修改的用户,然后进行修改。
3.2数据结构分析
1.员工工资信息结构体
structworker
{
charname[30];
charID[10];
intsalary1,salary2,salary3;
};
结构worker用于存储员工的工资基本信息。
3.3函数功能描述
1show()
函数原型:
voidshow();
show()函数用于显示界面。
2bc()
函数原型:
voidbc(structworkerwo[]);
bc()函数用于构建员工的结构体。
3add()
函数原型:
voidadd();
add()函数用于添加员工信息。
4see()
函数原型:
voidsee();
see()函数用于查看员工工资信息。
5search()
函数原型:
voidsearch();
search()函数用于按照条件查找员工的工资信息。
6ghcz()
函数原型:
voidghcz();
ghcz()函数用于依靠工号来查找员工的工资信息。
7xmcz()
函数原型:
voidxmcz();
xmcz()函数用于依靠姓名来查找员工的工资信息。
8del()
函数原型:
voiddel();
del()函数用于删除不需要的员工工资信息。
9xmsc()
函数原型:
voidxmsc();
xmsc()函数用于依靠姓名条件来删除员工的工资信息
10ghsc()
函数原型:
voidghsc();
ghsc()函数用于依靠工号条件来删除员工的工资信息
11statistics()
函数原型:
voidstatistics();
statistics()函数用于统计所有员工的工资信息,并且计算出员工的平均工资。
12modify()
函数原型:
voidmodify();
modify()函数用于修改员工的工资信息。
13ghxg()
函数原型:
voidghxg();
ghxg()函数用于依靠工号的条件来修改员工的工资信息。
14xmxg()
函数原型:
voidxmxg();
xmxg()函数用于依靠姓名的条件来修改员工的工资信息。
15reserve()
函数原型:
voidreserve();
reserve()函数用于保存员工的工资信息。
16back()
函数原型:
voidback();
back()函数用于退出程序。
17author()
函数原型:
voidauthor();
authour()函数用于显示作者的信息
4程序实现
4.1源码分析
1.程序预处理
#include
#include
#include
structworker
{
charname[30];
charID[10];
intsalary1,salary2,salary3;
};
intdq(structworkerwo[]);
voidshow();
voidbc(structworkerwo[]);
voidadd();
voidsee();
voidsearch();
voidghcz();
voidxmcz();
voiddel();
voidxmsc();
voidghsc();
voidstatistics();
voidmodify();
voidghxg();
voidxmxg();
voidreserve();
voidback();
voidauthor();
structworkerwo[100];//保存所有的职工信息
intNumber=0;//记录总的职工人数
2.主函数main()
实现本次程序的全过程,可以实现对员工工资的输入,查看,查找,删除,修改等操作。
voidmain()
{
intchoose=0;
while
(1)
{
show();
printf("\t\t====>请选择:
");
scanf("%d",&choose);
system("cls");
switch(choose)
{
case0:
exit(0);//退出
break;
case1:
add();
back();//添加职工信息
break;
case2:
see();
back();//查看职工信息
break;
case3:
search();
back();//查找职工信息
break;
case4:
del();
back();//删除职工信息
break;
case5:
statistics();
back();//统计职工工资
break;
case6:
modify();
back();//修改职工信息
break;
case7:
reserve();
back();//保存数据
break;
case8:
author();
back();//作者信息
break;
default:
break;
}
fflush(stdin);
getchar();
system("cls");
}
}
intdq(structworkerwo[])
{
FILE*fp=NULL;
inti=0;
fp=fopen("C:
//worker.dat","rb");
while(fread(&wo[i],sizeof(structworker),1,fp))
i++;
fclose(fp);
returni;
}
3.主菜单界面
进入主菜单界面,通过菜单界面的提示进行之后的操作。
voidshow()
{
printf("\n");
printf("\t****************职工工资管理系统****************\n\n");
printf("\t*☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆*\n\n");
printf("\t^^^^^^^^^^^^^^^[1]添加职工信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[2]查看职工信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[3]查找职工信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[4]删除职工信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[5]统计职工工资^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[6]修改职工信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[7]保存数据^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[8]作者信息^^^^^^^^^^^^^^^^^\n");
printf("\t^^^^^^^^^^^^^^^[0]退出系统^^^^^^^^^^^^^^^^^\n\n");
printf("\t*★★★★★★★★★★★★★★★★★★★★★★★*\n");
}
4.打开文件
打开存储的文件数据。
voidbc(structworker*wo)
{
FILE*fp=NULL;
fp=fopen("C:
//worker.dat","ab+");
fwrite(wo,sizeof(structworker),1,fp);
fclose(fp);
}
5.添加职工信息
添加职工的信息,根据不同的条件输入信息。
//添加职工信息
voidadd()
{
intnumberTemp=0;
inti=0;
structworkertemp;
printf("请输入要添加职工个数:
");
scanf("%d",&numberTemp);
for(i=0;i { printf("输入第%d个职工信息\n",i+1); printf("姓名: "); scanf("%s",temp.name); printf("工号: "); scanf("%s",temp.ID); printf("基本工资: "); scanf("%d",&temp.salary1); printf("职务工资: "); scanf("%d",&temp.salary2); printf("津贴: "); scanf("%d",&temp.salary3); wo[Number++]=temp;//写入到数组 bc(&temp);//写入到文件 } printf("添加成功\n"); } 6.查看职工信息 直接查看已经输入的职工工资信息。 //查看职工信息 voidsee() { inti=0; printf("以下是全部职工\n"); printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n"); while(i { printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3); i++; } } 7.查找职工信息 根据条件查找自己想要的职工信息。 //查找职工信息 voidsearch() { intn=0; printf("1按姓名查找\n"); printf("2按工号查找\n"); scanf("%d",&n); switch(n) { case1: xmcz(); break; case2: ghcz(); break; default: printf("输入错误! \n"); break; } } voidxmcz()//按姓名查找 { charname[30]; inti=0; printf("请输入要查找职工姓名: "); scanf("%s",name); system("cls"); printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n"); for(i=0;i { if(strcmp(name,wo[i].name)==0) { printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3); } } } voidghcz()//按工号查找 { charid[10]; inti=0; printf("请输入要查找职工工号: "); scanf("%s",id); system("cls"); printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n"); for(i=0;i { if(strcmp(id,wo[i].ID)==0) { printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3); } } } 8.删除职工信息 用于删除不需要的职工信息,根据菜单上的提示进行操作即可。 //删除职工信息 voiddel() { intn=0; printf("1按姓名删除\n"); printf("2按工号删除\n"); scanf("%d",&n); switch(n) { case1: xmsc(); break; case2: ghsc(); break; } } voidxmsc()//按姓名删除 { FILE*fp=NULL; charname[30]; inti=0; intj=0; printf("请输入要删除的职工姓名: "); scanf("%s",name); for(i=0;i { if(strcmp(name,wo[i].name)==0) { for(j=i;j { wo[j]=wo[j+1]; } Number--; } } //将剩余数据写入文件擦除以前的数据 fp=fopen("C: //worker.dat","wb"); for(i=0;i { fwrite(&wo[i],sizeof(structworker),1,fp); } fclose(fp); printf("删除成功;\n"); } voidghsc()//按工号删除 { FILE*fp=NULL; charid[60]; inti=0; intj=0; printf("请输入要删除的职工工号: "); scanf("%s",id); for(i=0;i { if(strcmp(id,wo[i].ID)==0) { for(j=i;j { wo[j]=wo[j+1]; } Number--; } } //将剩余数据写入文件擦除以前的数据 fp=fopen("C: //worker.dat","wb"); for(i=0;i { fwrite(&wo[i],sizeof(structworker),1,fp); } fclose(fp); printf("删除成功;\n"); } 9.统计职工工资 用于统计职工的工资 //统计职工工资 voidstatistics() { inti=0; doubles=0.0; doublesum[100]; for(i=0;i { sum[i]=wo[i].salary1+wo[i].salary2+wo[i].salary3; printf("%s的总工资为: %f\n",wo[i].name,sum[i]); } for(i=0;i { s+=sum[i]; } printf("平均工资为: %f\n",s/Number); } 10.修改职工工资 可以用来修改职工的工资信息。 //修改职工信息 voidmodify() { intmode=0; printf("请选择修改查找方式\n"); printf("1按姓名查找修改\n"); printf("2按工号查找修改\n"); scanf("%d",&mode); switch(mode) { case1: xmxg(); break; case2: ghxg(); break; default: printf("输入错误! \n"); break; } } voidxmxg()//按姓名修改 { FILE*fp=NULL; charname[30]; inti=0; printf("请输入要修改的职工姓名: "); scanf("%s",name); for(i=0;i { if(strcmp(name,wo[i].name)); else break; } printf("\t姓名\t工号\t基本工资\t职务工资\t津贴\n"); printf("\t%s\t%s\t%d\t\t%d\t\t%d\n",wo[i].name,wo[i].ID,wo[i].salary1,wo[i].salary2,wo[i].salary3); printf("请重新输入该职工信息"); printf("姓名: "); scanf("%s",wo[i].name); printf("工号: "); scanf("%s",wo[i].ID); printf("基本工资: "); scanf("%d",&wo[i].salary1); printf("职务工资: "); scanf("%d",&wo[i].salary2); printf("津贴: "); scanf("%d",&wo[i].salary3); //信息修改后重新更新文件里面的数据以保持数据一致性 fp=fopen("C: //worker.dat","wb"); for(i=0;i { fwrite(&wo[i],sizeof(structworker),1,fp); } fclose(fp); } voidghxg()//按工号修改 { FILE*fp=NULL; charid[30]; inti=0; printf("请输入要修改的职工工号: "); scanf("%s",id);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 员工 工资管理 系统 计算机 程序 课程设计