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

📄 成绩管理.txt

📁 c语言编的学生信息管理系统
💻 TXT
📖 第 1 页 / 共 2 页
字号:
#include<iostream.h>
#include<iomanip.h>
#include<string.h>
int N;
class student{
private:
	char *name;
	int number,Class;
	int chinese,math,english,computer;
public:
	student(){};
	void putin(int cl,int nu,char n[10],int ch,int en,int ma,int co)
	{   
		name=new char[strlen(n)+1];
		strcpy(name,n);
		number=nu;
		math=ma;
		english=en;
		chinese=ch;
		computer=co;
		Class=cl;
	};
	void putna(char *x)
	{
		name=new char[strlen(x)+1];
        strcpy(name,x);
	};
	void putfour(int x,int y,int z,int h)//传四个成绩
	{chinese=x;english=y;math=z;computer=h;};
	void putcl(int x){Class=x;};// 赋一个值,下面同样
	void putnu(int x){number=x;};
	void putch(int x){chinese=x;};
	void puten(int x){english=x;};
	void putma(int x){math=x;};
	void putco(int x){computer=x;};
	int getcl(){return Class;};//返回一个值,下面同样 
    int getnu(){return number;};
	int getch(){return chinese;};
    int geten(){return english;};
	int getma(){return math;};
    int getco(){return computer;};
	char *getna(){return(name);};
	void putout(){//返回全部资料
		cout<<Class<<setw(8)<<number<<setw(10)<<name<<
		setw(8)<<chinese<<setw(11)<<english<<setw(9)<<math<<setw(8)<<
		computer;
	};
};
//*******************************************************
//                     汇总
//*******************************************************
double average(student *p,char *na,int Cl)//每一个科目的平均分
{   
	float av=0,j1=1;int j=0;
	for(int i=0;i<N;i++)
	{if(strcmp(na,"语文")==0&&p[i].getcl()==Cl)
	{av=av+p[i].getch();++j;j1=float(j);}
	if(strcmp(na,"英语")==0&&p[i].getcl()==Cl)
	{av=av+p[i].geten();++j;j1=float(j);}
	if(strcmp(na,"电脑")==0&&p[i].getcl()==Cl)
	{av=av+p[i].getco();++j;j1=float(j);}
	if(strcmp(na,"数学")==0&&p[i].getcl()==Cl)
	{av=av+p[i].getma();++j;j1=float(j);}
	}
	if(av==0) return 0;
	else return av/j1;
}
int sum(student p)//每人的总分
{
	int s=0;
    s=p.getch()+p.geten()+p.getco()+p.getma();
	return s;
}  
//***************************************************************
int find(student *p,int Cl,int Nu)//通过班级和学号,对要修改的对象返回它的对象里的值
	{
		int i=0,a=N+1;
		for(;i<N;i++)
		{
		if(p[i].getcl()==Cl&&p[i].getnu()==Nu)
	{
         a=i;break;
		
	}
		else continue;
		}
	    if(a!=N+1)return a;
        else return N;
	}
int find(student *p,int Cl,char *Na)//通过班级和名字,对要修改的对象返回它的对象里的值
	{
		int i=0,a=N+1;
		for(;i<N;i++)
		if(p[i].getcl()==Cl&&strcmp(p[i].getna(),Na)==0)
	{
         a=i;break;
	}
		if(a!=N+1)return a;
        else return N;
	}
int find(student *p,char *Na,int Nu)//通过名字和学号,对要修改的对象返回它的对象里的值
	{
		int i=0,a=N+1;
		for(;i<N;i++)
		if(strcmp(p[i].getna(),Na)==0&&p[i].getnu()==Nu)
	{
         a=i;break;		
	}
		if(a!=N+1)return a;
        else return N;	
	}
int find(student *p,int Cl)//通过班,对要修改的对象返回它的对象里的值
	{
		int i=0,a=N+1;
		for(;i<N;i++)
		if(p[i].getcl()==Cl)
	{
         a=i;break;		
	}
		if(a!=N+1)return a;
        else return N;	
	}
//*******************************************************************
//                      查询成绩
//*******************************************************************
void search(student *p,int Cl,char *Na)//通过班级和名字,来查询成绩
{
	int j=find(p,Cl,Na);
	if(j==N) cout<<endl<<"此人不存在!"<<endl;
	 else
	 {
		 cout<<endl<<"班级"<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(11)
			<<"语文"<<setw(10)<<"英语"<<setw(8)<<"数学"<<setw(8)		                   
			<<"电脑"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<endl;		                   						              
			p[j].putout();
			cout<<setw(7);
		int a4=sum(p[j]);float a5=float(a4)/4;
		cout<<a4<<setw(8)<<a5<<endl; 
		
	 }
}
void search(student *p,char *Na,int Nu)//通过名字和学号,来查询成绩
{
	int j=find(p,Na,Nu),a4;float a5;
	if(j==N) cout<<endl<<"没有这个人:"<<endl;
	 else
	 {
		 cout<<"班级"<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(11)
			<<"语文"<<setw(10)<<"英语"<<setw(8)<<"数学"<<setw(8)		                          
			<<"电脑"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<endl;		                          
        p[j].putout();
		cout<<setw(7);
        a4=sum(p[j]);a5=float(a4)/4;                                      
		cout<<a4<<setw(8)<<a5<<endl;				       
	 }
}
  void search(student *p,int Cl,int Nu)//通过班和号,来查询成绩
  {      
	  int j=find(p,Cl,Nu);
	  if(j==N) cout<<endl<<"没有这个人:"<<endl;
	    else
	  {
			cout<<"班级"<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(11)
				 <<"语文"<<setw(10)<<"英语"<<setw(8)<<"数学"<<setw(8)	                      
				 <<"电脑"<<setw(8)<<"总分"<<setw(8)<<"平均分"<<endl;	                       	     
		        p[j].putout();
				cout<<setw(7);
                int a4=sum(p[j]);float a5=float(a4)/4;                           
				cout<<a4<<setw(8)<<a5<<endl; 		                   
  }}
  //8888888888888888888888888888888888888888888888888888888
  void lank(student *p,int Cl)//按学号顺序排
{
	int k1,k2,k3,k4,k5,k6;char *k7;
	for(int i=0;i<N;i++)
	{ 
	   for(int j=i+1;j<N;j++)
		if(p[i].getcl()==Cl&&p[j].getcl()==Cl&&p[i].getnu()>p[j].getnu())//实现用学号来排序
	{
		k1=p[i].getcl();p[i].putcl(p[i+1].getcl());p[j].putcl(k1);
        k7=new char[strlen(p[i].getna())+1];
		strcpy(k7,p[i].getna());p[i].putna(p[i+1].getna());p[i+1].putna(k7);
		k2=p[i].getnu();p[i].putnu(p[j].getnu());p[j].putnu(k2);
		k3=p[i].getch();p[i].putch(p[j].getch());p[j].putch(k3);
		k4=p[i].geten();p[i].puten(p[j].geten());p[j].puten(k4);
		k5=p[i].getma();p[i].putma(p[j].getma());p[j].putma(k5);
		k6=p[i].getco();p[i].putco(p[j].getco());p[j].putco(k6);
	}
	else continue;
	}
}
//***********************************************
void search(student *p,int Cl)//查某班级的成绩,是按学号顺序排
{
	int k8=find(p,Cl);
	lank(p,Cl);
		if(k8==N) cout<<endl<<"没有这个班:"<<endl;
		else 
		{cout<<"班级"<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(10)
			<<"语文"<<setw(11)<<"英语"<<setw(8)<<"数学"<<setw(9)		                           
			<<"电脑"<<setw(8)<<"总分"<<setw(9)<<"平均分"<<endl;	}
    for(int i=0;i<N;i++)//返回排序后的班的学生成绩
	if(p[i].getcl()==Cl)
	{    
		int A1;float A2;			                           
		A1=sum(p[i]);A2=float(A1)/4;
        p[i].putout();cout<<setw(8)<<A1<<setw(9)<<A2<<endl;
	}
	}
//******************************************************************
           void change(student *p,int Cl,int Nu,char *Na)//修改成绩
		{
			int a=find(p,Cl,Nu);
			int C,B1,B2,B3,B4;
			if(a==N) cout<<endl<<"没有这个人的资料:"<<endl;
			else
			{
			cout<<endl<<"改语文请输入1,改英语请输入2,改数学请输入3,改电脑请输入4,大于一科请输入5:"
				<<endl;
			cin>>C;
			switch(C)
			{
			case 1:cout<<endl<<endl<<"原来的值为:"<<p[a].getch()<<endl;
				   cout<<"请输入它的新值:";
				   cin>>B1;p[a].putch(B1);
                   cout<<endl<<"结果是:"<<endl;
				   cout<<"班级"<<setw(6)<<"学号"<<setw(8)<<"姓名"<<setw(10)
					   <<"语文"<<setw(10)<<"英语"<<setw(10)<<"数学"<<setw(8)
					   <<"电脑"<<endl;
				   p[a].putout();cout<<endl<<endl;
				   break;
	        case 2:cout<<endl<<endl<<"原来的值为:"<<p[a].geten()<<endl;
				   cout<<"请输入它的值:";
				   cin>>B1;p[a].puten(B1);
				   cout<<endl<<"结果是:"<<endl;
				   cout<<"班级"<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(10)
					   <<"语文"<<setw(10)<<"英语"<<setw(10)<<"数学"<<setw(8)
					   <<"电脑"<<endl;
				   p[a].putout();cout<<endl<<endl;
				   break;
			case 3:cout<<endl<<endl<<"原来的值为:"<<p[a].getma()<<endl; 
				   cout<<"请输入它的值:";
				   cin>>B1;p[a].putma(B1);
				   cout<<endl<<"结果是:"<<endl;
				   cout<<"班级"<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(10)
					   <<"语文"<<setw(10)<<"英语"<<setw(10)<<"数学"<<setw(8)
					   <<"电脑"<<endl;
				   p[a].putout();cout<<endl<<endl;
				   break;
             case 4:cout<<endl<<endl<<"原来的值为:"<<p[a].getco()<<endl; 
				    cout<<"请输入它的值:";
			    	cin>>B1;p[a].putco(B1);
				   cout<<endl<<"结果是:"<<endl;
				   cout<<"班级"<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(10)
					   <<"语文"<<setw(10)<<"英语"<<setw(10)<<"数学"<<setw(8)
					   <<"电脑"<<endl;
				   p[a].putout();cout<<endl<<endl;
				   break;
			 case 5:cout<<endl<<endl<<"原来的值分别为:"<<endl
						<<"语文:"<<p[a].getch()<<endl
						<<"英语:"<<p[a].geten()<<endl
						<<"数学:"<<p[a].getma()<<endl
						<<"电脑:"<<p[a].getco()<<endl;
				 cout<<endl;
				 cout<<"请输入语文的值:";cin>>B1;
				 cout<<"请输入英语的值:";cin>>B2;
				 cout<<"请输入数学的值:";cin>>B3;
				 cout<<"请输入电脑的值:";cin>>B4;
				   p[a].putfour(B1,B2,B3,B4);
				   cout<<endl<<"结果是:"<<endl;
				   cout<<"班级"<<setw(8)<<"学号"<<setw(8)<<"姓名"<<setw(10)
					   <<"语文"<<setw(10)<<"英语"<<setw(10)<<"数学"<<setw(8)
					   <<"电脑"<<endl;
				   p[a].putout();cout<<endl;
				   break;

⌨️ 快捷键说明

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