67: 学生成绩管理(python)

简介: 67: 学生成绩管理(python)

收藏

难度:简单

标签:暂无标签

题目描述

有N个学生,每个学生的数据包括学号、班级、姓名、三门课成绩。从键盘输入N 个

学生数据,要求打印出每个学生三门课的平均成绩,以及平均分最高分学生数据(包括学号、

班级、姓名、三门课成绩,平均分)。

要求:

1、 定义学生结构体。

2、 用一个函数实现N 个学生数据的输入,用另一个函数负责求每个学生三门课程的平

均成绩,再用一个函数求出平均分最高的学生并输出该学生的数据。要求平均分和平均分最

高的学生数据都在主函数中输出。

输入

第一行:N,表示N 个学生

下面N 行:每行数据包括学号、班级、姓名、三门课成绩。

输出

输出每个学生三门课的平均成绩,以及平均分最高分学生数据(包括学号、班级、姓名、

三门课成绩,平均分)。

格式见下。(四舍五入保留一位小数)

样例输入复制

4

20070008 software1 wangjun 87 84 76

20070001 science1 lanxin 90 84 83

20070007 software2 wuke 94 87 86

20070003 science4 xuede 90 86 87

样例输出复制

wangjun 82.3

lanxin 85.7

wuke 89.0

xuede 87.7

20070007 software2 wuke 94.0 87.0 86.0 89.0

class Student:
    def __init__(self, student_id, class_name, name, score1, score2, score3):
        self.student_id = student_id
        self.class_name = class_name
        self.name = name
        self.score1 = score1
        self.score2 = score2
        self.score3 = score3
def input_students(n):
    students = []
    for _ in range(n):
        student_info = input().split()
        student_id, class_name, name = student_info[:3]
        scores = list(map(float, student_info[3:]))
        student = Student(student_id, class_name, name, *scores)
        students.append(student)
    return students
def calculate_average(student):
    return (student.score1 + student.score2 + student.score3) / 3
def find_highest_average(students):
    highest_average = 0
    highest_student = None
    for student in students:
        average = calculate_average(student)
        if average > highest_average:
            highest_average = average
            highest_student = student
    return highest_student
def main():
    n = int(input("请输入学生人数:"))
    students = input_students(n)
    for student in students:
        average_score = calculate_average(student)
        print(f"{student.name} {average_score:.1f}")
    highest_student = find_highest_average(students)
    print(f"{highest_student.student_id} {highest_student.class_name} {highest_student.name} "
          f"{highest_student.score1} {highest_student.score2} {highest_student.score3} "
          f"{calculate_average(highest_student):.1f}")
if __name__ == "__main__":
    # main()
相关文章
|
4天前
|
Python
空间管理大师已上线!(2),Python高级工程师进阶学习】
空间管理大师已上线!(2),Python高级工程师进阶学习】
|
6天前
|
Unix Shell Linux
赞!优雅的Python多环境管理神器!易上手易操作!
赞!优雅的Python多环境管理神器!易上手易操作!
|
6天前
|
存储 Java C语言
【python】——使用嵌套列表实现游戏角色管理
【python】——使用嵌套列表实现游戏角色管理
41 0
|
6天前
|
API 数据库 Python
Python 教程之 Django(8)在 Django 管理界面中渲染模型
Python 教程之 Django(8)在 Django 管理界面中渲染模型
27 0
Python 教程之 Django(8)在 Django 管理界面中渲染模型
|
6天前
|
存储 JSON 数据管理
文件操作与管理:用Python读写数据
【4月更文挑战第8天】本文介绍了Python中进行高效文件操作与数据管理的方法。通过`os`模块管理目录,使用`open`函数读写文件,`pickle`模块保存和加载复杂数据结构。示例代码展示了如何读取和写入文本文件,处理CSV和JSON数据,以及利用`pickle`序列化和反序列化Python对象。掌握这些技能对于处理现代社会中的数据至关重要。
|
6天前
|
iOS开发 MacOS Python
Python 虚拟环境及pip环境管理
`venv`是Python的虚拟环境管理工具,提供独立的环境避免包冲突,便于管理与删除。创建虚拟环境使用`python3 -m venv test`,激活环境在Windows上运行`. Scripts\activate`,macOS上运行`. bin\activate`。安装Python包通过`python`或`python3`选择版本,使用`pip`进行安装、升级和卸载。`pip`是Python包管理器,自2.7.9和3.4版本起自带,常用命令包括查看版本、安装、升级和卸载包。为提高速度,可使用国内镜像源如阿里云、清华或豆瓣。
12 2
|
6天前
|
存储 网络安全 数据安全/隐私保护
【专栏】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。
【4月更文挑战第28天】Python 网络设备管理中,`ConnectHandler`(Paramiko库)和`telnetlib`模块常用于设备交互。`ConnectHandler`简化SSH连接,便于与网络设备交互,而`telnetlib`是Python内置模块,支持Telnet协议的远程登录操作。两者都提供命令执行和响应接收功能。示例代码展示了如何使用它们获取防火墙设备的版本信息,降低了代码复杂度,提高了可读性和维护性。
|
6天前
|
运维 Shell 网络安全
第十八章 Python批量管理主机(paramiko、fabric与pexpect)
第十八章 Python批量管理主机(paramiko、fabric与pexpect)
|
6天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
21 0
|
6天前
|
API Python
Python邮件与日历管理
【4月更文挑战第13天】Python 通过 `smtplib` 和 `email` 发送邮件,`imaplib` 接收邮件。`google-api-python-client` 库用于管理 Google Calendar,示例代码展示了列出日历事件的功能。要使用 Google Calendar API,需设置服务帐户凭据和范围。
20 1