目录结构:

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简易学生管理系统的更多相关文章

  1. 用python实现简易学生管理系统

    以前用C++和Java写过学生管理系统,也想用Python试试,果然“人生苦短,我用Python”.用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 #!/usr/bin/pyt ...

  2. JavaSE09-(练手)简易学生管理系统

    1.学生管理系统实现步骤 案例需求 系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生 ...

  3. 基于python的学生管理系统(含数据库版本)

    这次支持连接到后台的数据库,直接和数据库进行交互,实现基本的增删查改 #!/usr/bin/python3 # coding=utf-8 """ ************ ...

  4. Django_学生管理系统

    一. Django简易学生管理系统 1.在pycharm中创建工程student_manage_system,添加app:student_manage 2.配置静态文件:在工程项目目录下新建目录sta ...

  5. python简易版学生管理系统

    #coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...

  6. Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)

    Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...

  7. Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置

    Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...

  8. Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)

    Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...

  9. Django 小实例S1 简易学生选课管理系统 0 初步介绍与演示

    Django 小实例S1 简易学生选课管理系统 第0章--初步介绍与演示 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 初步介绍 先介绍下这个 ...

  10. 学生管理系统(SSM简易版)总结

    之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...

随机推荐

  1. uniapp中使用AntV F6 + table表格插件使用

    首先看页面效果: AntV官网下载F6文件到项目中与uViewUI插件 <template> <view class="page"> <!-- 导航栏 ...

  2. ubuntu安装软件报依赖关系错误

    1.环境 Distributor ID: UbuntuDescription: Ubuntu 20.04.1 LTSRelease: 20.04Codename: focal 2.安装 报错 3.解决 ...

  3. C++学习流程

    一.初级入门阶段 数据类型.变量.内存布局.指针基础: 字符串.一维数组.二维数组: 一级指针,二级指针,三级指针,N级指针概念,指针数组和数组指针: 结构体.文件的使用: 动态库的封装和设计: 函数 ...

  4. element的el-table使用模板插槽在火狐和IE无法显示tooltip(浏览器兼容)

    el-table中使用show-overflow-tooltip属性,配合tooltip出现的浏览器兼容性问题 el-table中使用show-overflow-tooltip属性内容过长被隐藏时显示 ...

  5. jQuery实现论坛发帖Demo

    目录 效果展示 思路 代码 改进空间 效果展示 思路 主要知识点:运用jQuery对HTML元素节点的操作(append)来添加帖子. 交互设计:用户点击页面上的"论坛发帖"按钮, ...

  6. 狂神的学习笔记demo11(包机制)

    无法生成子包的问题:设置图标里的Compact Middle Packages勾去掉 //定义包 package package com.panda.base1; //导入包import import ...

  7. Mxgraph

    1. Hello World! Creating an HTML page that links the mxGraph client JavaScript, Creating a container ...

  8. C# 图片 等 文件 读取操作 的一点提示

    源于:在读取图片时,总喜欢首先采用:Image img=Image.FromFile("");操作,这种方式由于 调用图片的程序与图片文件是通过 绝对地址关联的,会造成 当前进程或 ...

  9. Edge 访问网站强制HTTPS

    edge://net-internals/#hsts 1)開啟Edge chromium 瀏覽器,輸入edge://net-internals/#hsts,開啟設定介面2)找到 Delete doma ...

  10. 批量IP 查询脚本

    脚本简单,找到一个免费的IP 查询接口不容易 #-*-coding:utf-8-*- import requests import csv import re header = { 'User-Age ...