版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上C与C+课程设计报告设计题目: 公司员工管理系统专 业 网络工程 班 级 网络141 学 生 学 号 指导教师 起止时间 2015.12.28-2015.12.31 2015年 秋季 学期 1、 具体任务设计一个利用文件处理方式实现对公司人员(包括工程师、领导和主任工程师)进行管理,要求具有增加数据、更新数据、查询数据、删除数据以及现实数据的功能。设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer,包含专业和职称保护数据成员以及相关的成员函数;再由Staff派生出领导类Leader,包含职务
2、和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader类派生出主任工程师类Chairman。二、软件环境 本实验用到的编程环境为CodeBlocks3、 算法设计思想 1.实现 由于本实验共有4个类,需要实现数据的插入,删除,修改,查询,显示等功能,所以可以用单链表来实现,这样就需要建立一个链表类和一个节点的结构体。2. 定义类本实验中公司共有4种员工,且员工之间有继承和派生关系,所以应该有4个类,外加链表,一共5个类(1) 设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;(2) 由Staff派生出工程师类Engineer,包含专业和职
3、称保护数据成员以及相关的成员函数;(3) 再由Staff派生出领导类Leader,包含职务和部门保护数据成员以及相关的成员函数。(4) 然后由Engineer和Leader类派生出主任工程师类Chairman。(5) 链表类,包含头结点head和指针r以及相关的成员函数,即针对链表的各个数据处理功能的实现。 3.功能实现 链表内需要各个数据的处理功能,但是由于共有其他的4种类,所以对于某些操作,例如修改,显示每个类里面需要有自己的函数实现。 4.函数实现(1)对于链表的成员函数,用于实现数据的插入,删除,修改,查询,显示的功能: LinkList(); 对头结点和指针r初始化; int Ins
4、ert_LinkList(); 插入函数 int Del_LinkList(int i); 删除函数 void modify_LinkList(int i); 修改函数,其中不同的类调用各自的修改函数 void print_LinkList();显示函数,其中不同的类调用各自的显示函数 Node<T> *Get_LinkList(int i); 查找函数 void save_LinkList(); 保存函数,其中不同的类调用各自的保存函数(2)对于类的成员函数a.Staff 职工类 Staff() 职工的构造函数,输入职工的数据 void print() 职工的显示函数,显示职工的
5、数据 void print1() 职工的显示函数,用于派生类的调用 void modify() 职工的修改函数,修改职工的数据 void save() 职工的保存函数,保存数据到staff.txt文件 void save1() 职工的保存函数,将工程师的针对职工的数据存入engineer.txt文件,后用于派生类Engineer的调用 void save2() 职工的保存函数,将领导的针对职工的数据存入leader.txt文件,后用于派生类Leader的调用 void save3() 职工的保存函数,将主任工程师的针对职工的数据存入chairman.txt文件,后用于派生类chairman的调
6、用 b.Engineer 工程师类 Engineer() 工程师的构造函数,输入工程师的数据 void print() 工程师的显示函数,显示工程师的数据,先调用基类Staff的print1(),显示满足职工的条件的数据,再显示自己特有的数据。 void print1() 工程师的显示函数,用于派生类Chairman的调用 void modify() 工程师的修改函数,修改工程师的信息,先调用基类Staff的modify(),修改满足职工条件的数据,再修改自己特有的数据。 void save() 工程师的保存函数,保存工程师的数据到engineer.txt文件,先调用基类的save1(),保存
7、满足职工条件的数据信息,再保存自己特有的数据信息。 void save1() 工程师的保存函数,将Chairman满足工程师的信息存入chairman.txt文件,用于派生类Chairman的调用 c.Leader 领导类 Leader() 领导的构造函数 void print() 领导的显示函数,显示领导的信息,先调用基类Staff的print1(),显示满足职工的条件的信息,再显示自己特有的数据信息。 void print1() 领导的显示函数,用于派生类Chairman的调用 void modify() 领导的修改函数, 修改领导的信息,先调用基类Staff的modify(),修改满足职
8、工条件的数据,再修改自己特有的数据。 void save() 领导的保存函数,保存领导的数据到leader.txt文件,先调用基类的save1(),保存满足职工条件的数据信息,再保存自己特有的数据信息。 void save1() 领导的保存函数,将Chairman满足领导的信息存入chairman.txt文件,用于派生类Chairman的调用 d.Chairman 主任工程师类 Chairman(); 主任工程师的构造函数 void print(); 主任工程师的显示函数,显示主任工程师的信息,先调用基类工程师的print1(),再调用基类领导的print1()。 void modify();
9、 主任工程师的修改函数, 修改主任工程师的信息,先调用基类工程师的modify(),再调用基类领导的modify()。 void save(); 主任工程师的保存函数,保存主任工程师的信息,先调用基类工程师的save1(),再调用基类领导的save1()。(3)其他的普通函数,操作函数及选择,菜单函数 void operation1(); 职工类的操作函数,若选择职工类,则进入该函数,调用菜单函数,利用switch语句供用户做相应得选择来对职工类进行操作,其中调用链表的操作函数。 void operation2(); 工程师类的操作函数,若选择工程师类,则进入该函数,调用菜单函数,利用swit
10、ch语句供用户做相应得选择来对工程师类进行操作,其中调用链表的操作函数。 void operation3(); 领导类的操作函数,若选择领导类,则进入该函数,调用菜单函数,利用switch语句供用户做相应得选择来对职工类进行操作,其中调用链表的操作函数。void operation4(); 主任工程师类的操作函数,若选择主任工程师类,则进入该函数,调用菜单函数,利用switch语句供用户做相应得选择来对职工类进行操作,其中调用链表的操作函数。void choose(); 选择函数,供用户选择要操作的公司员工类别void menu(); 菜单函数,供用户选择要进行的数据处理操作 (4).主函数
11、main() 利用switch语句,调用选择函数,供用户选择要操作的公司员工的类别的编号,然后调用对应的operation 函数。四、源代码#include <iostream>#include<string.h>#include<iomanip>#include<fstream>using namespace std;void menu();int choose();void operation1();void operation3();void operation2();void operation4();class Staffprivate
12、: int num; char name100; int age;public: Staff() cout<<"请输入职工编号"<<endl; cin>>num; cout<<"请输入职工姓名"<<endl; cin>>name; cout<<"请输入职工年龄"<<endl; cin>>age; void print() cout<<"编号"<<num<<setw(5)&l
13、t;<"姓名"<<name<<setw(5)<<"年龄"<<age<<endl; void print1() cout<<"编号"<<num<<setw(5)<<"姓名"<<name<<setw(5)<<"年龄"<<age; void modify() int a; cout<<"-"<<en
14、dl; cout<<"请输入要修改的信息号(输入0退出):"<<endl; cout <<"1.编号"<<endl; cout <<"2.姓名"<<endl; cout<<"3.年龄"<<endl; cout<<"-"<<endl; cin>>a; switch(a) case 1: cout<<"请输入要修改后的编号:"<&l
15、t;endl; cin>>num; break; case 2: cout<<"请输入要修改后的姓名:"<<endl; cin>>name; break; case 3: cout<<"请输入要修改后的年龄:"<<endl; cin>>age; break; case 0: break; default: break; void save() ofstream out; out.open("staff.txt",ios:app); if(out) ou
16、t<<"编号"<<num<<setw(5)<<"姓名"<<name<<setw(5)<<"年龄"<<age; out<<endl; out.close(); void save1() ofstream out; out.open("engineer.txt",ios:app); if(out) out<<"编号"<<num<<setw(5)<<
17、;"姓名"<<name<<setw(5)<<"年龄"<<age; out.close(); void save2() ofstream out; out.open("leader.txt",ios:app); if(out) out<<"编号"<<num<<setw(5)<<"姓名"<<name<<setw(5)<<"年龄"<<age
18、; out.close(); void save3() ofstream out; out.open("chairman.txt",ios:app); if(out) out<<"编号"<<num<<setw(5)<<"姓名"<<name<<setw(5)<<"年龄"<<age; out.close(); ;class Engineer:virtual public Staffprivate: char major100
19、; char post100;public: Engineer() cout<<"请输入工程师专业"<<endl; cin>>major; cout<<"请输入工程师职称"<<endl; cin>>post; void print() Staff:print1(); cout<<"专业"<<major<<setw(6)<<"职称"<<post<<endl; void pri
20、nt1() Staff:print1(); cout<<setw(5)<<"专业"<<major<<setw(6)<<"职称"<<post; void modify() Staff:modify(); int a; cout<<"-"<<endl; cout<<"请输入要修改的信息号(输入0退出):"<<endl; cout<<"1.专业"<<endl;
21、 cout<<"2.职称"<<endl; cout<<"-"<<endl; cin>>a; switch(a) case 1: cout<<"请输入要修改后的专业:"<<endl; cin>>major; break; case 2: cout<<"请输入要修改后的职称:"<<endl; cin>>post; break; default: break; void save() ofs
22、tream out; if(out) Staff:save1(); out.open("engineer.txt",ios:app); out<< setw(5)<<"专业"<<major<<setw(6)<<"职称"<<post<<endl; out.close(); void save1() ofstream out; if(out) Staff:save3(); out.open("chairman.txt",ios:app)
23、; out<< setw(5)<<"专业"<<major<<setw(5)<<"职称"<<post; out.close(); ;class Leader:virtual public Staffprivate: char position100; char part100;public: Leader() cout<<"请输入领导职务"<<endl; cin>>position; cout<<"请输入领导
24、部门"<<endl; cin>>part; void print() Staff:print1(); cout<<setw(6)<<"职务"<<position<<setw(6)<<"部门"<<part<<endl; void print1() cout<<setw(6)<<"职务"<<position<<setw(6)<<"部门"<
25、<part<<endl; void modify() Staff:modify(); int a; cout<<"-"<<endl; cout<<"请输入要修改的信息号(输入0退出):"<<endl; cout<<"1.职务"<<endl; cout<<"2.部门"<<endl; cout<<"-"<<endl; cin>>a; switch(a)
26、 case 1: cout<<"请输入要修改后的职务:"<<endl; cin>>position; break; case 2: cout<<"请输入要修改后的部门:"<<endl; cin>>part; break; default: break; void save() ofstream out; if(out) Staff:save2(); out.open("leader.txt",ios:app); out<<"职务"&
27、lt;<position<<setw(5)<<"部门"<<part<<endl; out.close(); void save1() ofstream out; if(out) out.open("chairman.txt",ios:app); out<<"职务"<<position<<setw(5)<<"部门"<<part<<endl; out.close(); ;class Chairm
28、an: public Engineer, public Leaderpublic: Chairman() void print() Engineer: print1(); Leader:print1(); void modify() Engineer: modify(); Leader:modify(); void save() Engineer:save1(); Leader:save1(); ;template<class T>struct Node T data; Node *next;template<class T>class LinkListprivate:
29、 Node<T> *head; Node<T> *r;public: LinkList(); int Insert_LinkList(); int Del_LinkList(int i); void modify_LinkList(int i); void print_LinkList(); Node<T> *Get_LinkList(int i); void save_LinkList(); int main() int m; while(m) int a; a = choose(); switch(a) case 1: operation1(); bre
30、ak; case 2: operation2(); break; case 3: operation3(); break; case 4: operation4(); break; case 0: m=0; break; return 0;void operation1() LinkList<Staff> s; int n,m; while(m) menu(); cin>>n; switch(n) case 1: int flag; flag =s.Insert_LinkList(); if(flag=1) cout<<"-"<&l
31、t;endl; cout<<"插入成功!"<<endl; cout<<"-"<<endl; else cout<<"-"<<endl; cout<<"插入失败!"<<endl; cout<<"-"<<endl; break; case 2: int i,flag; cout<<"请输入要删除的员工的编号:" cin>>i; flag=
32、s.Del_LinkList(i); if(flag=1) cout<<"-"<<endl; cout<<"删除成功!"<<endl; cout<<"-"<<endl; else cout<<"-"<<endl; cout<<"删除失败!"<<endl; cout<<"-"<<endl; break; case 3: cout<
33、<"-员工信息-"<<endl; s.print_LinkList(); break; case 4: cout<<"请输入要修改的员工的编号:" int b; cin>>b; s.modify_LinkList(b); cout<<"-"<<endl; cout<<"修改成功!"<<endl; cout<<"-"<<endl; break; case 5: cout<<
34、"请输入要查询的员工的编号:" int b; cin>>b; s.Get_LinkList(b); break; case 6: s.save_LinkList(); cout<<"-"<<endl; cout<<"保存成功!"<<endl; cout<<"-"<<endl; break; case 0: m = 0; break; default: cout<<"输入有误,请重新输入"<<
35、;endl; break; void operation2() LinkList<Engineer> e; int n,m; while(m) menu(); cin>>n; switch(n) case 1: int flag; flag =e.Insert_LinkList(); if(flag=1) cout<<"-"<<endl; cout<<"插入成功!"<<endl; cout<<"-"<<endl; else cout<
36、<"-"<<endl; cout<<"插入失败!"<<endl; cout<<"-"<<endl; break; case 2: int i,flag; cout<<"请输入要删除的员工的编号:" cin>>i; flag=e.Del_LinkList(i); if(flag=1) cout<<"-"<<endl; cout<<"删除成功!"<&
37、lt;endl; cout<<"-"<<endl; else cout<<"-"<<endl; cout<<"删除失败!"<<endl; cout<<"-"<<endl; break; case 3: cout<<"员工信息"<<endl; e.print_LinkList(); break; case 4: cout<<"请输入要修改的员工的编号:&qu
38、ot; int b; cin>>b; e.modify_LinkList(b); cout<<"-"<<endl; cout<<"修改成功!"<<endl; cout<<"-"<<endl; case 5: cout<<"请输入要查询的员工的编号:" int b; cin>>b; e.Get_LinkList(b); break; case 6: e.save_LinkList(); cout<<
39、"-"<<endl; cout<<"保存成功!"<<endl; cout<<"-"<<endl; break; case 0: m = 0; break; default: cout<<"输入有误,请重新输入"<<endl; break; void operation3() LinkList<Leader> l; int n,m; while(m) menu(); cin>>n; switch(n) case
40、 1: int flag; flag =l.Insert_LinkList(); if(flag=1) cout<<"-"<<endl; cout<<"插入成功!"<<endl; cout<<"-"<<endl; else cout<<"-"<<endl; cout<<"插入失败!"<<endl; cout<<"-"<<endl; b
41、reak; case 2: int i,flag; cout<<"请输入要删除的员工的编号:" cin>>i; flag=l.Del_LinkList(i); if(flag=1) cout<<"-"<<endl; cout<<"删除成功!"<<endl; cout<<"-"<<endl; else cout<<"-"<<endl; cout<<"删除失败
42、!"<<endl; cout<<"-"<<endl; break; case 3: cout<<"员工信息"<<endl; l.print_LinkList(); break; case 4: cout<<"请输入要修改的员工的编号:" int b; cin>>b; l.modify_LinkList(b); cout<<"-"<<endl; cout<<"修改成功!"<<endl; cout<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 染色体微重复综合征的临床表型异质性
- 脊髓损伤神经源性膀胱患者间歇导尿管理
- 患者责任制整体护理模式排班方法
- 脑出血的颅内压监测
- 肺癌术后预防压疮的护理措施
- 2026年广东省江门市蓬江区初中毕业生学业水平调研测试化学试卷(含答案)
- 医学26年:生物制剂临床应用 查房课件
- 第14课 网络支付新时代说课稿2025年小学信息技术(信息科技)第2册鲁教版
- 初中生2025情绪管理主题班会说课稿
- 上海工程技术大学《安全法学》2025-2026学年第一学期期末试卷(A卷)
- 初中英语写作教学中生成式人工智能的辅助应用研究教学研究课题报告
- 2026中国航空发动机产业发展现状与技术突破路径研究报告
- MT/T 1083-2025煤矿矿井提升机电控设备技术条件
- (2026版)中华人民共和国民族团结进步促进法
- 2026湖北十堰市房县风雅演艺有限公司演职人员招聘20人备考题库参考答案详解
- 裱花间日常管理工作制度
- 2026年及未来5年市场数据中国智能水杯行业市场深度研究及发展趋势预测报告
- 急性胰腺炎的综合治疗方案
- 新一轮千亿斤粮食产能提升行动方案全文
- 2026浙江事业单位统考嘉兴市招聘107人考试参考题库及答案解析
- 2026年市场监管局消费者权益保护岗面试题
评论
0/150
提交评论