十六周实验报告 任务二

源程序:

#include <iostream>
#include <fstream>
#include <iomanip>
#include <string>
using namespace	std;

class Student
{
public:
	Student()
	{
		name = 'a';
		cscore = 0;
		mathscore = 0;
		englishscore = 0;
		sumscore = 0;
		averagescore = 0;
	}

	Student(string n, double c, double m, double e, double s, double a):name(n), cscore(c), mathscore(m), englishscore(e), sumscore(s), averagescore(a){}

	/*	string getna()
	{
	return name;
	}
	double getcs()
	{
	return cscore;
	}
	double getma()
	{
	return mathscore;
	}
	double geten()
	{
	return englishscore;
	}
	double getsu()
	{
	return sumscore;
	}
	double getav()
	{
	return averagescore;
	}*/
	void display()
	{
		//cout << setiosflags(ios::right) << "姓名" <<  setw(10) << "C++成绩" << setw(10) << "高数成绩" << setw(10) << "英语成绩" << setw(10) << "总成绩" << setw(10) << "平均成绩" << endl;
		cout << setiosflags(ios::right) << name << setw(10) << cscore << setw(10) << mathscore << setw(10) << englishscore << setw(10) << sumscore << setw(10) << averagescore << endl;
	}

	friend void cin_score(Student std[])
	{
		ifstream infile("score.dat",ios::in);

		if(!infile)
		{
			cerr << "open error!!!";
			exit(0);
		}

		for(int i = 0; i < 100; ++ i)
		{
			infile >> std[i].name >> setw(10) >> std[i].cscore >> setw(10) >> std[i].mathscore >> setw(10) >> std[i].englishscore >> setw(10) >> std[i].sumscore >> setw(10) >> std[i].averagescore;
		}

		infile.close();
	}

	friend void out_score(Student std[])
	{
		ofstream outflie("ordered_score.dat",ios::out);

		if(!outflie)
		{
			cerr << "open error!!!";
			exit(0);
		}

		for(int i = 0; i < 100; ++ i)
		{
			outflie << std[i].name << std[i].cscore << std[i].englishscore << std[i].mathscore << std[i].sumscore << std[i].averagescore << endl;
		}

		outflie.close();
	}

	friend void maxcscore(Student std[])//找出c++成绩最高的同学
	{
		Student stdcmax;
		stdcmax = std[0];
		for(int i = 0; i < 100; ++ i)
		{
			if(std[i + 1].cscore > stdcmax.cscore)
			{
				stdcmax = std[i + 1];
			}
		}
		stdcmax.display();
	}

	friend void maxmscore(Student std[])//找出高数成绩最高的同学
	{
		Student stdmmax;
		stdmmax = std[0];
		for(int i = 0; i < 100; ++ i)
		{
			if(std[i + 1].mathscore > stdmmax.mathscore)
			{
				stdmmax = std[i + 1];
			}
		}
		stdmmax.display();
	}

	friend void maxescore(Student std[])//找出英语成绩最高的同学
	{
		Student stdemax;
		stdemax = std[0];
		for(int i = 0; i < 100; ++ i)
		{
			if(std[i + 1].englishscore > stdemax.englishscore)
			{
				stdemax = std[i + 1];
			}
		}
		stdemax.display();
	}

	friend void maxsscore(Student std[])//找出总成绩最高的同学
	{
		Student stdsmax;
		stdsmax = std[0];
		for(int i = 0; i < 100; ++ i)
		{
			if(std[i + 1].sumscore > stdsmax.sumscore)
			{
				stdsmax = std[i + 1];
			}
		}
		stdsmax.display();
	}

	friend void ordered_student(Student std[])
	{
		int i, j;
		Student t;
		for(i = 0; i < 100; ++ i)
		{
			for(j = 0; j < 100; ++j)
			{
				if(std[i].sumscore > std[j].sumscore)
				{
					t = std[i];
					std[i] = std[j];
					std[j] = t;
				}
			}
		}

		for(i = 0; i < 100; ++ i)
		{
			std[i].display();
		}
	}

private:
	string name;
	double cscore;
	double mathscore;
	double englishscore;
	double sumscore;
	double averagescore;
};
int	main()
{	
	int i;
	Student std[1000];

	cin_score(std);

	cout << "C++成绩最高的同学为:" << endl;
	maxcscore(std);

	cout << "高数成绩最高的同学为:" << endl;
	maxmscore(std);

	cout << "英语成绩最高的同学为:" << endl;
	maxescore(std);

	cout << "总成绩成绩最高的同学为:" << endl;
	maxsscore(std);

	cout << "排序后的成绩单为:" << endl;
	ordered_student(std);

	out_score(std);

	system("pause");
	return	0;
}

截图:

C++成绩最高的同学为:
葛志伟       100        79        71       250   83.3333
高数成绩最高的同学为:
宋宗杰        94       100        92       286   95.3333
英语成绩最高的同学为:
马佳        60        90       100       250   83.3333
总成绩成绩最高的同学为:
王琦        98        95        98       291        97
排序后的成绩单为:
王琦        98        95        98       291        97
宋宗杰        94       100        92       286   95.3333
杨阔        90        91        98       279        93
冼丹       100        89        89       278   92.6667
魏佳       100        94        80       274   91.3333
范振光        98        87        89       274   91.3333
张昊        94        83        96       273        91
赵旭洋        87        91        94       272   90.6667
高举        81        99        91       271   90.3333
吴清正        89        97        85       271   90.3333
冯松        89        98        83       270        90
李朋        90        82        97       269   89.6667
马婧        98        84        87       269   89.6667
韩明        83        97        88       268   89.3333
王芳        71        97        99       267        89
张迪        99        88        80       267        89
文静        93        88        85       266   88.6667
王磊        87        86        92       265   88.3333
刘盈        99        72        93       264        88
王瑞麒        89        83        91       263   87.6667
叶丹        87        80        96       263   87.6667
杨洁        96        79        87       262   87.3333
李桐        93        83        86       262   87.3333
董一伟        93        88        80       261        87
张佳玮        61        98        96       255        85
杨梦婕        89        99        67       255        85
刘紫亮        72        98        84       254   84.6667
黄金龙        85        90        78       253   84.3333
刘亚新        77        81        95       253   84.3333
王蒙        67        97        89       253   84.3333
徐嘉琦        90        75        87       252        84
崔赞        91        67        93       251   83.6667
王姝        70        91        90       251   83.6667
马佳        60        90       100       250   83.3333
张笑        86        88        76       250   83.3333
葛志伟       100        79        71       250   83.3333
张敏        85        75        89       249        83
王锐        63        90        96       249        83
冷云        89        88        71       248   82.6667
裴培        75        82        91       248   82.6667
宋媛媛        61        94        92       247   82.3333
马立        73        90        83       246        82
张里响        85        65        96       246        82
何煜中        90        73        82       245   81.6667
王竞        90        87        67       244   81.3333
高清        76        83        84       243        81
梁雅宁        55        88       100       243        81
吴佳林        96        65        82       243        81
唐楠        68        97        77       242   80.6667
宋航彬        80        71        91       242   80.6667
蔺剑飞        88        75        79       242   80.6667
马里        73        95        73       241   80.3333
张龙        62       100        78       240        80
贾伟林        63        90        86       239   79.6667
李悦        63        79        97       239   79.6667
鲁继森        84        79        75       238   79.3333
周恒        87        82        69       238   79.3333
陈美珠        82        72        83       237        79
田苗苗        75        91        71       237        79
佟欣        60        79        98       237        79
边里        56        94        87       237        79
徐金竹        75        89        73       237        79
张扬        77        65        93       235   78.3333
高路        63        74        98       235   78.3333
薛淇文        89        71        75       235   78.3333
印虹        92        68        75       235   78.3333
于浩        78        84        72       234        78
黄京        62        75        96       233   77.6667
刘得意        60        98        75       233   77.6667
孙大伟        65        69        98       232   77.3333
郭倩        69        94        69       232   77.3333
张雯        69        70        93       232   77.3333
王欣欣        71        83        78       232   77.3333
苏明霞        59        79        94       232   77.3333
任盛达        57        86        88       231        77
王悦        79        82        70       231        77
杨华鑫        81        81        68       230   76.6667
贺祺        61        96        72       229   76.3333
金昕        92        67        69       228        76
宋静        69        85        73       227   75.6667
陈世勃        70        92        65       227   75.6667
王磊        71        78        77       226   75.3333
方圆        70        79        76       225        75
汤娜        68        85        71       224   74.6667
林倩        67        77        80       224   74.6667
兰天        83        66        74       223   74.3333
刘京西        67        78        78       223   74.3333
何佳成        70        75        78       223   74.3333
杨超        67        73        82       222        74
冯佳媛        61        79        81       221   73.6667
周俊升        57        68        96       221   73.6667
马骁        62        67        90       219        73
赵媛媛        77        75        66       218   72.6667
卫青        66        73        77       216        72
白涛        57        82        75       214   71.3333
吴玮        69        76        68       213        71
于莉        55        66        78       199   66.3333
桂佳        60        73        65       198        66
徐一菡        85        45        62       192        64
王欢欢        57        33        66       156        52
请按任意键继续. . .




费了好大劲····做得很毛躁····没有修改····好多地方都未完善·····待会再说····

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值