首页 > 编程语言 >Python简易学生管理系统

Python简易学生管理系统

时间:2023-04-08 12:14:36浏览次数:34  
标签:管理系统 Python self 学生 content 简易 json student print

目录结构:

 

 1、 学生文件 student.py

# 学生类
class Student(object):
    # 存放学生信息
    student_info = {}
    # 学生初始化方法
    def __init__(self,id,name,addr,tel):
        self.id = id
        self.name = name
        self.addr = addr
        self.tel = tel
        # 将学生的信息添加到学生信息字典里
        self.student_info["学号"] = self.id
        self.student_info["姓名"] = self.name
        self.student_info["地址"] = self.addr
        self.student_info["电话"] = self.tel

2、 管理系统文件 manager.py

import json
import student
# 管理系统类
class Manager(object):

    # 展示所有学生信息的方法
    def show_all_student(self):
        with open("students_info.json", mode="r", encoding="utf8") as f:
            content = json.loads(f.read())
            if content:
                print("所有的学生信息如下:")
                print("#######################################")
                for stu in content:
                    print(stu)
                print("#######################################")
            elif len(content) == 0:
                print("Sorry! 一个学生都没有!")

    # 添加学生的方法
    def add_student(self):
        print("~~~~~~~~~~~~~~~~~~~~将要开始添加学生信息~~~~~~~~~~~~~~~~~~~~~")
        id = input("请输入学号:")
        name = input("请输入姓名:")
        addr = input("请输入地址:")
        tel = input("请输入电话:")
        new_student = student.Student(id, name, addr, tel)
        with open("students_info.json", mode="r", encoding="utf8") as f1:
            content = json.loads(f1.read())

        new_content = list(content)
        new_content.append(new_student.student_info)
        json_content = json.dumps(new_content)

        with open("students_info.json",mode="w",encoding="utf8") as f2:
            f2.write(json_content)
        print("~~~~~~~~~~~~~~~~~~~~!!!添加完成!!!~~~~~~~~~~~~~~~~~~~~~")


    # 删除学生的方法
    def delete_student(self):
        print("~~~~~~~~~~~~~~~~~~~~将要开始添加学生信息~~~~~~~~~~~~~~~~~~~~~")
        id = input("请输入要删除的学生的学号:")
        with open("students_info.json",mode="r",encoding="utf8") as f:
            content = list(json.loads(f.read()))
            for item in content:
                if item["学号"] == id:
                    content.remove(item)
                    json_content = json.dumps(content)
                    with open("students_info.json", mode="w", encoding="utf8") as f2:
                        f2.write(json_content)
                    print("~~~~~~~~~~~~~~~~~~~~!!!删除成功!!!~~~~~~~~~~~~~~~~~~~~~")
                    return
            print("输入的学号不存在!!!")


    # 修改学生的方法
    def update_student(self):
        print("~~~~~~~~~~~~~~~~~~~~开始修改学生信息~~~~~~~~~~~~~~~~~~~~~")
        with open("students_info.json", mode="r", encoding="utf8") as f:
            text = list(json.loads(f.read()))

        delete_number = input("请输入要修改的学生学号:")
        for i in text:
            if i["学号"] == delete_number:
                new_addr = input("请输入修改后的地址:")
                new_tel = input("请输入修改后的电话:")
                i["地址"] = new_addr
                i["电话"] = new_tel
                json_text = json.dumps(text)
                with open("students_info.json", mode="w", encoding="utf8") as f2:
                    f2.write(json_text)
                print("~~~~~~~~~~~~~~~~~~~~修改成功~~~~~~~~~~~~~~~~~~~~~")
                return
        print("输入的学号不存在!!!!!!!!!!!!!")


    # 系统启动入口方法
    def system_start(self):
        while True:
            print("########### 欢迎来到学生管理系统 ############")
            print("################ 请登录系统 ################")
            user_name = input("请输入用户名: ")
            pass_word = input("  请输入密码: ")
            if user_name == "zyh" and pass_word == "123456":
                print("################ 登陆成功!################")
                break
            else:
                print("登录信息错误,请重新登录!")

        while True:
            print("################ 你已经进入学生管理系统 ################")
            print("###################### 请选择功能 ######################")
            print("1. 展示所有学生信息")
            print("2. 添加学生")
            print("3. 删除学生")
            print("4. 修改学生")
            print("5. 退出系统")
            print("#######################################################")

            while True:
                choice = int(input("请输入功能对应的序号(1/2/3/4/5/6): "))
                if choice == 1:
                    # print("调用展示所有学生信息的方法")
                    self.show_all_student()

                    break
                elif choice == 2:
                    # print("调用添加学生的方法")
                    self.add_student()

                    break
                elif choice == 3:
                    # print("调用删除学生的方法")
                    self.delete_student()

                    break
                elif choice == 4:
                    # print("调用修改学生的方法")
                    self.update_student()

                    break
                elif choice == 5:
                    print("退出学生管理系统!!!!!!!!!!!")
                    return
                else:
                    print("输入信息不合法,请重新输入!")

 

3、 程序入口文件 main.py

import manager



if __name__ == '__main__':

    manager_sys = manager.Manager()
    manager_sys.system_start()

 

4、 学生信息文件  students_info.json

[
  {"学号": "0001", "姓名": "张三", "地址": "北京", "电话": "13244453359"},
  {"学号": "0002", "姓名": "张三2", "地址": "北京", "电话": "13244453359"},
  {"学号": "0003", "姓名": "张三3", "地址": "北京", "电话": "13244453359"},
  {"学号": "0004", "姓名": "张三4", "地址": "北京", "电话": "13244453359"}
]

 

标签:管理系统,Python,self,学生,content,简易,json,student,print
From: https://www.cnblogs.com/zhangyh-blog/p/17298270.html

相关文章

  • Python 日期和时间用法超强总结
    Python中处理日期和时间的模块Python提供了time和datetime模块,可以帮助我们轻松获取和修改日期和时间,下面让我们来逐一了解一下。time模块该模块包括使用时间执行各种操作所需的所有与时间相关的功能,它还允许我们访问多种用途所需的时钟类型。内置函数:请看下表,它描述了时......
  • Python中排序函数sorted的用法
    Python中有两个排序函数:sorted与sort其中,sorted的用法与c++中的sort是基本一样的本文只介绍sorted用法sorted返回的是一个新的迭代对象,一般默认返回一个list如:对tensor进行排序,返回了一个list我们一般建议直接对list进行排序这样得到的最终还是list如:自定义排序......
  • PYTHON 视频时间检测
    importcv2cameraCapture=cv2.VideoCapture('./1/11.mp4')success,frame=cameraCapture.read()whilesuccess:ifcv2.waitKey(1)==27:breakcv2.imshow('Testcamera',frame)success,frame=cameraCapture.read()......
  • python之装饰器
    ###################                    #######################......
  • python远程控制windows机器
    1,进入cmd,输入winrmquickconfig-q,如果出现下图报错,把电脑公网设置为专网   设置专网步骤:win+i,网络和internet,状态,属性  2,检查winrm服务监听状态;进入cmd,输入winrmewinrm/config/listener;记录端口号Port值,后面会用到     3,查看winrm配置信息(可选)通......
  • Python实现Json文件转为点表示法(Dot-Notation)
    将Json转换为点表示法有很多用途,本文基于Python实现一个简单demo来转换。【原文见我的博客,如有更新请博客园的不一定及时同步改:https://blog.jfz.me/2023/python-json-to-dot-notation.html】{"vehicle":{"car":{"bmw":true,"audi"......
  • 【进阶11】【自学笔记】Python _解包的操作
    一、Python解包定义Python解包是指将一个可迭代对象(如列表、元组、字典等)中的元素分别赋值给多个变量的过程。解包可以通过在变量前添加星号`*`来实现,也可以通过在变量前添加双星号`**`来实现字典解包。解包可以简化代码,使代码更加清晰易懂。二、解包实例1、最简单的解包......
  • python相关命令
    1,查看此电脑是否安装python,进入cmd,输入python  2,查看python安装的版本,进入cmd,输入python--version  3,查看python安装的路径,进入cmd,输入py-0p ......
  • python装饰器
    参考:https://www.bilibili.com/video/BV1DW4y147Hm/感觉很久没有学到python的一些新玩法了,参考B站教程在Python中,装饰器(Decorator)是一种用于修改函数或者类的行为的语法结构。装饰器允许我们在不修改函数定义的情况下,动态地修改函数的行为,从而实现更加灵活和可重用的代码。......
  • C/C++模拟ATM机存取款管理系统[2023-04-07]
    C/C++模拟ATM机存取款管理系统[2023-04-07]2、模拟ATM机存取款管理系统模拟银行的自动取款机使用过程中的界面和用户交互过程。实现查询银行卡余额、取款修改密码、退出系统等功能。(一)功能要求及说明:(1)将银行账户的卡号,户名,密码和账户余额从外部文件(银行账户.txt)中读入......