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抓取京东价格分析京东商品价格走势
Jan 09 Python
python实现批量改文件名称的方法
May 25 Python
Python中Django框架下的staticfiles使用简介
May 30 Python
python实现用户登陆邮件通知的方法
Jul 09 Python
使用Python自动化破解自定义字体混淆信息的方法实例
Feb 13 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
详解python中TCP协议中的粘包问题
Mar 22 Python
Python API 自动化实战详解(纯代码)
Jun 11 Python
python使用opencv对图像mask处理的方法
Jul 05 Python
Python使用Opencv实现图像特征检测与匹配的方法
Oct 30 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
如何在vscode中安装python库的方法步骤
Jan 06 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实现WEB动态网页静态
2006/10/09 PHP
如何在PHP中使用Oracle数据库(2)
2006/10/09 PHP
php读取图片内容并输出到浏览器的实现代码
2013/08/08 PHP
php判断手机访问还是电脑访问示例分享
2014/01/20 PHP
PHP版微信小店接口开发实例
2016/11/12 PHP
jQuery 通过事件委派一次绑定多种事件,以减少事件冗余
2010/06/30 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JavaScript 反科里化 this [译]
2012/09/20 Javascript
JS实现多物体缓冲运动实例代码
2013/11/29 Javascript
JS控制图片翻转示例代码(兼容firefox,ie,chrome)
2013/12/19 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
利用JS实现简单的瀑布流加载图片效果
2017/04/22 Javascript
JS开发中基本数据类型具体有哪几种
2017/10/19 Javascript
bootstrap自定义样式之bootstrap实现侧边导航栏功能
2018/09/10 Javascript
微信小程序模板template简单用法示例
2018/12/04 Javascript
vue 地图可视化 maptalks 篇实例代码详解
2019/05/21 Javascript
JS实现移动端点击按钮复制文本内容
2019/07/28 Javascript
jQuery+PHP+Ajax实现动态数字统计展示功能
2019/12/25 jQuery
js实现弹窗效果
2020/08/09 Javascript
python 接口返回的json字符串实例
2018/03/27 Python
Python对List中的元素排序的方法
2018/04/01 Python
Python基于opencv的图像压缩算法实例分析
2018/05/03 Python
通过python顺序修改文件名字的方法
2018/07/11 Python
Python查找最长不包含重复字符的子字符串算法示例
2019/02/13 Python
python队列原理及实现方法示例
2019/11/27 Python
Python中sorted()排序与字母大小写的问题
2020/01/14 Python
StubHub智利:购买和出售您的门票
2016/11/23 全球购物
我们的节日重阳节活动总结
2015/03/24 职场文书
小学六年级毕业感言
2015/07/30 职场文书
关于分班的感言
2015/08/04 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
在Python中如何使用yield
2021/06/07 Python
Python使用海龟绘图实现贪吃蛇游戏
2021/06/18 Python
未发现nvidia显卡怎么办?Win11系统中未检测到nvidia显卡解决教程
2022/04/08 数码科技