📄 stuinfomansys.cpp
字号:
cout<<"Please input the Name you want!"<<endl;
int flag=1; //标识,用来标识是否找到要找的东西
cin>>_Name;
for (int i=0;i<=Record;i++) //遍历文件中的元素
{
if(_Name==stu[i].S_Name) //以学号查找并打印查找到的东西
{
cout<<"What you want is:"<<endl;
cout<<setw(2)<<"次序"<<setw(8)<<" 学号"<<setw(5)<<" 姓名" //表头信息
<<setw(6)<<" 数学成绩"<<setw(6)<<" 语文成绩"<<setw(6)
<<" 英语成绩"<<setw(6)<<" 总分"<<" 总分排名"<<" 备注"<<endl;
cout<<"****************************************************************************"<<endl;
cout<<setw(2)<<stu[i].S_Position<<setw(13)<<stu[i].S_Number<<setw(6)<<stu[i].S_Name //输出所有信息
<<setw(10)<<stu[i].S_Score_Chinese<<setw(10)<<stu[i].S_Score_Math<<setw(10)
<<stu[i].S_Score_English<<setw(10)<<stu[i].S_Score_Totle<<stu[i].S_Rank<<endl;
flag=0;
break;
}
}
if(flag) //没有找到要找的元素,询问是否退出系统
{
cout<<"No find the number you want!"<<endl;
}
char p;
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
void StuInfor::Search_On_Number(StuInfor &L)
{
system("cls");
string _Number;
cout<<"\t Your position is Serach on Number Function!"<<endl;
cout<<"Please input the Number you want!"<<endl;
int flag=1; //标识,用来标识是否找到要找的东西
cin>>_Number;
for (int i=0;i<=Record;i++) //遍历文件中的元素
{
if(_Number==stu[i].S_Number) //以学号查找并打印查找到的东西
{
cout<<"What you want is:"<<endl;
cout<<setw(2)<<"次序"<<setw(8)<<" 学号"<<setw(5)<<" 姓名" //表头信息
<<setw(6)<<" 数学成绩"<<setw(6)<<" 语文成绩"<<setw(6)
<<" 英语成绩"<<setw(6)<<" 总分"<<" 总分排名"<<" 备注"<<endl;
cout<<"****************************************************************************"<<endl;
cout<<setw(2)<<stu[i].S_Position<<setw(13)<<stu[i].S_Number<<setw(6)<<stu[i].S_Name //输出所有信息
<<setw(10)<<stu[i].S_Score_Chinese<<setw(10)<<stu[i].S_Score_Math<<setw(10)
<<stu[i].S_Score_English<<setw(10)<<stu[i].S_Score_Totle<<stu[i].S_Rank<<endl;
flag=0;
break;
}
}
if(flag) //没有找到要找的元素,询问是否退出系统
{
cout<<"No find the number you want!"<<endl;
}
char p;
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
void StuInfor::DelMember(StuInfor &L)
{
system("cls");
char _load_temp='n';
if (!Open_flag)
{
cout<<"File hasn't loaded,and now load it?(y/n)"<<endl;
cin>>_load_temp;
if (_load_temp=='y')
{
L.ReadFromFile(L); //加载文件
}
else
L.Cmenu(L); //返回主菜单
}
cout<<"\t Your position is Delete list member Function!"<<endl;
int _Position; //定义一个位置,用于输入
int k;
cout<<"Please input the Position you want to Delete!"<<endl;
cin>>_Position;
char f,p;
int flag=1; //标识,用来标识是否找到要找的东西
for (int i=0;i<=Record;i++)
{
if(_Position==stu[i].S_Position) //以位置查找并打印查找到的东西
{
k=i;
flag=0;
cout<<"What you want to delete is:"<<endl;
cout<<setw(2)<<"次序"<<setw(8)<<" 学号"<<setw(5)<<" 姓名" //表头信息
<<setw(6)<<" 数学成绩"<<setw(6)<<" 语文成绩"<<setw(6)
<<" 英语成绩"<<setw(6)<<" 总分"<<" 总分排名"<<" 备注"<<endl;
cout<<"****************************************************************************"<<endl;
cout<<setw(2)<<stu[i].S_Position<<setw(13)<<stu[i].S_Number<<setw(6)<<stu[i].S_Name //输出所有信息
<<setw(10)<<stu[i].S_Score_Chinese<<setw(10)<<stu[i].S_Score_Math<<setw(10)
<<stu[i].S_Score_English<<setw(10)<<stu[i].S_Score_Totle<<stu[i].S_Rank<<endl;
cout<<"Now Delete it!(y/n)"<<endl;
break;
}
}
cin>>f;
if(flag) //没有找到要找的元素,询问是否退出系统
{
cout<<"No find your position!"<<endl;
cout<<"Continue to run the system?(y/n)"<<endl;
cin>>p;
if (p=='y')
{
L.Cmenu(L); //返回主菜单
}
else
exit(1);
}
else //找到了元素,可以进行操作了
{
if (f=='y')
{
for (i=_Position-1;i<k;i++)
{
stu[i]=stu[i+1];
stu[i].S_Position--; //使位置自动更改
}
Record--;
cout<<"You succeed to Delete it!\nAnd do not forget to save befor leave!"<<endl;
}
else
cout<<"Failed to Delete it"<<endl;
}
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
void StuInfor::InsertMember(StuInfor &L)
{
system("cls");
char _load_temp='n';
if (!Open_flag)
{
cout<<"File hasn't loaded,and now load it?(y/n)"<<endl;
cin>>_load_temp;
if (_load_temp=='y')
{
L.ReadFromFile(L); //加载文件
}
else
L.Cmenu(L); //返回主菜单
}
cout<<"\t Your position is at Insert list member Function!"<<endl;
int _Position;
cout<<"Please input the Position you want to insert element!"<<endl;
cin>>_Position;
char f,p;
int flag=1; //标识,用来标识是否找到要找的东西
int k;
for (int i=0;i<=Record;i++) //以位置查找并打印查找到的东西
{
if(_Position==stu[i].S_Position)
{
flag=0;
cout<<setw(2)<<"次序"<<setw(8)<<" 学号"<<setw(5)<<" 姓名" //表头信息
<<setw(6)<<" 数学成绩"<<setw(6)<<" 语文成绩"<<setw(6)
<<" 英语成绩"<<setw(6)<<" 总分"<<" 总分排名"<<" 备注"<<endl;
cout<<"****************************************************************************"<<endl;
cout<<setw(2)<<stu[i].S_Position<<setw(13)<<stu[i].S_Number<<setw(6)<<stu[i].S_Name //输出所有信息
<<setw(10)<<stu[i].S_Score_Chinese<<setw(10)<<stu[i].S_Score_Math<<setw(10)
<<stu[i].S_Score_English<<setw(10)<<stu[i].S_Score_Totle<<stu[i].S_Rank<<endl;
}
}
k=i;
if(flag) //没有找到要找的元素,询问是否退出系统
{
cout<<"No find your position!\n"<<endl;
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
else //找到了要找的元素,可以进行操作了
{
cout<<"Now Insert an element to this position!(y/n)"<<endl;
cin>>f;
if (f=='y')
{
for(i++;i>=_Position;i--)
{
stu[i]=stu[i-1]; //插入位置后边的元素后移一位
stu[i].S_Position++; //位置加1
}
// stu[k].S_Position--;
Record++;
cout<<"Now Please Input the element data:"<<endl;
cout<<"Input The Number:"<<endl;
cin>>stu[i].S_Number;
cout<<"Input The Name:"<<endl;
cin>>stu[i].S_Name;
cout<<"Input The S_Score_Chinese:"<<endl;
cin>>stu[i].S_Score_Chinese;
cout<<"Input The S_Score_Math:"<<endl;
cin>>stu[i].S_Score_Math;
cout<<"Input The S_Score_English:"<<endl;
cin>>stu[i].S_Score_English;
cout<<"You succeed to insert an element to the position!\nAnd do not forget to save befor leave!"<<_Position<<"!"<<endl;
}
else
cout<<"Failed to insert !"<<endl;
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
}
void StuInfor::SavetoFile(StuInfor &L)
{
system("cls");
char p;
char _load_temp='n';
if (!Open_flag)
{
cout<<"File hasn't loaded,and now load it?(y/n)"<<endl;
cin>>_load_temp;
if (_load_temp=='y')
{
L.ReadFromFile(L); //加载文件
}
else
L.Cmenu(L); //返回主菜单
}
ofstream ofile;
ofile.open("StuInfo.txt",ios_base::out);
for (int i=0;i<=Record;i++) //保存到文件中
{
ofile<<stu[i].S_Position<<' '<<stu[i].S_Number<<' '<<stu[i].S_Name<<' '<<
stu[i].S_Score_Chinese<<' '<<stu[i].S_Score_Math<<' '<<stu[i].S_Score_English<<endl;
}
ofile.close();
cout<<"Succeed to save!"<<endl;
cout<<"Continue to run the system?(y/n)"<<endl; //是否继续操作系统
cin>>p;
if (p=='y')
{
L.Cmenu(L);
}
else
exit(1);
}
/*经本人亲自测试,本程序有一定的健壮性和逻辑性,
运行之前请先在当前文件夹建立一个StuInfo.txt文件,
可以手动输入一些测试数据,次序为学号,姓名,语文成绩,
数学成绩,英语成绩,中间以空格分开,每一行代表一个学生信息,
注意在主菜单环境下请不要输入字母*/
int main()
{
StuInfor L;
L.Cmenu(L);
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -