工资管理系统.docx
《工资管理系统.docx》由会员分享,可在线阅读,更多相关《工资管理系统.docx(7页珍藏版)》请在冰豆网上搜索。
工资管理系统
南昌航空大学信息工程学院
课程设计说明书
课程名称:
C语言课程设计案例精编
设计题目:
工资管理系统
专业:
网络工程班级:
100461
姓名:
学号:
评分:
指导教师:
二0一一年9月15日
工资管理系统
目录
1.设计题目…………………………………………
(1)
2.设计目的…………………………………………
(1)
3.功能描述…………………………………………
(2)
4.模块介绍及改进…………………………………(3)
5.运行环境及参考文献……………………………(4)
6.调试及其运行结果………………………………(4)
7.程序代码………………………………………..(5)
8.学习心得及总结…………………………………(8)
一、设计题目
题目:
工资管理系统
工资管理系统是企业不可缺少的一部分,它利用计算机对员工工资进行统一管理,实现工资管理系统的系统化、规范化和自动化,为企业提高工作效率。
所以,工资管理系统在现代化企业或单位中起着举足轻重的作用
二、设计目的
1、通过这次专题设计,巩固和加深对所学相关知识点的理解,训练自己的基本编程能力。
2、进一步熟悉基本流程控制结构——实现分支的if…else语句、switch语句和实现循环的for、while…、do…while语句、break、continue等。
3、基本数据类型、数组、结构体、自定义类、函数的应用,掌握利用数组存储结构实现工资管理的原理。
4、加强对模块化程序设计和面向对象程序设计的理解。
5、掌握C\C++语言程序设计的基本思想,了解简单的系统分析和
基本理论知识,理论联系实际,进一步培养综合分析问题,解决问题的能力。
6、利用所学知识,开发小型应用系统,掌握运用C语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。
7、对于给定的设计题目,如何进行分析,理清思路,并给设计出相应的C程序。
三、功能描述
1、用C语言实现系统;利用结构体数组实现职工工资的数据结构设计;系统的各个功能模块要求用函数的形式实现;应提供一个界面来调用各个功能,调用界面和各个功能的操作界面应尽可能清晰美观。
2、职工工资管理系统应能提供以下功能:
(1)主菜单界面设计。
通过提示用户输入一个数字选项,调用相应的功能函数。
(2)显示功能:
完成全部职工记录的显示;
(3)计算功能:
完成全部职工的应发工资、税款和实发工资的计算并显示;
(4)修改功能:
按工号修改一个职工的基本工资、奖金或扣款后重新计算职工的应发工资、税款和实发工资,并重新排序和显示;
(5)查询功能:
要求能分别按职工工号和姓名查询一条记录并显示;
(6)增加功能:
追加一条新职工记录,并重新排序和显示;
(7)删除功能:
按工号删除一条指定记录,并重新排序和显示;
(8)排序功能:
按职工实发工资升序或降序排序;
四、模块介绍及改进
1、输入记录模块
该模块主要完成数据存入数组中的工作。
在工资管理系统中,它主要有两种方式,一是从文件读入,二是直接输入。
其中,要用到fopen函数打开文件,foclose函数关闭文件,同时我,若该文件不存在,则会创建此文件;直接输入时,会显示提示信息,便于输入。
调用stringput(char*t,intlens,char*notice)函数,它将提示用户输入字符,并验证字符串长度;调用numberinput(char*notice)函数,则输入浮点型数值。
此外,根据社会需要,我们设计了中英文语言界面,以便于理解;同时,对程序也加以改进,使其能在visualc++6.0上运行,不在局限于win-tc上调试,提高了其兼容性!
对其数据结构也加以完善,增加了职工所属部门,所任职务,以及职工月份工资,便于区分和对比,提高职工积极性和竞争力!
2、查询记录模块
主要实现在数组中按职工编号和姓名查询,小组增加了按工资段查询职工信息。
3、更新记录模块
主要是实现对记录的修改、删除、插入和排序操作。
4、统计记录模块
主要通过依次读取数组中元素的数据域中的实发工资的值进行比较判断的形式,完成工资在各个等级的人数统计,在各个部门、月份的对比。
5、输出记录模块
将记录输出至文件是时,调用ferite(&tp[i],sizeof(zggz),1,fp)函数,将数组元素tp[i]中各字段的值,写入文件指针fp所指的文件;当把记录输出至屏幕时,调用voidDisp()函数,将数组中存储的记录信息以表格的形式在屏幕上打印出来。
五、运行环境及参考文献
1、运行环境:
visualc++6.0(windows2003以上版本)
Win-tc(windowsxp)
2、参考文献:
《C语言课程设计案例精编》《C语言程序设计》
六、调试运行结果
以上为程序运行时的部分截图
七、程序代码(部分)
#include
#include
#include
#include
#include
#defineHEADER1"------------------------------------------------------------------------------------------------------------\n"
#defineHEADER3"|----------|----------|----------|----------|--------|--------|--------|--------|--------|--------|--------|\n"
#defineFORMAT"|%-10s|%-10s|%-10s|%-10s|%8.2f|%8.2f|%8.2f|%8.2f|%8.2f|%8.2f|%8.2f|\n"
#defineDATAp->num,p->name,p->section,p->post,p->month,p->salary,p->bonus,p->deduct,p->should,p->tax,p->homepay
#defineEND"-----------------------------------------------------------------------------\n"
#defineN60
intsaveflag=0;
structemployee//存储的结构体
{
charnum[10];
charname[10];
charsection[10];
charpost[10];
floatmonth;
floatsalary;
floatbonus;
floatdeduct;
floatshould;
floattax;
floathomepay;
}worker;
voidgotoxy(intx,inty)//定位到第y行的第x列
{
intxx=0x0b;
HANDLEhOutput;
COORDloc;
loc.X=x;
loc.Y=y;
hOutput=GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hOutput,loc);
return;
}
char*language()//选择显示语言
{
char*lang;
intn;
staticcharchs[100][110]={
{"职工工资管理系统\n"},//0
{"*************************菜单********************************\n"},//1
{"*1.输入记录2.删除记录*\n"},//2
{"*3.搜索记录4.更改记录*\n"},//3
{"*5.插入记录6.统计数据*\n"},//4
{"*7.记录排序8.存储记录*\n"},//5
{"*9.显示记录0.退出系统*\n"},//6
{"|职工编号|职工姓名|部门|职务|月份|基本工资|奖金|扣款|应发工资|税款|实发工资|\n"},//7
{"没有职工工资记录,按任意键继续\n"},//8
{"按任意键返回主界面\n"},//9
{"输入错误\n"},//10
{"没有查找到此职工信息\n"},//11
{"不能打开文件\n"},//12
{"是否要存储修改的数据,是(y)或否(n)?
"},//13
{"读取成功,按任意键继续!
\n"},//14
{"请输入0~9选择相应功能\n"},//15
{"操作成功完成,按任意键退出\n"},//16
{"超过了限定长度!
\n"},//17
{"输入职工编号(按“0”返回主菜单):
\n"},//18
{"你所输入的编号已存在,是否重新输入,是(y)或否(n)?
\n"},//19
{"姓名:
\n"},//20
{"基本工资:
\n"},//21
{"奖金:
\n"},//22
{"扣款:
\n"},//23
{"没有记录,按任意键返回主界面\n"},//24
八、学习心得及总结
工资管理系统对于决策者和管理者来说都至关重要,所以工资管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件工资档案,这种管理方式存在着许多缺点,如:
效率低、保密性差,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
作为计算机应用的一部分,使用计算机对工资信息进行管理,具有着手工管理所无法比拟的优点.例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高工资管理的效率,也是科学化、正规化管理的重要条件。
这两个星期以来,在开发这个工资管理系统过程中我深刻地体会到了自学能力的重要性。
毕竟在学校学习到的知识是有限的,而在开发系统的过程中仅凭原有的一点点知识是远远不够的,只有翻阅大量的资料才能学到更多的知识,才能实现其预期的功能。
在开发过程中,遇到困难是在所难免的,期间我跟我的指导老师和同学进行交流,从中明白了很多。
开发一个系统,恒心和毅力也是不可缺少的,如果一遇到难题就心慌,想要放弃,那这样就不可能完成系统。
同样,在开发过程当中,细心也是非常重要的,由于很多事项都要很注意才行,如果没有做到这一点,就会出错。
在开发过程当中,我学到很多,明白了做任何事情都要有始有终,要敢于同困难作斗争,要养成独立思考的习惯。
在以后的工作和生活当中,我将继续发扬这些好的作风。
在同学和老师的帮助下,基本完成本次课程设计,基本达到了工资管理系统的要求。
通过学习和练习C程序的设计基础,了解了一些关于C的知识。
在设计过程中,好多处困惑、疑问,有是会很烦,甚至不想再做,但必须做好,所以耐着性子做好了。
此时感觉有一点点满足,也学到了一些知识。
在程序编写中,出现了不少的问题,比如指针地址错误,文件无法保存;还有,经常我会忘在语句结尾处带分号,经常TC会在这方面报错;因此,在课后我会加强对C语言的学习,勤加练习程序编写和开发,切实提高自身的编程能力,克服各种困难,不断超越自我!