习题 9.5 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

习题 9.5 建立一个对象数组,内放5个学生的数据(学号、成绩),设立一个函数max,用指向对象的指针作函数参数,在max函数中找出5个学生中成绩最高者,并输出其学号。

代码:

#include <iostream>
using namespace std;

class Student
{
public:
	Student(string n,double s): num(n),score(s) {}
	string num;
	double score;
};

int main()
{
	void max(Student * );
	Student s[5] =
	{
		Student ("1",60),
		Student ("2",70),
		Student ("3",80),
		Student ("4",90),
		Student ("5",100)
	};

	max(s);

	return 0;
}


void max(Student *p)
{
	Student* t;
	Student* c;
	double max;
	for (t = p , c = t, max = t->score; t < (p + 5); ++t)
	{
		if (t->score > max)
		{
			max = t->score;
			c = t;
		}
	}

	cout << "成绩最高者为: " << c->num << endl;


}

运行结果:

 

  • 8
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个可能的练习题,希望能够帮助你巩固Oracle存储过程的知识。 题目要求: 在一个学生课程数据,有一个名为SC(学生-课程)的表格,其每条记录包含三个字段:学生ID、课程ID和成绩。现在需要你编写一个存储过程,用于修改给定学号、课程号的学生成绩。 要求实现的存储过程应该满足以下条件: 1. 存储过程的名称为update_score,其学生ID、课程ID和新的成绩为输入参数。 2. 存储过程应该能够找到SC表格指定学生、指定课程的记录,并将其成绩更新为新的成绩。 3. 存储过程应该返回成功更新的记录数目。 参考答案: 下面是一个可能的参考答案,仅供参考。请注意,实际的存储过程实现可能会因为具体的数据库结构和要求而有所不同。 ``` CREATE OR REPLACE PROCEDURE update_score(p_student_id IN NUMBER, p_course_id IN NUMBER, p_new_score IN NUMBER, p_updated_count OUT NUMBER) AS BEGIN UPDATE SC SET score = p_new_score WHERE student_id = p_student_id AND course_id = p_course_id; p_updated_count := SQL%ROWCOUNT; END; ``` 在这个存储过程,我们首先使用UPDATE语句更新SC表格指定学生、指定课程的记录,并将其成绩更新为新的成绩。然后,我们使用SQL%ROWCOUNT内置变量来获取成功更新的记录数目,并将其赋值给输出参数p_updated_count。 你可以使用以下代码来调用这个存储过程,并查看返回结果: ``` DECLARE updated_count NUMBER; BEGIN update_score(1, 1, 85, updated_count); DBMS_OUTPUT.PUT_LINE('Updated ' || updated_count || ' records.'); END; ``` 在这个例子,我们将学生ID设为1,课程ID设为1,新的成绩设为85,然后调用存储过程update_score,并将返回的记录数存储在变量updated_count。最后,我们使用DBMS_OUTPUT.PUT_LINE函数将结果输出到控制台。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值