创建存储函数gpa(),使用游标,计算指定学号学生的平均学分绩点。 课程绩点的计算方法:课程成绩系数=(成绩-50)/10 课程学分绩点=课程成绩系数*课程学分 平均学分绩点=课程学分绩点总和/课程学分总和 调用gpa(),计算学号为‘201305010101‘的同学的平均学分绩点。
时间: 2023-11-27 10:54:09 浏览: 271
pl/sql相关学习文档
以下是使用游标计算指定学号学生平均学分绩点的存储函数gpa()的代码:
```
CREATE FUNCTION gpa(sid VARCHAR(12))
RETURNS FLOAT
BEGIN
DECLARE total_credit FLOAT DEFAULT 0;
DECLARE total_grade_point FLOAT DEFAULT 0;
DECLARE course_credit FLOAT;
DECLARE course_grade_point FLOAT;
DECLARE finished BOOLEAN DEFAULT FALSE;
DECLARE cur CURSOR FOR SELECT grade, credit FROM score WHERE student_id = sid;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET finished = TRUE;
OPEN cur;
grade_loop: LOOP
FETCH cur INTO course_grade_point, course_credit;
IF finished THEN
LEAVE grade_loop;
END IF;
SET total_credit = total_credit + course_credit;
SET total_grade_point = total_grade_point + (course_grade_point * course_credit);
END LOOP;
CLOSE cur;
IF total_credit = 0 THEN
RETURN 0;
ELSE
RETURN total_grade_point / total_credit;
END IF;
END;
```
调用gpa()计算学号为‘201305010101‘的同学的平均学分绩点的代码如下:
```
SELECT gpa('201305010101');
```
注意,以上代码仅供参考,具体实现可能因数据库类型、数据结构等因素而有所不同。
阅读全文