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

📄 operationcpp.h

📁 学生运动会成绩数据库 学生运动会成绩数据库系统记录某校运动会上全部运动项目
💻 H
字号:
#ifndef _OperationCpp_h
#define _OperationCpp_h
// 从文件中读取学院信息和比赛项目信息
void Operation::InitRecord()
{
	fstream dep_file;// 学院信息文件
	fstream sp_file;// 比赛项目文件
	dep_file.open("depart.txt");
	if(!dep_file.is_open())// 打开文件
	{
		cout<<"初始化院系信息失败!"<<endl;
		return;
	}
	while(!dep_file.eof())// 读取文件
	{
		string depnum;
		string depname;
		string stu;
		int sex;
		dep_file>>depnum>>depname>>stu>>sex;// 从文件中读取数据
		Depart dep(depnum,depname,stu,sex);// 并插入到链表中
		dep_list.Insert(dep_list.Length(),dep);
	}
	dep_file.close();// 关闭文件
	sp_file.open("sport.txt");
	if(!sp_file.is_open())
	{
		cout<<"初始化比赛项目失败!"<<endl;
		return ;
	}
	while(!sp_file.eof())
	{
		string spnum;
		string spname;
		sp_file>>spnum>>spname;
		Sport sp(spnum,spname);
		sp_list.Insert(sp_list.Length(),sp);
	}
	sp_file.close();
}
// 输出学院信息
void Operation::OutputDepart()
{
	cout<<" 学院参赛信息 "<<endl;
	cout<<setw(8)<<"学院编号"<<setw(15)<<"院系名称"<<setw(15)<<"比赛学生"<<setw(10)<<"性别"<<endl;
	dep_list.Print();
}
// 输出比赛项目信息
void Operation::OutputSport()
{
	cout<<"比赛项目信息 "<<endl;
	cout<<setw(8)<<"比赛编号"<<setw(20)<<"比赛名称"<<endl;
	sp_list.Print();
}
// 输入比赛结果
void Operation::InputScore()
{
	string depnum;// 学生院系编号
	string depname;// 学生姓名
	string spnum;// 比赛项目
	float mark;// 比赛成绩
	char c;
	while(1)
	{
		cout<<"输入学院编号:";
		cin>>depnum;
		cout<<"输入参加学生姓名:";
		cin>>depname;
		// 从学院信息查找是否存在该学院和参赛学生
		int k=dep_list.Find(Depart(depnum,"",depname));
		while(k==-1)
		{
			cout<<"请重新输入学院编号"<<endl;
			cin>>depnum;
			cout<<"输入参加学生姓名:";
			cin>>depname;
			k=dep_list.Find(Depart(depnum,"",depname));
		}
		// 输入成绩
		cout<<"输入项目编号:";
		cin>>spnum;
		k=sp_list.Find(Sport(spnum));
		while(k==-1)
		{
			cout<<"请重新输入:";
			cin>>spnum;
			k=sp_list.Find(Sport(spnum));
		}
		cout<<"输入成绩:(0-10)";
		cin>>mark;
		while(mark<0||mark>10)
		{
			cout<<"输入成绩有误!请重新输入:"<<endl;
			cin>>mark;
		}
		// 插入到成绩链表中
		Score sc(depnum,depname,spnum,mark);
		sc_list.Insert(sc_list.Length(),sc);
		fstream file_sc;
		file_sc.open("score.txt");
		if(!file_sc.is_open())
		{
			cout<<"文件打开失败!"<<endl;
			return;
		}
		file_sc<<sc;
		file_sc.close();
		cout<<"是否继续?Y/N: ";
		cin>>c;
		if(c=='N'||c=='n')
			break;
	}
}
// 输出比赛情况
void Operation::OutputScore()
{
	cout<<"输出比赛成绩 "<<endl;
	cout<<setw(10)<<"学院编号"<<setw(10)<<"比赛学生"<<setw(10)<<"比赛项目"<<setw(10)<<"比赛成绩"<<endl;
	sc_list.Print();
}


// 按学生成绩信息排名
void Operation::SortScore()
{
	// 对成绩链表按冒泡法排序
	for(int i=0;i<=sc_list.Length();i++)
	{
		for(int j=i+1;j<=sc_list.Length();j++)
		{
			if(sc_list.Get(i)<sc_list.Get(j))
			{
				Score temp=sc_list.Get(i);
				sc_list.Get(i)=sc_list.Get(j);
				sc_list.Get(j)=temp;
			}
		}
	}
	// 输出比赛成绩和排名
	for(i=1;i<=sc_list.Length();i++)
	{
		cout<<"第"<< i<<"名:"<<endl;
		cout<<setw(10)<<"学院编号"<<setw(10)<<"比赛学生"<<setw(10)<<"比赛项目"<<setw(10)<<"比赛成绩"<<endl;
		cout<<sc_list.Get(i);
	}
}
#endif //_OperationCpp_h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -