第十六周实验报告2


程序头部注释开始
* 程序的版权和版本声明部分
* Copyright (c) 2011, 烟台大学计算机学院学生 
* All rights reserved.
* 文件名称:       学生成绩排序

* 作    者:     王智凯                       
* 完成日期:  2012年  6月5日
* 版 本 号:  凯子

 

#include <iostream>
#include <fstream>
#include <string>
using namespace std;
class Student
{
public:
	Student(){};
	Student(string na,double c,double m,double e);
	void set_name(string name);
	void set_c_num(double c_num);
	void set_m_num(double m_num);
	void set_e_num(double e_num);
	void set_sum(double sum);
	void set_average(double average);
	string get_name(){return name;}  
	double get_c_num(){return c_num;}
	double get_m_num(){return m_num;}
	double get_e_num(){return e_num;}
	double get_sum(){return sum;}
	double get_average(){return average;}
private:
	string name;
	double c_num;
	double m_num;
	double e_num;
	double sum;
	double average;
};                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              


Student::Student(string na,double c,double m,double e)
{
	na = name;
	c = c_num;
	m = m_num;
	e = e_num;
    sum = c+e+m;
	average = (c + e + m)/3;
}

void Student::set_name(string name){this->name =name;}
void Student::set_c_num(double c_num){this->c_num = c_num;}
void Student::set_m_num(double m_num){this->m_num = m_num;}
void Student::set_e_num(double e_num){this->e_num = e_num;}
void Student::set_sum(double sum){this->sum = sum;}
void Student::set_average(double average){this->average = average;}

int main()
{
	Student stud[100],t; //stud[100]为保存数据的对象数组
	string sname;
	double scpp, smath, senglish;
	int i,j;
	double max1,max2,max3,max4;

	//将文件中的数据读入到对象数组中
	ifstream infile("score.dat",ios::in);  //以输入的方式打开文件
	//测试是否成功打开
	if(!infile)       
	{
		cerr<<"open error!"<<endl;
		exit(1);
	}

	for(i=0;i<100;i++)
	{
		infile>>sname>>scpp>>smath>>senglish;
	}

	infile.close();


	//各科最高分及总分最高分
     for(i = 1;i<100;i++)
	 {
		 max1 = stud[0].get_c_num();
		if(stud[i].get_c_num()>max1){max1 =  stud[i].get_c_num();}
		 max2 = stud[0].get_e_num();
		if(stud[i].get_e_num()>max2){max2 =  stud[i].get_e_num();}
		 max3 = stud[0].get_m_num();
		if(stud[i].get_m_num()>max3){max3 =  stud[i].get_m_num();}
		 max4 = stud[0].get_sum();
		if(stud[i].get_sum()>max4){max4 =  stud[i].get_sum();}
	 }

	cout<<"C++最高分为: "<<max1<<endl;
	cout<<"高等数学最高分为: "<<max3<<endl;
	cout<<"英语最高分为: "<<max2<<endl;
	cout<<"总分最高分为: "<<max4<<endl;

	//总分排名
	for(i = 0;i<99;++i)
	{
		for(j = 0; j <99-i;++j)
		{
			if(stud[i].get_sum()<stud[i+1].get_sum())
			{
				t=stud[i]; 
				 stud[i]= stud[i+1];
				stud[i+1] = t;

			}
		}
	}

	//数据输出
	for(i=0;i<100;i++)
	{
		cout<<stud[i].get_name()<<"\t";
		cout<<stud[i].get_c_num()<<"\t";
		cout<<stud[i].get_m_num()<<"\t";
		cout<<stud[i].get_e_num()<<"\t";
		cout<<stud[i].get_sum()<<endl;
	}  
	system("pause");
	return 0;
}





此程序有一个地方错误(弄出来的结果乱码),求鉴定

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值