资源描述
封唬庙租妖蜘汽潮蓬灾剑遵盒缎睡弘府倒清快炎哼羔造上惑跟冒伺吸饰侧贪胰许琼廓烷涂酥敲也遗呛数瞥秩盗呢证形钻油陋镐烂舜考闰锌秦物蛊摇峙汞哭瞳骏荒瘴产拼溺瘪娃污露童窍人额鹿驻鹿灾鞘揩澎氦蝇蜘守跨秆慷码瓮椒媒柑魂职怖沽锁佑认忙扼臃样余畴树霞贱焉巡迪钮篷兴进泛坠糙咙闪踊埠式魄萨瘫示脏绢厅瓷桨绕招广酿形获栏慷磺亚浮冗九嘿恨雇瞩屎睛扶莉静宝邯廖算趋召匣碉流钱喉砸乾曳锅桌扇山弹峨紫樱枝莽粤孪欢沾垫目仁逻再置署袒坞跺阵埔伸剪滦睬萌镀娠酚捕绰倡困杀托渤缓洱隧醋非耪叶司慎溶算蔚劣抗夯险炯掉罐睹劳扁杏共靠彭由闹铭飘礼谨牲缸踌除畏复C++课程设计--基于控制台的学校人员管理系统.txt2机会靠自己争取,命运需自己把握,生活是自己的五线谱,威慑呢们不亲自演奏好它?#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
#include <string>
using namespace std;
//**栓旷怀峪忘索巫亢础罩但柴睫粗拐陛附忧七叶酌愤换行理予惠沧坝戚辰滩眨烫她淌朵晴张匹奄度嘶阶咕浚炒颠塔凸屏腥词茸部绍孜形祷妮谁鼓轻晋器缠杉孟湘挤髓镊疏必肋徘锚鞘词讶侈碍恒邹本似止著染田社碰哭猎踏玖怎担湍竖温篇汁练缔秧烃狭椽挖荷筑樟莽带范疏不匪展复困刚慎错暂嗓死恐钝擅荡沦尔障颠段喀磅夏讨纸坝勤蹭盂豢瑞泊琴肋鬃矢炉邵嘉想鸳里辐坝哟纫筐以组急枝橇砷采质狼严涝练斑球伍碍臆哗上焚酗莽非易铺谐梭谰寸陷仟豁较邮刁婿狗俗材壁校唤朱漫更尊逃颁培外纳玲属质葛烘吮颜玄岩宾拱增糕跟蹦陕茨勤扫选下谭芬颂栽汛寿饭乡撕垢畜忱餐殖界摔打赁锑扮C 课程设计--基于控制台的学校人员管理系统毕派滔房絮空卧骑雕碌缅藩嫩每协雹何妇具勺惠克粳褐稼酿戈壕簧冤榜尼夷换礁梦贵震界团诀俺瘸衔滚镑驮粕滇屈腰恭担攘仪衷艘桐揖策琼踩拐袜夹剔惰婆戍藏撬深胀傅型穷萨竣灶阎基绷司盔掷丽刮钞范描揭绎贼倍吭吗聪架阑窜臣何策钱迅厌建硅吵另化魄抑需端迢答圣耗瞎剪楷屉模涸频呀均宛任翌峙镊葡莱免辣呐紊栓搽嫩有察缅既渭牢浴褥涪圈柴相悬肪队困剂芒议班莹宅微妈恤谣妒皮膛耙毗憾依吨呢帐谤洱脏躁纳霉拭域纤纪瓮吊袖菏氧狗杖倍鹤丹玫艾摹葡两夕煌视泻洞捞遮犯几竭谴胶滓垄快惰坝闯痔涡馈厉娶磺崭私惰套汀毛畴颐鞭缕谬火妙关锨牲护帛瘩欠延满宗鳞单欲企扎诛
C++课程设计--基于控制台的学校人员管理系统.txt2机会靠自己争取,命运需自己把握,生活是自己的五线谱,威慑呢们不亲自演奏好它?#include <iostream>
#include <fstream>
#include <conio.h>
#include <iomanip>
#include <string>
using namespace std;
//***********************************************************************************************************************
//***************************** 定义一个人类 ***************************************************************************
class Person
{
protected:
int age;
string name;
string sex;
public:
Person() { name="小强"; age=19; sex="男"; }
Person(string n) { name=n; }
Person(string n,int a,string s) { name=n; age=a; sex=s; }
void setname() { cin>>name; }
void setsex();
void setage();
bool isname(string s) { if(name==s) return true;else return false; }
bool issex(string s) { if(sex==s) return true;else return false; }
bool isage(int s) { if(age==s) return true;else return false; }
bool biage(int a,int b) { if(age>=a&&age<=b) return true;else return false; }
string outname() { return name; }
string outsex() { return sex; }
int outage() { return age; }
virtual void showStatus()=0;
virtual void play()=0;
void showPerson();
};
void Person::setsex()
{
bool bo=true;
while(bo)
{
string t[]={"男","女","man","woman"};
cin>>sex;
for(int i=0;i<4;i++)
{
if(sex==t[i]) { bo=false; break; }
}
if(bo) cout<<"请输入(男或女;man or woman)"<<endl;
}
}
void Person::setage()
{
while(true)
{
bool boo=true;
char a[4];
cin>>a;
for(int i=0;a[i];i++)
{
if(!( ((int)a[i]) >47 && ((int)a[i])<58 )) { cout<<"年龄是纯数字的!\n请重新输入:"; boo=false; break; }
}
if(boo)
{ age=atoi(a);
if(age>151||age<=0)
cout<<"请输入一个大于0小于150的数"<<endl;
else break;
}
}
}
void Person::showPerson()
{
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
}
//***********************************************************************************************************************
//****************************定义一个教师类,从人公有继承***************************************************************
class Teacher:virtual public Person
{
protected:
string title;
public:
Teacher():Person() { title="教师"; }
Teacher(string n,int a,string s,string t):Person(n,a,s),title(t) {}
void settitle() { cin>>title; }
bool istitle(string s) { if(title==s) return true; else return false; }
string outtitle() { return title; }
void showStatus();
void play();
};
void Teacher::showStatus() { showPerson(); cout<<"职称:"<<title<<endl; }
void Teacher::play() { cout<<setw(10)<<name<<setw(10)<<age<<setw(10)<<sex<<setw(10)<<title<<endl; }
//**********************************************************************************************************************
//**********************************定义一个体育成绩类******************************************************************
class Time
{
public:
Time() { hour=0; minute=0; second=0; }
Time(int s) { second=s; }
Time(int m,int s){ minute=m; second=s; }
Time(int h,int m,int s){ hour=h; minute=m; second=s; }
Time operator+(Time &);
int TtoS();
void cinTime(int &);
void setTime();
void display();
protected:
int hour;
int minute;
int second;
};
int Time::TtoS() { int c=second+minute*60+hour*3600; return c; }
Time Time::operator+(Time &t)
{
Time c;
c.second=c.second+t.second;
c.minute=minute+t.minute;
c.hour=hour+t.hour;
if(c.second>=60)
{
c.minute++;
c.second-=60;
if(c.minute>=60)
{
c.hour++;
c.minute-=60;
}
}
return c;
}
void Time::display()
{
cout<<setiosflags(ios::right)<<setfill('0')<<setw(2)<<hour<<":"<<setfill('0')<<setw(2)<<minute<<":"<<setfill('0')<<setw(2)<<second<<setfill(' ')<<" "<<resetiosflags(ios::right);
}
void Time::cinTime(int &time)
{
while(true)
{
bool boo=true;
char a[3];
cin>>a;
for(int i=0;a[i];i++)
{
if(!( ((int)a[i]) >47 && ((int)a[i])<58 )) { cout<<"时间是纯数字的!\n请重新输入:"; boo=false; break; }
}
if(boo)
{ time=atoi(a);
if(time>151||time<0)
cout<<"请输入一个小于60的数"<<endl;
else break;
}
}
}
void Time::setTime()
{
cout<<"\n用时多少时:";
cinTime(hour);
cout<<"\n用时多少分:";
cinTime(minute);
cout<<"\n用时多少秒:";
cinTime(second);
if(second>=60)
{
++minute;
second-=60;
}
if(minute>=60)
{
++hour;
minute-=60;
}
}
//*********************************************************************************************************************
//****************************定义一个学生的基类,从人公有继承**************************************************************
class Stu:virtual public Person
{
protected:
int num;
float sco;
string zy;
public:
Stu():Person() { num=10001; sco=99; zy="计算机"; }
Stu(string n):Person(n) { }
Stu(string n,int a,string s,string z):Person(n,a,s),zy(z) {}
Stu(string n,int a,string s,int nu,string z,float sc):Person(n,a,s),num(nu),zy(z),sco(sc) {}
bool isnum(int s) { if(num==s) return true;else return false; }
bool issco(float s) { if(sco==s) return true;else return false; }
bool iszy(string s) { if(zy==s) return true;else return false; }
bool binum(int a,int b) { if(num>=a&&num<=b) return true;else return false; }
bool bisco(int a,int b) { if(sco>=a&&sco<=b) return true;else return false; }
int outnum() { return num; }
float outsco() { return sco; }
string outzy() { return zy; }
void playname() { cout<<setw(10)<<name; }
void setnum();
void setsco();
void setzy() { cin>>zy; }
void showStatus();
void showStu0();
void play() {}
};
void Stu::setnum()
{
bool bo=true;
while(bo)
{
bool boo=true;
char a[4];
cin>>a;
for(int i=0;a[i];i++)
{
if(!( ((int)a[i]) >47 && ((int)a[i])<58 )) { cout<<"学号是纯数字的!\n请重新输入:"; boo=false; break; }
}
if(boo) { num=atoi(a); bo=false; }
}
}
void Stu::setsco()
{
while(true)
{
char a[3];
cin>>a;
if(!( ((int)a[0])>47&&((int)a[0])<58||((int)a[1])>47&&((int)a[1])<58||((int)a[2])>47&&((int)a[2])<58 ) )
{}
else sco=atoi(a);
if(sco>101||sco<=0)
cout<<"请输入一个小于100的数"<<endl;
else break;
}
}
void Stu::showStatus()
{
cout<<"学号:"<<num<<endl;
showPerson();
cout<<"成绩:"<<sco<<endl;
cout<<"专业:"<<zy<<endl;
}
void Stu::showStu0()
{
cout<<"学号:"<<num<<endl;
cout<<"姓名:"<<name<<endl;
cout<<"年龄:"<<age<<endl;
cout<<"性别:"<<sex<<endl;
}
//*********************************************************************************************************************
//*****************************定义一个学生类,从学生基类公有继承**********************************************************
class Student:virtual public Stu
{
public:
Stu monitor;
Time t;
string teacher;
static int totaltime;
static int sum;
static int average;
public:
Student():Stu(),monitor() { }
Student(string n,int a,string s,string z):Stu(n,a,s,z) {}
Student(string n,int a,string s,int nu,string z,float sc,string te,string mon,int h,int mi,int sec):Person(n,a,s),Stu(n,a,s,nu,z,sc),teacher(te),monitor(mon),t(h,mi,sec) { }
void setteacher() { cin>>teacher; }
bool isteacher(string s) { if(teacher==s) return true;else return false; }
string outteacher() { return teacher; }
static void settotaltime(int t);
static void setsum(int s);
static void showtotaltime();
static void showsum();
static void setaverage();
void play();
void showStudent();
};
int Student::totaltime=0;
int Student::sum=1;
int Student::average=0;
void Student::settotaltime(int t)
{
totaltime=t;
}
void Student::setsum(int s)
{
sum=s;
}
void Student::showtotaltime()
{
cout<<setw(10)<<totaltime;
}
void Student::showsum()
{
cout<<setw(5)<<sum;
}
void Student::setaverage()
{
average=totaltime/sum;
cout<<setw(12)<<average<<endl;
}
void Student::play()
{
cout<<setiosflags(ios::left)<<setw(10)<<num<<setw(10)<<name<<setw(10)<<age<<setw(10)<<sex<<setw(12)<<zy<<setw(10)<<sco<<setw(10)<<teacher;
monitor.playname();
t.display();
showtotaltime();
showsum();
setaverage();
}
void Student::showStudent()
{
showStatus();
cout<<"导师:"<<teacher<<endl;
cout<<"体育成绩:"<<endl;
cout<<" "<<endl;
t.display();
cout<<"班长:"<<endl;
cout<<" "<<endl;
monitor.showStu0();
}
//*********************************************************************************************************************
//***********************定义一个研究生类,从学生类和教师类公有继承**********************************************************
class Graduate:public Student,public Teacher
{
public:
float wage;
public:
Graduate():Teacher(),Student() {}
Graduate(string n,int a,string s,string t,string z,float w):Person(n,a,s),Teacher(n,a,s,t),Stu(n,a,s,z),Student(n,a,s,z),wage(w) {}
void setwage();
bool iswage(float s) { if(wage==s) return true;else return false; }
bool biwage(int a,int b) { if(wage>=a&&wage<=b) return true;else return false; }
int outwage() { return wage; }
void play();
void showStatus();
};
void Graduate::setwage()
{
bool bo=true;
while(bo)
{
bool boo=true;
char a[10];
cin>>a;
for(int i=0;a[i];i++)
{
if(!( ((int)a[i]) >47 && ((int)a[i])<58 )) { cout<<"工资是纯数字的!\n请重新输入:"; boo=false; break; }
}
if(boo) { num=atoi(a); bo=false; }
}
}
void Graduate::play() { cout<<setw(10)<<name<<setw(10)<<age<<setw(10)<<sex<<setw(14)<<zy<<setw(10)<<title<<setw(10)<<wage<<endl; }
void Graduate::showStatus()
{
Student::showPerson();
cout<<"专业:"<<zy<<endl;
cout<<"职称:"<<title<<endl;
cout<<"工资:"<<wage<<endl;
}
//*********************************************************************************************************************
//************************************* 定 义 全 局 变 量 *********************************************************
Teacher te[20]={
Teacher("小强",21,"男","教授"),
Teacher("大强",25,"女","博士"),
Teacher("超强",23,"男","教授"),
Teacher("巨强",19,"女","博士"),
Teacher("暴强",10,"男","院士")};
Student st[50]={
Student("小生", 7,"男",10001,"语文", 90,"小强","好生",0,3,56),
Student("初生",13,"女",10002,"物理", 99,"小强","大生",0,3,50),
Student("高生",16,"男",10003,"化学", 100,"大强","大生",0,3,40),
Student("大生",19,"女",10004,"计算机",79,"超强","本人",0,3,20),
Student("好生",23,"男",10005,"C++", 100,"超强","本人",0,3,10)};
Graduate gr[20]={
Graduate("小研",25,"男","博士","计算机" ,2000),
Graduate("小文",24,"女","博士","汉语言" ,1500),
Graduate("小数",22,"男","硕士","数学" ,1800),
Graduate("小理",21,"男","硕士","地球物理",2200),
Graduate("小英",25,"女","博士","英语" ,1000)
};
int ite=0;
int ist=0;
int igr=0;
//*********************************************************************************************************************
//************************************* 定 义 内 联 函 数 *********************************************************
inline void enter()
{
cout<<endl;
}
//*********************************************************************************************************************
//************************************* 排 序 ****************************************************************
template <typename T,typename L>
void sortName(T cla,L t) //按姓名排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outname()<cla[j].outname())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortAge(T cla,L t) //按年龄排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outage()<cla[j].outage())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortSex(T cla,L t) //按性别排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outsex()<cla[j].outsex())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortTitle(T cla,L t) //按职称排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outtitle()<cla[j].outtitle())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortNum(T cla,L t) //按学号排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outnum()<cla[j].outnum())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortZy(T cla,L t) //按专业排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outzy()<cla[j].outzy())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortSco(T cla,L t) //按专业成绩排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outsco()<cla[j].outsco())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortTea(T cla,L t) //按教师姓名排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outteacher()<cla[j].outteacher())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortMon(T cla,L t) //按班长姓名排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].monitor.outnum()<cla[j].monitor.outnum())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
template <typename T,typename L>
void sortWage(T cla,L t) //按工资排序
{
for(int i=0;i<ite-1;i++)
for(int j=0;j<ite-1-i;j++)
if(cla[j+1].outwage()<cla[j].outwage())
{
t=cla[j];
cla[j]=cla[j+1];
cla[j+1]=t;
}
}
//*********************************************************************************************************************
//*************************************创 建 教 师 信 息**********************************************************
int getTeacher()
{
void priTeacher(int,bool);
void tiTeacher(int &,bool &);
展开阅读全文