📄 mian.cpp
字号:
int chs=0; //choose
do {
system("cls");
cout<<setw(20)<<"学号"<<setw(20)<<"姓名"<<setw(10)<<"性别"
<<setw(10)<<"课程数"<<"平均分"<<endl;
lstStuIn(cl);
setCursorPosition(0,22);
cout<<"排序:按学号(1),按姓名(2),按平均分(3)----查看课程信息(4),返回(0) ";
cin>>chs;
switch(chs)
{
case 1:
cl.setCompareFlag(BY_ID);
cl.sort();
break;
case 2:
cl.setCompareFlag(BY_NAME);
cl.sort();
break;
case 3:
cl.setCompareFlag(BY_AVG_SCORE);
cl.sort();
cl.students.reverse();
break;
case 4:
int id;
cout<<"请输入要查看的学生号";
cin>>id;
system("cls");
cout<<setw(20)<<"课程号"<<setw(20)<<"课程名"<<setw(20)<<"分数"<<setw(20)<<"老师"<<endl;
lstSglStuCrs(id,cl);
setCursorPosition(0,23);
cout<<"按任意键继续.....";
cin.ignore();
cin.get();
break;
default:;
}
}while(chs!=0);
}
void addStu(Class & cl)
{
int id;
string name;
Sex sex;
cout<<"请输入学生的学号,姓名,性别(F/M)";
cin>>setw(20)>>id>>setw(20)>>name>>setw(10)>>sex;
cl.students.push_back(Student(name,id,sex));
cl.total++;
cout<<"添加成功!请返回查看......";
cin.get();
}
void fndStu(Class &cl)
{
int id;
bool find = false;
cout<<"请输入要查找的学生号";
cin>>id;
stu_iter iter = cl.students.begin();
while (iter!=cl.students.end())
{
if((*iter).getId()==id)
{
cout<<"该学生已找到!"<<endl;
find=true;
break;
}
iter++;
}
if (!find)
{
cout<<"找不到该学生!"<<endl;
}
cin.get();
cin.get();
}
void mdfStu(Class &cl)
{
int id;
bool find = false;
cout<<"请输入要修改的学生号";
cin>>id;
stu_iter iter = cl.students.begin();
while (iter!=cl.students.end())
{
if((*iter).getId()==id)
{
find=true;
cout<<"该学生已找到!"<<endl;
int id;
string name;
Sex sex;
cout<<"请输入学生的学号,姓名,性别(F/M)";
cin>>id>>name>>sex;
(*iter).setId(id);
(*iter).setName(name);
(*iter).setSex(sex);
break;
}
iter++;
}
if (!find)
{
cout<<"找不到该学生!"<<endl;
}
cin.get();
}
void delStu(Class &cl)
{
int id;
bool find = false;
cout<<"请输入要删除的学生的学号";
cin>>id;
stu_iter iter = cl.students.begin();
while (iter!=cl.students.end())
{
if((*iter).getId()==id)
{
find=true;
char chs;
cout<<"该学生已找到!是否删除(Y/N?)"<<endl;
chs=cin.get();
chs=cin.get();
if(chs=='y'||chs=='Y')
{
cout<<"删除学生"<<(*iter).getName()<<"成功!"<<endl;
cl.students.erase(iter);
cl.total--;
}
break;
}
iter++;
}
if (!find)
{
cout<<"失败,找不到该学生!"<<endl;
}
cin.ignore();
cin.get();
}
void saveClasses()
{
outClass.open("classes.txt",ios::out);
list<Class>::iterator iBegin = classes.begin();
list<Class>::iterator iEnd = classes.end();
assert(classesNumber==classes.size());
outClass<<classesNumber<<'#';
while(iBegin!=iEnd)
{
(*iBegin).write(outClass);
iBegin++;
}
outClass.close();
}
void saveCourses()
{
outCourse.open("courses.txt",ios::out);
list<Course>::iterator iBegin = courses.begin();
list<Course>::iterator iEnd = courses.end();
assert(coursesNumber==courses.size());
outCourse<<coursesNumber<<"#";
while(iBegin!=iEnd)
{
(*iBegin).write(outCourse);
iBegin++;
}
outCourse.close();
}
void loadClasses()
{
inClass.open("classes.txt",ios::in);
inClass>>classesNumber;
inClass.ignore();
for (int i=0; i<classesNumber; i++)
{
Class cl("");
cl.read(inClass);
classes.push_back(cl);
}
inClass.close();
}
void loadCourses()
{
inCourse.open("courses.txt",ios::in);
inCourse>>coursesNumber;
inCourse.ignore();
for(int i=0; i<coursesNumber; i++)
{
Course c("");
c.read(inCourse);
courses.push_back(c);
}
inCourse.close();
}
void lstAllClsBase()
{
cls_iter iBegin = classes.begin();
cls_iter iEnd = classes.end();
while (iBegin!=iEnd)
{
(*iBegin).printBase();
cout<<endl;
iBegin++;
}
}
void lstAllCrsBase()
{
crs_iter iBegin=courses.begin();
crs_iter iEnd = courses.end();
while (iBegin!=iEnd)
{
int sumNum = 0;
cls_iter iter = classes.begin();
for(;iter!=classes.end();iter++)
{
sumNum+=(*iter).getStudentNumberOfCourse((*iBegin));
}
(*iBegin).printBase();
cout <<setw(20)<<sumNum<<endl;
iBegin++;
}
}
void setColor(int color)
{
SetConsoleTextAttribute(hCon,color);
}
void setCursorPosition(int x,int y)
{
COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(hCon,coord);
}
void lstSglStuCrs(int id,Class & cl)
{
stu_iter iter=cl.students.begin();
while(iter!=cl.students.end())
{
if ((*iter).getId()==id)
{
(*iter).printDetail();
break;
}
iter++;
}
}
void lstCrs()
{
system("cls");
cout<<setw(20)<<"课程号"<<setw(20)<<"课程名"<<setw(20)<<"选课人数"<<endl;
lstAllCrsBase();
setCursorPosition(0,23);
cout<<"按任意键继续.....";
cin.ignore();
cin.get();
}
void addCrs()
{
int id;
string name;
cout<<"请输入课程号,课程名";
cin>>id>>name;
cout<<"name="<<name<<endl;
courses.push_back(Course(name,id,0.0f));
coursesNumber++;
cin.ignore();
cin.get();
}
void fndCrs()
{
int id;
bool find=false;
cout<<"请输入要查询的课程号:";
cin>>id;
crs_iter iBegin = courses.begin();
crs_iter iEnd = courses.end();
while (iBegin!=iEnd)
{
if ((*iBegin).getId()==id)
{
find=true;
cout<<"该课程已找到!"<<endl;
break;
}
iBegin++;
}
if (!find)
{
cout<<"找不到该课程!"<<endl;
}
cin.ignore();
cin.get();
}
void mdfCrs()
{
int id;
bool find = false;
cout<<"请输入要修改的课程号";
cin>>id;
crs_iter iter = courses.begin();
while (iter!=courses.end())
{
if((*iter).getId()==id)
{
find=true;
cout<<"该课程已找到!"<<endl;
int id;
string name;
cout<<"请输入课程的课程号,课程名";
cin>>id>>name;
(*iter).setId(id);
(*iter).setName(name);
break;
}
iter++;
}
if (!find)
{
cout<<"找不到该课程!"<<endl;
}
cin.ignore();
cin.get();
}
void delCrs()
{
int id;
bool find = false;
cout<<"请输入要删除的课程的课程号";
cin>>id;
crs_iter iter = courses.begin();
while (iter!=courses.end())
{
if((*iter).getId()==id)
{
find=true;
char chs;
cout<<"该课程已找到!是否删除(Y/N?)"<<endl;
chs=cin.get();
chs=cin.get();
if(chs=='y'||chs=='Y')
{
cout<<"删除课程"<<(*iter).getName()<<"成功!"<<endl;
courses.erase(iter);
coursesNumber--;
}
break;
}
iter++;
}
if (!find)
{
cout<<"失败,找不到该课程!"<<endl;
}
cin.ignore();
cin.get();
}
void clsCourseInfo(Class &cl)
{
system("cls");
cout<<setw(20)<<"课程编号"<<setw(20)<<"课程名"<<setw(20)<<"平均成绩"<<setw(20)<<"及格率"<<endl;
float passRate =0;
float avgScore =0;
if (!cl.students.empty())
{
Student &stu=cl.students.front();
crs_iter iter = stu.courses.begin();
while (iter!=stu.courses.end())
{
cout.setf(ios::showpoint);
avgScore = cl.getAvgScoreOfCourse(*iter);
passRate=cl.getPassRateOfCourse(*iter);
cout<<setw(20)<<(*iter).getId()
<<setw(20)<<(*iter).getName()
<<setw(20)<<setprecision(4)<<avgScore
<<(passRate*100)<<"%"
<<endl;
iter++;
}
}
setCursorPosition(0,23);
cout<<"按任意键继续......";
cin.ignore();
cin.get();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -