实验内容 学校所有课程每学期允许多次考试,学生可随时参加考试,系统自动将每次考试的成绩添加到Excel文件(包含三列:姓名、课程、成绩)中,期未要求统计所有学生每门课程的最高成绩。 1、编写程序,模拟生成若干学生的成绩并写入Excel文件,其中学生姓名和课程名称均可重复,也就是允许出现同一门课程多次成绩; 2、统计所有学生每门课程的最高成绩,并写入新的Excel文件。 三、实验步骤 1、在命令行环境中使用pip install openpyxl命令安装扩展库openpyxl。 2、使用随机数函数生成学生成绩数据,并写入自行指定的学生初始成绩表中。 3、统计学生的最高成绩,并写入自行指定的学生最终成绩表中
时间: 2024-04-22 21:27:34 浏览: 158
24-25学年度第一学期期末课程考试.docx
好的,我理解了你的要求。以下是Python代码实现:
```python
import random
from openpyxl import Workbook, load_workbook
# 生成随机成绩数据
names = ['张三', '李四', '王五', '赵六', '钱七']
courses = ['语文', '数学', '英语', '物理', '化学']
scores = [60, 70, 80, 90, 100]
data = []
for i in range(100):
name = random.choice(names)
course = random.choice(courses)
score = random.choice(scores)
data.append((name, course, score))
# 将成绩数据写入Excel文件
filename = '初始成绩表.xlsx'
try:
wb = load_workbook(filename)
ws = wb.active
except FileNotFoundError:
wb = Workbook()
ws = wb.active
ws.append(['姓名', '课程', '成绩'])
for row in data:
ws.append(row)
wb.save(filename)
# 统计最高成绩并写入Excel文件
filename = '最终成绩表.xlsx'
try:
wb = load_workbook(filename)
ws = wb.active
except FileNotFoundError:
wb = Workbook()
ws = wb.active
ws.append(['姓名', '课程', '最高成绩'])
for name in names:
for course in courses:
scores = []
for row in ws.iter_rows(min_row=2, values_only=True):
if row[0] == name and row[1] == course:
scores.append(row[2])
if scores:
max_score = max(scores)
ws.append([name, course, max_score])
wb.save(filename)
```
以上代码实现了随机生成学生成绩数据,并将数据写入初始成绩表Excel文件。然后统计所有学生每门课程的最高成绩,并将最终成绩写入新的Excel文件中。注意,需要先判断文件是否存在,不存在则创建并添加表头。
阅读全文