1. 程式人生 > >有10個學生,每個學生的資料包括學號,姓名,3門課的成績。對其進行處理

有10個學生,每個學生的資料包括學號,姓名,3門課的成績。對其進行處理

// 121213  第七章個習題5.cpp : 定義控制檯應用程式的入口點。
//
/*         
* Copyright (c) 2012, 煙臺大學計算機學院         
* All rights reserved.         
* 作 者:  劉同賓       
* 完成日期:2012 年 12 月 13 日         
* 版 本 號:v1.0         
*         
* 輸入描述:有10個學生,每個學生的資料包括學號,姓名,3門課的成績。從鍵盤輸入10個學生資料,要求打印出3門課總平均成績,以及最高分的學生的資料(包括學號、姓名、3門課成績、平均分數)
* 問題描述: 
* 程式輸出:
* 問題分析:略        
* 演算法設計:略         
*/
#include "stdafx.h"

#include<iostream>

#include<string>

using namespace std;

const int n=6;

struct student //定義結構體變數
{
	string name;

	int num;

	double score[3];

	double average;
}student1[n];

int main()
{
	int i,j;

	for(i=0;i<n;i++)
	{
		cout<<"請輸入第"<<i+1<<"個學生的資訊:";
		cin>>student1[i].num
		   >>student1[i].name
		   >>student1[i].score[0]>>student1[i].score[1]>>student1[i].score[2];
	}

	double sum=0;

	//各學生的平均成績
	for(i=0;i<n;i++)
	{
		for(j=0;j<3;j++)
        {
			sum=sum+student1[i].score[j];
		}
		student1[i].average=sum/3;

		sum=0;
	}
	//打印出各學生的資訊
	cout<<"輸出各學生資訊:"<<endl;

	for(i=0;i<n;i++)
	{
		cout<<student1[i].num<<"  "

		   <<student1[i].name<<"  "

		   <<student1[i].score[0]<<"  "<<student1[i].score[1]<<"  "<<student1[i].score[2]<<"  "

		   <<student1[i].average
		   
		   <<endl;
	}
	//找出成績最高的那個學生並輸出其資訊
	double max=student1[0].average;

	int row=0;

	for(i=0;i<n;i++)
	{
		if(max<student1[i].average)
		{
			max=student1[i].average;
		}

		row=i;
	}

	cout<<"最高分的學生的資料:"<<endl;

	cout<<student1[row].num<<"  "
		<<student1[row].name<<"  "
		<<student1[row].score[0]<<"  "<<student1[row].score[1]<<"  "<<student1[row].score[2]<<"  "
	    <<student1[row].average
		<<endl;


	//各科平均成績

	double average1[3];//定義一個裝3門課的平均成績的陣列

	sum=0;

	for(j=0;j<3;j++)
	{
		for(i=0;i<n;i++)
		{
			sum=sum+student1[i].score[j];
		}

		average1[j]=sum/n;

		sum=0;
	}

	cout<<endl;

	for(i=0;i<3;i++)//輸出各門課的平均成績
	{
		cout<<"第"<<i+1<<"門課的平均成績:"<<endl;

		cout<<average1[i]
		
		    <<endl;
	}

	return 0;
}