Python实现学生管理系统(面向对象版)


Posted in Python onJune 24, 2021

本文实例为大家分享了Python实现学生管理系统的具体代码,供大家参考,具体内容如下

实现从面向过程到面向对象的过度,通过更改前面的学生管理系统实现面向对象,也证明了面向过程可以完美过度到面向对象,从而为以后的程序进步做了进一步优化,方便以后的程序更改。

完整代码如下:

student_main模块中的代码

import student_tools


class Student(student_tools.StudentT):

    def __init__(self):
        self.user=['wangtaotao']
        self.pwd=['123456']
        student_tools.StudentT.__init__(self)

    #登录
    def denglu(self):
        users = input("请输入您的用户名:")
        pwds = input("请输入您的密码:")
        if users in self.user and pwds in self.pwd:
            self.student()
        else:
            print("账号或密码不正确,请重新输入")

    #注册
    def zhuce(self):
        users=input("请输入您要注册的用户名:")
        pwds=input("请输入您要注册的密码:")
        self.user.append(users)
        self.pwd.append(pwds)
        print()
        print("注册成功!")
        print()

    #登录界面
    def dljiemian(self):

        while True:
            print("---------------------------")
            print("    学生管理系统登陆界面 V1.0  ")
            print("                           ")
            print("        1:登   录           ")
            print("        2:注   册           ")
            print("        3:退   出           ")
            print("                           ")
            print("---------------------------")
            xx=input("请输入您的选择:")
            #1.登录
            if xx=='1':
                self.denglu()
            elif xx=='2':
            #2.注册
                self.zhuce()
            elif xx=='3':
            #3.退出
                print()
                print("成功退出!")
                print()
                break
            else:
                print("输入错误,请重新输入")


    #学生管理系统
    def student(self):
        # 调用student_tools模块中的读取文件函数
        super().read_file()
        while True:
            #调用student_tools模块中的界面函数
            super().jiemian()

            x=input("请输入您的选择:")
            #添加学生
            if x=='1':
                super().add()
            #删除学生
            elif x=='2':
                super().dele()
            #修改学生
            elif x=='3':
                super().xiugai()
            #查询学生
            elif x=='4':
                super().find()
            #显示所有学生
            elif x=='5':
                super().showall()
            #保存数据至文件中
            elif x=='6':
                super().save_file()
            #退出学生管理系统,返回上一层登录界面系统
            elif x=='7':
                print()
                print("成功退出学生管理系统!")
                break
            else:
                print()
                print("输入错误,请重新输入")
                print()

    #调用最先执行的登录界面函数
if __name__=='__main__':
    wtt=Student()
    wtt.dljiemian()

student_tools模块中的代码

import os


class StudentT(object):

    def __init__(self):
        self.student_list=[]
        self.student_dict={}


    #学生管理系统界面
    @staticmethod
    def jiemian():
        print("---------------------------")
        print("      学生管理系统 V1.0")
        print("                           ")
        print("      1:添加学生"            )
        print("      2:删除学生"            )
        print("      3:修改学生"            )
        print("      4:查询学生"            )
        print("      5:显示所有学生"         )
        print("      6:保存数据"            )
        print("      7:退出系统"            )
        print("                           ")
        print("---------------------------")


    #添加学生
    def add(self):
        name=input("请输入录入学生姓名:")
        cls=input("请输入学生班级:")
        age=input("请输入录入学生年龄:")
        phone=input("请输入录入学生手机号:")
        addr=input("请输入录入学生家庭住址:")

        self.student_dict={"name":name,"class":cls,"age":age,"phone":phone,"address":addr}

        self.student_list.append(self.student_dict)
        print()
        print("-----添加学生信息界面-----")
        print()
        print("姓名\t\t","班级\t\t","年龄\t\t","电话号\t\t","家庭住址\t\t")
        for student_dict_1 in self.student_list:
            print("%s\t\t%s\t\t%s\t\t%s\t\t%s" %(student_dict_1["name"],
                                                 student_dict_1["class"],
                                                 student_dict_1["age"],
                                                 student_dict_1["phone"],
                                                 student_dict_1["address"]))
        print()
        print("录入成功!")
        print()

    #删除学生
    def dele(self):
        name_del=input("请输入想要删除的学生姓名:")
        for student_dict_1 in self.student_list:
            if name_del in student_dict_1["name"]:
                self.student_list.remove(student_dict_1)
                print()
                print("删除%s信息成功!" % name_del)
                print()
                break
        else:
            print()
            print("您输入的学生姓名错误,请重新输入")
            print()
    #修改学生
    def xiugai(self):
        name_xiugai=input("请输入想要修改的学生姓名:")


        for student_dict_1 in self.student_list:

            if name_xiugai == student_dict_1["name"]:
                print()
                print("-----修改界面-----")
                print()
                print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
                print("%s\t\t%s\t\t%s\t\t%s\t\t%s" %(student_dict_1["name"],
                                                     student_dict_1["class"],
                                                     student_dict_1["age"],
                                                     student_dict_1["phone"],
                                                     student_dict_1["address"]))
                #回车不修改

                student_dict_1["name"]=self.new_input(student_dict_1["name"],"请输入修改后的学生姓名[回车不修改]:")
                student_dict_1["class"]=self.new_input(student_dict_1["class"],"请输入修改后的学生班级[回车不修改]:")
                student_dict_1["age"]=self.new_input(student_dict_1["age"],"请输入修改后的学生年龄[回车不修改]:")
                student_dict_1["phone"]=self.new_input(student_dict_1["phone"],"请输入修改后的学生手机号[回车不修改]:")
                student_dict_1["address"]=self.new_input(student_dict_1["address"],"请输入修改后的学生家庭地址[回车不修改]:")
                print()
                print("修改成功!")
                print()
                break
        else:
            print()
            print("您输入的学生姓名错误,请重新输入")
            print()

    #查找学生
    def find(self):
        find_name=input("请输入需要查找的学生姓名:")
        for student_dict_1 in self.student_list:

            if find_name == student_dict_1["name"]:
                print()
                print("-----查询结果界面-----")
                print()
                print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
                print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (student_dict_1["name"],
                                                      student_dict_1["class"],
                                                      student_dict_1["age"],
                                                      student_dict_1["phone"],
                                                      student_dict_1["address"]))
            else:
                print()
                print("-----查询结果界面-----")
                print()
                print("无此学生信息")

    #显示所有学生信息
    def showall(self):

        if len(self.student_list)>0:
            print()
            print("-----显示所有学生信息-----")
            print()
            print("姓名\t\t", "班级\t\t", "年龄\t\t", "电话号\t\t", "家庭住址\t\t")
            for student_dict_1 in self.student_list:

                print("%s\t\t%s\t\t%s\t\t%s\t\t%s" % (student_dict_1["name"],
                                                      student_dict_1["class"],
                                                      student_dict_1["age"],
                                                      student_dict_1["phone"],
                                                      student_dict_1["address"]))
        else:
            print()
            print("暂无数据!")
            print()
    #设置用户不输入内容返回原值,输入内容返回新内容
    def new_input(self,yuanzhi,message):
        self.input_str=input(message)

        if len(self.input_str)>0:
            return self.input_str
        else:
            return yuanzhi


    #保存数据至文件中
    def save_file(self):

        f = open("student2.txt", 'w', encoding='utf-8')
        f.write(str(self.student_list))
        f.close()
        print("数据保存至student1.txt文件成功!")


    #将数据读取至变量中
    def read_file(self):

         if os.path.exists('student2.txt'):
            f = open('student2.txt', 'r', encoding='utf-8')
            ret = f.read()

            self.student_list=eval(ret)
            f.close()
            print("数据读取成功!")

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

Python 相关文章推荐
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
常见的python正则用法实例讲解
Jun 21 Python
Python的消息队列包SnakeMQ使用初探
Jun 29 Python
python的random模块及加权随机算法的python实现方法
Jan 04 Python
python操作mysql数据库
Mar 05 Python
Python+Turtle动态绘制一棵树实例分享
Jan 16 Python
Python实现的读取文件内容并写入其他文件操作示例
Apr 09 Python
python实现支付宝转账接口
May 07 Python
Django实现后台上传并显示图片功能
May 29 Python
python 提高开发效率的5个小技巧
Oct 19 Python
pytorch 计算Parameter和FLOP的操作
Mar 04 Python
Pycharm连接远程服务器并远程调试的全过程
Python函数中的不定长参数相关知识总结
Jun 24 #Python
Django REST framework 限流功能的使用
Jun 24 #Python
Python 发送SMTP邮件的简单教程
Python开发工具Pycharm的安装以及使用步骤总结
Python语言规范之Pylint的详细用法
Python基础教程,Python入门教程(超详细)
Jun 24 #Python
You might like
PHP使用CURL_MULTI实现多线程采集的例子
2014/07/29 PHP
PHP中的替代语法介绍
2015/01/09 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
PHP实现加密文本文件并限制特定页面的存取的效果
2016/10/21 PHP
利用ajax和PHP实现简单的流程管理
2017/03/23 PHP
javascript抖动元素的小例子
2013/10/28 Javascript
jqgrid 编辑添加功能详细解析
2013/11/08 Javascript
js 通用订单代码
2013/12/23 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
Adapter适配器模式在JavaScript设计模式编程中的运用分析
2016/05/18 Javascript
JS实用技巧小结(屏蔽错误、div滚动条设置、背景图片位置等)
2016/06/16 Javascript
详解JavaScript中js对象与JSON格式字符串的相互转换
2017/02/14 Javascript
vue实现验证码按钮倒计时功能
2018/04/10 Javascript
js canvas实现橡皮擦效果
2018/12/20 Javascript
JS实现的类似微信聊天效果示例
2019/01/29 Javascript
openlayers 3实现车辆轨迹回放
2020/09/24 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
[01:41]DOTA2超级联赛专访YYF 称一辈子难忘TI2
2013/05/28 DOTA
Python创建日历实例
2014/08/21 Python
用python找出那些被“标记”的照片
2017/04/20 Python
Python学习小技巧之列表项的推导式与过滤操作
2017/05/20 Python
python spyder中读取txt为图片的方法
2018/04/27 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python帮你微信头像任意添加装饰别再@微信官方了
2019/09/25 Python
html5 更新图片颜色示例代码
2014/07/29 HTML / CSS
Dr. Martens马汀博士澳大利亚官网:马丁靴鼻祖
2019/07/02 全球购物
关键字final的用法
2013/10/02 面试题
我们的节日端午节活动方案
2014/03/02 职场文书
公司晚会策划方案
2014/05/17 职场文书
国庆节演讲稿
2014/05/27 职场文书
购房公证委托书(2014版)
2014/09/12 职场文书
庆七一晚会主持词
2015/06/30 职场文书
退伍军人感言
2015/08/01 职场文书
详解Python为什么不用设计模式
2021/06/24 Python
python保存图片的四个常用方法
2022/02/28 Python