这个要怎么写?简单学生课程系统设计,不需要删除和修改信息的内容
#include <iostream>
#include <string>
#include <vector>
#include <memory>
using namespace std;
class Student
{
public:
Student() {}
~Student() {}
Student(string name, string sex, string studentID) :m_name(name), m_sex(sex), m_studentID(studentID){}
//private:
string m_sex;
string m_name;
string m_studentID;
};
class Course
{
public:
Course() {}
~Course() {}
Course(string coursename, unsigned int score) :m_coursename(coursename), m_score(score) {}
//private:
string m_coursename;
unsigned int m_score;
};
class SSC
{
public:
SSC() {}
~SSC() {}
SSC(const string name, const string sex, const string studentID
, const string aname,int ascor
, const string bname, int bscor
, const string cname, int cscor
, const string dname, int dscor):m_student(new Student(name,sex, studentID))
{
shared_ptr<Course>c1(new Course(aname,ascor));
shared_ptr<Course>c2(new Course(bname, bscor));
shared_ptr<Course>c3(new Course(cname, cscor));
shared_ptr<Course>c4(new Course(dname, dscor));
m_cources.push_back(c1);
m_cources.push_back(c2);
m_cources.push_back(c3);
m_cources.push_back(c4);
}
//private:
shared_ptr<Student> m_student;
vector<shared_ptr<Course>> m_cources;
};
vector <SSC> g_ssc;
void createSSC()
{
vector <SSC> _ssc;
SSC ssc1("Zhang", "男", "001", "A", 78, "B", 70, "C", 53, "D", 80);
SSC ssc2("Cheng", "女", "002", "A", 75, "B", 75, "C", 85, "D", 78);
SSC ssc3("Li", "女", "003", "A", 68, "B", 45, "C", 95, "D", 72);
SSC ssc4("Cha", "男", "004", "A", 67, "B", 70, "C", 64, "D", 62);
SSC ssc5("Xun", "男", "005", "A", 65, "B", 90, "C", 78, "D", 85);
g_ssc.push_back(ssc1);
g_ssc.push_back(ssc2);
g_ssc.push_back(ssc3);
g_ssc.push_back(ssc4);
g_ssc.push_back(ssc5);
for (auto it =g_ssc.begin();it != g_ssc.end();++it)
{
cout << "姓名 :" << (*(*it).m_student).m_name << " 性别:"<< (*(*it).m_student).m_sex<<" 学号:"<< (*(*it).m_student).m_studentID << " 成绩 :" ;
for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
{
cout << " "<<(*(*iter)).m_coursename <<" "<< (*(*iter)).m_score;
}
cout << endl;
}
cout << endl;
}
void selectHSorce(string cname)
{
unsigned int tem = 0;
string tempName;
for (auto it = g_ssc.begin(); it != g_ssc.end(); ++it)
{
for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
{
if (tem < (*(*iter)).m_score && (*(*iter)).m_coursename == cname)
{
tem = (*(*iter)).m_score;
tempName = (*(*it).m_student).m_name;
}
}
}
for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
{
if ((*(*it1).m_student).m_name == tempName)
{
cout << cname << "科目分数最高的 :" << endl;
cout << "姓名 :"<< tempName << endl;
cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
cout << " 成绩 :";
for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
{
cout << " " << (*(*iter1)).m_coursename << " " << (*(*iter1)).m_score;
}
cout << endl;
}
}
cout << endl;
}
void selectLSorce(string cname)
{
unsigned int tem = 100;
string tempName;
for (auto it = g_ssc.begin(); it != g_ssc.end(); ++it)
{
for (auto iter = (*it).m_cources.begin(); iter != (*it).m_cources.end(); ++iter)
{
if (tem > (*(*iter)).m_score && (*(*iter)).m_coursename == cname)
{
tem = (*(*iter)).m_score;
tempName = (*(*it).m_student).m_name;
}
}
}
for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
{
if ((*(*it1).m_student).m_name == tempName)
{
cout << cname << "科目分数最低的 :" << endl;
cout << "姓名 :" << tempName << endl;
cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
cout << " 成绩 :";
for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
{
cout << " " << (*(*iter1)).m_coursename << " " << (*(*iter1)).m_score;
}
cout << endl;
}
}
cout << endl;
}
void studentSorce(string sname)
{
unsigned int h = 0;
string hname;
unsigned int l = 100;
string lname;
for (auto it1 = g_ssc.begin(); it1 != g_ssc.end(); ++it1)
{
if ((*(*it1).m_student).m_name == sname)
{
cout << "姓名 :" << sname << endl;
cout << "性别 :" << (*(*it1).m_student).m_sex << endl;
cout << "学号 :" << (*(*it1).m_student).m_studentID << endl;
//cout << " 成绩 :";
for (auto iter1 = (*it1).m_cources.begin(); iter1 != (*it1).m_cources.end(); ++iter1)
{
if ((*(*iter1)).m_score > h)
{
hname = (*(*iter1)).m_coursename;
h = (*(*iter1)).m_score;
}
if((*(*iter1)).m_score <l)
{
lname = (*(*iter1)).m_coursename;
l = (*(*iter1)).m_score;
}
}
cout << "最高成绩 :" << hname<<" " << h << endl;
cout << "最低成绩 :" << lname << " " << l << endl;
}
}
cout << endl;
cout << endl;
}
int main()
{
createSSC();
selectHSorce("C");
selectLSorce("B");
studentSorce("Cheng");
return 0;
}