ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:210.21KB ,
资源ID:20644853      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20644853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(数据结构与算法课程设计论文Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

数据结构与算法课程设计论文Word格式文档下载.docx

1、(3)修改模块修改模块的功能是修改某职工的部分工资信息。(4)查找模块查找模块的功能就是:输出指定编号职工的工资信息;输出姓名和部门联合查询的职工工资信息。(5)统计模块统计模块的功能是:统计全企业总人数及各部门的人数;统计企业的平均工资及部门的平均工资。(6)排序模块排序的模块的功能是:对全企业的信息表按受教育年限及工资进行递增排序。(7)列表模块列表模块的功能是输出全体职工的工资信息。程序具体功能介绍:2.1.1 功能介绍现在,需要存储这些人员的人事档案信息:员工编号, 员工姓名 ,年龄 ,性别 ,部门 ,职务, 受教育年限 ,工资 ,缺勤(天) ,罚金, 个税 ,实发数。其中,人员编号唯

2、一,不能重复。添加删除功能:能根据学企业人事的变动情况,添加删除记录;查询功能:能根据编号及姓名和部门的复合查询进行查询;编辑功能(高级):根据查询对相应的记录进行修改,并存储;统计功能:能根据多种参数进行人员的统计及平均工资,统计要求同时显示被统计者的信息;排序功能:按照受教育年限、工资进行排序;保存功能:能对输入的数据进行相应的存储;2 .2 系统框图系统框架图在本设计中,将主要实现以下功能:增加记录功能,修改记录功能,删除记录功能,以及筛选记录功能等。图1 系统框架图2.2 开发环境 本系统是在Visual C+6.0平台上运行的,主要运行C及C+等语言。3 详细设计具体系统设计3.1

3、结构体及类的设计与分析 3.1.1:员工结构体的建立struct Worker_pay int num; /员工编号 string name; /员工姓名 int age; /年龄 string sex; /性别 string department; /部门 string title; /职务 int eduage; /学历(年) float wage; /工资 int day; /缺勤天数 float allowance; /扣发工资 float tax; /个人所得税 float real_wage; /实发数 Worker_pay * next; /链表结点的指针域;3.1.2:员工类的

4、建立class Workerprotected: Worker_pay * head; /链表的头结点指针public: Worker()head=NULL; /构造函数 void Display(Worker_pay *); /输出函数 Worker_pay * Find(int); /查找函数 int ListCount(); /统计员工人数函数 void AddItem(int,string,int,string,string,string,float,float); /创建链表并链表的插入 void RemoveItem(int); /删除函数 void ReplaceItem(int

5、); /修改函数 void ListL(); /遍历函数 void Search(int); /查找并输出某个员工信息函数 void Real_wage(float,float); /计算函数 void Recordinfo(int,string,int,string,string,string,float,float,float,float); /存储函数3.1.3:相关的成员函数表1 Worker类说明表名称属性说明head数据成员链表头结点指针Worker()成员函数缺省的构造函数,缺省值为head=NULLvoid Display(Worker_pay *)输出函数Worker_pay

6、 * Find(int)查找函数int ListCount()统计员工人数函数void AddItem(int,float,float)创建链表并链表的插入void RemoveItem(int)删除函数void ReplaceItem(int)修改函数void ListL()遍历函数void Listavg(string)部门查询及统计的函数void load()读取文件void sort_data();对员工信息进行整理的函数void search(sting ,string)复合查找并输出员工信息的函数void Search(int)查找并输出某个员工信息函数void Real_wage

7、()计算函数voidRecoreinfo(int,float,float)存储函数3.1.4非成员函数的设计与分析表2 非成员函数说明表int Menu()用于显示主菜单char Exit()用于退出程序void Input(int * num,float * allowance)用于输入员工工资信息void AddNew()用于调用成员函数AddItem(int,float,float)Real_wage()和Recoreinfo(int,void DoFind()用于调用成员函数Search(int)void DoDelete()用于调用成员函数RemoveItem(int)void Do

8、Motify()用于调用成员函数ReplaceItem(int)void List()用于调用成员函数ListL()int main()主函数void findtavg()用于调用成员函数void Listavg(string)3.2:各功能模块设计:(1)、新建数据文件模块:、数据结构;看各个数据信息,员工编号(int), 员工姓名 (sting),年龄 (int),性别 (string),部门(string) ,职务(string), 受教育年限 (int),工资 (string),缺勤(天)(int) ,罚金(int), 个税 (int),实发数(int),在文件中以文本形式存放,每条记

9、录对应一个人员的信息,可以方便信息的管理;而数据读进内存中时,可以以结构体的形式,每一个结构体包含了一个人员的全部信息,多的人员的信息组成了一个结构体数组。定义见结构体及类的设计与分析(2)、追加模块:1需求分析该模块的功能是拥护需要增加新的员工记录,从键盘输入并逐条写入到原来的文件中去,其中输入号码是要防止号码重复,重复时报告错误,重新输入。为方便用户管理和查看,该模块采用的方式是用先把原来文件中的数据读入内存,保存在内存中,然后在内存中的数据后面增加新的数据,操作完成后用写的方式打开文件,用覆盖的方式写入。2流程图:略;3对应程序:void AddNew() (3)修改模块:需求分析:该模

10、块的功能是显示所有信息,考虑到记录较多,采用分屏显示,显示完所有的记录后,由用户输入需要修改的人员的号码,查找成功后,显示查找结果,并询问拥护修改人员的哪部分记录,根据用户选择修改相应的信息,然后保存修改后的结果;2流程图: Y Y N Y N 3对应的函数: void DoMotify();(4)删除模块:1需求分析:该模块的运行方式与修改模块类似,首先分屏显示所有人员的记录,显示完所有的记录后,由用户输入要删除的人员的号码,根据号码查找相应的记录并将结果显示出来,经用户确认后删除,删除的方法是将文件中的数据读入内存,赋给相应的结构体,并将结构体数组中将删除的后面的数据赋给前一个结构体,然后

11、将相应数据写入文件并保存;类似添加的流程对应函数: void DoDelete();(5)、按编号搜索:该模块的功能是按照输入的人员的编号查找对应的记录,并将其显示,查找成功以后,增加删除和修改等功能,其中删除和修改功能可以通过调用相应的函数来实现。2流程图;(6)按姓名和部门搜索。需求分析:该模块的功能是按照输入的人员的姓名和部门查找对应的记录,并将其显示,查找成功以后,增加删除和修改等功能,其中删除和修改功能可以通过调用相应的函数来实现。该模块的结构与按号码查询的结构基本相同;void DoFindbumen();(7)输出模块;该模块的功能是显示所有保存在文件中的记录。2、流程图;略vo

12、id List();(8)、排序模块;1、需求分析;该模块的功能是要求将记录按照年龄或者来院时间进行排序,总体结构是先用n=load()函数将文件中的数据调入内存,然后按照选择法排序,并将结果显示出来,然后将排序后的结果保存。 next=NULL。5 系统特色及关键技术5.1:Worker类中的成员函数void AddItem(int,(1)功能:创建存储职工工资信息的存储系统以及添加某职工的工资信息。算法思路:先定义一个结构体Worker_pay,通过从表尾插入的方法来建立链表。首先要先设立一个头指针(head)来存放链表的首地址,然后,不断用new运算符生成一个新的结点,将这个结点链入已有

13、的链表尾部;如果链表中还没有结点,则这个新结点将是首结点,否则,将新结点的地址赋给原有链表的尾结点的next指针。流程图:(3)代码:void Worker:AddItem(int num1,string name1 , ) if(!head) head=new Worker_pay; head-num=num1; next=NULL; return; Worker_pay * t=head; while(t&t-num!=num1) t=t-next; if(t) cout操作失败;员工编号为num1next) p=p- Worker_pay * p1=new Worker_pay;retu

14、rn;5.2:Worker类中的成员函数void sort_data()运用算法课本上的直接选择排序的算法,与课本的不同之处在于,本程序是用指针进行排序的,课本使用的数组。直接选择排序的比较次数与文件初始状态无关,在第i趟排序中选出最小的记录,需做n-i次比较,因此总的次数为:O(N*N),文件初始状态为正序时,移动0;最坏情况每趟排序都要交换操作,总的移动次数是3(n-1)。直接选择排序的平均时间复杂度为O(n平方)。算法中增加了一个辅助空间temp,因此辅助空间为S(n)=O(1)。直接选择排序是不稳定的。 主要代码:Worker_pay * p,*q,*small,*temp; temp

15、= new Worker_pay ; for(p=head;p-next!=NULL;p=p- small=p; for(q=p-next ;q!q=q- if(q-eduageeduage) small=q; if(small!=p) temp-eduage=p-eduage; p-eduage=small- small-eduage=temp- cout6 用户手册及测试结果6.1用户手册运行程序时,界面刚开始出现一个主菜单及提示信息,用户通过在键盘上输入来选择某个功能。当用户选择了某个功能,系统将跳转到所选择的功能界面,用户将可以根据提示信息来使用该功能,当用户通过键盘输入编号为-1时,

16、系统将返回主界面。 6.2 测试结果1,主菜单2,输入,添加,删除,修改,查询:统计排序7.总结:成功之处:此系统程序虽然简单,却集结了基本的管理功能。删除,存储,统计等功能还是较为成功的。特别是人事档案的统计管理功能,使烦琐的工作变得简单轻松。不足之处:由于我们水平和时间有限,难免有不足和差强人意的地方。尤其是对于系统应该配以保密性的设置,可是由于我知识积累不够,做不出来。还请迟老师海涵。两周的数据结构与算法课程设计结束了,在这几天的时间里,我自己独立完成了一个程序从构思结构,到编写代码,然后上机调试运行的过程,感觉自己收获很大。通过解决一个又一个的问题,熟悉了C+语言的应用。在设计过程中,

17、在编程时条理清晰是至关重要的。主函数,函数,成员函数之间的层次关系,调用关系一定要有一个全面的把握,尤其要体会类的封装性。另外很重要的一点就是一定要对链表的五种操作熟练的掌握。我理解了对于一个较大的程序,不可能一次编写出一个较大的系统,通常要采取自顶向下的设计思想,先设计主函数,再通过完善一个个的功能模块来完成程序的设计过程,在设计过程中要充分理解整个程序的设计思路,采用逐步细化的方式来完成整个程序。在编译,链接,调试的过程中一定要有耐心。因为一个程序中会有很多小的错误,甚至有的问题要几个小时才能解决。遇到问题,一定要全面分析,有时候还要向同学请教。总得来说,编程时极需要耐心的。参考文献C语言大学实用教程 电子工业出版社2、C+程序设计教程(第二版)高等教育出版社 3、C语言程序设计教程 北京大学出版社4、C语言程序设计实例精粹 电子工业出版社 5、6、陈天华编.面向对象程序设计与Visual C+6.0教程M.北京:清华大学出版社,2006

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1