Python面向对象实现学生信息管理系统
本文介绍使用Python面向对象编程思想实现的学生信息管理系统。系统支持新增、显示全部及查询学生信息,提供修改、删除和返回菜单功能。通过类封装数据与方法,结合循环输入实现交互,适合Python初学者参考学习。
本文分享了一套基于Python面向对象编程的学生信息管理系统完整代码,供读者参考学习。
系统功能概述
系统核心特性包括支持循环执行用户指令。
主菜单展示以下功能选项:
-1.新增学员信息 -2.显示全部学员 -3.查询指定学员 -0.退出系统
系统接收用户输入的操作指令,例如输入1、2、3或0以执行对应功能。
新增学员模块负责收集并存储新学员数据。
程序依次提示用户输入姓名、电话、QQ号和邮箱,并在所有信息录入完成后提示新增成功。
显示全部模块用于遍历并打印所有已保存的学员记录。
输出格式固定为表头“姓名 电话 QQ 邮箱”,随后逐行打印具体数据,例如: zs 110 1337765076 110@qq.com
查询模块允许用户通过姓名查找特定学员。
系统提示输入要搜索的姓名。若找到该用户,则显示其详细信息,并提供后续操作选项:输入【1】进行修改,输入【2】进行删除,或输入【0】返回上一级菜单。其中,修改功能允许更新用户名、电话、QQ及邮箱信息。
删除功能可将指定用户从系统中移除。若用户不存在,则提示查找失败。执行删除或返回操作后,系统回到欢迎界面,允许用户继续执行其他操作。
class StudentManger(object):
student_info_lst = [] # 保存所有学生的信息
@staticmethod
def show_menu():
'''显示所有功能'''
print('欢迎来到学生管理系统')
print('新增学员请按[1]')
print('显示全部请按[2]')
print('查询学员请按[3]')
print('退出系统请按[0]')
def add_student(self):
'''这是新增学员的功能'''
print('-------新增学员功能-------')
name = input('请输入姓名:')
age = input('请输入年龄:')
gender = input('请输入性别:')
phone = input('请输入手机:')
# print(name,age,gender,phone)
# 将用户输入的信息保存到一个字典中。
dic = {}
dic['name'] = name
dic['age'] = age
dic['gender'] = gender
dic['phone'] = phone
# print(dic)
# 注意:将用户数的信息保存到全局变量student_info_lst
# 列表中,让其他功能使用列表中的数据。
self.student_info_lst.append(dic)
# print(student_info_lst)
print('添加成功了...')
def alignment(self,s, space):
'''输出对齐'''
s1 = s.encode('gbk')
space = space - len(s1)
s = s + ' ' * space
return s
def show_all_student(self):
print('-------显示所有的学员功能-------')
if not self.student_info_lst:
print('还没有学员呢,请添加学员')
return
# 显示学员的信息
name = self.alignment('name', 15)
age = self.alignment('age', 15)
gender = self.alignment('gender', 15)
phone = self.alignment('phone', 15)
print(name, age, gender, phone)
for dic in self.student_info_lst:
name = dic['name']
age = dic['age']
gender = dic['gender']
phone = dic['phone']
name = self.alignment(name, 15)
age = self.alignment(age, 15)
gender = self.alignment(gender, 15)
phone = self.alignment(phone, 15)
print(name, age, gender, phone)
def modify_student_info(self,old_value, msg):
'''处理修改用户名时不输入问题'''
new_name = input(msg)
if new_name.strip():
return new_name
else:
return old_value
def deal_student(self,dic):
action_str = input("【1】修改 【2】删除 【0】返回上一级菜单,请选择要执行的操作:")
if action_str == '1':
# 第一版修改
# dic['name'] = input('请输入姓名:')
# dic['age'] = input('请输入年龄:')
# dic['gender'] = input('请输入性别:')
# dic['phone'] = input('请输入电话:')
# 第二版--输入空格后能继续运行。
dic['name'] = self.modify_student_info(dic['name'], '请输入姓名:')
dic['age'] = self.modify_student_info(dic['age'], '请输入年龄:')
dic['gender'] = self.modify_student_info(dic['gender'], '请输入性别:')
dic['phone'] = self.modify_student_info(dic['phone'], '请输入电话:')
print('修改成功!!!')
elif action_str == '2':
self.student_info_lst.remove(dic)
print('删除成功了!!!')
elif action_str == '0':
pass
def search_student_by_name(self):
'''搜索学生'''
print('-------欢迎来到查询学员功能-------')
if self.student_info_lst:
name = input('请输入要查询学员的姓名:')
for dic in self.student_info_lst:
if dic['name'] == name:
name = self.alignment('name', 15)
age = self.alignment('age', 15)
gender = self.alignment('gender', 15)
phone = self.alignment('phone', 15)
print(name, age, gender, phone)
name = dic['name']
age = dic['age']
gender = dic['gender']
phone = dic['phone']
name = self.alignment(name, 15)
age = self.alignment(age, 15)
gender = self.alignment(gender, 15)
phone = self.alignment(phone, 15)
print(name, age, gender, phone)
# 处理学生信息
self.deal_student(dic)
break
else:
print('not have such student')
else:
print('not have student please add student')
while True:
StudentManger.show_menu()
student_manager=StudentManger()
action_str = input('请输入你要选择数字:')
lst = ['0', '1', '2', '3']
if action_str in lst:
if action_str == '1':
student_manager.add_student()
elif action_str == '2':
student_manager.show_all_student()
elif action_str == '3':
student_manager.search_student_by_name()
elif action_str == '0':
print('三位慢走,欢迎下次光临')
break
else:
print('-------sb 输出错了请重新输入...-------')
以下为系统实际运行效果的展示。

以上内容为本文的全部分享,希望能为读者的学习提供有益帮助,欢迎继续支持本站。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









