如何使用C++实现教职工信息管理系统

如何使用C++实现教职工信息管理系统

这篇文章主要介绍如何使用C++实现教职工信息管理系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体内容如下

一.问题描述

一个小公司包含四类人员:经理,技术人员,销售人员和销售经理,各类人员的工资计算方法如下:经理:固定月薪(8000);技术人员:月薪按技术等级(1~8)(1600+等级*300);销售人员:按提成(4%*销售额);销售经理:底薪+提成(1500+0.2%*总销售额);设计一个管理程序,实现对各类人员的信息输入,修改和显示。

二 .基本要求

(1)使用面向对象编程思想编写开发过程中需要用到的类,比如:设计Person类:编号,姓名,岗位,工资,成员函数可设一个计算月薪的纯虚函数;另外再设计四个针对四类人员的类均继承 Person;添加相应的派生类数据成员和函数,经理和销售经理可以没有新的数据成员,计算月薪即可; 技术人员添加技术等级数据成员,销售人员添加数据成员:销售额。还需设计一个Manage 类来完成各种操作。人员数组 vector,数据类型为基类指针。

(2)需要使用菜单功能显示添加人员(输入),修改信息,浏览信息,按姓名查找,月薪排序。

(3)为了设计简洁,假定经理和销售经理都只能有一个;用文本编辑器编辑一个文本文件(总数 20 人以上)包含各类人员的信息;并且在程序中能修改保存。

基本流程图

#include#include#include#include#include#include#include#include#definefilename"student.txt"usingnamespacestd;classPerson{public:Person(string,string,int=0);//构造函数doublevirtualpay_salary()=0;//借用虚函数进行工资初始化voidvirtualshow();//显示信息booloperator<(constPerson*&)const;//重载<比较薪水大小用于排序staticintnum;//定义静态变量,自动赋予员工编号intNumber;//编号doubleSalary;//工资stringName;//姓名stringDepartment;//部门intc;//技术级};boolPerson::operator<(constPerson*&obj)const//函数重载<,用于比较薪水{returnthis->Salary>obj->Salary;}Person::Person(stringname1,stringwork1,intc1)//构造函数的实现{c=c1;Number=num++;Name=name1;Department=work1;}intPerson::num=1;//编号从1开始voidPerson::show(){cout<<"-----------------------------------"<Ma;//vector数组,存放Person类的对象指针voidadd(Person*);//添加人员信息voidalter(string);//删除人员信息voidaddtofile();//写入文件voidshow();//显示所有信息voidshow1();//按月薪降序Person*find(string&);//查找人员信息};Person*Manage::find(string&name1){//查找for(vector::iteratoriter=Ma.begin();iter!=Ma.end();iter++){if((*iter)->Name==name1){return*iter;}}returnNULL;}voidManage::alter(stringname1){//删除for(vector::iteratoriter=Ma.begin();iter!=Ma.end();iter++){if((*iter)->Name==name1){Ma.erase(iter);return;}}cout<<"查无此人"<Department=="销售人员"){salevolume+=((Salesman*)people)->salevolume;}Ma.push_back(people);}voidManage::addtofile()//写入文件{ofstreamoutfile(filename);//打开文件写入for(vector::iteratoriter=Ma.begin();iter!=Ma.end();iter++){outfile<<(*iter)->Department<<""<<(*iter)->Name<<"";if((*iter)->c==0)outfile<c<Salary>y->Salary;}voidManage::show(){for(vector::iteratoriter=Ma.begin();iter!=Ma.end();iter++){if((*iter)->Department=="销售经理"){(*iter)->Salary=salevolume*0.002+1500;break;}}sort(Ma.begin(),Ma.end(),cmp);//薪水大小排序for(vector::iteratoriter=Ma.begin();iter!=Ma.end();iter++){(*iter)->show();cout<::iteratoriter=Ma.begin();iter!=Ma.end();iter++){(*iter)->show();cout<";cin>>x;switch(x){case1:{while(1){intn;stringName;cout<<"请输入姓名:";cin>>Name;cout<<"请输入人员岗位(1.经理2.技术人员3.销售人员4.销售经理):";cin>>n;if(n==1){Person*peo=newManager(Name,"经理",0);T.add(peo);cout<<"添加成功"<>rank;if(rank>8||rank<1){cout<<"输入错误,请在1~8之间输入:";}else{Person*peo=newTechnician(Name,"技术人员",rank);T.add(peo);break;}}cout<<"添加成功"<>sales;Person*peo=newSalesman(Name,"销售人员",sales);T.add(peo);cout<<"添加成功"<>Name;Person*peo=T.find(Name);if(peo==NULL){cout<<"查无此人"<show();if(peo->Department=="经理"){cout<<"经理无法修改"<Department=="技术人员"){intrank=0;while(1){cout<>rank;if(rank>8||rank<1){cout<<"等级输入错误,请重新输入"<Department=="销售人员"){intsales=0;cout<>sales;T.alter(Name);peo=newSalesman(Name,"销售人员",sales);T.add(peo);cout<<"修改成功!"<Department=="销售经理"){cout<<"销售经理无法修改"<>Name;Person*peo=T.find(Name);if(peo==NULL){cout<<"查无此人"<show();cout<

以上是“如何使用C++实现教职工信息管理系统”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注恰卡编程网行业资讯频道!

发布于 2022-03-18 22:52:05
分享
海报
28
上一篇:Python+Turtle如何绘制可爱的多啦A梦 下一篇:如何实现redis数据一致性
目录

    忘记密码?

    图形验证码