版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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福建福州国有资产投资控股有限公司(融资租赁业务板块)社会招聘5人备考题库及参考答案详解
- 2026河南投资集团有限公司南通森蓝环保科技有限公司招聘2人备考题库有答案详解
- 2026中国海关博物馆合同制人员招聘1人备考题库及1套完整答案详解
- 2026浙江台州市玉环市招聘事业编制教师98人备考题库(第二批)及答案详解(各地真题)
- 2026江苏淮安市清江浦区长东街道公益性岗位招聘备考题库及答案详解1套
- 2026山西运城市永济市人力资源和社会保障局招聘公益性岗位45人备考题库附答案详解(突破训练)
- 2026福建福州市鼓楼区环境卫生中心招聘1人备考题库附答案详解(综合题)
- 2026中日青年交流中心有限公司社会招聘3人备考题库及答案详解(典优)
- 2026山东临沂市郯城县司法雇员第二次招聘29人备考题库及一套参考答案详解
- 2026贵州黔南州企事业单位人才引进268人备考题库含答案详解(预热题)
- 德克士炸鸡的
- DNA是主要的遗传物质课件济南版生物七年级下册
- T/CCCI 001-2024企业文化建设与管理评价标准
- 通航桥梁基础知识课件
- DB51-T 3267-2025 公路应急抢通保通技术规程
- 电梯维修改造施工方案大修
- 酒店客房保洁工作流程及服务标准
- 《化学实验基础:溶液的配制与性质实验教案》
- 智能汽车组合驾驶辅助系统技术规范
- 专案改善报告
- GB/T 41850.1-2024机械振动机器振动的测量和评价第1部分:总则
评论
0/150
提交评论