另外實現了(1)插入的功能,要求插入後保持成績的排名。。
②刪除功能輸入指定的學號。從學生信息表中刪除,刪除的成績將保持原順序!
// -
#包含“stdafx.h“
# include & ltWindows.h & gt
# include & ltvector & gt
# include & lt字符串& gt
# include & ltiostream & gt
# include & lt算法& gt
使用STD::CIN;
使用STD::cout;
班級管理學生
{
公共:
BOOL InputOneStudent();
BOOL DelOneStudent();
void showall student();
私人:
void sort data();
結構信息
{
std::字符串名稱;//名稱
INT iStudentID//學生編號
INT ilesson 1;//結果
INT iLesson2
INT iLesson3
國際旅行;//平均分數
info(){ }
信息(INT iID)
:iStudentID(iID)
{
}
//判斷相等用於find_if()
布爾運算符();數據)常數
{
返回此-& gt;iStudentID = = data.iStudentID
}
//使用相等判斷從最大到最小排序()。
布爾運算符();數據1,常量信息和。數據2)常數
{
返回數據1 . iver age & gt;data 2 . I verage;
}
} oneInfo
std::vector<信息& gtvStudent
};
BOOL cmanagement student::inputone student()
{
cout & lt& lt”請輸入您的學號並取消輸入-1 \ n”;
CIN & gt;& gtoneInfo.iStudentID
if(oneinfo . istudentid = =-1)
返回FALSE
if(find _ if(vstudent . begin()、vStudent.end()、oneInfo)!= vStudent.end())
{
cout & lt& lt“學生證已經存在!\ n“;
返回FALSE
}
cout & lt& lt”請輸入壹個名稱並取消輸入退出\ n”;
CIN & gt;& gtoneInfo.name
if(oneinfo . name = =“exit“)
返回FALSE
cout & lt& lt“請輸入1課程的分數,並退出輸入-1 \ n”;
CIN & gt;& gtoneinfo . iles son 1;
if(oneinfo . iles son 1 = =-1)
返回FALSE
cout & lt& lt請輸入第二門課的分數,不要輸入-1 \ n;
CIN & gt;& gtoneinfo . iles son 2;
if(oneinfo . iles son 2 = =-1)
返回FALSE
cout & lt& lt“請輸入第三門課的分數,退出輸入-1 \ n”;
CIN & gt;& gtoneinfo . iles son 3;
if(oneinfo . iles son 3 = =-1)
返回FALSE
oneinfo . I verage =(oneinfo . iles son 1+oneinfo . iles son 2+oneinfo . iles son 3)/3;
vstudent . push _ back(oneInfo);
sort data();//插入壹條數據後,需要排序,但不能刪除。
返回TRUE
}
void cmanagement student::sort data()
{
sort(vstudent . begin()、vStudent.end()、cmanagement student::Info());
}
void cmanagement student::showall student()
{
for(STD::vector & lt;信息& gt*叠代器it = vstudent . begin();vStudent.end()!= it++it)
{
cout & lt& lt“學生姓名:“
& lt& lt“學生編號:“
& lt& lt“中國成就:“
& lt& lt“數學成績:“
& lt& lt“英語成績:“《& lt它-& gt;iLesson3
& lt& lt“平均成績:“
& lt& ltSTD::endl;
}
}
BOOL CManageStudent::DelOneStudent()
{
cout & lt& lt”請輸入您的學號並取消輸入-1 \ n”;
CIN & gt;& gtoneInfo.iStudentID
if(oneinfo . istudentid = =-1)
返回FALSE
std::vector<信息& gt*叠代器it = find _ if(vstudent . begin()、vStudent.end()、oneInfo);
if(it = = vstudent . end())
{
cout & lt& lt“學生證不存在!”;
返回FALSE
}
vstudent . erase(it);
返回TRUE
}
void main()
{
int stop = 0;
cmanagementstudent rMS;
while(真)
{
cout & lt& lt“退出輸入0\n“
& lt& lt“輸入新信息並輸入1\n“
& lt& lt“刪除信息輸入2\n“
& lt& lt”顯示信息輸入3 \ n”;
CIN & gt;& gt停止;
開關(停止)
{
案例0:
返回;
案例1:
rMS。inputone student();
打破;
案例二:
rMS。DelOneStudent();
打破;
案例三:
rMS。showall student();
打破;
默認值:
打破;
}
}
}
STL是用標準c++模板庫做的,裏面的內容還是很有用的。最好能增加壹個顯示所有信息的功能~