利用随机数生成班级(68人)成绩表,共有6门课程,尽可能完善地实现一个成绩表的统计工作,设计程序计算出每个人的总分,统计每门课程的平均分、最高分、最低分、优秀率、及格率。
时间: 2023-05-02 11:02:28 浏览: 177
需要利用随机数生成班级成绩表,共有6门课程,尽可能地实现一个成绩表的统计工作,设计程序计算出每个人的总分,统计每门课程的平均分、最高分、最低分、优秀率及格率,并格率及格率及格率及格率及格率及格率及格率。
相关问题
1、在命令行环境中使用pip install openpyxl命令安装扩展库openpyxl。 2、使用随机数函数生成学生成绩数据,并写入自行指定的学生初始成绩表中。 3、统计学生的最高成绩,并写入自行指定的学生最终成绩表中
好的,以下是代码实现:
```python
import openpyxl
import random
# 打开初始成绩表
wb = openpyxl.load_workbook('initial_scores.xlsx')
ws = wb.active
# 生成学生成绩数据,并写入初始成绩表中
for row in ws.iter_rows(min_row=2):
for cell in row[1:]:
# 生成0~100之间的随机整数作为学生成绩
score = random.randint(0, 100)
cell.value = score
# 统计学生的最高成绩,并写入最终成绩表中
wb2 = openpyxl.Workbook()
ws2 = wb2.active
ws2.title = 'final_scores'
ws2['A1'] = '学生姓名'
ws2['B1'] = '最高成绩'
for row in ws.iter_rows(min_row=2):
name = row[0].value
max_score = max([cell.value for cell in row[1:]])
ws2.append([name, max_score])
# 保存最终成绩表
wb2.save('final_scores.xlsx')
```
这段代码的作用是:
1. 打开一个名为initial_scores.xlsx的Excel文件,里面有学生姓名和成绩两列。
2. 循环遍历初始成绩表中每个学生的成绩单元格,使用random模块中的randint函数生成0~100之间的随机整数,并将其写入单元格中。
3. 创建一个新的Excel文件,命名为final_scores.xlsx,并在其中创建一个名为final_scores的工作表。
4. 在final_scores工作表中,创建两个列,分别为“学生姓名”和“最高成绩”。
5. 循环遍历初始成绩表中每个学生的成绩,找到每个学生的最高成绩,并将其写入final_scores工作表中的对应行。
6. 保存final_scores.xlsx文件。
在课程表Courses_8208210915上定义一个触发器,当向表中新增一条记录时,自动在选修表Score_8208210915中为部分学生生成对该门课程的选修记录,成绩为随机生成的整数,范围在0-100之间。
好的,以下是一个实现该需求的触发器的示例代码:
```
-- 创建触发器,当向课程表Courses_8208210915中新增一条记录时,自动在选修表Score_8208210915中为部分学生生成对该门课程的选修记录
CREATE TRIGGER insert_score AFTER INSERT ON Courses_8208210915
FOR EACH ROW
BEGIN
-- 随机选择一些学生
DECLARE student_cursor CURSOR FOR SELECT Sno FROM Students_8208210915 WHERE RAND() < 0.5;
DECLARE student_sno CHAR(10);
DECLARE done INT DEFAULT FALSE;
DECLARE score INT;
-- 遍历选中的学生,生成选修记录
OPEN student_cursor;
read_loop: LOOP
FETCH student_cursor INTO student_sno;
IF done THEN
LEAVE read_loop;
END IF;
SET score = FLOOR(RAND() * 100);
INSERT INTO Score_8208210915(Sno, Cno, Score) VALUES(student_sno, NEW.Cno, score);
END LOOP;
CLOSE student_cursor;
END;
```
这个触发器会在向课程表 Courses_8208210915 中插入新记录时自动触发。它会随机选择一些学生(这里使用了一个随机数来控制选中学生的概率),然后为这些学生在选修表 Score_8208210915 中生成对该门课程的选修记录,成绩为随机生成的整数,范围在 0-100 之间。
需要注意的是,这个触发器只是一个示例,仅供参考。在实际使用时,还需要根据具体的业务需求进行修改和完善。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://img-home.csdnimg.cn/images/20210720083646.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)