⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mian.cpp

📁 用C++写的一个简单学籍管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -