#include <iostream>
#include <string>
#include <vector>
using namespace std;
//学生类
class student
{
private:
string name; //姓名
int age; //年龄
string code; //学号
int nianji; //年纪
int grade; //成绩
public:
//构造函数
student(){}
student(string na, int a, string c, int n, int g):name(na), age(a), code(c), nianji(n), grade(g) {}
string getName() { return name; }
void setName(string na) { this->name = na; }
int getAge() {return age;}
void setAge(int age) { this->age = age; }
string getCode() { return code; }
void setCode(string c) { this->code = c;}
int getNianji() { return nianji; }
void setNianji(int nj) { this->nianji = nj; }
int getGrade() { return grade; }
void setGrade(int g) { this->grade = g; }
/*
student& operator = (const student& s)
{
name = s.name; //姓名
age = s.age; //年龄
code = s.code; //学号
nianji = s.nianji; //年纪
grade = s.grade; //成绩
return *this;
}
*/
};
//教师类
class teacher
{
private:
string name; //姓名
int age; //年龄
int gongHao; //工号
int classTime; //课时
int money; //课时费
public:
//构造函数
teacher(){}
teacher(string na, int a, int gh, int ct, int m):name(na), age(a), gongHao(gh), classTime(ct), money(m) {}
string getName() { return name; }
void setName(string na) { this->name = na; }
int getAge() {return age;}
void setAge(int age) { this->age = age; }
int getGongHao() { return gongHao; }
void setGongHao(int gh) { this->gongHao = gh; }
int getClassTime() { return classTime; }
void setClassTime(int ct) { this->classTime = ct; }
int getMoney() { return money; }
void setMoney(int m) { this->money = m; }
};
//员工类
class employee
{
private:
string name; //姓名
int age; //年龄
int gongHao; //工号
int money; //月薪
public:
//构造函数
employee(){}
employee(string na, int a, int gh, int m):name(na), age(a), gongHao(gh), money(m) {}
string getName() { return name; }
void setName(string na) { this->name = na; }
int getAge() {return age;}
void setAge(int age) { this->age = age; }
int getGongHao() { return gongHao; }
void setGongHao(int gh) { this->gongHao = gh; }
int getMoney() { return money; }
void setMoney(int m) { this->money = m; }
};
void MaoPao(vector<student> vs, vector<student> &vgai)
{
student temp1, temp2;
//根据分数进行排序,然后放入到vector中去,依次找到最小的然后去掉它就可以了
for(int i = 0 ; vs.size() > 0 ; )
{
//每次都取当前的第一个,因为我会一直删里面的类
temp1=vs[i];
//和后面的比较
for(auto j=vs.begin()+1 ; j != vs.end() ; ++j)
{
temp2=*j;
if(temp1.getGrade()<temp2.getGrade())
{
//如果第一个是小的,那么就交换,一直到找到最大的
temp1=temp2;
}
}
//第一层循环完成,找到当前最大的,放入到vgai的第一个
//cout<<temp1.getGrade()<<" xx "<<endl;
vgai.push_back(temp1);
//吧当前的temp1从vs去掉,直到vs被搬空为止
vector<student>::iterator itr = vs.begin();
while (itr != vs.end())
{
if (itr->getName() == temp1.getName())
{
vs.erase(itr);//删除值为3的元素
break;
}
++itr;
}
}
}
void print(vector<teacher> vt)
{
const string NAME1 = "高代老师名字", NAME2 = "数分老师名字", NAME3 = "英语老师名字";
cout << "各科教师的信息是:" << endl;
cout << "姓名\t\t年龄\t工号\t课时\t课时费\t" << endl;
for (auto it = vt.begin(); it != vt.end(); ++it)
{
teacher t = *it;
string s = t.getName();
if (s == NAME1 || s == NAME2 || s == NAME3)
{
cout << t.getName() << "\t"
<< t.getAge() << "\t"
<< t.getGongHao() << "\t"
<< t.getClassTime() << "\t"
<< t.getMoney() << endl;
}
}
}
int main()
{
vector<student> vs, vgai;
student s1("myName1", 19, "20130901001", 2, 98); //自己是第一个,内定了
student s2("myName2", 19, "20130901002", 2, 94);
student s3("myName3", 19, "20130901003", 2, 33);
student s4("myName4", 19, "20130901004", 2, 45);
student s5("myName5", 19, "20130901005", 2, 75);
student s6("myName6", 19, "20130901006", 2, 12);
student s7("myName7", 19, "20130901007", 2, 77);
student s8("myName8", 19, "20130901008", 2, 33);
student s9("myName9", 19, "20130901009", 2, 55);
student s10("myName10", 19, "20130901010", 2, 78);
student s11("myName11", 19, "20130901011", 2, 28);
student s12("myName12", 19, "20130901012", 2, 58);
student s13("myName13", 19, "20130901013", 2, 8);
student s14("myName14", 19, "20130901014", 2, 58);
//1-----------------------------------------------------------------------
cout<<"我的信息是:"<<endl;
cout<<"姓名\t\t年龄\t学号\t\t年级\t成绩\t"<<endl;
cout<<s1.getName()<<"\t\t"
<<s1.getAge()<<"\t"
<<s1.getCode()<<"\t"
<<s1.getNianji()<<"\t"
<<s1.getGrade()<<endl;
//输出最近的10位,不会数据库只能用这种蠢方法
vs.push_back(s1); vs.push_back(s2); vs.push_back(s3); vs.push_back(s4);
vs.push_back(s5); vs.push_back(s6); vs.push_back(s7); vs.push_back(s8);
vs.push_back(s9); vs.push_back(s10); vs.push_back(s11); vs.push_back(s12);
vs.push_back(s13); vs.push_back(s14);
vector<student>::iterator it = vs.begin();
int count = 1; //计数10个
//2-----------------------------------------------------------------------
cout<<"后面10位的信息"<<endl;
while(it != vs.end() && count <= 11)
{
cout<<it->getName()<<" "
<<it->getAge()<<"\t"
<<it->getCode()<<"\t"
<<it->getNianji()<<"\t"
<<it->getGrade()<<endl;
++it;
++count;
}
//3-----------------------------------------------------------------------
MaoPao(vs, vgai);
cout<<endl;
cout<<"排序后:"<<endl;
vector<student>::iterator it2 = vgai.begin();
//int count2 = 1; //计数10个
while(it2 != vgai.end())
{
cout<<it2->getName()<<" "
<<it2->getAge()<<"\t"
<<it2->getCode()<<"\t"
<<it2->getNianji()<<"\t"
<<it2->getGrade()<<endl;
++it2;
}
//4-----------------------------------------------------------------------
vector<teacher> vt;
teacher t1("高代老师名字", 60, 001, 30, 7000), t2("数分老师名字", 60, 002, 30, 9980),
t3("英语老师名字", 998, 003, 2, 700), t4("牛逼老师名字", 60, 004, 30, 7000);
vt.push_back(t1), vt.push_back(t2), vt.push_back(t3), vt.push_back(t4);
print(vt);
char c;
cin>>c;
return 0;
}
一个小题,同学叫我帮忙,我就很快的写了一些,确实很乱,不过要是连上数据库还是有点意思的