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

📄 学生信息管理系统.cpp

📁 学生信息管理系统: &#61548 招生办人员通过此系统从文件读入学生基本资料并可进行修改 &#61548 主修系教务员通过此系统从文件读入学生的主修成绩并可进行修改 &#61548 第二学位教
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#include "学生信息管理系统.h"
#include <fstream.h>
#include <string.h>
#include <iomanip.h>
ifstream input_file;
ofstream output_file;
char fdepA[30];      //记录第二专业名
char fdepB[30];
char fdepC[30];
long num1[20];       //修改资料时要用到的判断数据合法性数据
int temp=0;
void Base::set()     //设置学生基本资料
{
	input_file>>num>>name>>sex>>age>>mdep>>addr;
}
void Base::show()    //显示并输出学生基本资料到文件
{
	cout<<setw(10)<<num<<setw(10)<<name<<setw(3)<<sex<<setw(5)<<age<<setw(10)<<addr<<endl;
	output_file<<setw(10)<<num<<setw(10)<<name<<setw(3)<<sex<<setw(5)<<age<<setw(10)<<addr<<endl;
}
long Base::get_num()    //获取学号
{
	return num;
}
int Base::modifyB(long num1)   //修改学生基本资料
{
	if(num==num1){
		temp++;
		cout<<"请输入该学生的名字,性别,年龄,地址:\n";
		cin>>name>>sex>>age>>addr;}
	if(temp==0) return 1;
	else return 0;
}
FirstA::FirstA()   //构造函数,实现成绩初始化为0
{
	for(int i=0;i<6;i++)
		Mscore[i]=0;
	for(i=0;i<5;i++)
		Fscore[i]=0;
}
void FirstA::set()  //屏蔽基本资料设置函数
{
}
int FirstA::modifyB(long)   //屏蔽基本资料修改函数
{
	return 0;
}
void FirstA::set_ms()    //用文件流读取设置主修成绩
{
    long num1;
	int Mscore1[6];
	input_file>>num1;
	if(num1==num){
		strcpy(fdepA,mdep);
		for(int i=0;i<6;i++){
		input_file>>Mscore[i];}
	}
	else for(int i=0;i<6;i++){
		input_file>>Mscore1[i];}
}
void FirstA::set_fs()   //用文件流读取设置第二专业成绩
{
    long num1;
	int Fscore1[5];
	char fdepA1[30];
	input_file>>num1;
	input_file>>fdepA1;
	if(num1==num){
		for(int i=0;i<5;i++){
		input_file>>Fscore[i];}
	}
	else for(int i=0;i<5;i++){
		input_file>>Fscore1[i];}
}
void FirstA::show_ms()  //显示并用文件流输出主修成绩
{
    for(int i=0;i<6;i++){
		cout<<setw(5)<<Mscore[i];
		output_file<<setw(5)<<Mscore[i];}
	cout<<endl;
    output_file<<endl;
}
void FirstA::show_fs()   //显示并用文件流输出第二专业成绩
{
	for(int i=0;i<5;i++){
		cout<<setw(5)<<Fscore[i];
		output_file<<setw(5)<<Fscore[i];}
	cout<<endl;
	output_file<<endl;
}
void FirstA::show_good()   //显示并用文件流输出成绩优秀学生
{
	int m=0,n=0;
	for(int i=0;i<6;i++){
		if(Mscore[i]>=85) m++;}
	for(i=0;i<6;i++){
		if(Mscore[i]>=70) n++;}
	if(m>=3&&n==6){
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		show_ms();}
}
int FirstA::Mpass()   //判断是否主修系需要补考函数算法
{
	int m=0;
	for(int i=0;i<6;i++){
		if(Mscore[i]<60) m++;}
	if(m==0) return 1;
	else return 0;
}
void FirstA::show_Mfail()   //显示并用文件流输出主修系需要补考学生
{
	if(!Mpass()){
		if(Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep;
			output_file<<setw(10)<<mdep;
		    show_ms();}
	}
}
int FirstA::Fpass()   //判断是否第二专业需要补考
{
	int m=0;
	for(int i=0;i<5;i++){
		if(Fscore[i]<60) m++;}
	if(m==0) return 1; else return 0;
}
void FirstA::show_Ffail()   //显示并用文件流输出第二专业需要补考学生
{
	if(!Fpass()){
		if(Fscore[0]!=0){
			show();
			cout<<setw(10)<<fdepA;
			output_file<<setw(10)<<fdepA;
		    show_fs();}
	}
}
void FirstA::modify_M(long& num1,long num)  //修改主修成绩
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(6门):\n";
		for(int i=0;i<6;i++){
			cin>>Mscore[i];}
	}
}
void FirstA::modify_F(long& num1,long num)  //修改第二专业成绩
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(5门):\n";
		for(int i=0;i<5;i++){
			cin>>Fscore[i];}
	}
}
FirstB::FirstB()    //类FirstB函数功能与FirstA相同
{
	for(int i=0;i<7;i++)
		Mscore[i]=0;
	for(i=0;i<4;i++)
		Fscore[i]=0;
}
void FirstB::set()
{
}
int FirstB::modifyB(long)
{
	return 0;
}
void FirstB::set_ms()
{   
	long num1;
	int Mscore1[7];
	input_file>>num1;
    if(num1==num){
		strcpy(fdepB,mdep);
		for(int i=0;i<7;i++){
		input_file>>Mscore[i];}
	}
	else for(int i=0;i<7;i++){
		input_file>>Mscore1[i];}
}
void FirstB::set_fs()
{
	long num1;
	int Fscore1[4];
	char fdepB1[30];
	input_file>>num1;
	input_file>>fdepB1;
    if(num1==num){
		for(int i=0;i<4;i++){
		input_file>>Fscore[i];}
	}
	else for(int i=0;i<4;i++){
		input_file>>Fscore1[i];}
}
void FirstB::show_ms()
{
	for(int i=0;i<7;i++){
		cout<<setw(5)<<Mscore[i];
		output_file<<setw(5)<<Mscore[i];}
	cout<<endl;
	output_file<<endl;
}
void FirstB::show_fs()
{
	for(int i=0;i<4;i++){
		cout<<setw(5)<<Fscore[i];
		output_file<<setw(5)<<Fscore[i];}
	cout<<endl;
	output_file<<endl;
}
void FirstB::show_good()
{
	int m=0,n=0;
	for(int i=0;i<7;i++){
		if(Mscore[i]>=85) m++;}
	for(i=0;i<7;i++){
		if(Mscore[i]>=70) n++;}
	if(m>=3&&n==7){
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		show_ms();}
}
int FirstB::Mpass()
{
	int m=0;
	for(int i=0;i<7;i++){
		if(Mscore[i]<60) m++;}
	if(m==0) return 1;
	else return 0;
}
void FirstB::show_Mfail()
{
	if(!Mpass()){
		if(Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep;
			output_file<<setw(10)<<mdep;
		    show_ms();}
	}
}
int FirstB::Fpass()
{
	int m=0;
	for(int i=0;i<4;i++){
		if(Fscore[i]<60) m++;}
	if(m==0) return 1; else return 0;
}
void FirstB::show_Ffail()
{
	if(!Fpass()){
		if(Fscore[0]!=0){
			show();
			cout<<setw(10)<<fdepB;
			output_file<<setw(10)<<fdepB;
		    show_fs();}
	}
}
void FirstB::modify_M(long& num1,long num)
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(7门):\n";
		for(int i=0;i<7;i++){
			cin>>Mscore[i];}
	}
}
void FirstB::modify_F(long& num1,long num)
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(4门):\n";
		for(int i=0;i<4;i++){
			cin>>Fscore[i];}
	}
}
FirstC::FirstC()  //类FirstC函数功能与FirstA相同
{
	for(int i=0;i<5;i++)
		Mscore[i]=0;
	for(i=0;i<3;i++)
		Fscore[i]=0;
}
void FirstC::set()
{
}
int FirstC::modifyB(long)
{
	return 0;
}
void FirstC::set_ms()
{
	long num1;
	int Mscore1[5];
	input_file>>num1;
	if(num1==num){
		strcpy(fdepC,mdep);
        for(int i=0;i<5;i++){
		input_file>>Mscore[i];}
	}
	else for(int i=0;i<5;i++){
		input_file>>Mscore1[i];}
}
void FirstC::set_fs()
{
	long num1;
	int Fscore1[3];
	char fdepC1[30];
	input_file>>num1;
	input_file>>fdepC1;
    if(num1==num){
		for(int i=0;i<3;i++){
		input_file>>Fscore[i];}
	}
	else for(int i=0;i<3;i++){
		input_file>>Fscore1[i];}
}
void FirstC::show_ms()
{
	for(int i=0;i<5;i++){
		cout<<setw(5)<<Mscore[i];
		output_file<<setw(5)<<Mscore[i];}
	cout<<endl;
	output_file<<endl;
}
void FirstC::show_fs()
{
	for(int i=0;i<3;i++){
		cout<<setw(5)<<Fscore[i];
		output_file<<setw(5)<<Fscore[i];}
	cout<<endl;
	output_file<<endl;
}
void FirstC::show_good()
{
	int m=0,n=0;
	for(int i=0;i<5;i++){
		if(Mscore[i]>=85) m++;}
	for(i=0;i<5;i++){
		if(Mscore[i]>=70) n++;}
	if(m>=3&&n==5){
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		show_ms();}
}
int FirstC::Mpass()
{
	int m=0;
	for(int i=0;i<5;i++){
		if(Mscore[i]<60) m++;}
	if(m==0) return 1;
	else return 0;
}
void FirstC::show_Mfail()
{
	if(!Mpass()){
		if(Mscore[0]!=0){
			show();
			cout<<setw(10)<<mdep;
			output_file<<setw(10)<<mdep;
		    show_ms();}
	}
}
int FirstC::Fpass()
{
	int m=0;
	for(int i=0;i<3;i++){
		if(Fscore[i]<60) m++;}
	if(m==0) return 1; else return 0;
}
void FirstC::show_Ffail()
{
	if(!Fpass()){
		if(Fscore[0]!=0){
			show();
			cout<<setw(10)<<fdepC;
			output_file<<setw(10)<<fdepC;
		    show_fs();}
	}
}
void FirstC::modify_M(long& num1,long num)
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(5门):\n";
		for(int i=0;i<5;i++){
			cin>>Mscore[i];}
	}
}
void FirstC::modify_F(long& num1,long num)
{
	if(num==num1&&num1==get_num()){
		temp++;
		cout<<"请输入该学生的成绩(3门):\n";
		for(int i=0;i<3;i++){
			cin>>Fscore[i];}
	}
}
void Manag::set_ms()    //屏蔽设置主修成绩函数
{
}
void Manag::set_fs()    //屏蔽设置第二专业成绩函数
{
}
int Manag::modify_M(long&,long)  //屏蔽修改主修成绩函数
{
	return 0;
}
int Manag::modify_F(long&,long)  //屏蔽修改第二专业成绩函数
{
	return 0;
}
void Manag::show_AB()    //显示并用文件流输出获得主修学位A跟第二学位B双学位学生
{
	if(FirstA::Mpass()&&FirstB::Fpass())
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstA::show_ms();
		cout<<setw(10)<<fdepB;
		output_file<<setw(10)<<fdepB;
		FirstB::show_fs();
	}
}
void Manag::show_AC()   //显示并用文件流输出获得主修学位A跟第二学位C双学位学生
{
	if(FirstA::Mpass()&&FirstC::Fpass())
	{
		show();
		cout<<setw(10)<<mdep;
		output_file<<setw(10)<<mdep;
		FirstA::show_ms();
		cout<<setw(10)<<fdepC;
		output_file<<setw(10)<<fdepC;
		FirstC::show_fs();
	}
}
void Manag::show_BA()   //显示并用文件流输出获得主修学位B跟第二学位A双学位学生
{
	if(FirstB::Mpass()&&FirstA::Fpass())
	{

⌨️ 快捷键说明

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