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

📄 邢容梅.cpp

📁 也是一个学生成绩管理系统
💻 CPP
字号:
#include<iostream.h>
#include<string.h>
#include<fstream.h>
class student
{
private:
	char name[8];
	double math,english,cjj,average,sum;
public:
	student(){};
	student(char n[8],double ma,double en,double cj)
	{strcpy(name,n);
	math=ma;english=en;cjj=cj;}
	double getsum()
	{sum=english+cjj+math;
	return sum;}
	double getaver()
	{average=sum/3;
	return average;}
	friend void main();
};
void main()
{ 
	cout<<"欢迎进入学生管理系统\n";
    cout<<"请选取所要进行的操作\n";
    cout<<"学生数据输入请按0\n";
	cout<<"按姓名查询请按1\n";
    cout<<"成绩统计:\n";
    cout<<"输出各科平时成绩,各等级人数,及比例请按2\n";
    cout<<"排名:\n";
    cout<<"按总成绩排名请按3\n";
    cout<<"按高数排名请按4\n";
    cout<<"按C++排名请按5\n";
    cout<<"修改学生请按6\n";
	cout<<"添加学生请按7\n";
	cout<<"删除学生请按8\n";
	student *stu[10];
	int t;
	char v;
	int i=0;
	int j=0;
    ofstream *file[20];
    bool flag2=0;
	do
	{
    do 
	{
	cin>>t;
	if((t>='0')&&(t<='8'))
	    flag2=1;
	else
	{
		cout<<"指令错误,请从新输入:"<<endl;
	}
	}while(flag2=0);
   switch(t)
	{
case 0:
	{  

		char name[8];double math,english,cjj;
	    for(i=0,j=0;i<10;i++,j++)
		{
        cout<<"输入姓名:.\n";
        cin>>name;
        cout<<"输入数学成绩:.\n";
        cin>>math;
        cout<<"输入英语成绩:.\n";
        cin>>english;
        cout<<"输入C++成绩:.\n";
        cin>>cjj;
		file[j]=new ofstream("d:\\document",ios::ate);
		*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"英语成绩"<<english<<"C++成绩"<<cjj<<endl;
		stu[i]=new student(name,math,english,cjj);
        cout<<"数据录入成功"<<endl;
		}
	    break;
	}
case 1:
	{
	char n[8];
	char c;
	bool flag1=0;
	do
	{
		cout<<"请输入所要查询学生的姓名:"<<endl;
		cin>>n;
		for(int j=0;j<10;j++)
			if(strcmp(n,(*stu[j]).name)==0)
			{
				flag1=1;
				cout<<"您要查询学生是:"<<(*stu[j]).name<<endl;
				cout<<"他的平均成绩:"<<(*stu[j]).getaver()<<"总成绩:"<<(*stu[j]).getsum()<<"数学成绩:"<<(*stu[j]).math<<"英语成绩:"<<(*stu[j]).english<<"C++成绩:"<<(*stu[j]).cjj<<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 6:
	{
		char name[8];
		double mat,eng,cjjj;
		char c;
		bool flag=0;
		do
		{
			cout<<"请输入您要修改学生的姓名:";
			cin>>name;
			for(int h=0;h<i;h++)
			{
				if(strcmp(name,stu[h]->name)==0)
				{
					flag=1;
					cout<<"请输入新的英语成绩:"<<endl;
					cin>>eng;
					cout<<"请输入新的数学成绩"<<endl;
					cin>>mat;
					cout<<"请输入新的C++成绩"<<endl;
					cin>>cjjj;
					stu[h]->english=eng;
					stu[h]->math=mat;
					stu[h]->cjj=cjjj;
					cout<<"数据修改成功";
				}
			}
			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 4:
	{
		student a;
		bool flag3=0;
		do
		{
			flag3=1;
		    cout<<"所有学生按数学成绩排名如下:"<<endl;
		    for(int x=0;x<9;x++)
			    for(int y=x;y<10-x;y++)
				{
			    	if(stu[y]->math<stu[y+1]->math)
					{
					    a=*stu[y];
				        *stu[y]=*stu[y+1];
				        *stu[y+1]=a;
					}
				}
		}while(flag3==0);
		if(flag3==0)
			cout<<"管理系统里没有录入者或者录入者已被删除";
		for(int k=0;k<10;k++)
			cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
	}
    	break;
case 5:
	{
		student a;
		bool flag3=0;
		do
		{
			flag3=1;
		    cout<<"所有学生按C++成绩排名如下:"<<endl;
		    for(int x=0;x<9;x++)
			    for(int y=x;y<10-x;y++)
				{
			    	if(stu[y]->cjj<stu[y+1]->cjj)
					{
					    a=*stu[y];
				        *stu[y]=*stu[y+1];
				        *stu[y+1]=a;
					}
				}
		}while(flag3==0);
		if(flag3==0)
			cout<<"管理系统里没有录入者或者录入者已被删除";
		for(int k=0;k<10;k++)
			cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
	}
    	break;
case 3:
	{
		student a;
		bool flag3=0;
		do
		{
			flag3=1;
		    cout<<"所有学生按总成绩成绩排名如下:"<<endl;
		    for(int x=0;x<9;x++)
			    for(int y=x;y<10-x;y++)
				{
			    	if(stu[y]->sum<stu[y+1]->sum)
					{
					    a=*stu[y];
				        *stu[y]=*stu[y+1];
				        *stu[y+1]=a;
					}
				}
		}while(flag3==0);
		if(flag3==0)
			cout<<"管理系统里没有录入者或者录入者已被删除";
		for(int k=0;k<10;k++)
			cout<<k+1<<"姓名"<<stu[k]->name<<"平均成绩"<<stu[k]->average<<"英语:"<<stu[k]->english<<"C++:"<<stu[k]->cjj<<"数学:"<<stu[k]->math<<"总成绩:"<<stu[k]->sum<<endl;
	}
    	break;

case 7:
	{
		char name[8];
		double math,english,cjj;
		char c;
		do 
		{
			cout<<"请输入你所要添加学生的姓名:"<<endl;
			cin>>name;
			cout<<"数学成绩:"<<endl;
			cin>>math;
			cout<<"英语成绩:"<<endl;
			cin>>english;
			cout<<"C++成绩:"<<endl;
			cin>>cjj;
			file[j]=new ofstream("d:\\document",ios::ate);
			*file[j]<<"姓名"<<name<<"数学成绩"<<math<<"英语成绩"<<english<<"C++成绩"<<cjj<<endl;
			j++;
			stu[i]=new student(name,math,english,cjj);
			i++;
			cout<<"数据录入成功,想输入数据吗(y/n)"<<endl;
		    cin>>c;
			if(c!='y'&&c!='n')
			{
				cout<<"指令错误,请从新输入"<<endl;
				cin>>c;
			}
		}while(c=='y');
	}
		break;
case 8:
	{
		char name[20];bool flag3=0;
		char c;
		do
		{
			cout<<"请输入您要删除学生的姓名:"<<endl;
			cin>>name;
			for(int h=0;h<i;h++)
			{
				if(strcmp(name,stu[h]->name)==0)
				{
					flag3=1;
					i--;
					do{
						stu[h]=stu[h+1];
						h++;
					}while(h<=i);
				}
			}
			if(flag3==0)
				cout<<"您要删除对象不存在,请检查"<<endl;
			cout<<"要继续删除吗(y/n)"<<endl;
	        cin>>c;
	     	if(c!='y'&&c!='n')
			{
		    	cout<<"指令错误,请从新输入"<<endl;
		    	cin>>c;
			}
		}while(c=='y');
	}
	     break;
case 2:
	{	int b(0),x(0),y(0),z(0),m(0),w(0);
		double su=0;
		for(int j=0;j<i;j++)
			su+=stu[j]->english;
		double en_aver=0;
		en_aver=su/i;
		for(b=0;b<i;b++)
		{
		    if(stu[b]->english>=90)
			    x+=x;
			else if(stu[b]->english>=80)
				y+=y;
			else if(stu[b]->english>=70)
				z+=z;
			else if(stu[b]->english>=60)
				w+=w;
			else 
				m+=m;
			cout<<"英语平均成绩:"<<en_aver<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
		}
			 for(j=0;j<i;j++)
					su=stu[j]->math;
				double aver_ma=0;
				aver_ma=su/i;
				for(b=0;b<i;b++)
				{
					if(stu[b]->math>=90)
					{ 
						x=0;
						x+=x;
					}
					else if(stu[b]->math>=80)
					{
						y=0;
						y+=y;
					}
					else if(stu[b]->math>=70)
					{
						z=0;
						z+=z;
					}
					else if(stu[b]->math>=60)
					{
						w=0;
					    w+=w;
					}
					else 
					{
						m=0;
						m+=m;
					}
					cout<<"数学平均成绩:"<<aver_ma<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<"中等人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
				}
                  	for(j=0;j<i;j++)
				   	   su=stu[j]->cjj;
				    double aver_cj=0;
			  	    aver_cj=su/i;
				    for(b=0;b<i;b++)
					{
				    if(stu[b]->cjj>=90)
					{
						x=0;
						x+=x;
					}
					else if(stu[b]->cjj>=80)
					{
						y=0;
						y+=y;
					}
					else if(stu[b]->cjj>=70)
					{
						z=0;
						z+=z;
					}
					else if(stu[b]->cjj>=60)
					{
						w=0;
						w+=w;
					}
					else 
					{
						m=0;
						m+=m;
					}
					cout<<"C++平均成绩:"<<aver_cj<<"优秀人数及比例:"<<x<<x/i<<"良好人数及比例:"<<"中等人数及比例:"<<y<<y/i<<"中等人数及比例:"<<z<<z/i<<"及格人数及比例:"<<w<<w/i<<"不及格人数及比例:"<<m<<m/i<<endl;
					}
				break;
				}
	}
	cout<<"你想在进行其他的操作吗?(y/n)\n";
    	bool flag5=0;
    	do
		{
    		cin>>v;
    		if(v!='y'&&v!='n')
	    		cout<<"指令错误!重新输入!\n";
	    	else
	    		flag5=1;
		}while(flag5==0);
	   if(v=='y')
	   {
	        cout<<"学生数据输入0/添加人员7/删除人员8/\
    		修改人员6/按姓名查询1/输出各科平时成绩,各等级人数,及比例请按2/\
	    	按总成绩排名3/按C++排名请按5/按数学排名按4\n";
	        cout<<"请选择你要进行的操作\n";
	   }
   }while(v=='y');
   for(int k=0;k<i;k++)
   {
	   delete stu[k];
	   cout<<"删除所有数据!"<<endl;
   }
}

⌨️ 快捷键说明

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