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

📄 stuinfomansys.cpp

📁 班级通讯录管理系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
	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 + -