版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、+ 课 程 设 计 报 告姓名 王镇窑学号一班级_任课教师钱芸生时间实验题目工资管理.评定难易级别实验报告成绩题目名称:工资管理二. 难度等级:A级三. 课程设计要求:1. 用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个链表类,封装 主要操作函数。2. 显示,修改,删除数据项时大小写通用。3. 工资数据按工资值的大小进行排序存放。4. 修改、删除数据前增加提示信息,用户确认后才能进一步操作,否则操作取消。5. 增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管 理,在程序结束时能将工资数据保存在原文件中。四程序结构框图功能示意图:五.程序设计思想整个程序
2、是我和吴龙生同学合作完成,我们先完成了主函数的编写,再把 程序各个功能的实现交由类函数实现。一共有1.添加工资记录。2.显示工资 记录。3.根据姓名查询工资记录。4.根据姓名删除工资记录。5.根据姓名修 改工资记录,再加上从文件写入内存,从内存写入文件,七个主要功能函数, 我们把这些函数分工编写,再整合整个程序。用类改编程序,我们建立了一个数据类(用于存放姓名和工资),一个结 点类(存放数据类指针和下一个结点的指针),一个链表类(存放链表的头指 针和结点的个数,同时封装了对链表操作的所有函数)。虽然各个程序有不同 的具体要求,但链表的操作大同小异,所不同的只是结点那部分的数据类型 不同。所以根
3、据这一特点,可以将链表定义成一个类,涉及结点数据的输入、 输出、复制等。在结点中涉及较多的是具体数据的形式,所以将具体的数据 形式定义成数据类型的指针,所有针对数据的操作都转换为对指针的操作, 在数据类中再具体实现。这样,结点的操作也可以像链表一样通用。最后, 再将数据具体形式定义成一个类,涉及数据的输入格式、输出形式、比较内 容的大小等。那么,针对不同的数据管理,只要改动这部分就可以了。这样 就实现程序的结构化了!主函数,开始运行先建立一个链表类类对象,将文件中的数据读到内存中。 然后再输出整个主菜单,键入相应的命令执行相应的链表类函数实现功能。 最后再把修改后的链表中的数据写入文件中,退出
4、。六.程序重要功能的实现方法1.添加工作记录,工资数据按工资值的大小进行排序存放。主菜单中添加工资 记录的功能会先调用链表类Clist的成员函数voidAddRecordO o该函数会生 成一个数据类成员和一个结点类成员,通过键盘输入员工的姓名和工资,并把 数据赋值给数据类成员把数据类成员的指针赋给结点类成员,然后再调用 Clist的成员函数voidinlist (CNode*nodeO),并把新生成的结点类指针传递 过去,该函数会在原有链表中通过工资数据的比较,按工资大小顺序给该结点 找到位置并插入到原有的链表中(如果链表不存在即运行该函数时头指针值为 0,则该结点就赋值给链表类成员的头指针
5、,作为链表中的唯一结点存在。)由 于一开始每一个结点都是由小到大插入的,所以该链表最终工资数据一定是按工资值的大小进行排序存放的。链表类的增加工资记录的函数:voidAddRecord ()CNode*pnode;CSalary*psal;charnameO20;doublesalaryO;cout«,z请输入姓名(按0结束):; cin»name0;while(strcmp(nameO,,0,/)cout«,z请输入工资:;cin»salaryO;0;psalnewCSalary;psal->SetSalaty(nameO, salary。);
6、pnodenewCNode;pnode->InputDate(psal);inlist (pnode);cout«"请输入姓名(按0结束):;cin>>name0;cout<<endl«endl;链表类的按照工资大小插入节点的函数voidinlist (CNode*nodeO)示工资记录。主菜单中显示工资的功能会先调用链 表类Clist的成员函数voidShowListO,该函数会通过循环语句,调用每一个 结点对应的结点类函数voidShowNodeO函数,调用结点对应数据类成员的数据 类函数voidshow()把员工的姓名和工资数据
7、打印在显示屏上。链表类的打印工资记录的函数voidShowListO据姓名查询工资记录。主菜单中根据姓名查询工资的功能是调 用链表类的函数voidFindRecordO来实现,该函数通过循环语句查找所有节 点,对每一节点会执行数据类的函数intcompare(charaa),该函数的功能是 把字符串aa和类成员字符串name进行比较如果两个字符串相同会返回1,否 则返回0,在比较的时候会把name和aa中所有字符转换为小写字母进行比较, 以实现大小写通用的功能。如果返回值为1时,链表类函数就会执行数据类函 数的voidshow()函数,把该结点的工资记录打印出来,直至比较完所有结点。 所以该功
8、能可以打印出链表中所有同名(大小写通用)的工资记录。链表类的按照姓名査找工资记录的类函数:voidFindRecordO据姓名查找并删除工资记录。主菜单中根据姓名查找并删 除工资记录的功能是调用链表类中的函数voidDeleteRecordO实现的。该函 数在执行查询功能时与函数voidFindRecord()基本差不多也是大小写通用, 但是为了方便删除结点,也是为了可以应付同名或者姓名大小写不同但是字 母一样的情况出现(例如Mike,和mike),该函数建立了一个结点类的指针 数组,每找到一个结点会把该结点的上一节点的指针保存在数组中(因为要 更改上一结点的next指针,所以要保存上一指针)
9、,如果是头指针则把0赋 给数组。接着把查询结果都打印出来,由用户选择要删除哪个用户数据。用 户选择后会输出确认删除的语句,用户确认后开始删除。如果数组成员为0, 则修改头指针为下一结点,如果是正常指针则修改该指针指向的next指针为 下下个结点指针。链表类中按照姓名査找并删除工资记录的函数void DeleteRecordO据姓名查找并删除工资记录。主菜单中根据姓名查找并 删除工资记录的功能是调用链表类的函数void WriteRecordO来实现,该函 数使用了 void DeleteRecordO的思想,采用同样的方式查找结点,也是大小 写通用,并也定义了一个结点类指针数组,把查找到的符合
10、条件的上一结点 的指针保存在数组中,在查询完毕后,把所有找到的符合条件的结点打印出 来,供用户选择删除哪个数据,在用户选择后,用户可以重新输入工资,输 入后,会输出是否确认修改的语句,用户确认后再修改对应结点的数据类的 工资数据。因为修改后用户工资数据排序就会出问题,为了解决此办法接着 会再新建一个结点与修改后结点相同,把链表里原来的结点删除,再运行函 数void inlist ()按照工资大小插入结点!链表类中按照姓名査找并修改工资记录的函数:void WriteRecordO程序的文件输入输出功能。在执行程序中首先将工资数据从文件中读出再 进行管理,在程序结束时能将工资数据保存在原文件中。
11、该部分的功能也是通过俩个链表类的函数 void infireO()和void outfireO()实现的。在void infireO()函数中会先以二进制的模式打开文 件,在把链表类的成员n (表示结点个数)写在(四个字节)文件的开头,再按照链表顺序把一个个 结点对应的数据类的数据写入内存中,直到把n个结点写完。内存写入文件的函数:void outfireO ()加工资记录显示工资记录,z«endl«,3.根据姓 名查询工资数据,«endl«/4.根据姓名删除工资数据<<endl«5根据姓名 修改工资数据,/«endl«,O.退出程序z/«endl«,z请回复相应数字执行相应功 能。"endl;cin>>a;if (a二二'I1 )();/利用类函数增加工资记录在(按照从小到大的顺序)相应位置else if (a二二'2')();char mm;cout«,z按任意键和回车返回主菜单endl;cin>>mm;/利用类函数显示所有工资记录else if
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆使用管理制度
- 《青蒿素 人类征服疾病的一小步》青蒿素研究的知识产权保护课件
- 技术实物试题及答案
- ISO 9001-2026《质量管理体系-要求》培训师、咨询师和审核员工作手册之9-1:“9绩效评价-9.1监视、测量、分析和评价-9.1.1总则”雷泽佳编制-2026A0
- 药品不良反应监测培训试题及答案
- 广东省广州市增城区2026年中考一模英语试题附答案
- 药品价格管理试题及答案
- 药品配制规范试题及答案
- 医疗废物管理三基三严考试题库及答案
- 销售内勤竞聘试题及答案
- 2025年月嫂考试题及答案
- 药品管理追溯管理制度
- 媒介融合抵抗形态-洞察及研究
- 光伏运维管理制度
- 村文书考试题及答案甘肃
- 河南省郑州市建筑职业技术学院2024年4月单招考试职测试题
- 高职应用语文教程(第二版)教案 上篇 文学鉴赏
- 征地补偿申请书范文
- 甲方业主项目管理手册
- 冶炼过程数值模拟技术-洞察分析
- 踝泵运动健康宣教课件
评论
0/150
提交评论