编写一个成绩管理系统,主要用来管理学生基本信息及成绩信息。系统功能模块主要有:成绩录入、打印成绩单、可以排序、查询、统计平均分、统计不及格学生
时间: 2023-07-10 18:28:35 浏览: 79
好的,这是一个比较常见的题目,需要设计一个简单的成绩管理系统,下面是我的建议:
1. 学生信息和成绩信息的存储
我们可以使用一个字典来存储每个学生的信息和成绩信息,例如:
```
{
"学生1": {"语文": 80, "数学": 90, "英语": 70},
"学生2": {"语文": 70, "数学": 60, "英语": 80},
...
}
```
2. 成绩录入
可以通过输入学生姓名和科目成绩来录入成绩,注意需要判断输入是否合法,例如:
```python
def add_score(scores):
name = input("请输入学生姓名:")
subject = input("请输入科目名称:")
score = input("请输入成绩:")
if name not in scores:
scores[name] = {}
scores[name][subject] = int(score)
print("成绩录入成功!")
```
3. 打印成绩单
可以通过遍历字典来打印每个学生的成绩信息,例如:
```python
def print_score(scores):
for name, score in scores.items():
print(name)
for subject, grade in score.items():
print("{}:{}".format(subject, grade))
```
4. 排序
可以使用 Python 内置的 sorted 函数对学生信息进行排序,例如按照总分降序排序:
```python
def sort_by_total(scores):
def get_total(name):
return sum(scores[name].values())
sorted_names = sorted(scores, key=get_total, reverse=True)
for name in sorted_names:
print("{}:{}".format(name, get_total(name)))
```
5. 查询
可以通过输入学生姓名来查询其成绩信息,例如:
```python
def query_score(scores):
name = input("请输入要查询的学生姓名:")
if name in scores:
print("{} 的成绩如下:".format(name))
for subject, grade in scores[name].items():
print("{}:{}".format(subject, grade))
else:
print("找不到学生 {} 的成绩信息!".format(name))
```
6. 统计平均分
可以遍历字典并计算每个学生的平均分,然后取平均值,例如:
```python
def calc_avg(scores):
total = 0
count = 0
for name, score in scores.items():
total += sum(score.values())
count += len(score)
return total / count
```
7. 统计不及格学生
可以遍历字典并统计每个学生不及格科目数,例如:
```python
def count_failed(scores):
count = 0
for name, score in scores.items():
failed_count = sum(grade < 60 for grade in score.values())
if failed_count > 0:
count += 1
print("{} 不及格科目数:{}".format(name, failed_count))
print("不及格学生数:{}".format(count))
```
以上是我的建议,可以将这些代码组合成一个完整的成绩管理系统。
阅读全文