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

Python简易学生管理系统

时间:2023-05-05 17:45:54浏览次数:38  
标签:管理系统 Python self 学生 content 简易 json student print

Python简易学生管理系统

Project

  • main.py
  • manager.py
  • student.py
  • students_info.json

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/mengdie1978/p/17374900.html

相关文章

  • Python+Pandas批量合并大量excel文件
    requirments.txtet-xmlfile==1.1.0numpy==1.24.3openpyxl==3.1.2pandas==2.0.1python-dateutil==2.8.2pytz==2023.3six==1.16.0tzdata==2023.3main.pyimportosimportpandasaspddir_path=os.path.dirname(os.path.abspath(__file__))source_location=o......
  • Python实现遍历读取文件或文件夹
    参考:https://www.jb51.net/article/258341.htmos.walk本身已经是遍历读取,包含所有的子文件(夹)path=u'.'#文件路径defnewWalkFile2(file):#main_dir当前路径,sub_dir_list当前路径下的子文件夹是个数组,sub_file_list当前路径下具体文件formain_dir,sub_dir_l......
  • C# WinForm使用Socket通信搭建简易聊天室
    1、创建WinForm应用程序 主入口两个按钮事件:///<summary>///打开客户端///</summary>///<paramname="sender"></param>///<paramname="e"></param>privatevoidbtn_OpenClient_Click(object......
  • Python自动寻路算法
    一、题目描述在一个迷宫游戏里,有一些小怪物要去攻击主角,现在希望给这些小怪物加上聪明的AI,让他们可以自动绕过迷宫中的障碍物,寻找到主角所在。二、解题思路迷宫游戏里的场景通常都是由小方格组成。假设我们有一个7*5大小的迷宫,图中红色格子是终点,绿色格子是起点,蓝色格子是一堵墙......
  • 21基于java的旅游信息管理系统
    项目背景根据旅游行业的这种现状,提出解决问题的一个可行性方法,实现了旅游管理的网络化。项目总体介绍旅游系统设计分为前后网站和后台管理系统,功能点包含旅游景点信息分类展示、景点详情(地理位置、特色景点概述等)、下单预订等功能;角色分为管理员和普通用户。用户可以对旅游......
  • Python教程:pandas读写txt文件——DataFrame和Series
    大家用pandas一般都是读写csv文件或者tsv文件,读写txt文件时一般就withopen了,其实pandas数据类型操作起来更加方便,还是建议全用pandas这一套。读txt文件代码如下,主要是设置正则表达式的分隔符(sep参数),和列名取消(header参数),以及不需要列索引(index_col)。1df=pd.read_csv("workl......
  • python笔记-数据类型
    获取数据类型type(val)iftype(1)==int:print('1是int类型')iftype('hello')==str:print('1是字符串类型')iftype(1.5)==float:print('1是float类型')iftype([1,2])==list:print('1是list类型')类型转换prin......
  • 【2】Django项目-人力资源管理系统-设计表结构
    Django项目-人力资源管理系统-设计表结构一、在models.py中编写表结构创建两张表:部门表和用户信息表fromdjango.dbimportmodels#Createyourmodelshere.classDepartment(models.Model):'''部门表'''dp_name=models.CharField(max_length=32,verbo......
  • Typora+MinIO+Python代码打造舒适协作环境
    作者:IT王小二博客:https://itwxe.com不知不觉大半年没更新了...前面小二介绍过使用Typora+MinIO+Java代码打造舒适写作环境,然后有很多大佬啊,说用Java来实现简直是杀鸡用上牛刀,小二想了想,确实有点...正好小二最近在学习Python,所以咱们就改用Python实现一版。安装MinIO安装参考......
  • Django项目-人力资源管理系统
    人力资源管理系统【HRMS】一、pycharm新建项目1.新建项目2.创建APP-website2.1  方法1:终端输入pythonmanage.pystartappwebsite2.2 方法2:利用Pycharm工具输入:快捷键 CTRL+ALT+R输入startappwebsite 2.3 创建完成 ......