C++第5周项目4 - 指针操作学生类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8723847

【项目4】设计一个学生类Student,包括学号(num)和成绩(score)。建立一个对象数组,通过初始化,设置5个学生的数据,要求:
  (1)用指针指向数组首元素,输出第1、3、5个学生的信息;
  (2)设计一个函数int max(Student *arr);,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并返回值其学号。

参考解答:

#include <iostream>
using namespace std;

class Student
{
public:
	Student(int n,double s):num(n),score(s){}
	void display();
	int getNum(){return num;}
	double getScore(){return score;}
private:
	int num;
	double score;
};

void Student::display()
{
	cout<<num<<" "<<score<<endl;
}

int max(Student *arr);

int main()
{
	Student stud[5]={
		Student(101,78.5),Student(102,85.5),Student(103,100),
		Student(104,98.5),Student(105,95.5)};

		//输出第、、个学生的信息
		for(int i=0;i<5;i+=2)
		{
			cout<<"学生"<<i+1<<": ";
			stud[i].display();
		}
		//找出个学生中成绩最高者,并输出其学号
		cout<<"5个学生中成绩最高者的学号为: "<<max(stud);

		system("pause");
		return 0;
}

int max(Student *arr)
{
	double max_score=arr[0].getScore();//通过公共的成员函数取出私立有的数据成员,用好此法
	int k=0;
	for(int i=1;i<5;i++)
		if(arr[i].getScore()>max_score)
		{
			max_score=arr[i].getScore();
			k=i;
		}
		return arr[k].getNum();
}
时间: 2024-11-24 11:04:23

C++第5周项目4 - 指针操作学生类的相关文章

C++第17周项目6——指针版多科成绩计算

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565 [项目6(选做)- 指针版多科成绩计算](接15周项目4)用二维数组score[][4]保存同学们的高数.英语.C++成绩及总成绩.在此基础上,尽量用指针法访问数组,完成下面的操作:(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中:(2)输出各门课及总分的最高成绩.最低成绩.平均成绩和成绩的标准偏差:(3)作为拓展,自行建立一个文本文件存储

C++第11周项目1、2 - 点类派生出直线类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8894095 [项目1]定义点类,并以点类为基类,派生出直线类,从基类中继承的点的信息表示直线的中点.请阅读下面的代码,并将缺少的部分写出来. #include<iostream> #include<Cmath> using namespace s

2013级C++第16周项目——初识指针

课程主页在:http://blog.csdn.net/sxhelijian/article/details/11890759 第一部分 程序分析 阅读下面的程序,先写出其运行结果,再运行对比. 读不懂怎么办?支招1:按课堂上老师讲课的方式,将变量对应内存的"框子"画出来,用大脑当CPU,写出变量的变化过程:支招2:单步执行程序,在监视(watch)窗口中观察变量的动态变化,从而掌握程序的运行机理.(1) #include <iostream> using namespace

C++第9周项目5 - -二维数组类Douary

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 [项目5(选做)-二维数组类Douary]建立一个二维数组类Douary,使该类中有以下数据成员.成员函数及友员函数,完成矩阵的输入.输出.加.减.相等判断等操作. class Douary { public: Douary(int m, int

C++第15周项目1扩展1 -数组类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/9018813 [项目1-扩展1]建立专门的数组类处理有关数组的操作项目1情况见:http://blog.csdn.net/sxhelijian/article/details/9052881 要求:在MyArray基础上增加下面的成员或友元函数,扩充MyArra

C++第3周项目2——修旱冰场的类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8661031 [项目2 - 修旱冰场](Circle类)一个圆形的旱冰场地,场地内抹水泥,造价为每平方米20元,围栏用木条围成,每米造价35元.设计一个Circle类,可以求出圆的面积和边长,进而支持求出旱冰场的等价.请在下面提示的基础上完成程序,其中需要做的工

C++第6周项目5 - 多文件组织三角形类

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8748730 [项目5]将项目4用"一个项目多个文件"的方式实现,其中两个类的声明放在一个.h文件中,每个类的成员函数分别放一个文件,main()函数用一个文件.体会这样安排的优点. 参考代码: Geometry.h #ifndef GEOMETRY_

C++第9周项目3 - 实现分数类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 [项目3-分数类]接第8周项目3,定义分数类中<<和>>运算符重载,实现分数的输入输出,改造原程序中对运算结果显示方式,使程序读起来更自然. 参考解答: #include <iostream> #include <C

C++第9周项目1 - 实现复数类中的运算符重载

课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8841620 [项目1-Complex类]接第8周项目1,定义Complex类中的<<和>>运算符的重载,实现输入和输出,改造原程序中对运算结果显示方式,使程序读起来更自然. 参考解答:(在VS2008中调试通过,CodeBlocks中有编译错误,