南京理工大学C++课程设计,工资管理
c语言工资管理系统课程设计报告

程序设计课程设计报告工资管理系统院系:地质工程系班级:地质工程班组员:欣永胡世俊积荣海俊马小成目录一、............................................. 设计目的1二、........................................ 设计容与要求21. 设计容 (3)2. 设计要求 (4)三、......................................... 总流程图设计5四、..................................... 程序详细功能设计6五、............................................. 程序调试7六、............................................. 设计小结8七、............................................. 参考文献9附录 (10)一、设计目的在计算机中建立相应的数据结构,利用程序实现工资的输入、查询、增、删、改、统计、输出等操作。
进一步掌握利用C语言进行程序设计的能力;进一步理解和运用结构化程序设计的思想和方法;初步掌握开发一个小型实用系统的基本方法;学会调试一个较长程序的基本方法;学会利用流程图表示算法。
《工资管理系统》的设计与实现,此次程序设计主要利用 c 语言的基础知识开发一个简单的职工工资管理系统。
工资管理系统是一个企业不可缺少的一部分,它利用计算机对职工工资进行统一管理,实现工资管理工作的系统化、规化和自动化,为企业提高工作效率。
二、设计容与要求1.设计容主要利用c语言的文件操作能力设计开发一个小型的管理信息系统,至少具有如下功能:对职工信息的录入、修改或删除,通过职工或工号进行查找,并逐项列出相信的职工工资信息,另外也可以查看所有职工目前的工资状况。
C++课程设计 工资管理课程设计报告

紫金学院Visual C++课程设计南京理工大学紫金学院VC++课程设计报告课程:VC++课程设计系别:计算机系班级:软件工程一班学号:100604108姓名:徐慧慧选题名称:工资管理选题难易别:A起止时间:2011.11.21~2011.12.22指导教师:朱俊2011年 12 月1.程序功能介绍这是一个员工工资管理程序。
具有录入、显示、修改、查找员工姓名和工资。
该程序录入员工信息时大小写通用,录入的工资按大小写存放,在删除,修改数前都会增加提示信息,在用户确认后才能进一步操作。
2.课程设计要求(1)用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个链表类,封装主要的操作函数。
(2)显示、修改、删除数据项时大小进行排序存放。
(3)工资数据按工资值的大小进行排放存放。
(4)修改、删除数据前曾加提示信息,用户确认后才能进一步操作,否则操作取消。
(5)增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管理,在程序结束时能将工资数据保存在原文件中。
3.对课程题目的分析与注释工资管理要求实现录入、显示、修改、删除、查找员工姓名和工资,定义了三个类链表类、结点类、数据类、功能类。
将链表定义成一个类,将结点视为类中的数据成员,涉及结点的插入、输出、删除等操作;结点也定义成一个类,涉及结点数据的输入、输出、复制等。
由于类中涉及较多的具体数据的形式,所以将具体的数据形式定义成数据类型的指针,所有对数据的操作都转换为对指针的操作,在数据类中再具体实现。
将数据具体形式定义成一个类,涉及数据具体的造作格式、输出形式、比较内容的大小等。
再定义一个类(根据类的封装性)将程序需要实现的功能录入、显示、修改、删除、查找员工姓名和工资封装起来。
从而来实现课题要求。
4.程序设计和说明(说明算法思想、设计思路,给出重要的、关键的代码)由1调用AddRecord—>SetSalary-→InputData-由2调用ShowRecord→List.showlist由3调用LookUpRecord→Compare由4调用DeleteRecord分三种情况→pnode==pHead&&pHead→pHext==0→pnode==phead→pHead→pNext==0由5调用EditRecord分两种情况→!List.GetListHead→p不等于0→!mark由9调用SaveFile重要代码:char szName[20];//姓名double dlSalary;//工资CNode *pHead;//链表头结点指针CFunction Person;//定义使用的对象char choice;/*主菜单中用来选择的变量。
工资管理系统设计--C语言课程设计

工资管理系统设计--C语言课程设计C语言课程设计报告课程设计题目:工资管理系统实验报告内容:一---------------------------------------------------实验题目。
二---------------------------------------------------实验时间。
三---------------------------------------------------实验地点。
四---------------------------------------------------实验目的。
五---------------------------------------------------实验要求。
六---------------------------------------------------实验思路。
七---------------------------------------------------程序代码及分析。
八---------------------------------------------------实验总结。
九---------------------------------------------------心得体会。
一. 实验题目工资管理系统二. 实验时间2009年6月15日至6月18日,每日上午1-4节三. 实验地点软件楼308教室四. 实验目的建立工资管理系统,实现对工资的管理,综合运用所学的C语言知识解决这一问题, 侧重对数组,函数,指针,结构体和文件等相关内容的综合运用, 使自己能进一步熟悉掌握C语言的基本语法, 进一步提升自己的编程能力并逐步培养编程思维,进而不断提高自己解决问题的能力并为以后的语言学习打好良好的基础。
五. 实验要求1。
能够实现职工姓名等信息的的输入2。
能够实现相关信息的的查询3。
c工资管理系统-课程设计报告

一、工程概况《工资管理系统》课程设计报告题目:工资管理系统(以教师工资为例)专业:网络工程(3)班班级:16(3)班姓名:代应豪指导教师:程庆成绩:计算机学院2016-2017学年第2学期一、工程概况目录教师工资管理系统每个教师的信息为:教师号、姓名、性别、单位名称、家庭住址、联系电话、基本工资、津贴、生活补贴、应发工资、电话费、水电费、房租、所得税、卫生费、公积金、合计扣款、实发工资。
注:应发工资=基本工资+津贴+生活补贴;合计扣款=电话费+水电费+房租+所得税+卫生费+公积金;实发工资=应发工资-合计扣款。
A、教师信息处理(1)输入教师信息(2)插入(修改)教师信息:(3)删除教师信息:(4)浏览教师信息:提示:具体功能及操作参考题1。
B、教师数据处理:(1)按教师号录入教师基本工资、津贴、生活补贴、电话费、水电费、房租、所得税、卫生费、公积金等基本数据。
(2)教师实发工资、应发工资、合计扣款计算。
提示:计算规则如题目。
(3)教师数据管理提示:输入教师号,读出并显示该教师信息,输入新数据,将改后信息写入文件(4)教师数据查询:提示:输入教师号或其他信息,即读出所有数据信息,并显示出来。
(5)教师综合信息输出提示:输出教师信息到屏幕。
1.课程设计目的和要求A.巩固和加强《c语言程序设计》课程的理论知识。
B.掌握c语言的基本概念,语法,语义和数据类型的使用特点。
C.掌握c语言程序设计的方法及编程技巧,能正确使用c语言编写程序。
D.进一步理解和运用结构化程序设计的思想和放法。
E.使学生掌握调试程序的基本方法及上机操作方法。
F.通过查询手册和文献资料,培养学生独立分析问题和解决问题的能力。
G.初步掌握开发一个小型实用系统的基本方法。
H.培养学生的创新能力和创新思维。
I.培养学生良好的程序设计风格。
进一步理解和运用2.课程设计题目及内容教师工资管理系统每个教师的信息为:教师名,姓名,性别,单位名称,家庭住址,联系电话,基本工资,津贴,生活补贴,应发工资,电话费,水电费,房租,所得税,卫生费,公积金,合计扣款,实发工资。
C++课程设计公司工资管理系统说明书

数据加密技术
加密算法:对称加密和非对称加密 加密过程:加密和解密 密钥管理:密钥生成、分发和存储 应用领域:金融、政府、企业等
用户权限管理
管理员权限:具有最高权限,可以管理所有用户和资源 普通用户权限:只能访问和操作自己的数据,不能修改系统设置 权限设置:用户可以根据自己的需求设置不同的权限级别 权限验证:系统会对用户的身份和权限进行验证,确保数据的安全性和保密性
修改员工信息:点击员 工信息,修改姓名、性
别、年龄等信息
查询工资信息:输入员 工姓名或工号,查询工
资信息
退出系统:点击退出按 钮,退出系统
界面说明
主界面:显示员工信息、
部门信息、工资信息等 部门信息界面:显示部 门名称、部门负责人等 信息
修改信息界面:修改员 工、部门、工资等信息
导出报表界面:导出员 工、部门、工资等信息
按钮
进入主界面:查看公 司员工信息、工资信
息等
添加员工信息:点击 “添加员工”按钮, 输入员工姓名、性别、
年龄等信息
修改员工信息:点击 “修改员工”按钮, 选择要修改的员工, 输入修改后的信息
删除员工信息:点击 “删除员工”按钮, 选择要删除的员工,
点击确认按钮
查询员工信息:输入 员工姓名或工号,点 击查询按钮,查看员
安全模块: 用户认证、 数据加密、 系统安全
数据库设计
数据库类型:SQL Server
数据库表结构:员工信息表、部门信息表、工资信息表等
数据库字段:员工ID、员工姓名、部门ID、部门名称、工资金额等
数据库关系:员工信息表与部门信息表通过部门ID关联,工资信息表与员工信息表通过员 工ID关联。
升级目的:提高系统稳定性、安全性和性能 升级内容:包括软件升级、硬件升级和网络升级 升级方式:自动升级、手动升级和远程升级 升级注意事项:备份数据、检查兼容性和确保网络连接
教师工资管理系统c语言课设报告

教师工资管理系统c语言课设报告1. 项目背景教师工资管理系统是一种为学校或教育机构管理教师工资的软件系统。
在传统的工资管理方式中,人工计算和记录容易出错,效率低下。
而使用教师工资管理系统,可以提高工资管理的准确性和效率,节省人力成本。
2. 项目目标本项目旨在设计和实现一个简单的教师工资管理系统,具备以下功能:1. 教师信息的录入、修改和删除;2. 工资计算和生成工资单;3. 工资查询和统计。
3. 项目设计3.1 数据结构设计根据教师工资管理系统的需求,在设计数据结构时需要考虑以下几个要素:1. 教师信息:包括教师工号、姓名、性别、职称、基本工资等。
2. 工资单:包括工资单号、发放时间、应发金额、实发金额等。
根据需求,可以设计以下数据结构:ctypedef struct {int teacherId; 教师工号char name[20]; 姓名char gender[5]; 性别char title[20]; 职称float basicSalary; 基本工资} Teacher;typedef struct {int salaryId; 工资单号char distributeTime[20]; 发放时间float shouldPay; 应发金额float actualPay; 实发金额} Salary;3.2 模块划分根据项目目标,可以将教师工资管理系统划分为以下几个模块:1. 教师信息管理模块:实现教师信息的录入、修改和删除功能。
2. 工资管理模块:实现工资计算、生成工资单、工资查询和统计功能。
3. 界面模块:实现系统的交互界面,使用户能够方便地操作系统。
4. 项目实现4.1 教师信息管理模块教师信息管理模块主要包括教师信息的录入、修改和删除功能。
可以使用文件操作来实现数据的存储和读取。
4.2 工资管理模块工资管理模块主要包括工资计算、生成工资单、工资查询和统计功能。
4.2.1 工资计算工资计算是根据教师的基本工资和绩效考核来计算教师的应发金额。
C课程设计《工资管理系统》
C 课程设计《工资管理系统》一、教学目标本课程的目标是让学生掌握工资管理系统的开发和应用。
通过本课程的学习,学生将能够理解工资管理系统的原理,熟悉工资管理系统的开发流程,掌握工资管理系统的操作方法,并能够运用工资管理系统解决实际问题。
具体来说,知识目标包括掌握工资管理系统的概念、特点和应用领域;技能目标包括能够使用工资管理系统进行工资计算、工资条发放和管理;情感态度价值观目标包括培养学生对工资管理系统的兴趣,提高学生对信息化管理的重要性的认识。
二、教学内容本课程的教学内容主要包括工资管理系统的原理、开发流程和操作方法。
首先,将介绍工资管理系统的概念、特点和应用领域,使学生了解工资管理系统的基本情况。
然后,将讲解工资管理系统的开发流程,包括需求分析、系统设计、编码实现和测试等步骤,使学生掌握工资管理系统的开发方法。
接下来,将介绍工资管理系统的操作方法,包括工资计算、工资条发放和管理等功能,使学生能够熟练使用工资管理系统。
三、教学方法为了实现教学目标,将采用多种教学方法,包括讲授法、讨论法、案例分析法和实验法等。
首先,通过讲授法向学生传授工资管理系统的相关知识,使学生掌握基本概念和原理。
然后,通过讨论法引导学生进行思考和讨论,提高学生对工资管理系统的理解和应用能力。
接着,通过案例分析法让学生分析实际案例,培养学生解决实际问题的能力。
最后,通过实验法让学生动手实践,熟练掌握工资管理系统的操作方法。
四、教学资源为了支持教学内容和教学方法的实施,将选择和准备适当的教学资源。
教材方面,将选用权威、实用的工资管理系统教材,为学生提供系统的理论知识。
参考书方面,将推荐一些与工资管理系统相关的书籍,供学生深入学习和参考。
多媒体资料方面,将制作课件、演示文稿等,以图文并茂的形式展示工资管理系统的原理和操作方法。
实验设备方面,将准备计算机、投影仪等设备,为学生提供良好的学习环境和实践条件。
五、教学评估本课程的评估方式将包括平时表现、作业和考试等。
c课程设计南理工
c 课程设计 南理工一、课程目标知识目标:1. 让学生掌握《南理工》教材中关于特定学科的基本概念、原理及相应的知识点,如物理中的力学原理、化学中的化学反应等。
2. 引导学生了解并理解学科知识在实际生活中的应用,如科技发明、工程实践等。
技能目标:1. 培养学生运用所学知识解决实际问题的能力,例如进行简单的科学实验、数据分析等。
2. 提高学生的团队协作、沟通交流能力,通过小组讨论、展示等形式,促使学生相互学习、共同进步。
情感态度价值观目标:1. 激发学生对学科知识的兴趣,培养学生主动学习的积极性,形成良好的学习习惯。
2. 培养学生的创新意识和批判性思维,敢于质疑、勇于探索,形成独立思考的能力。
3. 强化学生的集体荣誉感和社会责任感,使其在学习过程中关注国家发展、社会进步,树立正确的人生观和价值观。
课程性质:结合学科特点,注重理论联系实际,强调实践性、探究性和创新性。
学生特点:考虑学生的年龄、认知水平、学习兴趣和个性差异,因材施教,使学生在课程学习中得到全面发展。
教学要求:明确教学目标,设计合理的教学活动,注重启发式教学,引导学生主动参与,提高教学效果。
同时,关注学生学习成果的评估,确保课程目标的实现。
二、教学内容根据课程目标,教学内容选取以下部分:1. 教材第一章:基础理论部分,涵盖学科的基本概念、原理及相应的知识点,如物理中的力学原理、化学中的元素周期律等。
- 第一节:学科发展简史- 第二节:基本概念与原理2. 教材第二章:实践应用部分,介绍学科知识在实际生活中的应用,如工程技术、科技创新等。
- 第一节:学科知识在实际应用中的案例分析- 第二节:学科知识在日常生活和技术发展中的作用3. 教材第三章:实验探究部分,通过实验活动,培养学生的实践能力和探究精神。
- 第一节:实验原理与操作方法- 第二节:实验数据的收集、处理与分析教学大纲安排如下:第一周:学习教材第一章,了解学科发展简史,掌握基本概念与原理。
c 课程设计高校职工工资管理系统
课程设计报告课程名称面向对象程序设计课题名称高校工资管理系统专业通信工程班级1302学号201303020222姓名王树材指导教师乔汇东胡瑛2015年1月3日湖南工程学院课程设计任务书课程名称面向对象程序设计课题高校工资管理系统专业班级通信1302学生姓名王树材学号201303020222指导老师乔汇东、胡瑛、黄哲审批任务书下达日期2014年12月26日任务完成日期2015 年 1 月3日一、设计内容与设计要求1.课程设计目的:面向对象程序设计课程设计是集中实践性环节之一,是学习完《面向对象程序设计》课程后进行的一次全面的综合练习。
要求学生达到熟练掌握C++语言的基本知识和技能;基本掌握面向对象程序设计的思想和方法;能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题,从而提高动手编程解决实际问题的能力。
2.课题题目⑴公司考勤管理系统⑵高校学籍管理系统⑶高校工资管理系统⑷高校人事管理系统⑸文件加密管理系统3.设计要求:⑴设计课题题目:第5个课题是扩展课题,有能力完成的同学可以选择。
其余每位同学根据自己学号除以4所得的余数加一选择相应题号的课题。
换题者不记成绩。
⑵根据自己对应的课题完成以下主要工作:①完成系统需求分析:包括系统设计目的与意义;系统功能需求(系统流程图);输入输出的要求。
②完成系统总体设计:包括系统功能分析;系统功能模块划分与设计(系统功能模块图)。
③完成系统详细设计:包括数据库需求分析;类层次图;界面设计与各功能模块实现。
④系统调试:调试出现的主要问题,编译语法错误及修改,重点是运行逻辑问题修改和调整。
⑤使用说明书及编程体会:说明如何使用你编写的程序,详细列出每一步的操作步骤。
⑥关键源程序(带注释)⑶按规定格式完成课程设计报告,将其打印稿(A4纸)上交给老师存档。
⑷不得抄袭他人程序、课程设计报告,每个人应体现自己的个性设计。
二、进度安排第周星期时:分——时:分星期时:分——时:分星期时:分——时:分星期时:分——时:分课题3:高校工资管理系统(一)、课程设计题目:高校工资管理系统(二)、目的与要求:1、目的:(1)要求学生达到熟练掌握C++语言的基本知识和技能;(2)基本掌握面向对象程序设计的基本思路和方法;(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
c语言工资管理系统课程设计
c语言工资管理系统课程设计一、教学目标本课程的目标是使学生掌握C语言在工资管理系统开发中的应用。
具体目标如下:1.理解C语言的基本语法和数据结构。
2.掌握函数的定义和调用。
3.学习模块化编程思想。
4.能够使用C语言编写简单的程序。
5.学会使用C语言进行文件操作。
6.能够独立完成工资管理系统的开发。
情感态度价值观目标:1.培养学生对计算机编程的兴趣。
2.培养学生解决问题的能力。
3.培养学生团队合作的意识。
二、教学内容教学内容以《C程序设计语言》为基础,结合实际情况进行调整。
教学大纲如下:1.C语言概述:介绍C语言的历史和发展,理解C语言的特点。
2.基本语法:学习数据类型、运算符、表达式等基本语法知识。
3.控制结构:学习顺序结构、分支结构和循环结构。
4.函数:学习函数的定义、调用和返回值。
5.数组和字符串:学习一维、二维数组的使用,字符串的基本操作。
6.指针:学习指针的概念和应用。
7.结构体和文件:学习结构体的定义和使用,文件的基本操作。
8.模块化编程:学习模块的划分和调用。
9.工资管理系统实例:以实际项目为例,讲解工资管理系统的开发过程。
三、教学方法本课程采用多种教学方法,以激发学生的学习兴趣和主动性:1.讲授法:讲解基本语法和理论知识。
2.案例分析法:分析实际项目,理解工资管理系统的开发过程。
3.实验法:动手编写程序,巩固所学知识。
4.讨论法:分组讨论问题,培养团队合作能力。
四、教学资源教学资源包括:1.教材:《C程序设计语言》。
2.参考书:提供相关的参考书籍,以便学生深入理解C语言。
3.多媒体资料:制作PPT等教学课件,辅助讲解。
4.实验设备:提供计算机实验室,方便学生动手实践。
五、教学评估教学评估是检验学生学习成果的重要手段。
本课程的评估方式包括以下几个方面:1.平时表现:评估学生的出勤、课堂表现、参与讨论等情况,占总评的20%。
2.作业:布置课后作业,评估学生的编程能力和理解程度,占总评的30%。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C++课程设计报告姓名王镇窑学号 913104680120 班级 9131046801任课教师钱芸生时间 2014.4实验题目工资管理评定难易级别 A实验报告成绩一.题目名称:工资管理二.难度等级:A级三.课程设计要求:1.用类的形式改写程序,将程序中工资数据用链表的形式存放,定义一个链表类,封装主要操作函数。
2.显示,修改,删除数据项时大小写通用。
3.工资数据按工资值的大小进行排序存放。
4.修改、删除数据前增加提示信息,用户确认后才能进一步操作,否则操作取消。
5.增加程序的文件输入输出功能,在执行程序中首先将工资数据从文件中读出再进行管理,在程序结束时能将工资数据保存在原文件中。
四.程序结构框图功能示意图:是0五.程序设计思想整个程序是我和吴龙生同学合作完成,我们先完成了主函数的编写,再把程序各个功能的实现交由类函数实现。
一共有 1.添加工资记录。
2.显示工资记录。
3.根据姓名查询工资记录。
4.根据姓名删除工资记录。
5.根据姓名修改工资记录,再加上从文件写入内存,从内存写入文件,七个主要功能函数,我们把这些函数分工编写,再整合整个程序。
用类改编程序,我们建立了一个数据类(用于存放姓名和工资),一个结点类(存放数据类指针和下一个结点的指针),一个链表类(存放链表的头指针和结点的个数,同时封装了对链表操作的所有函数)。
虽然各个程序有不同的具体要求,但链表的操作大同小异,所不同的只是结点那部分的数据类型不同。
所以根据这一特点,可以将链表定义成一个类,涉及结点数据的输入、输出、复制等。
在结点中涉及较多的是具体数据的形式,所以将具体的数据形式定义成数据类型的指针,所有针对数据的操作都转换为对指针的操作,在数据类中再具体实现。
这样,结点的操作也可以像链表一样通用。
最后,再将数据具体形式定义成一个类,涉及数据的输入格式、输出形式、比较内容的大小等。
那么,针对不同的数据管理,只要改动这部分就可以了。
这样就实现程序的结构化了!主函数,开始运行先建立一个链表类类对象,将文件中的数据读到内存中。
然后再输出整个主菜单,键入相应的命令执行相应的链表类函数实现功能。
最后再把修改后的链表中的数据写入文件中,退出。
六.程序重要功能的实现方法1.添加工作记录,工资数据按工资值的大小进行排序存放。
主菜单中添加工资记录的功能会先调用链表类Clist的成员函数voidAddRecord()。
该函数会生成一个数据类成员和一个结点类成员,通过键盘输入员工的姓名和工资,并把数据赋值给数据类成员把数据类成员的指针赋给结点类成员,然后再调用Clist的成员函数voidinlist(CNode*node0),并把新生成的结点类指针传递过去,该函数会在原有链表中通过工资数据的比较,按工资大小顺序给该结点找到位置并插入到原有的链表中(如果链表不存在即运行该函数时头指针值为0,则该结点就赋值给链表类成员的头指针,作为链表中的唯一结点存在。
)由于一开始每一个结点都是由小到大插入的,所以该链表最终工资数据一定是按工资值的大小进行排序存放的。
链表类的增加工资记录的函数:voidAddRecord(){CNode*pnode;CSalary*psal;charname0[20];doublesalary0;cout<<"请输入姓名(按0结束):";cin>>name0;while(strcmp(name0,"0")){cout<<"请输入工资:";cin>>salary0;cin.ignore();psal=newCSalary;psal->SetSalary(name0,salary0);pnode=newCNode;pnode->InputDate(psal);inlist(pnode);cout<<"请输入姓名(按0结束):";cin>>name0;}cout<<endl<<endl;}链表类的按照工资大小插入节点的函数voidinlist(CNode*node0)//按照工资大小插入节点的类函数{CNode*p0;if(phead==0){phead=node0;n++;}else{CNode*p0,*p1;p0=phead;p1=phead->pnext;if(node0->pdata->getsalary()<=phead->pdata->getsalary()){node0->pnext=phead;phead=node0;}else{for(inti=0;i<(n-1);i++){if((node0->pdata->getsalary()>p0->pdata->getsalary())&&(node0->pd ata->getsalary()<=p1->pdata->getsalary()))p0->pnext=node0,node0->pnext=p1;p0=p0->pnext,p1=p0->pnext;}if(node0->pdata->getsalary()>p0->pdata->getsalary())p0->pnext=node0,node0->pnext=0;}n++;}}2.显示工资记录。
主菜单中显示工资的功能会先调用链表类Clist的成员函数voidShowList(),该函数会通过循环语句,调用每一个结点对应的结点类函数voidShowNode()函数,调用结点对应数据类成员的数据类函数voidshow()把员工的姓名和工资数据打印在显示屏上。
链表类的打印工资记录的函数voidShowList()//打印工资记录的类函数{CNode*p1;p1=phead;inti=0;for(;i<n;i++){p1->ShowNode();p1=p1->pnext;}}结点类的显示函数voidShowNode(){pdata->show();}数据类的显示函数voidshow(){cout<<"姓名:"<<name<<endl<<"工资:"<<salary<<endl;}3.根据姓名查询工资记录。
主菜单中根据姓名查询工资的功能是调用链表类的函数voidFindRecord()来实现,该函数通过循环语句查找所有节点,对每一节点会执行数据类的函数intcompare(charaa[]),该函数的功能是把字符串aa和类成员字符串name 进行比较如果两个字符串相同会返回1,否则返回0,在比较的时候会把name和aa中所有字符转换为小写字母进行比较,以实现大小写通用的功能。
如果返回值为1时,链表类函数就会执行数据类函数的voidshow()函数,把该结点的工资记录打印出来,直至比较完所有结点。
所以该功能可以打印出链表中所有同名(大小写通用)的工资记录。
链表类的按照姓名查找工资记录的类函数:voidFindRecord()//按照姓名查找工资记录的类函数。
{cout<<"请输入要查找的姓名"<<endl;charcc[20];cin>>cc;strlwr(cc);CNode*p1;p1=phead;inti=0,ss=0;for(;i<n;i++){if(p1->pdata->compare(cc)){p1->ShowNode();ss++;}p1=p1->pnext;}if(ss==0)cout<<"未查找到该员工数据!"<<endl;else{cout<<"共查找到"<<ss<<"位员工的数据,如上所示。
";}}数据类的比较函数:intcompare(charaa[]){chardd[20];strcpy(dd,name);strlwr(dd);intbb=strcmp(aa,dd);if(bb==0)bb=1;elsebb=0;returnbb;}4.根据姓名查找并删除工资记录。
主菜单中根据姓名查找并删除工资记录的功能是调用链表类中的函数void DeleteRecord()实现的。
该函数在执行查询功能时与函数voidFindRecord()基本差不多也是大小写通用,但是为了方便删除结点,也是为了可以应付同名或者姓名大小写不同但是字母一样的情况出现(例如Mike,和mike),该函数建立了一个结点类的指针数组,每找到一个结点会把该结点的上一节点的指针保存在数组中(因为要更改上一结点的next指针,所以要保存上一指针),如果是头指针则把0赋给数组。
接着把查询结果都打印出来,由用户选择要删除哪个用户数据。
用户选择后会输出确认删除的语句,用户确认后开始删除。
如果数组成员为0,则修改头指针为下一结点,如果是正常指针则修改该指针指向的next指针为下下个结点指针。
链表类中按照姓名查找并删除工资记录的函数void DeleteRecord()//按照姓名查找并删除工资记录的类函数。
{cout<<"请输入要查找的姓名"<<endl;char cc[20];cin>>cc;strlwr(cc);CNode *p1,*p0,*o[5];p0=0;p1=phead;int i=0,ss=0;for(;i<n;i++){if(p1->pdata->compare(cc)){cout<<"第"<<ss+1<<"位:";o[ss]=p0;p1->ShowNode();ss++;}p0=p1;p1=p1->pnext;}if(ss==0)cout<<"未查找到该员工数据!"<<endl;else{cout<<"共查找到"<<ss<<"位员工的数据,如上所示。
要删除哪位员工的数据?"<<endl;int kk;CNode *p1;cin>>kk;kk=kk-1;if(o[kk]==0)cout<<"确定要将员工"<<phead->pdata->getname()<<"的工资记录删除吗?"<<endl<<"1.yes 2.no"<<endl;elsecout<<"确定要将员工"<<o[kk]->pnext->pdata->getname()<<"的工资记录删除吗?"<<endl<<"1.yes 2.no"<<endl;int ll;cin>>ll;if(ll==1){if(o[kk]==0){CNode *p5;p5=phead;phead=phead->pnext;delete p5;n--;}else{CNode *p5;p5=o[kk]->pnext;p1=o[kk]->pnext->pnext;o[kk]->pnext=p1;n--;delete p5;}}elsecout<<"操作取消返回主菜单!"<<endl;}}4.根据姓名查找并删除工资记录。