用Python实现学生管理系统

实现简单的学生管理系统

  • 用面向对象思想
  • 实现数据持久化
import os,pickle
stu_dic = {}
filename = 'stu_inf.txt'
class Student():
    def __init__(self,name,age,stu_id,gender):
        self.name = name
        self.age = age
        self.stu_id = stu_id
        self.gender = gender
    def show_stuinfo(self):
        print('姓名:{0} 年龄:{1} 学号:{2} 性别:{3}'
              .format(self.name,self.age,self.stu_id,self.gender))
class ManaSys():
    def __init__(self,version):
        self.version = version
    def showMenu(self):
        print('欢迎访问学生管理系统 %s:'%self.version)
        print('1.添加学生信息')
        print('2.查询学生信息')
        print('3.修改学生信息')
        print('4.删除学生信息')
        print('5.展示学生信息')
        print('6.退出系统')
    def addStu(self,student):
        stu_dic[student.name] = student
        print('学生信息添加成功')
    def searchStu(self,name):
        if name in stu_dic:
            print('该名的学生信息是:')
            stu_dic[name].show_stuinfo()
        else:
            print('没有该名学生信息')
    def updateStu(self,name):
        if name in stu_dic:
            alter_name = input('请输入修改后的学生姓名:')
            alter_age = input('请输入修改后的学生年龄:')
            alter_stu_id = input('请输入修改后的学生学号:')
            alter_gender = stu_dic[name].gender
            stu_dic.pop(name)
            stu_dic[alter_name] = Student(alter_name,alter_age,alter_stu_id,alter_gender)
            print('修改后的学生信息是:')
            stu_dic[alter_name].show_stuinfo()
        else:
            print('没有该名学生信息')
    def delStu(self,name):
        if name in stu_dic:
            stu_dic.pop(name)
            print('该名学生的信息删除成功')
        else:
            print('没有该名学生信息')
    def showStu(self):
        if len(stu_dic) > 0:
           print('学生信息如下:')
           for stu_list in stu_dic.values():
               stu_list.show_stuinfo()
        else:
            print('没有学生信息')
    def exitSys(self):
        print('谢谢访问')
        self.writeData(filename)
        exit()
    def writeData(self,filename):
        f = open(filename,mode='wb')
        pickle.dump(stu_dic,f)
        f.close()
    def loadData(self,filename):
        if os.path.exists(filename):
            f = open(filename,mode='rb')
            global stu_dic
            stu_dic = pickle.load(f)
            f.close()


manage_sys = ManaSys('v2.0')
manage_sys.loadData(filename)
while True:
    manage_sys.showMenu()
    choice = input('请输入你选择的功能1-6:')
    if choice == '1':
        name = input('请输入学生姓名:')
        age = input('请输入学生年龄:')
        stu_id = input('请输入学生学号:')
        gender = input('请输入学生性别:')
        student = Student(name,age,stu_id,gender)
        manage_sys.addStu(student)
    elif choice == '2':
        name = input('请输入要查询的学生姓名:')
        manage_sys.searchStu(name)
    elif choice == '3':
        name = input('请输入要修改的学生姓名:')
        manage_sys.updateStu(name)
    elif choice == '4':
        name = input('请输入要删除的学生姓名:')
        manage_sys.delStu(name)
    elif choice == '5':
        manage_sys.showStu()
    elif choice == '6':
        manage_sys.exitSys()
    else:
        print('输入有误,请重新输入')

猜你喜欢

转载自blog.csdn.net/huangshuailei/article/details/83476730