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的Bottle框架中实现最基本的get和post的方法的教程
Apr 30 Python
python中lambda()的用法
Nov 16 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
解决python3 json数据包含中文的读写问题
May 10 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
Mar 05 Python
基于python实现百度翻译功能
May 09 Python
Python进度条的制作代码实例
Aug 31 Python
Python 实现Serial 与STM32J进行串口通讯
Dec 18 Python
python爬虫开发之Beautiful Soup模块从安装到详细使用方法与实例
Mar 09 Python
基于python图书馆管理系统设计实例详解
Aug 05 Python
python 实现ping测试延迟的两种方法
Dec 10 Python
Python实现PIL图像处理库绘制国际象棋棋盘
Jul 16 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/08/18 PHP
基于PHP Web开发MVC框架的Smarty使用说明
2013/04/19 PHP
php数组查找函数总结
2014/11/18 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
关于jquery动态增减控件的一些想法和小插件
2010/08/01 Javascript
深入理解JavaScript系列(11) 执行上下文(Execution Contexts)
2012/01/15 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
AngularJS的依赖注入实例分析(使用module和injector)
2017/01/19 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
angular学习之ngRoute路由机制
2017/04/12 Javascript
js实现图片懒加载效果
2017/07/17 Javascript
Vue.js中关于侦听器(watch)的高级用法示例
2018/05/02 Javascript
package.json中homepage属性的作用详解
2020/03/11 Javascript
uni-app使用微信小程序云函数的步骤示例
2020/05/22 Javascript
详解vue 组件注册
2020/11/20 Vue.js
Python3基础之基本运算符概述
2014/08/13 Python
python中字典dict常用操作方法实例总结
2015/04/04 Python
使用python3.5仿微软记事本notepad
2016/06/15 Python
利用Python实现Windows下的鼠标键盘模拟的实例代码
2017/07/13 Python
Python tornado队列示例-一个并发web爬虫代码分享
2018/01/09 Python
Python迭代器和生成器定义与用法示例
2018/02/10 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
Python提取频域特征知识点浅析
2019/03/04 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
python实现集中式的病毒扫描功能详解
2019/07/09 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
2020/09/20 Python
Python实现中英文全文搜索的示例
2020/12/04 Python
Vans英国官方网站:美国南加州的原创极限运动潮牌
2017/01/20 全球购物
澳大利亚男士西服品牌:M.J.Bale
2018/02/06 全球购物
获取邓白氏信用报告:Dun & Bradstreet
2019/01/22 全球购物
525心理活动总结
2014/07/04 职场文书
党风廉政建设调研报告
2015/01/01 职场文书
九华山导游词
2015/02/03 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
为自由献出你的心脏!「进击的巨人展 FINAL」2022年6月在台开展
2022/04/13 日漫