Python实现学生信息管理

#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 学生信息 姓名,性别

class Student():
    """用于创建学生对象"""

    def __init__(self, name, gender, *args, **kwargs):
        self.name = name
        self.gender = gender


stu_li = []  # 用于存储学生对象


def add_student(name, gender):
    """用于添加学生信息"""
    if not all([name, gender]):
        return "输入信息无效,请重新输入"
    else:
        stu_li.append(Student(name, gender))
        return "添加学生成功"


def show_all():
    """显示全部学生的信息"""
    if not stu_li:
        return "无学生信息!"

    for stu in stu_li:
        num = stu_li.index(stu) + 1
        print("{}   {}   {}".format(num, stu.name, stu.gender))

    return "学生信息,已全部显示!"


def del_student(stu_num):
    """删除学生信息(对象)"""
    if not stu_li:
        return "无学生信息!"
    else:
        try:
            del stu_li[int(stu_num) - 1]
        except Exception as e:
            return "学生编号信息有误!"
        return "删除成功!"


def modify_stu_info(stu_num, name, gender):
    """修改学生信息"""
    if not stu_li:
        return "无学生信息!"
    else:
        try:
            stu = stu_li[int(stu_num) - 1]
        except Exception as e:
            return "学生编号信息有误!"
        else:
            if name:
                stu.name = name
            if gender:
                stu.gender = gender
            return "操作成功"


def save_data():
    """保存学生信息"""
    if not stu_li:
        return
    str_info = ""
    for stu in stu_li:
        num = stu_li.index(stu) + 1
        info = "{}   {}   {} \n".format(num, stu.name, stu.gender)
        str_info += info

    file = open("Students_Info.txt", "w")
    file.write(str_info)
    file.close()


def get_stu_info():
    """初次启动程序时,从txt文本中获取学生信息,构建学生对象,存储在stu_li列表中"""
    file = None
    try:
        file = open("Students_Info.txt", "r")
    except Exception as e:
        return
    else:
        content = file.read()
        info_li = content.split("\n")
        info_li.remove('')
        for i in info_li:
            stu_info_li = i.split('   ')
            name = stu_info_li[1]
            gender = stu_info_li[2]
            stu_li.append(Student(name, gender))

        file.close()


if __name__ == '__main__':

    get_stu_info()
    while True:
        print("=" * 20 + "\n" +
              "学生信息管理系统V1.0\n"
              "1.添加学生信息\n"
              "2.删除学生信息\n"
              "3.修改学生信息\n"
              "4.显示所有学生信息\n"
              "5.退出系统\n" +
              "=" * 20)

        num = input("请输入选项:")
        if num == "1":
            name = input("请输入姓名:")
            gender = input("请输入性别:")
            result = add_student(name, gender)
            print(result)

        elif num == "2":
            stu_num = input("请输入学生编号:")
            result = del_student(stu_num)
            print(result)

        elif num == "3":
            stu_num = input("请输入学生编号:")
            name = input("请输入姓名(不输入默认不修改):")
            gender = input("请输入性别(不输入默认不修改):")
            result = modify_stu_info(stu_num, name, gender)
            print(result)

        elif num == "4":
            result = show_all()
            print(result)

        elif num == "5":
            save_data()
            print("再见!")
            break
        else:
            print("选项无效,请重新输入!")

发布了25 篇原创文章 · 获赞 27 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/CSDN_Mr_H/article/details/103874333