Python基础项目:学生信息管理系统

经过上一个例子学习,同学们应该已经掌握了我在前面提到的知识点,如语句,函数和列表等内容,本章将在上一章基础上对于Python的基础语法进行操作理解,本章的实际案例为学生信息管理系统,主要输入输出依然通过控制台实现。

需求功能:

完成简易学生信息管理系统,包括以下功能:

1.欢迎用户使用学生信息管理系统,提示用户输入用户名和密码完成登录功能。 
使用硬编码:用户名:admin  密码:123456
登录功能有3次机会,如果3次内成功,用户可登录享有其他功能,否则用户不能登录,退出系统
2.登录成功后提示用户输入编号,选择功能
   学生信息管理系统功能
    输入“1”:添加学生信息功能(输入学号,学生名称,班级)
    输入“2”:搜索学生功能(输入学生学号,得到姓名和班级)
    输入“3”:删除功能(输入学号,可对于对应学生进行删除操作)
    输入“4”:显示所有学生信息的功能
    输入“5”:退出系统功能

除了包括之前例子的通讯录管理系统掌握的知识点之外, 还需要掌握的知识点:

  1. python封装数据结构:字典的基本操作
  2. 使用面向对象思想进行类与函数的封装
  3. 实例化类的对象,调用相关方法

分析:管理员对于学生管理系统的操作依然是针对于相同内容的数据,而且学生信息应该存在多条,所以应该存放在一个容器当中统一管理,增删改查都是通过学生学号查找学生整体信息,可以使用数据结构中的字典进行处理,关于字典的学习与介绍可查询菜鸟教程相关课程。面向对象是目前项目开发中主流编程思想,能够提高代码的复用性,可拓展性和灵活性,多门编程语言都支持这种思想,此例子中重点使用其封装类的思想。

实现代码如下:

首先创建一个保存每位学生信息的类:Student

class Student(object):
    def __init__(self,id,name,classNo):
        self.id = id
        self.name = name
        self.classNo = classNo
    def __str__(self):
        str = '学生学号:%s\t姓名:%s\t班级:%s'%(self.id,self.name,self.classNo)
        return str

对于学生信息的管理容器,可以使用字典进行,可封装一个管理类,对字典内容进行增删改查的操作。

class StudentManager(object):
    def __init__(self):
        #创建字典,作为存放学生信息的容器,
        # 字典的key为学号,value为学生对象
        self.studic = {}

    def addStudent(self):
        # 1.添加学生信息功能(输入学号,学生名称,班级)
        id = input("请输入添加学生学号:>")
        if self.studic.get(id):
            print('此学号已存在,请重新操作!')
            return
        name = input("请输入添加学生姓名:>")
        classNo = input("请输入添加学生班级:>")
        stu = Student(id,name,classNo)
        self.studic[id] = stu
        print("添加成功!")

    def queryStudent(self):
        # 2.搜索学生功能(输入学生学号,得到姓名和班级)
        id = input("请输入搜索学生学号:>")
        # 判断是否存在此学生
        if self.studic.get(id):
            stu = self.studic[id]
            print("您查找的学生信息为:",end='')
            print(stu)
        else:
            print('此学号不存在,请重新操作!')

    def deleteStudent(self):
        # 3.删除功能(输入学号,可对于对应学生进行删除操作)
        id = input("请输入删除学生学号:>")
        if self.studic.get(id):
            del self.studic[id]
            print("删除成功!")
        else:
            print('此学号不存在,请重新操作!')

    def getAllStudent(self):
        #4.显示所有学生信息的功能
        print("="*20)
        for key in self.studic.keys():
            print(self.studic[key])
        print("="*20)


    def work(self):
        info ="""
        ==================学生信息管理系统==================
        输入“1”:添加学生信息功能(输入学号,学生名称,班级)
        输入“2”:搜索学生功能(输入学生学号,得到姓名和班级)
        输入“3”:删除功能(输入学号,可对于学生进行删除操作)
        输入“4”:显示所有学生信息的功能(学号,学生名,班级)
        输入“5”:感谢用户使用,退出学生信息管理系统
        ====================================================
        """
        print(info)
        while True:
            num = input("请根据提示,输入对应功能编号:>")
            if num == "1":
                self.addStudent()
            elif num == "2":
                self.queryStudent()
            elif num == "3":
                self.deleteStudent()
            elif num == "4":
                self.getAllStudent()
            elif num == "5":
                print("正在退出系統,感謝您的使用!!")
                break
            else:
                print("輸入編碼有誤,請核對後重新輸入!")

    def login(self):
        print("----------请先登录学生信息管理系统----------")
        num = 1
        while num < 4:
            uname = input('请输入用户名:>')
            password = input('请输入密码:>')
            if uname == 'admin' and password == '123456':
                print('登录成功,欢迎进入该系统')
                #登录成功,开始执行相关操作
                self.work()
                return
            else:
                if num != 3:
                    print('登录失败,用户名或者密码有误,您还有%d次机会,请核对后重新输入' % (3 - num))
                else:
                    print('没有权限进入系统')
            num = num + 1

在login方法中,执行登录基本逻辑操作,确定登录成功后可提供其他功能操作。故调用时,可执行调用login方法

if __name__ == '__main__':
    stuManager = StudentManager()
    stuManager.login()

然后就实现了相关要求功能,实现效果如下:

     

以上为学生信息管理系统使用python语言简单实现的基本介绍,后面依然会在此思路上对于python基础语法进行进一步生动案例讲解。本案例可以拓展加入新功能,如添加本地存储等操作,使每次执行的内容能够持久化存储。感谢您的阅读~~

猜你喜欢

转载自blog.csdn.net/u012156341/article/details/89353031