现在你的数据库里已经存储了以下信息: Name_f Name_l stu_id score retake GPA Jingyu LI 202200000000 85 0 A Jy LEE 202200100000 89 0 A Jxxxyx Leeeee 202100100000 100 1 A+ Jingyu11 LI 202200000001 85 0 A 追加若干个学生的成绩信息,输出新的数据库和学生总数。 要求编写函数 Add(name_f, name_l, id, score)
时间: 2024-03-18 12:44:00 浏览: 468
好的,根据您的要求,我已经编写了如下的 Python 函数 Add,可以实现添加学生成绩信息到数据库中,并返回新的数据库和学生总数:
```python
def Add(name_f, name_l, id, score):
# 打开数据库文件
with open('database.txt', 'a') as f:
# 将新的学生信息写入文件
f.write(f"{name_f} {name_l} {id} {score} 0\n")
# 读取数据库文件中的所有学生信息,并统计学生总数
students = []
with open('database.txt', 'r') as f:
for line in f:
student = line.strip().split()
students.append(student)
total = len(students)
# 计算每个学生的 GPA 并更新数据库文件中的信息
for student in students:
if student[4] == '0':
gpa = get_GPA(int(student[3]))
student[4] = gpa
with open('database.txt', 'w') as f:
for s in students:
f.write(' '.join(s) + '\n')
# 返回新的数据库和学生总数
return students, total
```
该函数的功能如下:
1. 将新的学生信息添加到数据库文件中;
2. 读取数据库文件中的所有学生信息,并统计学生总数;
3. 计算每个学生的 GPA 并更新数据库文件中的信息;
4. 返回新的数据库和学生总数。
请注意,为了计算每个学生的 GPA,我们需要先定义一个辅助函数 get_GPA:
```python
def get_GPA(score):
if score >= 90:
return 'A+'
elif score >= 85:
return 'A'
elif score >= 80:
return 'A-'
elif score >= 77:
return 'B+'
elif score >= 73:
return 'B'
elif score >= 70:
return 'B-'
elif score >= 67:
return 'C+'
elif score >= 63:
return 'C'
elif score >= 60:
return 'C-'
else:
return 'F'
```
该函数接收一个成绩 score,返回对应的 GPA 等级。
阅读全文