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

📄 【1.2】.cpp

📁 从文件里读入数据
💻 CPP
字号:
#include<iostream.h>
#include<fstream.h>		//包含输入输出流的头文件
#include<stdlib.h>		//包含清屏函数和exit()的头文件
#include<conio.h>		//包含getch()的头文件
#include<string.h>		//包含的字符串操作函数的头文件
#include<iomanip.h>
typedef struct{
	char num[6];
	int english;
	int math;
	int pe;
	int politics;
}stu;			//学生结构的定义,包含学号,英语成绩,数学建模成绩,体育成绩,政治成绩

typedef struct{
	stu a[14];
}list;

ifstream Input("mydata.txt");
ofstream Output("AnalysisMydata.txt");
void login()
{
	cout<<"功能选择:"<<endl
		<<"1.查询各科的平均成绩和方差:"<<endl
		<<"2.各科的最高分和最低分:"<<endl
		<<"3.计算每个学生的加权平均分:"<<endl
		<<"4.显示成绩分析并输入:"<<endl
		<<"5.退出"<<endl
		<<"请输入您想要的操作:"<<endl;
}

void input(list *A)
{
	char a1[5],a2[5],a3[5],a4[5];
	char b1[3],b2[3],b3[3],b4[3];
	char a[7];
	for(int i=0;i<14;i++)
	{
		Input>>a>>a1>>a2>>a3>>a4;

		b1[0]=a1[0];b1[1]=a1[1];b1[2]='\0';
		b2[0]=a2[0];b2[1]=a2[1];b2[2]='\0';
		b3[0]=a3[0];b3[1]=a3[1];b3[2]='\0';
		b4[0]=a4[0];b4[1]=a4[1];b4[2]='\0';
		strcpy(A->a[i].num,a);
		A->a[i].english=atoi(b1);
		A->a[i].math=atoi(b2);
		A->a[i].pe=atoi(b3);
		A->a[i].politics=atoi(b4);
	}
} 

void function1(list *A)
{
	float e,m,pe,po,m1=0,m2=0,m3=0,m4=0;//m是临时变量
	for(int i=0;i<14;i++)
	{
		m1+=A->a[i].english;
		m2+=A->a[i].math;
		m3+=A->a[i].pe;
		m4+=A->a[i].politics;
	}
	e=m1/14;
	m=m2/14;
	pe=m3/14;
	po=m4/14;
	cout<<"各科平均成绩为:"<<endl
		<<"英语:"<<setprecision(4)<<e<<endl
		<<"数学:"<<setprecision(4)<<m<<endl
		<<"体育:"<<setprecision(4)<<pe<<endl
		<<"政治:"<<setprecision(4)<<po<<endl;
	Output<<"各科平均成绩为:"<<endl
		<<"英语:"<<setprecision(4)<<e<<endl
		<<"数学:"<<setprecision(4)<<m<<endl
		<<"体育:"<<setprecision(4)<<pe<<endl
		<<"政治:"<<setprecision(4)<<po<<endl;
	for(i=0;i<14;i++)
	{
		m1+=(A->a[i].english-e)*(A->a[i].english-e);
		m2+=(A->a[i].math-m)*(A->a[i].math-m);
		m3+=(A->a[i].pe-pe)*(A->a[i].pe-pe);
		m4+=(A->a[i].politics-po)*(A->a[i].politics-po);
	}
	e=m1/14;
	m=m2/14;
	pe=m3/14;
	po=m4/14;
		cout<<"各科成绩方差为:"<<endl
		<<"英语:"<<setprecision(4)<<e<<endl
		<<"数学:"<<setprecision(4)<<m<<endl
		<<"体育:"<<setprecision(4)<<pe<<endl
		<<"政治:"<<setprecision(4)<<po<<endl;
		Output<<"各科成绩方差为:"<<endl
		<<"英语:"<<setprecision(4)<<e<<endl
		<<"数学:"<<setprecision(4)<<m<<endl
		<<"体育:"<<setprecision(4)<<pe<<endl
		<<"政治:"<<setprecision(4)<<po<<endl;
	getch();
}

void function2(list *A)
{
	int t1max=0,t1min=100,t2max=0,t2min=100,t3max=0,t3min=100,t4max=0,t4min=100;
	for(int i=0;i<14;i++)
	{
		if(t1max<=A->a[i].english)
		{
			t1max=A->a[i].english;
		}
		if(t2max<=A->a[i].math)
		{
			t2max=A->a[i].math;
		}
		if(t3max<=A->a[i].pe)
		{
			t3max=A->a[i].pe;
		}
		if(t4max<=A->a[i].politics)
		{
			t4max=A->a[i].politics;
		}
		if(t1min>=A->a[i].english)
		{
			t1min=A->a[i].english;
		}
		if(t2min>=A->a[i].math)
		{
			t2min=A->a[i].math;
		}
		if(t3min>=A->a[i].pe)
		{
			t3min=A->a[i].pe;
		}
		if(t4min>=A->a[i].politics)
		{
			t4min=A->a[i].politics;
		}
	}
	cout<<"英语的最高分为:"<<t1max<<" "<<"最低分为:"<<t1min<<endl
		<<"数学建模的最高分为:"<<t2max<<" "<<"最低分为:"<<t2min<<endl
		<<"体育的最高分为:"<<t3max<<" "<<"最低分为:"<<t3min<<endl
		<<"政治的最高分为:"<<t4max<<" "<<"最低分为:"<<t4min<<endl;
	Output<<"英语的最高分为:"<<t1max<<" "<<"最低分为:"<<t1min<<endl
		<<"数学建模的最高分为:"<<t2max<<" "<<"最低分为:"<<t2min<<endl
		<<"体育的最高分为:"<<t3max<<" "<<"最低分为:"<<t3min<<endl
		<<"政治的最高分为:"<<t4max<<" "<<"最低分为:"<<t4min<<endl;
	getch();

}
void function3(list *A)
{
	for(int i=0;i<14;i++)
	{
	cout<<"学生"<<A->a[i].num<<"的加权平均成绩为:"<<((A->a[i].english*5)+(A->a[i].math*3)+(A->a[i].pe*2)+(A->a[i].politics*4))/14<<endl;
	Output<<"学生"<<A->a[i].num<<"的加权平均成绩为:"<<((A->a[i].english*5)+(A->a[i].math*3)+(A->a[i].pe*2)+(A->a[i].politics*4))/14<<endl;
	}
	getch();

}
void function4()
{

}


void main()
{
	list stu_list;
	list* STU_LIST;
	STU_LIST=&stu_list;
	input(STU_LIST);

	char x;
	while(1)
	{
	system("cls");
	login();
	cin>>x;
	switch(x)
	{
	case '1':function1(STU_LIST);break;
	case '2':function2(STU_LIST);break;
	case '3':function3(STU_LIST);break;
	case '4':function1(STU_LIST);function2(STU_LIST);function3(STU_LIST);break;
	case '5': exit(0);
	default:{
		cout<<"你的输入有错,请重新输入!"<<endl;
		getch();
			}
	}//switch
	}
}

⌨️ 快捷键说明

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