高校职工信息与工资管理系统课程设计报告_第1页
高校职工信息与工资管理系统课程设计报告_第2页
高校职工信息与工资管理系统课程设计报告_第3页
免费预览已结束,剩余74页可下载查看

下载本文档

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

文档简介

1、C+课程设计报告课程:学号:班级:教师:课程设计任务书姓名班级课程名称高校工资管理系统课程性质C+程序设计设计时间2013年6月25日2013年7月5日设计名称高校职工信息与工资管理系统设计要求问题的描述(功能要求):咼校有五类职工:教师,实验员,行政人员,教师兼 职实验员,行政人员兼职教师。为了实现工资发放的自动 功能,现要求编与程序来自动兀成此功能。同时注意生成 的相关数据结果以文件方式存放在硬盘中。程序应具备从 键盘录入,文件的可继续录入,任意职工的工资查询(可 由职工编号和职工来实现),若有职工由于工作调动,则 可进行相对应的调整动作。设计思路与设计过程本程序设计了 6个类,其中Per

2、son类为抽象基类,Teacher 类、Assistant 类、Manager 类以 Person 类为 直接基类,Teacher_Assistant类为 Teacher 类和Assistant 类的派生类,Manger_Teacher 类为 Manager 类和Teacher类的派生类,Salary_Management类为Person类的友元类,提供实现管理功能的相应的函数,主 要实现职工信息的录入,查询、修改、添加、删除、浏览 和退出系统的功能。计划与进度6月末完成题目的分析设计,7月1号完成程序代码 的编写,7月4号初步调试工作基本完成。任课教师意见说明课程设计名称:高校工资管理系统1

3、. 设计容:问题的描述(功能要求):高校有五类职工:教师,实验员,行政人员,教师兼职实验员,行政人员兼 职教师。为了实现工资发放的自动功能, 现要求编写程序来自动完成此功能。 同 时注意生成的相关数据结果以文件方式存放在硬盘中。程序应具备从键盘录入, 文件的可继续录入,任意职工的工资查询(可由职工编号和职工来实现),若有 职工由于工作调动,则可进行相对应的调整动作。相关信息:每一学期将学校职工的本学期任职情况及上学期工作的相关情况输入计算 机,则本学期职工的月工资按程序处理后的结果发放, 其中职工的工资计算方法 如下:其中工资的基本构成如下:教师:基本工资+课时费;实验员:基本工资 +实验室补

4、助;行政人员:基本工资 + 行政补贴;教师兼职实验员: 基本工资 +课时费+实验室补助; 行政人员兼职教师:基本工资 +行政补贴 +课时费; 其中:1. 课时费:教师每一月的基本工作量为 24 ,实验员每学期基本工作量为 0, 行政人员没有基本工作量, 每节课时费为 30 元;课时费 =(上学期工作量 -基本工 作量 )*30;注意:如果上学期基本工作量没完成,则其 (上学期工作量 - 基本工作量 )*30 为负值。2. 基本工资:教师 1000 元,实验员 800 元,行政人员 900 元。3. 行政补贴: 250 元。2. 设计目的与要求:2.1 设计目的达到熟练掌握 C+ 语言的基本知识

5、和技能;基本掌握面向对象程序设计的基本思路和方法; 能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。2.2 设计要求要求利用面向对象的方法以及 C+ 的编程思想来完成系统的设计; 要求在设计的过程中,建立清晰的类层次; 在系统的设计中,至少要用到面向对象的一种机制。3. 系统分析与设计3.1 主要知识点本程序共有三个文件组成,分别是 Salary.h, Salary.cpp和 main.cpp; Salary.h中定义了程序所需的类, 全局函数, 以及要用到的标准头文件。 用到的知识主要有类的继承与 派生,纯虚函数,头文件的组织,链表操作,程序菜单选择和处理函数的组织和编写,文件

6、 的读写操作。3.2 关键技术程序中每一种数据类型用一个类来实现,共设计了 6 个类。人员类 Person ,教师类 Teacher ,实验员类 Assistant ,行政人员类 Manager ,教师兼实验员类 Teacher_Manager , 行政人员兼教师类 Manager_Teacher 以及工资信息管理类 Salary_Management 。每一 种类都定义了相应的成员函数。具体定义如下所示:( 1 )类 Person类 Person 为抽象类,为另外五个类的基类,在类 Person 中,成员变量 ID 表示职工 编号, name 表示职工, duty 表示岗位类别, salar

7、y 表示职工工资以及 next 表示 Person类的指针域。 两个 input() 成员函数, 无参成员函数 input() 为纯虚函数用来从键盘输入职工 数据,有参成员函数 input(ifstream& infile) 用来从文件读入职工数据 ;两个 output() 成员 函数,无参成员函数 output() 用来向屏幕输出职工信息, 有参成员函数 output(ofstream& outfile) 向指定文件 Salary.txt 中输出职工信息以及成员函数 incoming() 用来计算职工工 资。类中还将将 Salary_Management 类声明为友员类,将

8、Work_type(int duty)函数声明为友元函数,用来将职工类别标志转换为相应的类别名称,以便显示职工岗位类别名称。( 2 )类 Teacher类 Teacher 中,在继承基类数据成员的基础上增加了成员变量 hours 用来存放教师的 上课课时数,并重新定义了成员函数 input() 和 output() 分别用来输入和输出职工信息, incoming() 用来计算教师类的人员工资。( 3 )类 Assistant类 Assistant 中,在继承基类数据成员的基础上增加了成员变量 hours 用来存放教师 的上课课时数和 Allowance 用来存放试验室补助,并重新定义了成员函数

9、 input() 和 output() 分别用来输入和输出职工信息, incoming() 用来计算教师类的人员工资。( 4 )类 Manager类 Manager 中,在继承基类数据成员的基础上增加了成员变量 Allowance 用来存放 行政补贴,并重新定义了成员函数 input() 和 output() 分别用来输入和输出职工信息, incoming() 用来计算教师类的人员工资。( 5 )类 Teacher_Assistant类 Teacher_Assistant 以 Teacher 类和 Assistant 类为直接基类, 重新定义了成员函 数 input() 和 output()

10、分别用来输入和输出职工信息, incoming() 用来计算教师类的人员工 资。( 6 )类 Manager_Teacher类 Manager_Teacher 以 Teacher 类和 Assistant 类为直接基类,重新定义了成员函 数 input() 和 output() 分别用来输入和输出职工信息, incoming() 用来计算教师类的人员工 资。( 7 )类 Salary_Management类 Salary_Management 用来为管理职工信息提供相关功能函数, 有私有数据成员 PL 是链表的头指针,私有成员函数 clear 清除所有职工结点,私有成员函数 QueryRec

11、用来 查询职工记录。共有成员函数 AddRec 用来增加职工记录, DelRec 用来删除职工记录, Modify 用来修改职工记录, display 用来显示职工记录, Save 用来保存职工信息, FindRecID 按职工编号查找职工记录, FindRecName 按职工查找职工记录, FindRecSalary 按职工工资查找职工记录, FindRecEducation 按职工学历查找职工记录, FindRecAge 按职工年龄查找职工记录 Load 用来从键盘录入职工信息, Build 用来从文件 读取职工信息, Statistics 提供职工信息统计功能,可以实现分别按职工类别、职

12、工工资、 要发工资总数、 职工人数的统计功能, MenuSelect 菜单功能选择函数, 显示程序主功能菜 单并接收用户的选择,返回用户选择提供给 Handle_menu 函数, Handle_menu 菜单处 理函数,用来处理用户的功能选择,并调用相应的功能函数实现用户所要现的功能。( 8 )全局函数duty_to_string 函数用来将岗位类别标识转换为相应的名称。 print_worktype_menu 函数用来显示人员类别选择菜单。 dis_mainmenu 函数用来选择程序主功能菜单。(9)调用的系统库函数system("pause"); / 在屏幕上输出 :p

13、ress any key to quit ,意思是停留,看程序的输出结果system("cls"); 清屏(10 )头文件说明本程序有一个 Salary.h 头文件,该头文件包含程序所需包含的标准头文件和定义的类 以及全局函数。为了防止头文件重复包含,采用如下格式:#if !defined ( 宏 )#define 宏/头文件具体容#endif这样可以使源文件中只要包含 Salary.h 一个头文件即可,使文件头变得简洁。(11 )程序的主要功能函数及相关算法本程序共定义六个类,分别是Person 类、Teacher 类、Assistant 类、Manager 类、 Tea

14、cher_Assista nt类、Man ager_Teacher 类禾口 Salary_Ma nageme nt 类。Pers on 类为抽象类作为 Teacher 类、 Assistant 类和 Manager 类直接基类。 Teacher_Assistant类以Teacher 类和 Assistant 类作为直接基类,多重继承, Manager_Teacher 类以 Manager 类和 Teacher 类作为直接基类多重继承。 Salary_Management 类是为职工信息管理提供 功能函数。Salary_Management 类中主要的成员函数有:AddRec 函数用来提供添加职

15、工信息的功能。该函数先调用 print_worktype_menu 函数打印职工类别选择菜单供用户选择, 程序再根据用户的不同选择分别调用 Teacher 类、 Assistant 类、 Manager 类、 Teacher_Assistant 类、 Manager_Teacher 类的 input 函数实现添加职工信息。Build 函数的功能是从文件读取职工信息来实现程序的初始化, 该函数使用文件指针操 作函数 tellg 和 seekg 函数来不断调整文件指针, 以实现从文件读取职工信息供程序初始化 的功能。再该函数中,先定义 buf 临时空间,用 infile>>buf>

16、;>buf>>Duty; 语句先读取职 工信息中的 duty 的值,然后在根据 duty 的值分别调用 Teacher 类、 Assistant 类、 Manager 类、 Teacher_Assistant 类、 Manager_Teacher 类的 input (ifstream& )函 数来实现从文件输入职工信息的功能。DelRec 函数的功能是根据用户输入的编号来删除指定的职工记录。该函数先调用 QueryRec 函数查找与用户输入的编号相对应的职工记录,然后从链表中删除对应的结点, 实现职工记录的删除,同样也会相应的输出文件中的信息。display 函数的功

17、能是显示所用的职工记录。Search 函数功能是通过调用 FindRecID 函数和 FindRecName 函数来实现按职工编 号或按来查找相应的职工信息,如果能查找到则输出相应的职工信息,没找到会给出” 找 不到你要查找的职工信息 !”的提示信息。该函数具有循环查找功能。Load 函数的功能是录入职工信息。该函数先要求用户输入要录入的职工数,然后调用 print_worktype_menu 函数提示用户输入职工的类别,程序再根据用户输入的职工类别 duty 来调用相应类的 input 函数实现职工信息的键盘录入功能。Handle_menu 函数的功能是处理用户的功能选择。该函数通过调用 M

18、enuSelect 函 数获取用户的功能选择序号来给 select 变量赋值,然后再用 switch 语句根据 select 的值 调用相应的功能函数来实现用户选择的功能。Save 函数的功能是将职工信息已成功保存到 Salary.txt 文件中。Statistics 函数的是职工信息的统计。共提供四种不同方式的统计功能:1 、统计各职工类别职工的人数2、根据用户输入的工资围统计并输出该围的职工信息3、统计要发工资总数4、统计职工的总人数Modify 函数的功能是修改指定职工的信息 ;但不能修改职工的类别信息。 函数先要求用户输 入要修改的职工编号,然后调用 QueryRec 函数查找到相应职

19、工的记录,然后调用该职工 所属类的 input 函数来时用户信息的重新赋值。3.3 基本功能要求(1)功能选择可以用菜单来实现例如: 请选择您的计算容:1、职工信息录入2、查询职工信息3、修改职工信息4、增加职工记录5、删除职工信息6、统 计职工信息7、浏览所有信息8、退出系统用户通过输入不同的数字进入不同的菜单。 次级菜单主要显示本程序的功能, 主要的功 能有录入职工信息、查询职工信息、添加职工记录、删除职工记录、统计职工信息、浏 览职工信息。(2)运行时给出明确的提示信息。比如,在选择主功能菜单是选择围是 (1-8) ,如果用户输入的选项不在可选择围之,程 序会给出输入选项不在可选围之的提

20、示, 并要求用户且知道输入选项在可选围才执行相应的 功能。本程序有较友好的用户交互界面, 每进入或离开一个功能界面时都会有相应的提示信 息,方便用户操作。4. 系统总体设计 (确定程序功能模块 )本程序的类继承关系如 1 所示:Salary_Management 类中成员函数调用关系如图所示:注意图中的箭头方向,箭头表示继承的方向,从派生类指向基类。图1程序中类的继承关系图2、Salary_Management类中成员函数调用关系图5、程序文件组成及各文件中的源代码(1 )头文件:#if ! defined (H_Salary_H)#define H_Salary_H#include <

21、iostream>#include <string>#include <fstream>#include <iomanip>using namespace std;class Person / 人员信息类 (抽象基类)public :virtualvoidinput()=0;/从键盘输入职工数据virtualvoidinput(ifstream& infile)=0;/从文件读入职工数据virtualvoidoutput()=0;/向屏幕输出职工信息virtualvoidoutput(ofstream& outfile)=0;/向指定文

22、件输出职工信virtual double incoming()=0; / 计算职工收入函 数Person() /Person 基类构造函数next=0; / 指针赋值为空virtual Person() protectedchar name15;/ 职工string ID;/ 职工编号int duty;/* 岗位类别 :1:教师 2:实验员 3 :行政人员4 :教师兼实验员 5 :行政人员兼教师 */ char address150 ;string phone;char education50;a;学士 b;硕士 c;博士char sex10;int age;double salary;/ 职

23、工薪水Person *next;/ 指针成员friend bool isexist(string id);friend class Salary_Management; / 将 Salary_Management 类声明为友员类;class Teacher : virtual public Personprotected :int hours; / 上学期工作量publicTeacher()salary=1000;/ 教师基本工资 1000 元public Person/ 实验员基本工资 800 元/ 岗位类别为 2/ 实验室补助为 150 元duty=1; / 岗位类别为 1void inp

24、ut();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();class Assitant : virtualpublic :Assitant()salary=800; duty=2; allowance=150;void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();protected :int hour

25、s;double allowance;public Person;class Manager : virtualpublic :Manager()/ 行政人员基本工资为 900 元/ 岗位类别为 3/ 行政补贴salary=900;duty=3; allowance=250;void input();void input(ifstream& infile);void output(ofstream& outfile);double incoming();protected :double allowance; / 行政补贴;class Teacher_Assistant : p

26、ublic :Teacher_Assistant()Teacher:salary=1000;duty=4;Assitant:allowance=150;void input();void input(ifstream& infile);void output();void output(ofstream& outfile); double incoming();class Manager_Teacher : publicpublic Teacher, public Assitant/ 基本工资 1000 元/ 岗位类别为 4/ 实验室补助 150 元Manager, publi

27、c TeacherpublicManager_Teacher()salary=900;/ 基本工资 900 元duty=5;/ 岗位类别为 5Manager:allowance=250;/ 行政补贴 250 元void input();void input(ifstream& infile);void output();void output(ofstream& outfile);double incoming();class Salary_Managementpublic :Salary_Management();/ 构造函数Salary_Management();/ 析构函

28、数void AddRec(); / 增加职工记录 void DelRec(); / 删除职工记录void Save(); / 保存职工信息void FindRecID(); / 按职工编号查找职工记录void FindRecName(); / 按职工查找职工记录void FindRecAge();void FindRecEducation();void FindRecSalary();void Load();/ 职工信息装入void Build();/ 引导void Statistics();/ 职工信息统计int MenuSelect();/ 菜单功能选择void Handle_menu()

29、;/ 菜单处理函数private :Person *PL;/ 链表头指针void clear();/ 清除所有职工结点,仅保留头结点bool QueryRec(stringID,Person* p1,Person* p2 );工结点/ 查找职;string Work_type( int duty);void print_worktype_menu();void dis_mainmenu();#endif2)源文件: #include " 高校职工信息与工资管理系统 .h"void Teacher:input()/ 从键盘补充其他数据编号:" cin>>

30、ID;姓名:" cin>>name;性别:" cin>>sex;年龄:" cin>>age;学历:" cin>>education;地址:" cin>>address;电话:" cin>>phone;教师上学期课时 : " cin>>houcout<< "tcout<< "tcout<< "tcout<< "tcout<< "tcou

31、t<< "tcout<< "tcout<< "tsalary=incoming();void Teacher:input(ifstream& infile)infile>>ID;infile>>sex;infile>>age; infile>>education; infile>>name;infile>>address;infile>>phone;infile>>duty;infile>>hours>>

32、;salary;cout<< "tvoid Teacher:output()cout<< "t资:"vvsalaryvv "元"<<endl;编号: "<<ID<<endl;姓名: "<<name<<endl;性别: "<<sex<<endl;年龄: "<<age<<endl;学历:"vveducation«endl;地址: "<<a

33、ddress<<endl;电话: "vvphonevvendl;人员类别 : "<<Work_type(duty)<<endl;cout<< "tcout<< "tcout<< "tcout<< "t上学期上课课时 : " <<hours<<endl;cout<< "tcout<< "tcout<< "tcout<< "tvoid

34、Teacher:output(ofstream& outfile)outfile<<ID<< "t" <<name<< "t" <<sex<< "t" <<age<< "t" <<education<< "t" <<address<< "t" <<phone<< "t" <&l

35、t;duty<< "t" <<hours<< "t" <<sala ry<<endl;double Teacher:incoming()if (hours>120)return salary+(hours-24)*30;else return salary;void Assitant:input()cout<< "t 编号: "cin>>ID;cout<< "t 姓名: "cin>>name;cout&

36、lt;< "t 性别: "cin>>sex;cout<< "t 年龄: " cin>>age;cout<< "t 学历:" cin>>education;cout<< "t 地址:" cin>>address;cout<< "t 电话:" cin>>phone;salary=incoming();void Assitant:input(ifstream& infile)inf

37、ile>>ID>>name>>sex>>age>>education>>address>>phone>>duty>>salary;void Assitant:output()cout<< "t 编cout<< "t 姓cout<< "t 性cout<< "t 年cout<< "t 学cout<< "t 地cout<< "t 电号: &q

38、uot; <<ID<<endl;名: " <<name<<endl;别: " <<sex<<endl;龄: " <<age<<endl;历:"vveducation«endl;址: "<<address<<endl;话: "vvphonevvendl;coutvv "t 人员类别 : " vvWork_type(duty);coutvv "t 工 资:"vvsalar

39、yvv "元"<<endl;void Assitant:output(ofstream& outfile)outfilevvIDvv "t" vvnamevv "t" vvsexvv "t" vvagevv "t" vveducation vv"t" vvaddressvv "t" vvphonevv "t" vvdutyvv "t" vvsalaryvvendl;double Assitant:

40、incoming()return salary+allowance;void Manager:input()cout<< "t 编号: "cin>>ID;cout<< "t 姓名: "cin>>name;cout<< "t 性别: "cin>>sex;cout<< "t 年龄: " cin>>age;cout<< "t 学历:" cin>>education;cout<&

41、lt; "t 地址:" cin>>address;cout<< "t 电话:" cin>>phone;salary=incoming();void Manager :input(ifstream& infile)infile>>ID>>name>>sex>>age>>education>>address>>phone>>dut y>>salary;void Manager:output()cout<

42、< "t 编 号: cout<< "t 姓 名: cout<< "t 性 别: cout<< "t 年 龄: cout<< "t 学 历: cout<< "t 地 址: cout<< "t 电 话: cout<< "t 人员类别 : cout<< "t 工 资:<<ID<<endl;<<name<<endl;<<sex<<endl;&

43、lt;<age<<endl;"<<education<<endl;"<<address<<endl;"<<phone<<endl;<<Work_type(duty)<<endl;<<salary<< " 元 "<<endl;void Manager:output(ofstream& outfile)outfile<<ID<< "t" <&l

44、t;name<< "t" <<sex<< "t" <<age<< "t" <<education<< "t" <<address<< "t" <<phone<< "t" <<duty<< "t" <<salary<<endl;double Manager:incoming()re

45、turn salary+allowance;void Teacher_Assistant:input()cout<< "t 编号: "cin>>ID;cout<< "t 姓名: "cin>>name;cout<< "t 性别: "cin>>sex;cout<< "t 年龄: " cin>>age;cout<< "t 学历:" cin>>education;cout<<

46、; "t 地址:" cin>>address;cout<< "t 电话:" cin>>phone;cout<< "t 教师上学期上课课时cin>>Teacher:hours; salary=incoming();void Teacher_Assistant:input(ifstream& infile)infile>>ID>>name>>sex>>age>>education>>address>>

47、;phone>>dut y>>Teacher:hours>>salary;void Teacher_Assistant:output()cout<< "t 编号: " <<ID<<endl;cout<< "t 姓名: " <<name<<endl;cout<< "t 性 别: " <<sex<<endl;cout<< "t 年 龄: " <<age&

48、lt;<endl;cout<< "t学历: "<<education<<endl;cout<< "t地址: "<<address<<endl;cout<< "t电话: "<<phone<<endl;cout<< "t人员类别 : " <<Work_type(duty);cout<< "t 教师上学期上课课时 : " <<Teacher:

49、hours;cout« "t 工资:"vvsalaryvv "元"<<endl;void Teacher_Assistant:output(ofstream& outfile)outfile<<ID<< "t" <<name<< "t" <<sex<< "t" <<age<< "t" <<education <<"t&

50、quot; <<address<< "t" <<phone<< "t" <<duty<< "t" <<Teacher:hours<< " t" <<salary<<endl;double Teacher_Assistant:incoming()if (Teacher:hours>12)return salary+allowance+(Teacher:hours-12)*30;else ret

51、urn salary+allowance;void Manager_Teacher:input()cout<< "t 编号: "cin>>ID;cout<< "t 姓名: "cin>>name;cout<< "t 性别: "cin>>sex;cout<< "t 年龄: " cin>>age;cout<< "t 学历:" cin>>education;cout<< &

52、quot;t 地址:" cin>>address;cout<< "t 电话:" cin>>phone;cout<< "t 上学期上课课时 : " cin>>Teacher:hours; salary=incoming();void Manager_Teacher:input(ifstream& infile)infile>>ID>>name>>sex>>age>>education>>address>

53、>phone>>duty>>Teacher:hours>>salary;void Manager_Teacher:output()cout<< "t 编 号: cout<< "t 姓 名: cout<< "t 性 别: cout<< "t 年 龄: cout<< "t 学 历: cout<< "t 地 址: cout<< "t 电 话: cout<< "t 人员类别 :<&

54、lt;ID<<endl;<<name<<endl;<<sex<<endl;<<age<<endl;"<<education<<endl"<<address<<endl;"<<phone<<endl;<<Work_type(duty);cout<< "t 上学期上课课时 : " <<Teacher:hours<<endl;cout« &

55、quot;t 工资:"vvsalaryvv "元"<<endl;void Manager_Teacher:output(ofstream& outfile)outfile<<ID<< "t" <<name<< "t" <<sex<< "t" <<age<< "t" <<education<<"t" <<address

56、<< "t" <<phone<< "t" <<duty<< "t" <<Teacher:hours<< "t" <<salary<<endl;double Manager_Teacher:incoming()return salary+Teacher:hours*30+allowance;Salary_Management:Salary_Management()/ 构造函数 (创建一个头结点的链表 )Pers

57、on* p= new Teacher;PL=p;Build();Salary_Management:Salary_Management()/ 析构函数 (仅保留一个结点 )Person* p=PL;while (p)PL=p->next; delete p; p=PL;PL=0;void print_worktype_menu()cout<< "tt 请选择人员类别 : " <<endl;cout<< "ttt1 、教 师 : " <<endl;cout<< "ttt2 、实 验

58、 员 : " <<endl;cout<< "ttt3 、行 政 人 员 : " <<endl;cout<< "ttt4 、教师兼实验员 : " <<endl;cout<< "ttt5 、行政 兼 教师: " <<endl;cout<< "ntt 请选择要添加的相应的人员类别分类码 void Salary_Management:AddRec()char ch= 'y'/ 创建新结点,录入数据,连接到链表Te

59、acher* pt;Assitant* pa;Manager* pm;Teacher_Assistant* pta;Manager_Teacher* pmt;while (ch= 'y' |ch= 'Y')cout<< "t*增加职工*、'<<endl;Person* p=PL;while (p->next)p=p->next; / 查找尾结点 print_worktype_menu();char select;cin>>select;switch (select)case '1'

60、: pt= new Teacher;pt->input();p->next=pt;break ;case '2' : pa= new Assitant;pa->input();p->next=pa;break ;case '3' : pm= new Manager;pm->input();p->next=pm;break ;case '4' : pta= new Teacher_Assistant;case '5' :pta->input();p->next=pta;break ;p

61、mt= new Manager_Teacher;pmt->input();p->next=pmt;break ;default :return ;cout<< "t 是否继续添加职工信息 (Y/N): " ; cin>>ch;system( "cls" );system( "pause" );void Salary_Management:clear() / 清除所有的职工结点 (仅保留头结点 ) Person* p=PL->next;PL->next=p->next;delete

62、p;p=PL->next;void Salary_Management:FindRecID()/ 按职工编号查找相应的人员信息string id;Person* p1;Person* p2;cout<< "t 请输入你要查找的职工编号 : " cin>>id;p1=PL->next;p2=PL;while (p1)if (p1->ID=id)break ; / 找到elsep2=p1;/ 继续向后查找p1=p1->next;if (!p1)cout<< "nt 找不到你要查找的职工信息 !"&l

63、t;<endl; cout<< "t 请确认你输入的编号是否正确 !n" <<endl; return ;else cout<< "n" ; p1->output();bool Salary_Management:QueryRec(string id,Person* p1,Person* p2 )/查找职工结点,找到返回1,未找到返回0,结点指针由pl返回,p2为前看指针*p1=PL->next;*p2=PL;if (*p1)->ID=id) break ;else*p2=*p1;*p1=(*p

64、1)->next;return *p1? true :false ;void Salary_Management:FindRecName() / 按职工查找相应的人员信 息string NAME;Person* p1;Person* p2;cout<< "t 请输入你要查找的职工 : " cin>>NAME;p1=PL->next;p2=PL;if (p1->name=NAME)break ; / 找到elsep2=p1; / 继续向后查找 p1=p1->next;if (!p1)cout<< "ntt

65、找不到你要查找的职工信息 !"<<endl; cout<< "ntt 请确认你输入的是否正确 !n" <<endl; return ;else p1->output();void Salary_Management:FindRecSalary()double Salary;Person*p1;Person*p2;cout<< "t 请输入你要查找的职工工资 : " cin>>Salary;p1=PL->next;p2=PL;while (p1)if (p1->salary=Salary)cout<< "n" ;p1->output();p

温馨提示

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

评论

0/150

提交评论