通过二维数组构建学生的成绩单 学号 语文 数学 英语 物理 化学 生物 101 96 79 88 77 76 83 102 79 82 86 82 67 91 103 83 98 95 92 93 88 104 92 82 78 89 81 79 105 87 95 91 85 87 75 程序包含的功能: 1、 输入学号和科目名称(如语文、数学等)查询所有同学该科门科目的平 均成绩以及该生该门科目的排名。 2、 输入学号,输出所有同学根据总成绩的排名,并输出该学号的排名。 3、 输入学号、科目名称、修改的成绩分数对成绩单中成绩进行修改。 4、程序在最开始可以选择想执行的业务选项。 其它要求:除程序能够正确运行外,还要求程序具有友好的用户交互界面, 能够对错误输入进行处理(比如对输入金额验证,输入 id 的唯一性验证,输入 超长字符的验证),具备良好的性能,程序要求具有良好的注释和代码美观性
时间: 2024-01-24 18:19:25 浏览: 60
定义一个二维数组用于存储学生的学号,姓名和c#课程的考试成绩,然后输入学号、姓名和c#成绩。最后按c#成绩升序和降序输出成绩单。
4星 · 用户满意度95%
这一道比较复杂的编程题,需要用到二维数组、循环、条件判断、排序等知识点。下面是一个简单的 Python 代码示例,实现了题目要求的基本功能:
```python
# 定义学生成绩单二维数组
scores = [
[101, 96, 79, 88, 77, 76, 83],
[102, 79, 82, 86, 82, 67, 91],
[103, 83, 98, 95, 92, 93, 88],
[104, 92, 82, 78, 89, 81, 79],
[105, 87, 95, 91, 85, 87, 75],
]
# 显示菜单,让用户选择要执行的功能
print("请选择要执行的功能:")
print("1. 查询成绩")
print("2. 排名")
print("3. 修改成绩")
option = int(input("请输入选项:"))
# 根据用户选择执行相应的功能
if option == 1:
# 输入学号和科目名称,查询所有同学该科目的平均成绩以及该生该科目的排名
student_id = int(input("请输入学号:"))
subject = input("请输入科目名称:")
subject_index = {"语文": 1, "数学": 2, "英语": 3, "物理": 4, "化学": 5, "生物": 6}[subject]
scores_sum = 0
count = 0
for i in range(len(scores)):
scores_sum += scores[i][subject_index]
if scores[i][0] == student_id:
student_score = scores[i][subject_index]
count += 1
avg_score = scores_sum / count
print("平均成绩:", avg_score)
rank = sorted(scores, key=lambda x: x[subject_index], reverse=True).index([student_id] + scores[student_id-101])[0] + 1
print("排名:", rank)
elif option == 2:
# 输入学号,输出所有同学根据总成绩的排名,并输出该学号的排名
student_id = int(input("请输入学号:"))
scores_with_total = []
for i in range(len(scores)):
total_score = sum(scores[i][1:])
scores_with_total.append([scores[i][0]] + scores[i][1:] + [total_score])
sorted_scores = sorted(scores_with_total, key=lambda x: x[-1], reverse=True)
for i in range(len(sorted_scores)):
if sorted_scores[i][0] == student_id:
print("排名:", i+1)
break
print("所有学生的排名:")
for i in range(len(sorted_scores)):
print(i+1, sorted_scores[i][0])
elif option == 3:
# 输入学号、科目名称、修改的成绩分数对成绩单中成绩进行修改
student_id = int(input("请输入学号:"))
subject = input("请输入科目名称:")
subject_index = {"语文": 1, "数学": 2, "英语": 3, "物理": 4, "化学": 5, "生物": 6}[subject]
new_score = int(input("请输入新成绩:"))
for i in range(len(scores)):
if scores[i][0] == student_id:
scores[i][subject_index] = new_score
print("修改成功!")
break
else:
print("无效选项!")
```
这个程序可以通过菜单让用户选择要执行的功能,然后根据用户的输入进行相应的操作。第一个功能是查询成绩,需要输入学号和科目名称,然后计算所有同学该门科目的平均成绩,以及该生该门科目的排名。第二个功能是排名,需要输入学号,然后根据所有同学的总成绩进行排名,并输出该学号的排名。第三个功能是修改成绩,需要输入学号、科目名称和新成绩,然后对成绩单中的成绩进行修改。程序还包含了一些错误处理和注释,帮助用户更好地使用。
阅读全文