您好,欢迎访问三七文档
西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou1题目:公司员工管理系统基本要求:设计一个利用文件处理方式实现对公司人员(包括工程师、领导和主任工程师)进行管理,要求具有增加数据、更新数据、查询数据、删除数据以及现实数据的功能。实现提示:设计一个虚基类Staff(员工),包含编号、姓名和年龄保护数据成员以及相关的成员函数;由Staff派生出工程师类Engineer,包含专业和职称保护数据成员以及相关的成员函数;再由Staff派生出领导类Leader,包含职务和部门保护数据成员以及相关的成员函数;然后由Engineer和Leader类派生出主任工程师类Chairman。分析:按照题目要求,首先需要建立四个类(即:Staff、Leader、Engineer和Chairman)。其中虚基类Staff中,应该包含姓名、年龄和工号三个受保护的数据成员。Leader、Engineer类除从Staff类公有继承的数据成员以外,分别添加了职务和部门、职称和专业等数据。Chairman公有继承了Leader、Engineer.此外添加Rank,以区分正副级别。其次,定义好四个类中的友元函数,以及查找、删除、修改、更新和获取等函数,为main()、search()等函数提供便利。最后,规划数据存储。本次我采用了STL中的vector容器。定义vectorStaffsl、vectorLeaderll、vectorEngineerel、vectorChairmancl方便地进行实例化、修改、删除、查找等基本操作。为了使功能稳定且易于实现,本次实验中,在对四个类的成员函数、友元函数定义和申明中采用了静态联编、动态联编等机制,较好的解决了数据访问的问题。题目与分析西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou2基类:Staff派生类:Leader派生类:Engineer派生类:Chairman1.姓名、年龄、工号、职务、职称、部门、专业、正副级别等数据成员。2.静态数据、查找、修改、显示、更新、友元函数等公有数据成员。1.姓名、年龄、工号、职称、专业等数据成员。2.静态数据、查找、修改、显示、更新、友元函数等公有数据成员。1.姓名、年龄、工号、职务、部门等数据成员。2.静态数据、查找、修改、显示、更新、友元函数等公有数据成员。1.姓名、年龄、工号等数据成员。2.静态数据、查找、修改、显示、更新、友元函数等公有数据成员。类的成员信息与基本关系示意图Protected:stringName;//姓名stringStaff_NO;//工号intAge;//年龄1.voidGet(void);//fordisplay2.voidGet(string,string);//Leader与Engineer类中修改数据3.voidGet(inti);//用于staff派生类中修改年龄4.stringUGet();//向派生类提供name、age、staff_NO等数据5.stringSearchGet(int);//为Search()提供相关数据6.friendvoidSearch();//查找函数7.virtualvoidDisplay();//显示实例信息8.virtualintModify();//修改信息9.virtualintUpdate();//更新信息Staff类的结构数据成员函数接口西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou3friendvoidSearch();//查找函数friendvoidSearchGet();stringCSearchGet(int);staticintChairman_Number;voidDisplay();intModify();intUpdate();stringESearchGet(int);//为查找函数提供相关数据voidEGet();//forChairman::Display()voidEGet(strings1,strings2);//forChairman::modify()stringUEGet();//forChairman:update()stringLSearchGet(int);//为查找函数提供相关数据voidLGet();//forChairman::Display()VoidLGet(strings1,strings2);//forChairman::modify()stringULGet();//forChairman::Update()stringRank;//正副等级stringProTitle;//职称stringMajor;//专业stringName;//姓名stringStaff_NO;//工号intAge;//年龄stringJob;//职务stringDepartment;//部门数据成员函数接口Chairman继承父类的函数西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou4stringProTitle;//职称stringMajor;//专业friendvoidSearch();//查找函数stringESearchGet(int);//为查找函数提供相关数据voidEGet();//forChairman::Display()voidEGet(strings1,strings2);//forChairman::modify()stringUEGet();//forChairman:update()voidDisplay();//显示intModify();//修改intUpdate();//更新1.voidGet(void);//fordisplay2.voidGet(string,string);//Leader与Engineer类中修改数据3.voidGet(inti);//用于staff派生类中修改年龄4.stringUGet();//向派生类提供name、age、staff_NO等数据5.stringSearchGet(int);//为Search()提供相关数据6.friendvoidSearch();//查找函数7.virtualvoidDisplay();//显示实例信息8.virtualintModify();//修改信息stringName;//姓名stringStaff_NO;//工号intAge;//年龄Engineer类数据成员从Staff继承从Staff继承函数接口函数接口西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou5stringJob;//职务stringDepartment;//部门stringName;//姓名stringStaff_NO;//工号intAge;//年龄friendvoidSearch();//查找stringLSearchGet(int);//为查找函数提供相关数据voidLGet();//forChairman::Display()VoidLGet(strings1,strings2);//forChairman::modify()stringULGet();//forChairman::Update()voidDisplay();//显示intModify();//修改intUpdate();//更新1.voidGet(void);//fordisplay2.voidGet(string,string);//Leader与Engineer类中修改数据3.voidGet(inti);//用于staff派生类中修改年龄4.stringUGet();//向派生类提供name、age、staff_NO等数据5.stringSearchGet(int);//为Search()提供相关数据6.friendvoidSearch();//查找函数7.virtualvoidDisplay();//显示实例信息8.virtualintModify();//修改信息9.virtualintUpdate();//更新信息Leader类从Staff继承数据成员函数接口西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou6程序流程图开始Login()//登陆验证权限用户名、密码一一对应i=0登录失败。i++;否是i3是退出menu1();是否以管理员身份登陆menu2()是否查看历史信息输出历史信息是否否是否选择退出menu3();进行初始化,查找、删除、浏览、更新等高级操作是否西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou7#includeiostream#includestring#includefstream#ifndefSTAFF_H_INCLUDED#defineSTAFF_H_INCLUDED/*********Staff*************/usingnamespacestd;classStaff{protected:stringName;stringStaff_NO;intAge;public:staticintStaff_Number;voidGet(void);//fordisplayvoidGet(string,string);//Leader与Engineer类中修改数据voidGet(inti);//用于staff派生类中修改年龄stringUGet();//向派生类提供name、age、staff_NO等数据stringSearchGet(int);//为Search()提供相关数据friendvoidSearch();virtualvoidDisplay();virtualintModify();virtualintUpdate();Staff();Staff(constStaff&s){Name=s.Name;Staff_NO=s.Staff_NO;Age=s.Age;}~Staff(){Staff_Number--;};};/******FunctionofStaff*****/Staff::Staff(){cout**************BasicInfo*************FINITIAL_Part\n;cout1.姓名:;cinName;Staff类西安理工大学计算机科学与工程学院C++/C课程设计Author:youyou8cout2.工号:;cinStaff_NO;cout3.年龄:;cinAge;Staff_Number++;}stringStaff::SearchGet(inti)//返回姓名、工号{if(i==0)returnName;elsereturnStaff_NO;}voidStaff::Get(){cout1.姓名:Nameendl;cout2.年龄:Ageendl;cout3.工号:Staff_NO;}voidStaff::Get(inti){cout年龄(已修改):(Age=i)endl;}voidStaff::Get(strings1,strings2){cout姓名(已修改):(Name=s1)endl;cout工号(已修改):(Staff_NO=s2)endl;}stringStaff::UGet(){strings1=1.姓名:+Name;strings2=\n2.年龄:+Age;strings3=\n3.工号:+Staff_NO;s1+=s2;s1+=s3;returns1;}voidStaff::Display(){cout\n1.姓名\t2.工号\t3.年龄endl;coutName\tStaff_NO\tAgeendl;}intStaff::Modify()西
本文标题:公司员工管理系统
链接地址:https://www.777doc.com/doc-1024105 .html