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

📄 kobe.cpp

📁 高考模拟成绩管理系统 网上随便找的 有需要的看下
💻 CPP
字号:
#include <iostream.h>
#include <fstream.h>
#include <stdlib.h>
#include <string.h>
#include <iomanip.h>
#define N 15
class Test{
	char name[20];
	char sex[2];
	int age;
	char num[15];
	char school[20];
	float chinese,math,english;
	char chooseone[3];
    char choosetwo[2];
public:
    Test(fstream in)
	{
	in>>name;
	in>>sex;
	in>>age;
	in>>num;
	in>>school;
	in>>chinese;
	in>>math;
	in>>english;
	in>>chooseone;
	in>>choosetwo;
	}
	float sumnum;
	char *getname(){return name;}
	float getchinese(){return chinese;}
    float getmath(){return math;}
	float getenglish(){ return english;}
	char getchooseone(){return chooseone[0];
	return chooseone[1];return chooseone[2];}
	char getchoosetwo(){return choosetwo[0];return choosetwo[1];}
	void sum()	{sumnum=chinese+math+english;}
	void out(fstream in)
	{ 
	in<<name;
	in<<setw(10)<<sex;
	in<<setw(10)<<age;
	in<<setw(25)<<num;
	in<<setw(25)<<school;
	in<<setw(8)<<chinese;
	in<<setw(8)<<math;
	in<<setw(8)<<english;
	in<<setw(8)<<chooseone;
	in<<setw(8)<<choosetwo;
	in<<setw(20)<<"总分为:"<<sumnum<<endl;
	}
};
int tishi(){
	int m,s;
char str[80];
	cout<<"欢迎使用高考成绩模拟管理系统!"<<endl;
	cout<<"******************************************************* "<<endl;
	cout<<"1.计算总分并排序,并计算5分段的人数,结果在1.txt中查找"<<endl;
	cout<<"2.语数外分别排序,并计算平均成绩及最高分,结果在2.txt中查找"<<endl;
	cout<<"3.按照一定的录取标准统计达到标准的人数,结果在3.txt中查找"<<endl;
	cout<<"4.退出"<<endl;
	cout<<"请选择1-4的数字"<<endl;
	cout<<"*******************************************************"<<endl;
	cin>>m;
 s=cin.rdstate();
 while(s){
       cin.clear();
	   cin.getline(str,80);
	   cout<<"输入错误,请重新输入\n";
		   cin>>m;
		   s=cin.rdstate();
	   }
return m;	
}
void paixu(Test *b[]){
	Test *n;
for(int i=0;i<N;i++)
for(int j=0;j<N-i;j++)
if(b[j]->sumnum<b[j+1]->sumnum){n=b[j+1];b[j+1]=b[j];b[j]=n;
}
}
void print(fstream out,Test *a[]){
	float temp=a[N-1]->sumnum;
la: int c=0;
	for(int k=N-1;k>=0;k--){
if(((a[k]->sumnum)>=temp)&&((a[k]->sumnum)<(temp+5)))  c++;
	}
out<<temp<<"--"<<temp+4<<"的人数为:"<<c<<endl;
if(a[0]->sumnum>temp+5)  {
	temp=temp+5;
	goto la;
}
}
void fenbiepaixuc(fstream out,Test *b[]){
	float array1[N];
	char *c[N];
	float temp1;
	char *name1;
	for(int i=0;i<N;i++){
     array1[i]=b[i]->getchinese();
	 c[i]=b[i]->getname();
	}
for(i=0;i<N;i++)
for(int j=0;j<N-i;j++)
if(array1[j]<array1[j+1]){
	temp1=array1[j+1];
array1[j+1]=array1[j];
array1[j]=temp1;
name1=c[j+1];
c[j+1]=c[j];
c[j]=name1;}
out<<"语文成绩排序:"<<"      "<<endl;
for(i=0;i<N;i++)
out<<"第"<<(i+1)<<"名"<<"为:"<<c[i]<<':'<<array1[i]<<setw(15)<<endl;
out<<"最高分为:"<<array1[0]<<"     ";
for( i=0;i<N;i++)
		temp1+=array1[i];
out<<"语文平均成绩为"<<temp1/N<<endl<<endl;
}
void fenbiepaixum(fstream out,Test *b[]){
	float array2[N];
char *name1;
char *c[N];
	float temp2;
	for(int i=0;i<N;i++){
		c[i]=b[i]->getname();
     array2[i]=b[i]->getmath();
	}
for(i=0;i<N;i++)
for(int j=0;j<N-i;j++)
if(array2[j]<array2[j+1]){
	temp2=array2[j+1];
array2[j+1]=array2[j];
array2[j]=temp2;
name1=c[j+1];
c[j+1]=c[j];
c[j]=name1;
}
out<<"数学成绩排序:"<<"      "<<endl;
for(i=0;i<N;i++)
out<<"第"<<(i+1)<<"名"<<"为:"<<c[i]<<':'<<array2[i]<<setw(15)<<endl;
out<<"最高分为:"<<array2[0]<<"     ";
for( i=0;i<N;i++)
		temp2+=array2[i];
out<<"数学平均成绩为"<<temp2/N<<endl<<endl;
}
void fenbiepaixue(fstream out,Test *b[]){
	float array3[N];
	float temp3;
	char *name1;
char *c[N];
for(int i=0;i<N;i++){
	c[i]=b[i]->getname();
     array3[i]=b[i]->getenglish();
}
for(i=0;i<N;i++)
for(int j=0;j<N-i;j++)
if(array3[j]<array3[j+1]){
	temp3=array3[j+1];
array3[j+1]=array3[j];
array3[j]=temp3;
name1=c[j+1];
c[j+1]=c[j];
c[j]=name1;
}
out<<"英语成绩排序:"<<"      "<<endl;
for(i=0;i<N;i++)
out<<"第"<<(i+1)<<"名"<<"为:"<<c[i]<<':'<<array3[i]<<setw(15)<<endl;
out<<"最高分为:"<<array3[0]<<"     ";
for( i=0;i<N;i++)
		temp3+=array3[i];
out<<"英语平均成绩为"<<temp3/N<<endl;
}
void panduan(fstream outfile,Test *a[]){
	int b[6]={0,0,0,0,0,0};

	for(int i=0;i<N;i++)
	{	if((a[i]->sumnum>=400)&&(a[i]->getchooseone()=='a'||a[i]->getchooseone()=='a+')&&(a[i]->getchoosetwo()=='a'||a[i]->getchoosetwo()=='a+'))
		{	b[0]+=1;a[i]->out(outfile);outfile<<"达到了211重点大学分数线!!!"<<endl;}
		if((a[i]->sumnum>=400)&&(a[i]->getchooseone()=='b'||a[i]->getchooseone()=='b+')&&(a[i]->getchoosetwo()=='b'||a[i]->getchoosetwo()=='b+'))
        {	b[1]+=1;a[i]->out(outfile);outfile<<"达到了一本分数线!!!"<<endl;}
        if((a[i]->sumnum>=350&&a[i]->sumnum<400)&&(a[i]->getchooseone()=='a'||a[i]->getchooseone()=='a+')&&(a[i]->getchoosetwo()=='a'||a[i]->getchoosetwo()=='a+'))
        {b[2]+=1;	a[i]->out(outfile);outfile<<"达到了市级二本分数线!!!"<<endl;}
        if((a[i]->sumnum>=300&&a[i]->sumnum<350)&&(a[i]->getchooseone()=='a'||a[i]->getchooseone()=='a+')&&(a[i]->getchoosetwo()=='a'||a[i]->getchoosetwo()=='a+'))
		{b[3]+=1;	a[i]->out(outfile);outfile<<"达到了县级二本分数线!!!"<<endl;} 
        if((a[i]->sumnum>=300&&a[i]->sumnum<400)&&(a[i]->getchooseone()=='b'||a[i]->getchooseone()=='b+')&&(a[i]->getchoosetwo()=='b'||a[i]->getchoosetwo()=='b+'))
        {b[4]+=1;	a[i]->out(outfile);outfile<<"达到了三本分数线!!!"<<endl;}
        if((a[i]->sumnum<=200)||(a[i]->getchooseone()=='c')||a[i]->getchooseone()=='d'||a[i]->getchoosetwo()=='c'||a[i]->getchoosetwo()=='d')
        {b[5]+=1;	a[i]->out(outfile);outfile<<"您落选了!很遗憾!!!"<<endl;}
	}
	outfile<<"达到211重点大学分数线的人数为:"<<b[0]<<endl;
	outfile<<"达到了一本分数线的人数为:"<<b[1]<<endl;
	outfile<<"达到了市级二本分数线的人数为:"<<b[2]<<endl;
	outfile<<"达到了县级二本分数线的人数为:"<<b[3]<<endl;
outfile<<"达到了三本分数线的人数为:"<<b[4]<<endl;
outfile<<"落选的人数为:"<<b[5]<<endl;
}
void main()
{
	fstream infile("8.txt",ios::in|ios::nocreate);
	if(!infile){
		cout<<"can't!"<<endl;
		exit(1);
	}
	Test *a[N];
	for(int i=0;i<N;i++)
    a[i]=new Test(infile);
	for(i=0;i<N;i++)
		a[i]->sum();
	paixu(a);
	infile.close();
    fstream outfile1("1.txt",ios::out);
	if(!outfile1){
		cout<<"can't!"<<endl;
		exit(2);
	}
	 fstream outfile2("2.txt",ios::out);
	if(!outfile2){
		cout<<"can't!"<<endl;
		exit(2);
	}
	 fstream outfile3("3.txt",ios::out);
	if(!outfile3){
		cout<<"can't!"<<endl;
		exit(2);
	}
lb:int t=tishi();
   if(t>=0&&t<=9)  
	switch(t){
	case 1:outfile1<<"姓名"<<setw(10)<<"性别"<<setw(10)<<"年龄"<<setw(25)<<"学号"<<setw(25)<<"学校"<<setw(8)<<"语文"<<setw(8)<<"数学"<<setw(8)<<"英语"<<setw(8)<<"选测1"<<setw(10)<<"选测2"<<setw(10)<<endl;
	for(i=0;i<N;i++) a[i]->out(outfile1);
	print(outfile1,a);
	cout<<"谢谢你的使用!!!"<<endl;
	break;
	case 2:
	fenbiepaixuc(outfile2,a);
	fenbiepaixum(outfile2,a);
	fenbiepaixue(outfile2,a);
	cout<<"谢谢你的使用!!!"<<endl;
	break;
	case 3:
	panduan(outfile3,a);
	cout<<"谢谢你的使用!!!"<<endl;
	break;
	case 4:
		cout<<"你选择了退出!"<<endl;
		break;
	default:cout<<"输入错误!请重新输入!\n";goto lb;
	}
   
	
  outfile1.close();	
outfile2.close();
outfile3.close();
}

⌨️ 快捷键说明

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