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


Posted in Python onJune 24, 2021

本文实例为大家分享了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面向对象版学生信息管理系统

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python 返回列表中某个值的索引方法
Nov 07 Python
利用selenium爬虫抓取数据的基础教程
Jun 10 Python
使用Python检测文章抄袭及去重算法原理解析
Jun 14 Python
Form表单及django的form表单的补充
Jul 25 Python
python实现图片压缩代码实例
Aug 12 Python
对Django中内置的User模型实例详解
Aug 16 Python
在django中自定义字段Field详解
Dec 03 Python
把vgg-face.mat权重迁移到pytorch模型示例
Dec 27 Python
Python xlwt模块使用代码实例
Jun 10 Python
python 中[0]*2与0*2的区别说明
May 10 Python
pytorch训练神经网络爆内存的解决方案
May 22 Python
Python+Selenium实现抖音、快手、B站、小红书、微视、百度好看视频、西瓜视频、微信视频号、搜狐视频、一点号、大风号、趣头条等短视频自动发布
Apr 13 Python
Python实现学生管理系统(面向对象版)
Jun 24 #Python
Pycharm连接远程服务器并远程调试的全过程
Python函数中的不定长参数相关知识总结
Jun 24 #Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
You might like
php INI配置文件的解析实现分析
2011/01/04 PHP
使用PHP遍历文件目录与清除目录中文件的实现详解
2013/06/24 PHP
jquery实现的元素的left增加N像素 鼠标移开会慢慢的移动到原来的位置
2010/03/21 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
AngularJS初始化静态模板详解
2016/01/14 Javascript
基于javascript html5实现3D翻书特效
2016/03/14 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
详解angularJS+Ionic移动端图片上传的解决办法
2017/09/13 Javascript
webpack打包js的方法
2018/03/12 Javascript
详解react内联样式使用webpack将px转rem
2018/09/13 Javascript
细说webpack6 Babel的使用详解
2019/09/26 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
[04:37]DOTA2英雄梦之声Vol20发条
2014/06/20 DOTA
[03:01]完美盛典趣味短片 DOTA2年度最佳&拉胯英雄
2019/12/07 DOTA
Python深入学习之对象的属性
2014/08/31 Python
Python实现对PPT文件进行截图操作的方法
2015/04/28 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python操作yaml说明
2020/04/08 Python
python利用platform模块获取系统信息
2020/10/09 Python
应聘医学检验人员自荐信
2013/09/27 职场文书
房屋继承公证书
2014/04/10 职场文书
企业安全生产承诺书
2014/05/22 职场文书
中秋手机店促销方案
2014/06/16 职场文书
大学教师师德师风演讲稿
2014/08/22 职场文书
标准版离职证明书
2014/09/12 职场文书
公司慰问信范文
2015/03/23 职场文书
新生儿未入户证明
2015/06/23 职场文书
Redis基本数据类型Set常用操作命令
2022/06/01 Redis
MySQL分布式恢复进阶
2022/07/23 MySQL