职工工资管理系统.docx
- 文档编号:15180156
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:11
- 大小:50.90KB
职工工资管理系统.docx
《职工工资管理系统.docx》由会员分享,可在线阅读,更多相关《职工工资管理系统.docx(11页珍藏版)》请在冰点文库上搜索。
职工工资管理系统
课程设计报告
课程名称:
数据结构课程设计
设计题目:
职工工资管理系统
系别:
计算机系
专业:
计算机科学与技术
组别:
第四组
学生姓名:
学号:
起止日期:
2010年4月20日~2010年6月10日
指导教师:
目录
第一章需求分析1
1.1课程设计任务及要求2
1.2设计思想及开发环境2
第二章概要设计3
2.1本设计的功能构成3
2.2设计原理3
第三章详细设计4
3.1设计方案4
3.2模块设计4
第四章调试与操作说明7
4.1系统调试分析7
4.2使用操作说明7
第五章总结与体会7
5.1本文的主要工作7
5.2存在问题7
5.3心得体会7
致谢9
参考文献......9
第一章需求分析
1.1课程设计任务及要求
题目:
职工工资管理系统
设计要求:
能对职工工资的数据进行各项处理,选择1~11中任意一项时能成功运行,结果能显示输出。
基本要求:
1.能输入并建立员工资料,输出显示
2.进入时要求输入密码,密码通过后进入系统能修改密码
3.对员工数据进行查询、插入、删除、排序,对所有员工各项工资总和进行统计
4.对建立的资料能保存,进入系统时能够读入,并在其基础上修改
5.详细设计过程
1.2设计思想及开发环境
设计思想:
定义一个带头尾结点的双链表,再定义一个一个包含各成员变量的结构体。
写出各个不同功能的子函数(如删除、查询、插入等),当选择具体要执行的功能时在主函数中通过调用各对应的子函数来实现。
开发环境:
Turboc2.01
第二章概要设计
2.1本设计的功能构成
图2-1系统总概
如图2-1所示,职工工资系统主要由十一个模块组成,通过输入操作序号来确定执行哪个操作,可以连续操作直至选择退出时为止。
2.2设计原理
利用结构体定义链表和成员函数,通过C语言基础知识的主函数与子函数的调用关系来控制具体细节操作,主函数通过循环的知识来连续操作。
通过判断循环条件是否成立来退出系统。
第三章详细设计
3.1设计方案
采用由主体到局部的设计,再由局部到主体的实现思路,进入系统时先输入进入密码,若密码正确则进入程序主界面,密码连续三次错误则退出程序。
以录入函数录入员工资料为基础,再增加查找、删除、插入、保存等函数。
各个模块具有相互独立性,但与输出都相互联系,几乎每个模块都通过输出模块来验证结果,直到用户退出时结束,若改动标记为1,退出时需要保存,保存完成后再退出,若为0就直接退出,则构成一个具体的职工工资管理系统。
3.2模块设计
读入模块如下:
voidload(Linklist*head)
{
Lnode*tail;
Lnode*p,*q=NULL;/*定义记录指针变量*/
FILE*fp;/*定义指向文件的指针*/
chargzdr[10];/*保存文件名*/
printf("输入文件名称例如c:
\\zg.txt\n");/*输入文件名格式*/
scanf("%s",gzdr);/*输入文件名*/
if((fp=fopen(gzdr,"rb"))==NULL)/*打开一个二进制文件,为读方式*/
{
printf("文件不能打开!
!
!
\n");return;/*返回*/
}
while(head)/*当表不为空时,清空链表*/
{
p=head;head=head->next;free(p);
}
printf("正在读入文件!
\n");/*显示正在读文件*/
head=(Lnode*)malloc(sizeof(Lnode));/*为头指针申请空间*/
if(!
head)/*如果没有得到空间显示内存溢出*/
{
printf("内存溢出!
\n");return;/*返回*/
}
p=head;/*将头指针赋值给p*/
while(!
feof(fp))/*当文件不空时*/
{
if(1!
=fread(p,sizeof(Lnode),1,fp))break;/*将记录读到p所指的结点*/
p->next=(Lnode*)malloc(sizeof(Lnode));/*为p的后继申请空间*/
if(!
p->next)/*如果没有得到空间显示内存溢出*/
{
printf("内存溢!
\n");return;/*返回*/
}
p->pre=q;q=p;p=p->next;
}
q->next=NULL;tail=q;
head->pre=NULL;/*头指针的前驱为空*/
fclose(fp);/*关闭文件*/
printf("已成功读入文件!
!
!
\n");/*显示成功读入记录*/
}
排序模块如下:
voidsequencedata(Linklist*head)
{
Linklist*tail;
Lnode*p,*q,*t,*h1;/*定义临时指针*/
printf("\n\n开始排序.....\n\n");/*显示开始索引*/
h1=head->next;head->next=NULL;tail=head;
while(h1!
=NULL)/*当原表不为空时,进行排序*/
{
t=h1;h1=h1->next;p=head;q=head;
while(strcmp(t->num,p->num)>0&&p!
=NULL)/*作编号比较*/
{
q=p;
p=p->next;
}
if(p==q)/*p==q,说明待排序点值小,应排在首位*/
{
t->next=p;
p->pre=t;
head=t;
head->pre=NULL;
}
else/*待排序点应插入在中间某个位置q和p之间,如p为空则是尾部*/
{
t->next=p;
t->pre=q;
q->next=t;
if(p==NULL)/*判p是否为空*/
tail=t;/*将t赋值为尾指针*/
else
p->pre=t;/*否则将t赋值给p的前驱*/
}
}
printf("排序成功!
!
!
\n");/*索引排序成功*/
}
第四章调试与操作说明
4.1系统调试分析
开发职工工资管理系统就是为了帮助财务部门更好的管理单位的职工工资,提供高工作效率,实现职工工资管理的规范化和自动化。
4.2使用操作说明
职工工资管理系统要求有进入密码,用户首先输入密码,正确则进入,错误则直接退出程序,进入后输入员工工资资料,然后可以再此基础上进行插入、查找、删除、排序、统计操作,退出时进行保存。
若进入后要调用已有的文件,直接用文件读入模块调入,再进行各种操作,文件改动后需保存。
进入系统后,用户可根据自己的需要用密码修改模块修改密码。
第五章总结与体会
5.1本文的主要工作
本课题通过让设计员较系统的亲自设计一个比较现实的对职工工资能初步进行管理的软件程序。
其中涉及的C语言和双链表方面的知识要能清楚掌握,并能初步应用和实现它们的基本功能。
5.2存在问题
(1)该系统还不够自动化,操作还待进一步精简。
(2)插入,排序功能单一,不完成到各种情况的插入和排序。
(2)该系统的容错性还不够好。
5.3心得体会
通过这段时间的学习,我掌握并且仔细的了解了利用线性链表编写一个职工工资管理系统的过程及其原理,并对软件编程方面的基础知识有了进一步的认识。
我所学的知识,都得到了应用,这些都让我收获很大,在将来的更深一步的学习程序语言方面有了更好的基础和经验,这对我的将来的学习和以后的工作都有重大的意义,能够顺利完成任务,不但与自己的努力密切相关,还离不开同学和老师的帮助,正是有了他们的帮助我才能在规定的时间内完成任务,并且使程序符合规定的要求。
在编写程序的过程中,出现了许多方面的问题,这些问题对我的编程能力和解决问题的能力来说都是一个重大的考验,这些问题都是和过去所学的知识密切相关,在编写它们的时候都要求有很大的实际操作经验。
过去所学的专业课基础不扎实,一些重点似懂非懂,这就为编程买下了巨大的隐患,以至于这些问题在编程的过程中了花很长时间都得不到很好的解决,为了解决出现的这些问题,我一面通过不断的对过去的知识去复习和修补漏洞,一方面和同学探讨出现问题的原因以及修改的它们和方法。
比如在编写密码进入模块时我遇到了很大的困难,由于对去年所学的C语言不够好,密码进入和排序这一模块我花费了很长的时间去查书上所相关的资料,有些还不懂时就看一下别人的这一模块,问他们这是怎么做的,为什么这样写。
就这样经过与别人的交流,把别人的做题经验吸收体会,再加上自身的状况,把这些综合起来一一融合,变为自己的经验,就这样我逐步的克服了许多难点,不但进度赶上来了,而且自信心也大大加强了。
这样相似的问题还有许多,最后就极大地缩短工作周期,提高了工作效率,我能感觉到离成功越来越近了。
从另一个角度来说,在此次设计过程不但让我学习复习了相关的知识,极大地拓宽了我的知识面,而且还领悟了一些设计的基本思路和设计方法。
从这次的职工工资管理系统中我领悟到了从整体到局部的思想以及再从局部到主体的实现。
在开始编程的时候,只知道职工工资管理系统具有各种功能,实现是通过每个子函数的联系综合达到预定要求,至于各子函数怎么在主函数里面综合起来调用,且没有退出请求时不退出,其继续在个模块之间操作,且各模块的操作结果最终通过输出模块显示出来,这让我最终想到了循环调用。
前面所说的主体思想就这样实现了。
整个设计过程中通过不断的改错再调试再改错,每完成一个模块的预定功能,我就多了一份继续坚持完成的信心,同时也深深体会到了一分耕耘一分收获。
虽然各个模块在调试运行中出现了许多问题,但通过不断的改进,不断的学习和讨论,老师细心的指导,最终能够将问题一一解决,使我得到了实质性的锻炼。
经过将近一个多月的实践锻炼,我学到了很多有用的东西,感觉很充实,自己以前所漏掉的知识不但又补充了回来,而且现在所学的知识也得以巩固,让我觉得最重要的是我开始学到认识了一种编程的基本思维和编程与个人自身的必要条件。
同时我也感到了自身的一些不足之处,我的专业知识还是很欠缺,缺少编程经验,这些都影响了编程的速度和效率。
在今后还要学习更多的专业知识及和专业有关的知识,逐步积累经验,长期坚持,为将来找到一份好的编程工作渐渐地积累知识和经验,锻炼自己的能力。
我相信量变引起质变。
最后,这次课程设计最后的结果还有一些不足之处,比如在插入方面功能单一,不能做到任意位置插入,只能在某号码后进行插入,即插入方式比较死板。
排序模块只能给所给参数中的一项进行排序,如果要求按工资某项排序就不能实现。
这就还需要一些相关算法,并且要进一步精简程序,除去冗余部分,不至于使程序占用太多的空间,影响程序的运行速度。
这些问题我会的学习和设计中不断的改进,逐步完善设计方案,使该系统慢慢趋向完美。
致谢
这次课程设计,孙老师多次为我们指明设计的具体要求,通过逐步引导,让我逐渐的形成了设计思路。
职工工资管理系统能够按时完成并且函数功能能大部分实现,这些全都离不开老师的指导,教诲,在这里我首先感谢孙老师。
我还要感谢一起帮我解决问题的同学,正是有了他们的帮助和鼓励支持,我才能长期坚持解决一个又一个的程序错误和疑惑,直至本设计的顺利完成。
在此我非常感谢他们给予我的帮助。
在此次的设计过程和论文编写过程中,还有很多同学和朋友都给予了我许多很关键性的建议和帮助,尤其孙老师给我提出了很多宝贵的修改意见,让我有了新的可实行的思路和具体算法。
最后,我再次向帮助过我的人表示由衷的感谢,谢谢你们!
参考文献
[1]谭浩强《C程序设计》,北京:
清华大学出版社,2008
[2]严蔚敏,吴伟明《数据结构》,北京:
清华大学出版社,2009
[3]李春葆《数据结构—习题与解析》,北京:
清华大学出版社,2001
[4]辛运帏,陈有祺《数据结构与算法》,北京:
高等教育出版社,2006
指导教师评语:
指导教师签名:
年月日
成绩评定
项目
权重
成绩
1、设计过程中出勤、学习态度等方面
0.1
2、设计技术水平
0.4
3、编程风格
0.2
4、设计报告书写及图纸规范程度
0.3
总成绩
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 职工工资 管理 系统