经过上一个例子学习,同学们应该已经掌握了我在前面提到的知识点,如语句,函数和列表等内容,本章将在上一章基础上对于Python的基础语法进行操作理解,本章的实际案例为学生信息管理系统,主要输入输出依然通过控制台实现。
需求功能:
完成简易学生信息管理系统,包括以下功能:
1.欢迎用户使用学生信息管理系统,提示用户输入用户名和密码完成登录功能。 使用硬编码:用户名:admin 密码:123456 登录功能有3次机会,如果3次内成功,用户可登录享有其他功能,否则用户不能登录,退出系统 2.登录成功后提示用户输入编号,选择功能 学生信息管理系统功能 输入“1”:添加学生信息功能(输入学号,学生名称,班级) 输入“2”:搜索学生功能(输入学生学号,得到姓名和班级) 输入“3”:删除功能(输入学号,可对于对应学生进行删除操作) 输入“4”:显示所有学生信息的功能 输入“5”:退出系统功能
除了包括之前例子的通讯录管理系统掌握的知识点之外, 还需要掌握的知识点:
- python封装数据结构:字典的基本操作
- 使用面向对象思想进行类与函数的封装
- 实例化类的对象,调用相关方法
分析:管理员对于学生管理系统的操作依然是针对于相同内容的数据,而且学生信息应该存在多条,所以应该存放在一个容器当中统一管理,增删改查都是通过学生学号查找学生整体信息,可以使用数据结构中的字典进行处理,关于字典的学习与介绍可查询菜鸟教程相关课程。面向对象是目前项目开发中主流编程思想,能够提高代码的复用性,可拓展性和灵活性,多门编程语言都支持这种思想,此例子中重点使用其封装类的思想。
实现代码如下:
首先创建一个保存每位学生信息的类: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基础语法进行进一步生动案例讲解。本案例可以拓展加入新功能,如添加本地存储等操作,使每次执行的内容能够持久化存储。感谢您的阅读~~