📄 operationcpp.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 + -