python面向对象版学生信息管理系统

作者:珂鸣玉 时间:2022-07-23 02:16:57 

本文实例为大家分享了python面向对象版的学生信息管理系统的具体代码,供大家参考,具体内容如下

功能:

1.能循环输入内容

2.展示功能

-1.新增名片
-2.显示全部
-3.查询名片
-0.退出系统

3.让用户输入希望执行的操作 例如输入1,2,3,0

4.新增列表

提示用户输入姓名,
输入电话
输入qq号
输入邮箱
提示新增名片成功。

5.显示全部

将所有的名片打印出来,格式如下:
姓名    电话       QQ               邮箱
zs       110    1337765076    110@qq.com

6.查询名片

提示请输入要搜索查找用户的姓名
如果用户存在—>显示用户的信息
-提示用户【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 输出错了请重新输入...-------')

运行结果:

python面向对象版学生信息管理系统

来源:https://blog.csdn.net/weixin_44239541/article/details/86601664

标签:python,学生,管理系统
0
投稿

猜你喜欢

  • PHP根据IP判断地区名信息的示例代码

    2023-09-10 14:05:55
  • python 存储json数据的操作

    2022-10-02 13:14:14
  • 深入了解Hybrid App技术的相关知识

    2023-08-10 09:36:02
  • Python 3.6 中使用pdfminer解析pdf文件的实现

    2023-09-02 08:34:08
  • layui 数据表格 点击分页按钮 监听事件的实例

    2024-04-19 10:45:12
  • python的迭代器与生成器实例详解

    2021-06-21 15:36:41
  • 详解python 支持向量机(SVM)算法

    2022-03-06 02:11:24
  • numpy的sum函数的axis和keepdim参数详解

    2021-08-02 02:48:46
  • 资料:MsSQL常用SQL语句

    2009-02-23 12:54:00
  • ASP四级连动下拉列表程序段

    2009-07-03 15:33:00
  • python请求域名requests.(url = 地址)报错

    2021-12-18 06:28:36
  • 一则python3的简单爬虫代码

    2022-11-29 04:46:31
  • SQL Server中索引使用及维护

    2008-11-25 11:13:00
  • 解决python中文乱码问题方法总结

    2022-01-30 18:47:56
  • Python 的类、继承和多态详解

    2021-05-29 17:31:51
  • Pytorch四维Tensor转图片并保存方式(维度顺序调整)

    2023-09-11 23:26:54
  • python实现多线程抓取知乎用户

    2021-10-05 16:56:07
  • Pytorch中DataLoader的使用方法详解

    2023-07-19 04:45:39
  • 网站设计趋势: iPhones[译]

    2009-09-21 12:40:00
  • Oracle的约束介绍与约束维护

    2024-01-28 04:19:05
  • asp之家 网络编程 m.aspxhome.com