【Python】实现简单的学生信息管理系统

在这里插入图片描述

个人主页:Guiat
归属专栏:Python

在这里插入图片描述

正文

1. 函数实现

# 学生信息管理系统(函数实现)

# 定义一个空列表来存储学生信息
students = []

# 增
def add(list, id, name, age, score):
    for student in list:
        if student['id'] == id:
            print("学号已存在!")
            return
    list.append({
        'id':id,
        'name':name,
        'age':age,
        'score':score
    })
    print("添加成功!")

# 删
def delete(list, id):
    for i, student in enumerate(list):
        if student['id'] == id:
            list.pop(i)
            print("删除成功!")
            return
    print("未找到该学生!")

# 改
def update(list, id, name = None, age = None, score = None):
    for student in list:
        if student['id'] == id:
            if name: student['name'] = name
            if age: student['age'] = age
            if score: student['score'] = score
            print("修改成功!")
            return
    print("未找到该学生的学号!")

# 查
def search(list, id):
    for student in list:
        if student['id'] == id:
            print("找到学生信息:", student)
            return
    print("未找到该学号的学生!")

# 展示所有学生信息
def show(list):
    if not list: print("没有学生信息!")
    else:
        for student in list: print(student)

def main():
    while True:
        print("\n==== 学生信息管理系统 ====")
        print("1. 添加学生")
        print("2. 删除学生")
        print("3. 修改学生")
        print("4.查询学生")
        print("5. 显示所有学生")
        print("6. 退出系统")
        choice = input("请输入你的选择(1 - 6):")
        if choice == '1':
            id = input("请输入学号:")
            name = input("请输入姓名:")
            age = input("请输入年龄:")
            score = input("请输入成绩:")
            add(students, id, name, age, score)
        elif choice == '2':
            id = input("请输入要删除的学号:")
            delete(students, id)
        elif choice == '3':
            id = input("请输入要修改的学号:")
            name = input("请输入新姓名(不修改则留空):")
            age = input("请输入新年龄(不修改则留空):")
            score = input("请输入新成绩(不修改则留空):")
            update(students, id, name, age, score)
        elif choice == '4':
            id = input("请输入要查询的学号:")
            search(students, id)
        elif choice == '5': show(students)
        elif choice == '6':
            print("退出系统,再见!")
            break
        else: print("输入错误,请重新输入!")

# 调用主函数
if __name__ == "__main__": main()

2. 面向对象实现

# 学生信息管理系统(面向对象)

# 定义 Student 类,用于表示一个学生对象
class Student:
    def __init__(self, id, name, age, score):
        self.id = id
        self.name = name
        self.age = age
        self.score = score
    def __str__(self): return f"学号: {self.id}, 姓名: {self.name}, 年龄: {self.age}, 成绩: {self.score}"

# 定义 StudentSystem 类,用于管理学生信息
class StudentSystem:
    def __init__(self): self.students = []
    # 增
    def add(self, id, name, age, score):
        for student in self.students:
            if student.id == id:
                print("该学号已存在!")
                return
        new_student = Student(id, name, age, score)
        self.students.append(new_student)
        print("添加成功!")
    # 删
    def delete(self, id):
        for i, student in enumerate(self.students):
            if student.id == id:
                del self.students[i]
                print("删除成功!")
                return
        print("未找到该学号的学生!")
    # 改
    def update(self, id, name=None, age=None, score=None):
        for student in self.students:
            if student.id == id:
                if name: student.name = name
                if age is not None: student.age = age
                if score is not None: student.score = score
                print("修改成功!")
                return
        print("未找到该学号的学生!")
    # 查
    def search(self, id):
        for student in self.students:
            if student.id == id:
                print(student)
                return
        print("未找到该学号的学生!")
    # 展示所有学生信息
    def show(self):
        if not self.students: print("没有学生信息!")
        else:
            for student in self.students: print(student)
    def run(self):
        while True:
            print("\n===== 学生信息管理系统(面向对象版)=====")
            print("1. 添加学生")
            print("2. 删除学生")
            print("3. 修改学生")
            print("4. 查询学生")
            print("5. 显示所有学生")
            print("6. 退出系统")
            choice = input("请输入你的选择(1-6):")
            if choice == '1':
                student_id = input("请输入学号:")
                name = input("请输入姓名:")
                age = int(input("请输入年龄:"))
                score = float(input("请输入成绩:"))
                self.add(student_id, name, age, score)
            elif choice == '2':
                id = input("请输入要删除的学号:")
                self.delete(id)
            elif choice == '3':
                id = input("请输入要修改的学号:")
                name = input("请输入新姓名(不修改则留空):")
                age_input = input("请输入新年龄(不修改则留空):")
                score_input = input("请输入新成绩(不修改则留空):")
                age = int(age_input) if age_input else None
                score = float(score_input) if score_input else None
                self.update(id, name, age, score)
            elif choice == '4':
                id = input("请输入要查询的学号:")
                self.search(id)
            elif choice == '5': self.show()
            elif choice == '6':
                print("退出系统,再见!")
                break
            else: print("输入错误,请重新输入!")

# 调用run方法启动系统
if __name__ == "__main__":
    system = StudentSystem()
    system.run()

3. 运行效果

在这里插入图片描述

结语
感谢您的阅读!期待您的一键三连!欢迎指正!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Guiat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值