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 3.6 tkinter+urllib+json实现火车车次信息查询功能
Dec 20 Python
python装饰器深入学习
Apr 06 Python
python实现可视化动态CPU性能监控
Jun 21 Python
Python+selenium 获取浏览器窗口坐标、句柄的方法
Oct 14 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python中字符串数组逆序排列方法总结
Jun 23 Python
python实现简单聊天室功能 可以私聊
Jul 12 Python
pytorch制作自己的LMDB数据操作示例
Dec 18 Python
django数据模型on_delete, db_constraint的使用详解
Dec 24 Python
解决Keras的自定义lambda层去reshape张量时model保存出错问题
Jul 01 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
Python return语句如何实现结果返回调用
Oct 15 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函数
2008/10/03 PHP
php数组的概述及分类与声明代码演示
2013/02/26 PHP
php删除文本文件中重复行的方法
2015/04/28 PHP
yii gridview实现时间段筛选功能
2017/08/15 PHP
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
javascript列表框操作函数集合汇总
2013/11/28 Javascript
jquery实现的伪分页效果代码
2015/10/29 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
node.js平台下利用cookie实现记住密码登陆(Express+Ejs+Mysql)
2017/04/26 Javascript
jQuery实现节点的追加、替换、删除、复制功能示例
2017/07/11 jQuery
js实现随机点名小功能
2017/08/17 Javascript
使用vuex解决刷新页面state数据消失的问题记录
2019/05/08 Javascript
jquery实现下载图片功能
2019/07/18 jQuery
javascript实现简易的计算器
2020/01/17 Javascript
vue+canvas实现移动端手写签名
2020/05/21 Javascript
浅谈vue使用axios的回调函数中this不指向vue实例,为undefined
2020/09/21 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[02:39]DOTA2国际邀请赛助威团西雅图第一天
2013/08/08 DOTA
[07:20]2014DOTA2西雅图国际邀请赛 选手讲解积分赛第二天
2014/07/11 DOTA
在Python中给Nan值更改为0的方法
2018/10/30 Python
python 获取一个值在某个区间的指定倍数的值方法
2018/11/12 Python
Python 获取div标签中的文字实例
2018/12/20 Python
对python中Json与object转化的方法详解
2018/12/31 Python
PyTorch 解决Dataset和Dataloader遇到的问题
2020/01/08 Python
tensorboard 可以显示graph,却不能显示scalar的解决方式
2020/02/15 Python
使用Python将Exception异常错误堆栈信息写入日志文件
2020/04/08 Python
原生canvas制作画图小工具的踩坑和爬坑
2020/06/09 HTML / CSS
Oral-B荷兰:牙医最推荐的品牌
2020/02/25 全球购物
.net面试题
2015/12/22 面试题
护理自荐信
2013/10/22 职场文书
幼儿园毕业典礼主持词
2014/03/21 职场文书
2014年大学班长工作总结
2014/11/14 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle