C语言职工信息管理报告电气LR.docx
- 文档编号:8872541
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:15
- 大小:113.57KB
C语言职工信息管理报告电气LR.docx
《C语言职工信息管理报告电气LR.docx》由会员分享,可在线阅读,更多相关《C语言职工信息管理报告电气LR.docx(15页珍藏版)》请在冰豆网上搜索。
C语言职工信息管理报告电气LR
C语言实训报告
职工信息管理系统
班级:
负责人:
组员:
指导教师:
日期:
C语言课程设计任务书
一、题目:
职工信息管理系统
二、目的和要求
目的:
要求熟练掌握C语言的基本知识和编辑技能;
基本掌握结构化程序设计的基本思路和方法。
2.1基本功能和要求
(1)系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有相应的帮助,菜单之间能够灵活的切换。
用户分三种权限:
一般的员工用户,员工工资管理员,系统管理员。
(2)根据登陆方式,选择相应的操作方式;
如果是一般的员工用户(默认权限为r即只读),就只能按照各种方式查看数据,并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能;
如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。
如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户,并且可以修改员工的工资体系和大小。
(3)能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计,统计的结果能够以表格的形式来表示。
(4)员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。
数据的组织形式要求必须使用链表或者二叉树来实现。
(5)登录的用户名和密码应该存储在单独的文件中,最好做一定的加密算法。
(6)系统要求界面友好,易操作。
2.2统计功能
(1)统计每个部门的员工工资、整个公司的员工工资、员工的信息等。
(2)统计全公司总金额、每个部门的员工工资、扣税信息、工资的扣除信息、奖金、
特别奖金等等。
(3)统计全公司工资最高的人员前10名,并对它们进行排序。
(4)按部门统计工资最高的人员前10名,并对它们进行排序。
(5)统计扣除工资最多的10个人。
(6)工资信息其它方面的统计。
(7)按照技术职称统计工资信息。
(8)按照工龄职称统计工资信息。
2.3查找功能
(1)可以根据员工的姓名查找。
(2)可以根据工资卡号查找。
(3)可以根据身份证号查找。
(4)可以根据部门查找。
(5)可以根据技术职称查找。
(6)可以根据员工的姓名来查找员工的信息,以及员工的工资组成和细节。
(7)可以根据员工的身份证来查找员工的信息,以及员工的工资组成和细节。
(8)可以根据员工的部门来查找员工的信息,以及员工的工资组成和细节。
2.4排序功能
(1)可以根据员工的基本工资排序。
(2)可以根据员工的职务工资排序。
(3)可以根据员工的扣除工资排序。
(4)可以根据员工的交税信息排序。
(5)可以根据员工的扣除工资信息排序。
(6)可以根据员工的姓名排序。
(7)可以根据员工的职务排序。
2.5系统的操作
(1)有文件的保存和另存为
(2)有文件的打开和载入
(3)系统在退出时,要有相应的提示
三、信息描述
·职工基本信息:
如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。
·工资基础信息:
技术职称编号、技术职称、基本工资、职务工资、各种补助等。
·费用扣除信息:
工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。
·工资单数据:
工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。
四、解决方案
1、首先进行需求分析,搞清楚系统功能和任务;
2、然后在总体设计中确定模块结构、划分功能模块,将软件功能需求分配给所划分的最单元模块。
确定模块间的联系,确定数据结构、文件结构、数据库模式,确定测试方法与策略;
3、在详细设计中,为每个模块确定采用的算法,选择适当的工具表达算法的过程(流程图)来描述模块的详细过程。
4、根据分析编写C语言代码。
五、课程设计总结
1、语言简练,条理清楚,图表规范
2、程序设计组成框图、流程图
3、模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)
4、调试与测试:
调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的5、解决措施
6、源程序清单和执行结果:
清单中应有足够的注释
七、参考资料
《C程序设计》(第三版)谭浩强著清华大学出版社
《C程序设计题解与上机指导》(第三版)谭浩强编著清华大学出版社
第一章系统分析与系统设计
一、目的和要求
目的:
要求熟练掌握C语言的基本知识和编辑技能;
基本掌握结构化程序设计的基本思路和方法。
2.1基本功能和要求
(1)系统必须是菜单操作方法,进入功能必须打开菜单,并且每个菜单都有相应的帮助,菜单之间能够灵活的切换。
用户分三种权限:
一般的员工用户,员工工资管理员,系统管理员。
(2)根据登陆方式,选择相应的操作方式;
如果是一般的员工用户(默认权限为r即只读),就只能按照各种方式查看数据,并且只能查看自己的信息和工资情况,并且可以网上修改自己的信息等等功能;
如果是员工工资管理员,除了可以查看数据外还能编辑员工基本信息数据。
如果是系统管理员,他可以拥有员工工资管理员的所有功能,并且可以创建用户,并且可以修改员工的工资体系和大小。
(3)能够对员工基本信息、工资的基本信息、工资的扣除费用信息进行统计,统计的结果能够以表格的形式来表示。
(4)员工基本信息、工资的基本信息、工资的扣除费用信息存储在相应的文件中。
数据的组织形式要求必须使用链表或者二叉树来实现。
(5)登录的用户名和密码应该存储在单独的文件中,最好做一定的加密算法。
(6)系统要求界面友好,易操作。
2.2统计功能
(1)统计每个部门的员工工资、整个公司的员工工资、员工的信息等。
(2)统计全公司总金额、每个部门的员工工资、扣税信息、工资的扣除信息、奖金、
特别奖金等等。
(3)统计全公司工资最高的人员前10名,并对它们进行排序。
(4)按部门统计工资最高的人员前10名,并对它们进行排序。
(5)统计扣除工资最多的10个人。
(6)工资信息其它方面的统计。
(7)按照技术职称统计工资信息。
(8)按照工龄职称统计工资信息。
2.3查找功能
(1)可以根据员工的姓名查找。
(2)可以根据工资卡号查找。
(3)可以根据身份证号查找。
(4)可以根据部门查找。
(5)可以根据技术职称查找。
(6)可以根据员工的姓名来查找员工的信息,以及员工的工资组成和细节。
(7)可以根据员工的身份证来查找员工的信息,以及员工的工资组成和细节。
(8)可以根据员工的部门来查找员工的信息,以及员工的工资组成和细节。
2.4排序功能
(1)可以根据员工的基本工资排序。
(2)可以根据员工的职务工资排序。
(3)可以根据员工的扣除工资排序。
(4)可以根据员工的扣除工资信息排序。
(5)可以根据员工的姓名排序。
(6)可以根据员工的职务排序。
2.5系统的操作
(1)有文件的保存和另存为
(2)有文件的打开和载入
(3)系统在退出时,要有相应的提示
二、信息描述
·职工基本信息:
如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。
·工资基础信息:
技术职称编号、技术职称、基本工资、职务工资、各种补助等。
·费用扣除信息:
工资卡号、水费、电费、清洁费(5元/月)、闭路电视费(10元/月)等。
·工资单数据:
工资卡号、姓名、应发工资、水费、电费、清洁费、闭路电视费、税金、实发工资、特别奖励。
总体设计
1)该系统可以按功能进行模块划分,其模块图如下
系统模块图
其中:
职工工资信息管理系统共包含五大模块:
登陆模块、创建用户模块、注销用户模块、修改密码模块和退出模块。
其中:
(一)登陆模块:
intlogin()
1.录入员工的信息模块:
voidinput()
包括输入员工信息的个数、每个员工的工资卡号、身份证号码、姓名、性别、年龄、工龄、部门、技术职称、技术支撑编号、家庭电话号码、手机号码、基本工资、职务工资、各种补助、水费、电费、清洁费、闭路电视费。
2.查询员工的信息模块:
voidmenu12()
分别可根据员工的姓名、工资卡号、身份证号、部门、技术职称查找相应的员工单面信息以及所有相关信息。
3.统计员工的信息模块:
voidmenu13()
包括统计每个部门员工的工资信息、全公司的工资信息、全公司工资最高前10名、各部门工资最高前10名、扣除工资最多的10人、按照员工的技术职称和工龄统计工资信息、以及每个部门的工资详细信息。
4.员工信息排序模块:
voidmenu14()
分别根据员工的姓名排序、根据员工的技术职称编号排序、根据员工的基本工资排序、根据员工的职务工资排序、根据员工的扣除工资排序。
5.保存员工信息模块:
voidsaveinfo()
6.返回主菜单模块。
(二)创建用户模块:
voidinput1()
首先输入员工的用户名,若此用户名已经存在,则无法创建,若此用户名可以使用,继续输入密码。
(三)注销用户信息模块:
voiddelUser()
首先输入用户名和密码,若输入的用户名和密码正确,则继续输入要注销的用户名,否则无法注销。
(四)修改密码模块:
voidmodify()
首先登陆信息,若输入信息错误,则无法修改用户名和密码,若输入信息正确,则请求输入新的用户名和新的密码。
本系统中主要的数据结构就是职工的信息,包含如工资卡号、身份证号、姓名、性别、年龄、工龄、部门、技术职称、技术职称编号、家庭电话号码、手机号码等。
程序中所定义的数据结构体:
structwage//工资信息;structSwage//费用扣除信息;structWorkerInfostructlog//登陆结构体;structWaP//工资单信息。
3)程序流程
系统的执行应从功能菜单的选择开始,依据用户的选择来进行后续的处理,直到用户选择退出系统为止,其间应对用户的选择做出判断及异常处理。
系统的流程图如下:
程序流程图
第二章主函数设计
一、列出所有定义的函数及说明
intlogin();//登陆函数
intlogin1();//登陆函数
voidmenu();//主菜单
voidmodify();//修改密码
voidsaveLog();//保存登陆的用户名和密码
voidloadLog();//加载登陆的用户名和密码
voidmenu1();//登陆进入子菜单
voidinput();//录入员工信息
voidmenu12();//查询员工信息子菜单函数
voidmenu13();//统计员工信息子菜单函数
voidmenu14();//员工信息排序子菜单函数
voidsaveinfo();//保存员工信息
voidloadinfo();//载入员工信息
voidbrowse();//浏览员工信息函数
voidaddUser();//添加新用户
voiddelUser();//注销用户
voidSearchName();//*按员工姓名查找员工信息函数*/
voidSearchID();//*按员工工资卡号查找员工信息函数*/
voidSearchPID();/*按员工身份证号码查找员工信息函数*/
voidSearchDep();/*按员工部门查找员工信息函数*/
voidSearchPre();/*按员工技术职称查找员工信息函数*/
voidSearchNameW();/*按照员工姓名查询员工工资信息信息函数*/
voidSearchIDW();/*按照员工工资卡号查询员工工资信息函数*/
voidSearchPIDW();/*按照员工身份证号码查询员工工资信息函数*/
voidDepInfo();/*统计每个部门员工的工资信息*/
voidComInfo();/*统计整个公司的工资信息*/
voidDepDetInfo();/*统计每个部门的工资详细信息*/
voidTopComInfo();/*统计工资最高的前10名员工信息*/
voidTopDepInfo();/*按照部门统计最高的10名员工信息*/
voidSubComInfo();/*统计工资扣除最多的10个员工信息*/
voidPreInfo();/*按照员工的技术职称统计工资信息*/
voidComAgeInfo();/*按照员工的工龄统计工资信息*/
voidSDep();/*加载现有的员工部门信息*/
voidSPre();/*加载现有员工的职称信息*/
voidSWage();/*加载现有员工的工龄信息*/
voidbrowse1();/*浏览信息函数2*/
voidOrdTax();/*根据员工的交税信息排序*/
voidOrdName();/*根据员工的姓名排序*/
voidOrdSub();/*根据员工的扣除工资排序*/
voidOrdPWage();/*根据员工的职务工资排序*/
voidOrdBWage();/*根据员工的基本工资排序*/
voidOrdPre();/*根据员工的职务排序*/
三、系统调试
调试是软件开发过程中最艰巨的脑力劳动,调试开始时,软件开发者仅仅面对着错误的征兆,然而在问题的外部现象和内在原因之间往往并没有明显的联系,在组成程序的密密麻麻的元素中,每一个都可能是错误的根源。
如何能在浩如烟海的程序元素中找到有错误的那个(或几个)元素,这是调试过程中最关键的技术问题。
本设计中调试的方法主要是设置断点跟踪。
使用断点跟踪可以找到程序的出错位置,缩小查找错误的范围,提高调试的效率。
调试的任务是及时改正测试过程中发现的软件错误。
具体地说,调试过程由两个步骤组成,它从表示程序中存在错误的某迹象开始,首先确定错误的准确位置,也就是找出哪个模块或哪个语句引起的错误。
然后仔细研究推断代码以确定问题的原因,并设法改正。
现阶段已研究出一些帮助调试的技术,主要有输出存储器内容、打印语句和自动工具。
当然更重要的还是调试的策略。
调试的策略主要有以下几种方法:
1.试探法
调试人员分析错误征兆,猜想故障的大致位置,然后使用调试的技术获取程序中被怀疑的地方附近的信息。
这种策略通常是缓慢而低效的。
一般不被采用。
2.回溯法
回溯法是调试人员检查错误征兆,确定最先发现“症状”的地方,然后人工沿程序的控制流往回追踪源程序代码,直到找出错误根源或确定故障范围为止。
回溯法对小程序而言是一种比较好的调试策略,但是对于一些大规模的程序来说,就不适合用此方法了。
3.对分查找法
如果知道每个变量在程序内若干个关键点的正确值,则可以用赋值语句或输入语句在程序中点附近“注入”这些变量的正确值,然后检查程序的输出。
如果输出结果是正确的,则故障在程序的前半部分;反之,在后半部分。
对于程序中有故障的那部分再重复使用这个方法,直到把故障范围缩小到容易诊断的程度为止。
4.归纳法
所谓归纳法就是从个别推断一般的方法,这种方法从线索出发,通过分析这些线索之间的关系而找到故障。
5.演绎法
是从一般原理或前提出发,经过删除和精化的过程推导出结论。
用演绎法调试开始时先列出可能成立的原因或假设,然后依次地排除列举出的原因。
最后,证明剩下的原因是错误的根源。
以上是一些调试策略的介绍,在这些策略中较普遍的调试策略是归纳法和演绎法。
四、存在的问题与不足及对策:
不足:
录入员工信息时,会覆盖之前的记录。
对策:
类似登陆是添加用户程序的处理方法
五、C语言课程设计心得
通过这次课程设计,增加了我们对软件技术的了解,虽然还不明确软件技术包含的具体内容,但从学习C语言这门课程开始,已发现程序设计的好处,它对我们数学的学习也有很大的帮助。
在学习C语言的过程中也学到和巩固了许多计算机应用基础知识,对计算机的机体也有了一个较为详细的了解。
在具体操作中对这学期所学的C语言的理论知识得到巩固加强,达到实训的目的,也发现自己的不足之处,为我们以后的c语言学习奠定了基础,同时体会到C语言具有的语句简洁,使用灵活,执行效率高等特点。
发现上机操作的重要作用,特别是对数组和循环有了深刻的理解。
通过实际操作,学会C语言程序编程的基本步骤、基本方法,开发了自己的逻辑思维能力,培养了分析问题、解决问题的能力。
由于本课题中的许多知识点都没有学过都要靠自己到课外的资料中去查找。
在用的时候难免出现这样那样的错误。
如开始设计出来的菜单不是预想的那样,而是总个窗中出现混乱。
解决的这个问题的办法是调整。
最后还是老师帮我帮我们找到了问题的所在。
一个系统的菜单和提示信息非常重要。
如果没有这些用户根本不知道怎么用你设计的这个系统。
在设计的调试过程中也无法顺利的完成调试工作。
有了一个清晰简单的菜单和一些提示信息这后,调试过程完成的非常顺利。
回顾起此次课程设计,至今我们仍感慨颇多,的确,从拿到题目到完成整个编程,从理论到实践,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。
通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,通过这次课程设计之后,一定把以前所学过的知识本次课程设计结束了,对于我们的影响很大。
我们通过这次实践学到了许多知识。
学到了设计一个简单的系统。
要注意哪些方面。
也使我们知道自己哪些方面做得还不够。
但我们总结出了一点点的经验如下:
①要对系统的功能和要求做出详细的分析,并合理分解任务。
②把分解出来的子任务,做给一个相对独立的模块。
③在设计一个模块之前,要简单构想一下总界面的显视情况。
④针对构想出来的界面进行程序的编写。
程序操作演示
图一操作主菜单
图二进入添加用户界面
图三添加新用户演示
图四进入操作子菜单
图五查询员工信息子菜单
图六统计员工信息子菜单
图七员工信息排序子菜单
图八统计信息实例
图九员工信息按姓名查找实例
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 职工 信息管理 报告 电气 LR
![提示](https://static.bdocx.com/images/bang_tan.gif)