python实现学生管理系统源码

本文实例为大家分享了python实现学生管理系统的具体代码,供大家参考,具体内容如下

一.面向过程版

import os

stu_list = []


def show_menu():
    print(\'1.添加学生\')
    print(\'2.删除学生\')
    print(\'3.修改学生信息\')
    print(\'4.查询单个学生信息\')
    print(\'5.查询所有学生信息\')
    print(\'6.退出系统\')


def insert_student():
    name = input(\'请输入学生名字:\')
    for stu in stu_list:
        if stu[\'name\'] == name:
            print(\'.........学生信息已存在........\')
            return
    age = input(\'请输入学生年龄:\')
    gender = input(\'请输入学生性别:\')
    stu_dict = {\'name\': name, \'age\': int(age), \'gender\': gender}
    stu_list.append(stu_dict)
    print(\"学生信息添加成功!\")


def remove_student():
    name = input(\'请输入要操作的学生的名字:\')
    for stu in stu_list:
        if stu[\'name\'] == name:
            stu_list.remove(stu)
            print(\'删除成功!\')
            break
    else:
        print(\'........该学生信息不存在,无法删除.........\')


def modify_student():
    name = input(\'请输入要操作的学生的名字:\')
    for stu in stu_list:
        if stu[\'name\'] == name:
            stu[\'age\'] = int(input(\'请输入新的年龄:\'))
            print(\'修改成功!\')
            break
    else:
        print(\'........该学生信息不存在,无法修改.........\')


def search_student():
    name = input(\'请输入要操作的学生的名字:\')
    for stu in stu_list:
        if stu[\'name\'] == name:
            print(f\'姓名:{stu[\"name\"]},年龄:{stu[\"age\"]},性别:{stu[\"gender\"]}\')
            break
    else:
        print(\'........该学生信息不存在.......\')


def show_all_stu():
    if len(stu_list):
        for stu in stu_list:
            print(f\'姓名:{stu[\"name\"]},年龄:{stu[\"age\"]},性别:{stu[\"gender\"]}\')
    else:
        print(\"目前没有学生信息!\")


def save():
    f = open(\'student.txt\', \'w\')
    f.write(str(stu_list))
    f.close()


def read_file():
    global stu_list
    if os.path.exists(\'student.tct\'):
        f = open(\'student.txt\', \'r\', encoding=\'utf-8\')
        buf = f.read()
        if buf:
            stu_list = eval(buf)
        f.close()


def main():
    read_file()
    while True:
        show_menu()
        opt = input(\'请输入用来选择的编号:\')
        if opt == \'1\':
            print(\'1.添加学生\')
            insert_student()
        elif opt == \'2\':
            print(\'2.删除学生\')
            remove_student()
        elif opt == \'3\':
            print(\'3.修改单个学生信息\')
            modify_student()
        elif opt == \'4\':
            print(\'查询单个学生信息\')
            search_student()
        elif opt == \'5\':
            print(\'5.查询所有学生信息\')
            show_all_stu()
        elif opt == \'6\':
            print(\'欢迎下次使用本系统\')
            save()
            break
        else:
            print(\'输入有误,请重新输入\')
            continue
        input(\'........回车键继续操作........\')


main()

二.面向对象版

1.工程文件

python实现学生管理系统源码

2.main.py

import student_manage_sysytem as sms

if __name__ == \'__main__\':
    stu_sms = sms.StudenManagerSystem()
    stu_sms.start()

3.student.py

class Student():
    def __init__(self, stu_id, name, age, gender):
        self.sut_id = stu_id
        self.name = name
        self.age = age
        self.gender = gender

    def __str__(self):
        return f\"{self.sut_id},{self.name},{self.age},{self.gender}\"

4.student_manage_system.py

import student


class StudenManagerSystem():
    def __init__(self):
        self.stu_dict = {}

    @staticmethod
    def __show_menu():
        print(\'1.添加学生\')
        print(\'2.删除学生\')
        print(\'3.修改学生信息\')
        print(\'4.查询单个学生信息\')
        print(\'5.查询所有学生信息\')
        print(\'6.退出系统\')

    def __insert_student(self):
        stu_id = input(\'请输入学生学号:\')
        if stu_id in self.stu_dict:
            print(\'学生信息已经存在,不需要重复添加\')
            return
        name = input(\'请输入学生名字:\')
        age = input(\'请输入学生年龄:\')
        gender = input(\'请输入学生性别:\')
        stu = student.Student(stu_id, name, age, gender)
        self.stu_dict[stu_id] = stu

    def __removw_student(self):
        stu_id = input(\'请输入学号:\')
        if stu_id in self.stu_dict:
            del self.stu_dict[stu_id]
            print(\'学生已经删除\')
        else:
            print(\'学生信息不存在,无法删除\')

    def __modify_student(self):
        stu_id = input(\'请输入学号:\')
        if stu_id in self.stu_dict:
            stu = self.stu_dict[stu_id]
            stu.age = input(\'请输入新的年龄:\')
            print(\'信息已经修改完毕\')
        else:
            print(\'学生信息不存在,无法修改\')

    def __search_student(self):
        stu_id = input(\'请输入学号:\')
        if stu_id in self.stu_dict:
            stu = self.stu_dict[stu_id]
            print(stu)
        else:
            print(\'学生信息不存在\')

    def __save(self):
        f = open(\'student.txt\', \'w\', encoding=\'utf-8\')
        for stu in self.stu_dict.values():
            f.write(str(stu) + \'\\n\')
        f.close()

    def __load_info(self):
        try:
            f = open(\'student.txt\', \'r\', encoding=\'utf-8\')
            buf_list = f.readlines()
            for buf in buf_list:
                buf = buf.strip()
                info_list = buf.split(\',\')
                stu = student.Student(*info_list)
                stu_id = info_list[0]
                self.stu_dict[stu_id] = stu
            f.close()
        except Exception:
            pass

    def __show_all_info(self):
        for stu in self.stu_dict.values():
            print(stu)

    def start(self):
        self.__load_info()
        while True:
            self.__show_menu()
            opt = input(\'请输入用来选择的编号:\')
            if opt == \'1\':
                print(\'1.添加学生\')
                self.__insert_student()
            elif opt == \'2\':
                print(\'2.删除学生\')
                self.__removw_student()
            elif opt == \'3\':
                print(\'3.修改单个学生信息\')
                self.__modify_student()
            elif opt == \'4\':
                print(\'查询单个学生信息\')
                self.__search_student()
            elif opt == \'5\':
                print(\'5.查询所有学生信息\')
                self.__show_all_info()
            elif opt == \'6\':
                self.__save()
                print(\'欢迎下次使用本系统\')
                break
            else:
                print(\'输入有误,请重新输入\')
                continue
            input(\'........回车键继续操作........\')

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容