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

📄 学生成绩管理系统.txt

📁 一个简单的学生管理系统
💻 TXT
字号:
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class stu
{
	char name[20];
	double math,chinese,english,average,sum;
public:
	stu()
	{
	}
	stu(char n[20],double ma,double chin,double eng)
	{
		strcpy(name,n);
		math=ma;
		chinese=chin;
		english=eng;
	}
	double getsum()
    {
		sum=chinese+english+math;
		return sum;
	}
	double getaver()
	{
		average=getsum()/3;
		return average;
	}
		friend void main();
};

	
void main()
{
	cout<<"请选择您需要的操作!"<<endl;
	cout<<"操作:"<<endl;
	cout<<"(0)数据录入"<<endl;
    cout<<"(1)增加人员"<<endl;
	cout<<"(2)删除人员"<<endl;
	cout<<"(3)修改数据"<<endl;
	cout<<"查询:"<<endl;
	cout<<"(4)按总成绩查询"<<endl;
	cout<<"(5)按姓名查询"<<endl;
    cout<<"(6)输出所有学生的数据"<<endl;
	cout<<"成绩名词"<<endl;
	cout<<"(7)按总分查询排名"<<endl;
	cout<<"(8)按语文查询排名"<<endl;
	cout<<"(9)按数学查询排名"<<endl;
	cout<<"(y)按英语查询排名"<<endl;
	cout<<"选择相关操作请输入相对的括号里的阿拉伯数字!"<<endl;
	char p;char w;
    stu *s[50];
	ofstream *file[50];
    int i=0;
	int j=0;
	bool flag2=0;
	do
	{
		cin>>p;
		if((p>='0'&&p<='10'))
		flag2=1;
        else
	cout<<"指令错误!请重新输入:"<<endl;
	}while(flag2==0);
	do{
	switch(p)
	{
	case '0':
		{
			char c;
			char name[20];double math,chinese,english;
			do{
			cout<<"请输入姓名"<<endl;
				cin>>name;
			cout<<"请输入数学成绩:"<<endl;
				cin>>math;
				cout<<"请输入语文成绩:"<<endl;
				cin>>chinese;
				cout<<"请输入外语成绩:"<<endl;
				cin>>english;
				file[j]=new ofstream("d:\\document",ios::ate);
				*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
			    j++;
				s[i]=new stu(name, math, chinese, english);
			i++;
				cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
			cin>>c;
			flag2=0;
			do
			{
			if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
			else
				flag2=1;
			}while(flag2==0);
			}while(c=='y');
			break;
		}
	case '4':
		{
			double t;char c;
			do
			{
				int flag1=0;
				cout<<"请输入你要查询学生的总成绩"<<endl;
				cin>>t;
				for(int q=0;q<i;q++)
				{
					if(s[q]->getsum()==t)
					{
						flag1=1;
                        cout<<"您要查询的学生是:"<<(*s[q]).name<<endl;
					}
				}
				if(flag1==0)
					cout<<"对不起!您要查询的学生不存在!"<<endl;
                     cout<<"您想继续查询吗?(y/n)"<<endl;
					 cin>>c;
					 if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
					 }
			while(c=='y');
			break;
		}

	case '5':
		{
		char n[20];int j=0;char c;
			do{
			int flag=0;
			cout<<"请输入你要查询的学生姓名"<<endl;
			cin>>n;
			for(int j=0;j<i;j++)
			{
				if(strcmp(n,(*s[j]).name)==0)
				{
					flag=1;
					cout<<"您要查询的学生是:"<<(*s[j]).name<<endl;
				    cout<<(*s[j]).name<<"的总成绩成绩是"<<(*s[j]).getsum()<<endl<<"平均成绩是:"<<(*s[j]).getaver()<<endl;
				}
			}
			if(flag==0)
            cout<<"对不起!您要查询的学生不存在!"<<endl;
			cout<<"您想继续查询吗?(y/n)"<<endl;
			cin>>c;
			if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
			}
			while(c=='y');
			break;
		}
	case '1':
		{
			char name[20];double math,chinese,english;
			char c;
			do
			{
				cout<<"请输入您要增加的学生的姓名:"<<endl;
				cin>>name;
				cout<<"请输入数学成绩:"<<endl;
				cin>>math;
				cout<<"请输入语文成绩:"<<endl;
				cin>>chinese;
				cout<<"请输入外语成绩:"<<endl;
				cin>>english;
				file[j]=new ofstream("d:\\document",ios::ate);
				*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"语文成绩"<<chinese<<"外语成绩"<<english<<endl;
			    j++;
			s[i]=new stu(name, math, chinese, english);
			i++;
				cout<<"数据录入成功,想继续录入吗(y/n)"<<endl;
			cin>>c;
			if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
			}while(c=='y');
			break;
		}
	    case '2':
			{
				char name[20];bool flag3=0;char c;
				do{
				cout<<"请输入您要删除的学生姓名:"<<endl;
				cin>>name;
				for(int h=0;h<i;h++)
				{
					if(strcmp(name,s[h]->name)==0)
					{
						flag3=1;
						i--;
						do{
							s[h]=s[h+1];
							h++;
						}while(h<=i);
					}
				}
				if(flag3==0)
					cout<<"您要求删除的对象本来就不存在!请检查输入的正确性!";
                cout<<"要继续删除吗?(y/n)"<<endl;
			       cin>>c;
			     if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
			}while(c=='y');
			break;
		}
		case '3':
			{
				char name[20];double mat,chin,eng;flag2=0;
			    char c;
			do
			{	
				cout<<"请输入您要修改的学生的姓名:"<<endl;
				cin>>name;
                 for(int h=0;h<i;h++)
				{
                if(strcmp(name,s[h]->name)==0)
                {
					flag2=1;
				cout<<"请输入新的数学成绩:"<<endl;
				cin>>mat;
				cout<<"请输入新的语文成绩:"<<endl;
				cin>>chin;
				cout<<"请输入新的外语成绩:"<<endl;
				cin>>eng;
					s[h]->chinese=chin;
					s[h]->math=mat;
					s[h]->english=eng;
				cout<<"数据修改成功!";
				}
				}
				 if(flag2==0)
				 {
					 cout<<"您要修改的学生本来就不存在!请检查重新输入!"<<endl;
				 }
            cout<<"想继续修改吗(y/n)"<<endl;
			cin>>c;
			if(c!='y'&&c!='n')
			{
				cout<<"指令错误!请重新输入!"<<endl;
			    cin>>c;
			}
			}while(c=='y');
			break;
		}

		 case '6':
			 {
				 cout<<"本系统所有学生数据如下:"<<endl;
				 if(i==0)
				 cout<<"管理系统中没有录入数据或者数据已经被删除!"<<endl;
				 for(int k=0;k<i;k++)
				 {
					 cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
					 "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
					 <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<(*s[k]).getsum()
					 <<"平均分:"<<" "<<(*s[k]).getaver()<<endl;
				 }
				 break;
			 }
		 case '7':
			 {
				 int t;stu b;

				 cout<<"本系统所以学生排名如下:"<<endl;
				 for(int x=0;x<i-1;x++)
				 {
                     t=x;
					 for(int y=x+1;y<i;y++)
					 {
						 if((s[t]->getsum())<(s[y]->getsum()))
							 t=y;
						 if(t!=x)
                         {
					       b=*s[x];
						   *s[x]=*s[t];
						   *s[t]=b;
						 }
					 }
				 }
				if(i==0)
						 cout<<"管理系统中没有录入数据或者数据已经被删除!";
					 for(int k=0;k<i;k++)
				 {
					 cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
					 "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
					 <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
					 <<"平均分:"<<" "<<s[k]->getaver()<<endl;
				 }
					 break;
			 }
			 case '8':
			 {
				 int t;stu b;

				 cout<<"本系统所以学生语文排名如下:"<<endl;
				 for(int x=0;x<i-1;x++)
				 {
                     t=x;
					 for(int y=x+1;y<i;y++)
					 {
						 if((s[t]->chinese)<(s[y]->chinese))
							 t=y;
						 if(t!=x)
                         {
					       b=*s[t];
						   *s[t]=*s[x];
						   *s[x]=b;
						 }
					 }
				 }
				
				 if(i==0)
						 cout<<"管理系统中没有录入数据或者数据已经被删除!";
					 for(int k=0;k<i;k++)
				 {
					 cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
					 "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
					 <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
					 <<"平均分:"<<" "<<s[k]->getaver()<<endl;
				 }
					 break;
			 }
			 case '9':
			 {
				 int t;stu b;

				 cout<<"本系统所以学生数学排名如下:"<<endl;
				 for(int x=0;x<i-1;x++)
				 {
                     t=x;
					 for(int y=x+1;y<i;y++)
					 {
						 if((s[t]->math)<(s[y]->math))
							 t=y;
						 if(t!=x)
                         {
					       b=*s[t];
						   *s[t]=*s[x];
						   *s[x]=b;
						 }
					 }
				 }
				
				 if(i==0)
						 cout<<"管理系统中没有录入数据或者数据已经被删除!";
					 for(int k=0;k<i;k++)
				 {
					 cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
					 "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
					 <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
					 <<"平均分:"<<" "<<s[k]->getaver()<<endl;
				 }
					 break;
			 }
			 case 'y':
			 {
				 int t;stu b;

				 cout<<"本系统所以学生英语排名如下:"<<endl;
				 for(int x=0;x<i-1;x++)
				 {
                     t=x;
					 for(int y=x+1;y<i;y++)
					 {
						 if((s[t]->english)<(s[y]->english))
							 t=y;
						 if(t!=x)
                         {
					       b=*s[t];
						   *s[t]=*s[x];
						   *s[x]=b;
						 }
					 }
				 }
				
				 if(i==0)
						 cout<<"管理系统中没有录入数据或者数据已经被删除!";
					 for(int k=0;k<i;k++)
				 {
					 cout<<k+1<<" "<<"姓名:"<<" "<<s[k]->name<<
					 "语文:"<<" "<<s[k]->chinese<<"数学:"<<" "<<s[k]->math
					 <<"外语:"<<" "<<s[k]->english<<"总分:"<<" "<<s[k]->getsum()
					 <<"平均分:"<<" "<<s[k]->getaver()<<endl;
				 }
			 }
			 break;
	}

	cout<<"您想继续进行其他操作吗?(y/n)"<<endl;
		bool flag4=0;	
	do
		{
		cin>>w;
		if(w!='y'&&w!='n')
		cout<<"指令错误!请重新输入!"<<endl;
		else
			flag4=1;
		}while(flag4==0);
		if(w=='y')
			cout<<"请输入操作代码(0 录入/4 按总分查询/5 按姓名查询/1 增加人员/2 删除人员/3 修改数据/6 显示所有成员数据/7 按总分排名/8 按语文排名/9按数学排名/y按英语排名)"<<endl;
		cin>>p;
	}while(w=='y');
	for(int x=0;x<i;x++)
	{
		delete s[x];
		cout<<"delete all members!"<<endl;
	}
          
}

⌨️ 快捷键说明

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