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

📄 学生信息管理系统.cpp

📁 学生信息管理系统: &#61548 招生办人员通过此系统从文件读入学生基本资料并可进行修改 &#61548 主修系教务员通过此系统从文件读入学生的主修成绩并可进行修改 &#61548 第二学位教
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstB::show_ms();
		cout<<setw(10)<<fdepA;
		output_file<<setw(10)<<fdepA;
		FirstA::show_fs();
	}
}
void Manag::show_BC()   //显示并用文件流输出获得主修学位B跟第二学位C双学位学生
{
	if(FirstB::Mpass()&&FirstC::Fpass())
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstB::show_ms();
		cout<<setw(10)<<fdepC;
		output_file<<setw(10)<<fdepC;
		FirstC::show_fs();
	}
}
void Manag::show_CA()   //显示并用文件流输出获得主修学位C跟第二学位A双学位学生
{
	if(FirstC::Mpass()&&FirstA::Fpass())
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstC::show_ms();
		cout<<setw(10)<<fdepA;
		output_file<<setw(10)<<fdepA;
		FirstA::show_fs();
	}
}
void Manag::show_CB()  //显示并用文件流输出获得主修学位C跟第二学位B双学位学生
{
	if(FirstC::Mpass()&&FirstB::Fpass())
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstC::show_ms();
		cout<<setw(10)<<fdepB;
		output_file<<setw(10)<<fdepB;
		FirstB::show_fs();
	}
}
void Manag::show_A()   //显示并用文件流输出只能获得主修学位A学生
{
	if((FirstA::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstA::show_ms();
	}
}
void Manag::show_B()   //显示并用文件流输出只能获得主修学位B学生
{
	if((FirstB::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstB::show_ms();
	}
}
void Manag::show_C()   //显示并用文件流输出只能获得主修学位C学生
{
	if((FirstC::Mpass())&&(!FirstA::Fpass()&&!FirstB::Fpass()&&!FirstC::Fpass()))
	{
		show();
		cout<<setw(10)<<mdep; 
		output_file<<setw(10)<<mdep;
		FirstC::show_ms();
	}
}
void Manag::show_NA()  //显示并用文件流输出不能获得主修学位A学生
{
	if(!FirstA::Mpass()){
		if(FirstA::Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep; 
		    output_file<<setw(10)<<mdep;
			FirstA::show_ms();}
	}
}
void Manag::show_NB()  //显示并用文件流输出不能获得主修学位B学生
{
	if(!FirstB::Mpass()){
		if(FirstB::Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep; 
		    output_file<<setw(10)<<mdep;
			FirstB::show_ms();}
	}
}
void Manag::show_NC()  //显示并用文件流输出不能获得主修学位C学生
{
	if(!FirstC::Mpass()){
		if(FirstC::Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep; 
		    output_file<<setw(10)<<mdep;
			FirstC::show_ms();}
	}
}
int main()
{
	Manag stu[20];      //用类Manag创建20个学生对象
	Base *a;            //声明4个类型指针
	FirstA *b;
	FirstB *c;
	FirstC *d;
    cout<<"**************学生信息管理系统**************\n";   //进入用户界面
	    input_file.open("Basefile.DAT");      //开始从文件读取数据
		for(int i=0;i<20;i++){
				a=&stu[i];
			    a->set();}
		input_file.close();
        for(i=0;i<20;i++){
			b=&stu[i];
			input_file.open("FfirstA.DAT");
			for(int j=0;j<20;j++){
				b->set_ms();}
			    input_file.close();
		}
	    for(i=0;i<20;i++){
			c=&stu[i];
			input_file.open("FfirstB.DAT");
			for(int j=0;j<20;j++){
				c->set_ms();}
			    input_file.close();
		}
		for(i=0;i<20;i++){
			d=&stu[i];
			input_file.open("FfirstC.DAT");
			for(int j=0;j<20;j++){
				d->set_ms();}
			    input_file.close();
		}
	    for(i=0;i<20;i++){
			b=&stu[i];
			input_file.open("SecondA.DAT");
			for(int j=0;j<20;j++){
				b->set_fs();}
			    input_file.close();
		}
		for(i=0;i<20;i++){
			c=&stu[i];
			input_file.open("SecondB.DAT");
			for(int j=0;j<20;j++){
				c->set_fs();}
			    input_file.close();
		}
		for(i=0;i<20;i++){
			d=&stu[i];
			input_file.open("SecondC.DAT");
			for(int j=0;j<20;j++){
				d->set_fs();}
			    input_file.close();
		}
		cout<<"文件数据读取读取完毕!\n";      //读取数据完毕,开始选择身份登录操作
		int n;     //用do while循环实现多次操作
		do{
		cout<<"请选择您的身份登录:\n1.招生办人员\n2.主修系教务员\n3.第二专业教务员\n4.学位办人员\n5.退出\n";
		cin>>n;
		if(n==1){
			cout<<"1.修改学生基本资料\n";     //实现招生办人员修改学生基本资料功能
			int n;cin>>n;       
			if(n==1){
				cout<<"输入要修改学生的学号:\n";   //要求输入要修改学生的学号并用for循环进行数据合法性判断
				long num;cin>>num;
				for(i=0;i<20;i++){
					a=&stu[i];
					a->modifyB(num);}    //如果输入学号与所给文件中有匹配的,调用函数进行修改
				if(a->modifyB(num)) cout<<"没有这个学号的学生!\n";  //如果没有匹配的,提示错误
				else cout<<"修改成功!\n";   
				temp=0;}
		    else cout<<"选择错误!\n";
			
		}
        else if(n==2){
			cout<<"1.主修系A\n2.主修系B\n3.主修系C\n";
			int n;cin>>n;     //主修系人员进行相关操作
			if(n==1){
				cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
			    int n;cin>>n;
				if(n==1){                  //显示并输出主修系A中的优秀学生到文件
				    output_file.open("GoutA.dat");
				    for(i=0;i<20;i++){
				     	b=&stu[i];
				    	b->show_good();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){             //显示并输出主修系A中的需补考学生到文件
					output_file.open("BoutA.dat");
		            for(i=0;i<20;i++){
			            b=&stu[i];
			            b->show_Mfail();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==3){              //显示并修改主修系A中学生成绩
					cout<<"输入要修改学生的学号:\n";  //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num;
					int mscore[6];
					for(i=0;i<20;i++){   
						b=&stu[i];
						input_file.open("FfirstA.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							b->modify_M(num1[j],num); //如果输入学号与所给文件中有匹配的,调用函数进行修改 
							for(int k=0;k<6;k++){
								input_file>>mscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";   //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
			    else cout<<"选择错误!\n";}
			else if(n==2){
				cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
			    int n;cin>>n;
				if(n==1){                  //显示并输出主修系B中的优秀学生到文件
				    output_file.open("GoutB.dat");
				    for(i=0;i<20;i++){
				     	c=&stu[i];
				    	c->show_good();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){                //显示并输出主修系B中的需补考学生到文件
					output_file.open("BoutB.dat");
		            for(i=0;i<20;i++){
			            c=&stu[i];
			            c->show_Mfail();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==3){              //修改主修系B的学生成绩
					cout<<"输入要修改学生的学号:\n";  //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num; 
					int mscore[7];
					for(i=0;i<20;i++){
						c=&stu[i];
						input_file.open("FfirstB.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							c->modify_M(num1[j],num);  //如果输入学号与所给文件中有匹配的,调用函数进行修改
							for(int k=0;k<7;k++){
								input_file>>mscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";   //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
				else cout<<"选择错误!\n";}
			else if(n==3){
				cout<<"1.输出优秀学生\n2.输出需补考学生\n3.修改学生成绩\n";
			    int n;cin>>n;
				if(n==1){                 //显示并输出主修系C中的优秀学生到文件
				    output_file.open("GoutC.dat");
				    for(i=0;i<20;i++){
				     	d=&stu[i];
				    	d->show_good();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){             //显示并输出主修系C中的需补考学生到文件
					output_file.open("BoutC.dat");
		            for(i=0;i<20;i++){
			            d=&stu[i];
			            d->show_Mfail();}
					output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==3){                 //修改主修系C的学生成绩
					cout<<"输入要修改学生的学号:\n";    //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num;
					int mscore[5];
					for(i=0;i<20;i++){
						d=&stu[i];
						input_file.open("FfirstC.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							d->modify_M(num1[j],num);   //如果输入学号与所给文件中有匹配的,调用函数进行修改
							for(int k=0;k<5;k++){
								input_file>>mscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";   //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
				else cout<<"选择错误!\n";}
			else cout<<"选择错误!\n";
		}
		else if(n==3){          //第二专业人员进行相关操作
			cout<<"1.第二专业A\n2.第二专业B\n3.第二专业C\n";
			int n;cin>>n;
			if(n==1){    
				cout<<"1.输出需补考学生\n2.修改学生成绩\n";
				int n;cin>>n;
				if(n==1){            //显示并输出第二专业A中的需补考学生到文件
					output_file.open("SoutA.dat");
		            for(i=0;i<20;i++){
			            b=&stu[i];
			            b->show_Ffail();}
			    	output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){
					cout<<"输入要修改学生的学号:\n";    //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num;
					int fscore[5];char fdep[30];
					for(i=0;i<20;i++){
						b=&stu[i];
						input_file.open("SecondA.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							b->modify_F(num1[j],num);   //如果输入学号与所给文件中有匹配的,调用函数进行修改
							input_file>>fdep;
							for(int k=0;k<5;k++){
								input_file>>fscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";     //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
				else cout<<"选择错误!\n";}
			else if(n==2){
				cout<<"1.输出需补考学生\n2.修改学生成绩\n";
				int n;cin>>n;
				if(n==1){             //显示并输出第二专业B中的需补考学生到文件
					output_file.open("SoutB.dat");
		            for(i=0;i<20;i++){
			            c=&stu[i];
			            c->show_Ffail();}
				    output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){
					cout<<"输入要修改学生的学号:\n";      //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num;
					int fscore[4];char fdep[30];
					for(i=0;i<20;i++){
						c=&stu[i];
						input_file.open("SecondB.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							c->modify_F(num1[j],num);      //如果输入学号与所给文件中有匹配的,调用函数进行修改
							input_file>>fdep;
							for(int k=0;k<4;k++){
								input_file>>fscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";   //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
				else cout<<"选择错误!\n";}
			else if(n==3){
				cout<<"1.输出需补考学生\n2.修改学生成绩\n";
				int n;cin>>n;
				if(n==1){                     //显示并输出第二专业C中的需补考学生到文件
					output_file.open("SoutC.dat");
		            for(i=0;i<20;i++){
			            d=&stu[i];
			            d->show_Ffail();}
			     	output_file.close();
				cout<<"成功输出数据到文件!\n";}
				else if(n==2){
					cout<<"输入要修改学生的学号:\n";     //要求输入要修改学生的学号并用for循环进行数据合法性判断
				    long num;cin>>num;
					int fscore[3];char fdep[30];
					for(i=0;i<20;i++){
						d=&stu[i];
						input_file.open("SecondC.dat");
						for(int j=0;j<20;j++){
							input_file>>num1[j];
							d->modify_F(num1[j],num);    //如果输入学号与所给文件中有匹配的,调用函数进行修改
							input_file>>fdep;
							for(int k=0;k<3;k++){
								input_file>>fscore[k];}
						}
						input_file.close();
					}
			    	if(temp==0) cout<<"没有这个学号的学生!\n";    //如果没有匹配的,提示错误
				    else cout<<"修改成功!\n";
		         temp=0;}
				else cout<<"选择错误!\n";}
			else cout<<"选择错误!\n";
		}
		else if(n==4){                 //学位办人员进行相关操作
			cout<<"1.输出获得双学位学生\n2.输出只获得主学位学生\n3.输出不能获得学位学生\n";
			int n;cin>>n;
			if(n==1){              //显示并输出能获得双学位学生到文件
				output_file.open("DdoubleA.dat");
		        for(i=0;i<20;i++){
		        	stu[i].show_AB();
		        	stu[i].show_AC();}
	        	output_file.close();
                output_file.open("DdoubleB.dat");
	        	for(i=0;i<20;i++){
		        	stu[i].show_BA();
		        	stu[i].show_BC();}
	         	output_file.close();
	        	output_file.open("DdoubleC.dat");
	        	for(i=0;i<20;i++){
		        	stu[i].show_CA();
			        stu[i].show_CB();}
				output_file.close();
			cout<<"成功输出数据到文件!\n";}
			else if(n==2){           //显示并输出只能获得主修学位学生到文件
				output_file.open("FpassA.dat");
		        for(i=0;i<20;i++){
			        stu[i].show_A();}
		        output_file.close();
		        output_file.open("FpassB.dat");
	        	for(i=0;i<20;i++){
			        stu[i].show_B();}
		        output_file.close();
		        output_file.open("FpassC.dat");
		        for(i=0;i<20;i++){
			        stu[i].show_C();}
				output_file.close();
			cout<<"成功输出数据到文件!\n";}
			else if(n==3){            //显示并输出不能获得主修学位学生到文件
				output_file.open("NpassA.dat");
		        for(i=0;i<20;i++){
			        stu[i].show_NA();}
		        output_file.close();
		        output_file.open("NpassB.dat");
		        for(i=0;i<20;i++){
			        stu[i].show_NB();}
		        output_file.close();
		        output_file.open("NpassC.dat");
		        for(i=0;i<20;i++){
			        stu[i].show_NC();}
				output_file.close();
			cout<<"成功输出数据到文件!\n";}
			else cout<<"输出数据失败!\n";
		}
		else if(n!=5) cout<<"选择错误!\n";
		}while(n!=5);
		cout<<"谢谢使用!\n";
    return 0;
}

⌨️ 快捷键说明

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