C语言课程设计工资管理系统_第1页
C语言课程设计工资管理系统_第2页
C语言课程设计工资管理系统_第3页
C语言课程设计工资管理系统_第4页
C语言课程设计工资管理系统_第5页
已阅读5页,还剩53页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

东北大学信息科学与工程学院程序实践报告题目 工资管理系统课题组长 刘诚阳课题组成员 张鹏举 于文鑫专业名称 计算机科学与技术班 级 计算机 1405指导教师 张晓红2015 年 4 月目录1.课题概述 .- 3 -1.1 课题任务:工资管理系统 .- 3 -1.2 课题原理 .- 3 -1.3 课题实践目的 .- 3 -1.4 相关知识 .- 4 -2.需求分析 .- 4 -2.1 课题调研 .- 4 -2.2 用户需求分析 .- 5 -3.方案设计 .- 5 -3.1 总体功能设计 .- 5 -3.2 数据结构设计 .- 6 -3.3 函数原型设计 .- 7 -3.4 主算法设计 .- 12 -3.5 用户界面设计 .- 13 -3.6 程序特色设计 .- 13 -4.方案实践 .- 14 -4.1 开发环境与工具 .- 14 -4.2 程序设计关键技术 .- 14 -4.3 个人设计实现 .- 14 -4.3.1 刘诚阳设计实现 .- 14 -4.3.2 张鹏举设计实现 .- 22 -4.3.3 于文鑫设计实现 .255.测试与调试 .275.1 个人测试 .275.1.1 刘诚阳测试 .275.1.2 张鹏举测试 .375.1.3 于文鑫测试 .425.2 组装与系统测试 .465.3 系统运行 .496. 课题总结 .506.1 课题评价 .506.2 团队协作 .506.3 个人设计小结 .516.3.1 刘诚阳设计小结 .516.3.2 张鹏举设计小结 .526.3.3 于文鑫设计小结 .526.4 参考资料 .537.附录 A 和附录 B .54附录 A 课题任务分工 .54A-1 课题程序设计分工 .54A-2 课题报告分工 .55附录 B 课题设计文档 .56- 3 -1.课题概述1.1 课题任务:工资管理系统1) 以结构体/共用体设计数据的结构,采用动态链表、文件存储方式,结构化、模块化程序设计方法,设计一个功能完善的系统 ,要有功能菜单。2) 本系统应具有数据维护(包括数据录入、添加、修改、删除) ,数据查询(可按 编号、姓名、基本工资、岗位工资、绩效工资 、房改补助、奖励、应发工资、公积金、扣税、实发工资等进行查询,也可进行组合查询) ,排序,统计,输出,系统维护(包括数据备份、数据恢复、口令维护) ,帮助,退出等功能。3) 本系统要有通用性、界面美观、操作方便。要考虑系统安全。4) 可增加其他有用的功能。1.2 课题原理1) 利用结构体的数据结构,采用动态链表,实现对数据的即时增删。2) 使用文件存储方式,对数据进行有效的存取。3) 采用结构化、模块化的设计方式,每个.C 文件仅包含一个或一类函数,实现模块化的设计开发模式。4) 使用 C 语言的顺序、选择、循环三种基本语句,实现函数所需功能。5) 运用函数定义、声明和调用等基本知识,实现数值、地址的传递,进行数据计算。6) 运用 C 语言独特的指针功能,对数据地址进行处理,实现相应操作。1.3 课题实践目的1) 通过程序实践,强化计算机应用技能,验证、巩固和充实所学的理论知识,加深对相关内容的理解,拓宽知识面,培养创新精神和实践能力。 2) 进一步掌握 C 的数据类型、基本结构、结构体、文件、链表、结构化、模块化设计等知识点。3) 进一步熟悉基本流程控制结构实现分支的 ifelse 语句、switch 语句和实现循环的 for、while、dowhile 语句、break、continue 等。4) 掌握 C 语言程序设计的基本思想,了解简单的系统分析和了解数据库系统的理论。5) 掌握数据库设计的基本方法,熟悉数据库设计的步骤。6) 进一步巩固、加深所学专业课程C 语言程序设计的基本理论知识,理论联系实际,进一步培养综合分析问题,解决问题的能力。7) 利用所学知识,开发小型应用系统,掌握运用 C 语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。- 4 -1.4 相关知识1) C 语言的数据类型、基本结构知识。2) 基本流程控制结构实现分支的 ifelse 语句、switch 语句和实现循环的 for、while、dowhile 语句、break、continue 等。3) 数据结构的设计。4) 系统分析和数据库系统的理论及设计知识。5) 结构体的建立和基本操作。6) 动态链表的建立与基本操作。7) 文件操作对数据进行输入和输出8) 多文件的项目管理应用。9) 开发程序所用的结构化、模块化设计等知识点。2.需求分析2.1 课题调研随着企业的快速发展,企业规模越来越大,员工的数量也越来越多,企业工资管理更加的复杂。工资管理是一项琐碎、复杂而又十分细致的工作,工资计算、发放、核算的工作量很大,一般不允许出错,如果实行手工操作,每月发放工资须手工填制大量的表格,这就会耗费工作人员大量的时间和精力。通过计算机进行工资发放工作,不仅能够保证工资核算准确无误、快速输出,而且还可以利用计算机对有关工资的各种信息进行统计,服务于财务部门其他方面的核算和财务处理。同时计算机具有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高人事工资管理的效率,也是企业科学化、正规化管理,与世界接轨的重要条件。这就对企业工资管理提出了新的要求,用计算机管理系统来管理工资已经成为目前的趋势,使用计算机可以高速,快捷地完成以上工作。工资管理系统便是以计算机为工具,通过对工资管理所需的信息管理,不仅把管理人员从繁琐的数据计算处理中解脱出来,而且优化了管理体系,使其高效化,简易化,智能化,也提高了透明度和互动性。专门的管理人员可以轻松地通过工资管理系统对员工的工资进行录入,查看与修改;而且公司高层也可以通过管理员身份了解公司的薪资情况,从而作出一些列财务方面的重要决策;普通员工也可以通过自己的用户名和密码登陆- 5 -工资管理系统,对自己每个月的工资情况进行查询,一目了然,方便快捷。因此,工资管理系统是各个企业部门必不可少的工具,具有很好市场前景与用户需求。2.2 用户需求分析1) 功能需求:登陆功能,显示主菜单功能,职工信息输入、输出、修改、删除功能,职工工资查询、排序、统计功能,系统备份、还原功能,数据初始化功能,帮助,退出等。2) 性能需求:此工资管理系统对工资数据精度的录入、计算、统计和储存能精确到小数点后一位小数。当用户向服务器发出命令请求(对数据更新处理、工资数据的查询检索)时,要求系统响应时间不会超过 1 秒。3) 安全需求:为保障系统数据的安全性,系统采用用户密码登陆机制,未授权者不能进入系统。而且登录人员分为管理员和员工,安全性能通过安全口令得以保证。由于软件运行数据放在数据库中,所以参数不容易被错改、破坏,万一参数受到破坏也不会影响源程序。4) 其他需求:系统提供了完善的数据备份与恢复功能,不会出现系统崩溃,因此具有较强健壮性。该系统是在 Windows 7 操作系统下运行,运行可行性是很高的。5) 约束条件:硬件环境:处理器(CPU)Pentium 以上;内存容量(RAM)256M 或更高。软件环境:Windows7/8/XP/Vista/2000/98 操作系统。3.方案设计3.1 总体功能设计该职工工资管理系统总共分为四大功能和辅助功。 四大功能:1.工资查询功能:工资排序、查找、统计2 数据处理功能:工资添加、修改、删除、输出到文本文件3.系统维护功能:数据备份、恢复、清空,修改参数,修改口令4.员工编号登记功能. 辅助功能:1.帮助 2.重选年月 3.切换用户 4.安全退出- 6 -职工工资管理系统双入口登陆功能 年月选择功能职工工资信息输入 职工工资信息输出 职工工资信息添加计算 职工工资信息修改 职工工资信息删除 生成职工工资文本工资信息排序 工资信息查询工资计算 工资信息统计数据恢复数据备份 修改参数数据清空 修改口令帮助 重选年月 退出3.2 数据结构设计分别定义了两个结构体,一个对员工工资信息进行储存,另外一个对员工编号进行登记(只有经过管理员登记过的员工才能登陆该系统) 。并使用动态链表的方式对数据进行储存和查找,员工的各类信息会被以二进制的形式写入文件内进行保存,系统从文件中以二进制形式读入数据。结构体如下:struct personchar num20; /编号char name20; /姓名char sex10;/性别int age;/年龄float postsalary;/岗位工资- 7 -float basepay; /基本工资float meritpay;/绩效工资float subsidy;/住房补贴float bonus;/奖金float gotpaid;/应发工资float insurance;/社会保险公积金float tax;/税金float realpaid; /实发工资struct person *next;struct staffchar num20;/员工登记编号struct staff *latter;3.3 函数原型设计AA.1 链表的建立,数据输入、输出、显示、添加、修改、删除函数1) struct person *Creat(int n)建立员工工资信息的链表,先通过传递的形式参数 n 来判断需要建立多少组数据,再通过键盘输入生成相应数量的动态链表数据2) struct staff *Creat_num(int n)建立员工登记编号的链表3) int Creat_number(void)向*Creat 函数传递数值的函数,即需要录入几组数据4) struct person *Input(void)读取员工工资信息的函数,从文件中读取信息并以动态链表方式保存到结构体中5) struct staff *Input_num(void)读取员工登记编号的函数6) void Output(struct person *head)输出员工工资数据到文件7) void Output_num(struct staff *head)输出员工编号到文件8) void Output_txt()生成员工信息的文本文件- 8 -9) void Print(void)将链表中员工的工资信息输出到屏幕上10)void Print_num(void)将链表中员工的登记编号输出到屏幕上11)int Insert(struct person *head)员工数据添加函数,使用方式:Insert(Creat(Creat_number(),先确定添加数据的组数,然后通过动态链表添加数据到结构体,最后通过该函数将数据加到文件尾部,实现数据添加。12)int Insert_num(struct staff *head)员工编号添加函数,使用方式同上,用于管理员向系统中登记员工编号,只有登记过的员工才可以登陆该系统13)int Modify()修改员工信息函数14)int Delete()删除员工工资信息的函数15)int Delete_num()删除员工登记编号的函数A.2 数据备份、清空、恢复1) struct person *Empty(void)清空该年月份所有员工工资信息数据的函数2) void Output_b(struct person *head)员工工资信息备份,输出信息到自定名称的文件3) struct person *Input_b(void)系统还原函数,将备份文件中的信息拷贝到以当前年月命名的文件中,从而还原上一次备份的数据A.3 统计函数1) void Statistics()员工工资统计函数,统计数据中所有员工工资的最小值和最大值,并计算平均数,输出到屏幕A.4 辅助函数1) int main()主函数2) int Exit()退出函数,显示感谢使用该系统,并正确结束运行3) void Choose_month()管理员登陆时用来选择年月份的函数,系统中员工各个年月份的工资分别保存- 9 -在以该年月命名的不同文件下,以该函数判断系统需要打开哪个文件。4) void Choose_month_num()员工登陆时用来选择年月份的函数,功能同上,是两个不同的登陆口5) float post(int a)岗位工资获取函数,岗位级别作为参数传递到该函数,该函数返回对应的岗位工资金额6) void Return()返回主菜单的函数A.5 各类菜单函数1) void Defined()修改参数菜单2) void Help()帮助菜单,提供帮助信息、设计人员信息和版本信息3) void Menu()管理员的主菜单,内含工资查询,数据处理,系统维护,编号登记,帮助,重选年月,切换用户,退出等功能选项4) void Menu_num()员工的主菜单5) void Menu2()工资查询菜单,内含员工工资查找,工资排序,工资统计等功能选项6) void Menu3()员工工资数据处理菜单,内含数据添加,修改,删除

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论