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

简介: 课程首页地址:http://blog.csdn.net/sxhelijian/article/details/7910565,本周题目链接:http://blog.csdn.net/sxhelijian/article/details/8723847【项目4】设计一个学生类Student,包括学号(num)和成绩(score)。建立一个对象数组,通过初始化,设置5个学生的数据,要求:  (

课程首页地址: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();
}


目录
相关文章
|
1天前
|
C++
C++类和类模板——入门
C++类和类模板——入门
7 1
|
1天前
|
存储 编译器 C++
|
1天前
|
存储 算法 安全
C++一分钟之-数组与指针基础
【6月更文挑战第19天】在C++中,数组和指针是核心概念,数组是连续内存存储相同类型的数据,而指针是存储内存地址的变量。数组名等同于指向其首元素的常量指针。常见问题包括数组越界、尝试改变固定大小数组、不正确的指针算术以及忘记释放动态内存。使用动态分配和智能指针可避免这些问题。示例代码展示了安全访问和管理内存的方法,强调了实践的重要性。
17 3
|
2天前
|
数据安全/隐私保护 C++
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
C++ 中的类是一种用户定义的数据类型,用于表示具有相似特征和行为的对象的模板。
|
2天前
|
C++
C++ 是一种面向对象的编程语言,它支持对象、类、继承、多态等面向对象的特性
C++ 是一种面向对象的编程语言,它支持对象、类、继承、多态等面向对象的特性
|
3天前
|
算法 前端开发 Linux
【常用技巧】C++ STL容器操作:6种常用场景算法
STL在Linux C++中使用的非常普遍,掌握并合适的使用各种容器至关重要!
31 10
|
5天前
|
编译器 Linux C++
C++智能指针
**C++智能指针是RAII技术的体现,用于自动管理动态内存,防止内存泄漏。主要有三种类型:已废弃的std::auto_ptr、不可复制的std::unique_ptr和可共享的std::shared_ptr。std::unique_ptr通过禁止拷贝和赋值确保唯一所有权,而std::shared_ptr使用引用计数来协调多个指针对同一资源的共享。在C++17中,std::auto_ptr因设计缺陷被移除。**
|
5天前
|
编译器 C++
【C++初阶】—— 类和对象 (下)
【C++初阶】—— 类和对象 (下)
9 2
|
5天前
|
存储 编译器 C++
【C++初阶】—— 类和对象 (中)
【C++初阶】—— 类和对象 (中)
14 3
|
7天前
|
编译器 数据安全/隐私保护 C++
c++primer plus 6 读书笔记 第十三章 类继承
c++primer plus 6 读书笔记 第十三章 类继承