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 相关文章推荐
Python3实现的简单验证码识别功能示例
May 02 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
python 获取微信好友列表的方法(微信web)
Feb 21 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
使用PyOpenGL绘制三维坐标系实例
Dec 24 Python
Python使用扩展库pywin32实现批量文档打印实例
Apr 09 Python
Windows下Anaconda和PyCharm的安装与使用详解
Apr 23 Python
基于python实现操作git过程代码解析
Jul 27 Python
PyTorch 导数应用的使用教程
Aug 31 Python
属性与 @property 方法让你的python更高效
Sep 21 Python
Python中使用aiohttp模拟服务器出现错误问题及解决方法
Oct 31 Python
Opencv常见图像格式Data Type及代码实例
Nov 02 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实现创建微信自定义菜单的方法示例
2017/07/14 PHP
PHP实现的回溯算法示例
2017/08/15 PHP
解javascript 混淆加密收藏
2009/01/16 Javascript
javascrpt绑定事件之匿名函数无法解除绑定问题
2012/12/06 Javascript
js实现交换运动效果的方法
2015/04/10 Javascript
js实现用户离开页面前提示是否离开此页面的方法(包括浏览器按钮事件)
2015/07/18 Javascript
jquery实现可横向和竖向展开的动态下滑菜单效果
2015/08/24 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
2016/05/21 Javascript
JavaScript中的Array 对象(数组对象)
2016/06/02 Javascript
Bootstrap弹出框(modal)垂直居中的问题及解决方案详解
2016/06/12 Javascript
Bootstrap Img 图片样式(推荐)
2016/12/13 Javascript
layer弹窗插件操作方法详解
2017/05/19 Javascript
详解nodejs实现本地上传图片并预览功能(express4.0+)
2017/06/28 NodeJs
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
vue+element的表格实现批量删除功能示例代码
2018/08/17 Javascript
python引用DLL文件的方法
2015/05/11 Python
python实时分析日志的一个小脚本分享
2017/05/07 Python
Window 64位下python3.6.2环境搭建图文教程
2018/09/19 Python
python 通过麦克风录音 生成wav文件的方法
2019/01/09 Python
Falsk 与 Django 过滤器的使用与区别详解
2019/06/04 Python
python 下 CMake 安装配置 OPENCV 4.1.1的方法
2019/09/30 Python
python实现查找所有程序的安装信息
2020/02/18 Python
pandas中的ExcelWriter和ExcelFile的实现方法
2020/04/24 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
python与c语言的语法有哪些不一样的
2020/09/13 Python
英国二手物品交易网站:Preloved
2017/10/06 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
新闻学毕业生自荐信
2013/11/15 职场文书
自愿解除劳动合同协议书
2014/09/11 职场文书
大二学年个人总结
2015/03/03 职场文书
2015年大学生工作总结
2015/04/21 职场文书
餐厅服务员管理制度
2015/08/05 职场文书
小学感恩主题班会
2015/08/12 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
宪法宣传标语100条
2019/10/15 职场文书
幼师必备:幼儿园期末教师评语50条
2019/11/01 职场文书