友元函数

1、题目:

C++考试正在进行。请设计一个学生类student,学号、本次考试成绩是其私有数据成员,同时有一个计算本次考试平均成绩的友元函数 double average(student *p,int count)

以上类名和友元函数的形式,均须按照题目要求,不得修改。

输入是 学号([00001,99999])和成绩,以0结束。(不超过100个学生)
输出是平均成绩。

输入样例:

10001 90
10002 93
0

输出样例:

91.5

2、代码:

#include<iostream>
#include<cstdio>
using namespace std;
class student
{
	private:
		int number;
	    double score;
	public:
	    	void set(int num,double scores)
	    	{
	    		number=num;
	    		score=scores;
			}
			
	    	friend double average(student *p,int count);
	    	
};

double average(student *p,int count)
{
	double aver;
	for(int i=0;i<count;i++)
	{
		aver+=(p+i)->score;
	}

	 aver=aver/count;
	
	return aver;
}

int main()
{
	student stu[100];
	student *p=stu;
	int n;
	int N=0;
    int i=0;
	double scor;
	while(cin>>n)
	{
		if(n==0)
		{
			break;
		}
		else
		{
			
			cin>>scor;
			stu[i].set(n,scor);
			i++;
			N++;
		}
	
	}
		
	double aver=average(stu,N);
		cout<<aver<<endl;
		return 0;
}
posted @ 2016-07-16 15:32  laixl  阅读(1050)  评论(0编辑  收藏  举报