Python简易学生管理系统
目录结构:
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简易学生管理系统的更多相关文章
- 用python实现简易学生管理系统
以前用C++和Java写过学生管理系统,也想用Python试试,果然“人生苦短,我用Python”.用Python写的更加简洁,实现雏形也就不到100行代码. 下面上代码 #!/usr/bin/pyt ...
- JavaSE09-(练手)简易学生管理系统
1.学生管理系统实现步骤 案例需求 系统主要功能如下: 添加学生:通过键盘录入学生信息,添加到集合中 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除 修改学生:通过键盘录入要修改学生 ...
- 基于python的学生管理系统(含数据库版本)
这次支持连接到后台的数据库,直接和数据库进行交互,实现基本的增删查改 #!/usr/bin/python3 # coding=utf-8 """ ************ ...
- Django_学生管理系统
一. Django简易学生管理系统 1.在pycharm中创建工程student_manage_system,添加app:student_manage 2.配置静态文件:在工程项目目录下新建目录sta ...
- python简易版学生管理系统
#coding=utf- def showInfo(): print("**************") print(" 学生管理系统") print(&quo ...
- Django 小实例S1 简易学生选课管理系统 9 创建课程模型(model)
Django 小实例S1 简易学生选课管理系统 第9节--创建课程模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 对于课程模块, ...
- Django 小实例S1 简易学生选课管理系统 2 新建项目(project)并进行设置
Django 小实例S1 简易学生选课管理系统 第2节--新建项目(project)并进行设置 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 0 ...
- Django 小实例S1 简易学生选课管理系统 3 创建用户模型(model)
Django 小实例S1 简易学生选课管理系统 第3节--创建用户模型(model) 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 本文涉及到的新 ...
- Django 小实例S1 简易学生选课管理系统 0 初步介绍与演示
Django 小实例S1 简易学生选课管理系统 第0章--初步介绍与演示 点击查看教程总目录 作者自我介绍:b站小UP主,时常直播编程+红警三,python1对1辅导老师. 1 初步介绍 先介绍下这个 ...
- 学生管理系统(SSM简易版)总结
之前用 Servlet + JSP 实现了一个简易版的学生管理系统,在学习了 SSM 框架之后,我们来对之前写过的项目重构一下! 技术准备 为了完成这个项目,需要掌握如下技术: Java 基础知识 前 ...
随机推荐
- C#下解析、生成JAVA的RSA密钥、公钥
1.从 https://www.nuget.org/packages/BouncyCastle/下载对应的nupkg包,放到本地一个文件夹中 2.打开VS2010,工具->NuGet程序包管理器 ...
- 为什么你需要升级 pip
更新软件版本可以修复bug,增加新功能和提升性能.例如,NumPy 1.20 添加了类型注释,并在可能的情况下通过使用SIMD来提高性能.如果您要安装NumPy,则可能要安装最新版本. 相反,如果您使 ...
- Alibaba Cloud Linux 3.2104 64位安装mydumper-0.9.1
1 下载 wget https://launchpad.net/mydumper/0.9/0.9.1/+download/mydumper-0.9.1.tar.gz tar -zxvf mydumpe ...
- 下载并安装Swagger-ui和Swagger-edit
1. github上下载好Swagger-ui和Swagger-edit文件 https://github.com/swagger-api/swagger-ui https://github.com/ ...
- 【vue】数据代理
Object.defineProperty()方法 我们先来看几段代码 常用添加属性的方法,以添加age举例 ,点击查看代码 let person = { name: '张三', sex: '男', ...
- python pandas dataframe excel xlwings docx 常用简单函数方法汇总
# -*- coding: UTF-8 -*-import pandas as pdimport numpy as npimport datetimeimport osimport sysimport ...
- sql Alias别名
sql语句中where.group by.having.order by 是否可以使用别名 1.在mysql中,group by.order by中可以使用别名:where中不能使用别名,(如果别名来 ...
- vue路由重复跳转导致控制台报错
重复跳转了同一个页面,导致空值台报错了! 解决思路: 方案1:在路由跳转时捕获错误. 1.1 全局捕获处理 //index.js import VueRouter from 'vue-router' ...
- 使用 Vue 3 时应避免的 10 个错误
Vue 3已经稳定了相当长一段时间了.许多代码库都在生产环境中使用它,其他人最终都将不得不迁移到Vue 3.我现在有机会使用它并记录了我的错误,下面这些错误你可能想要避免. 使用Reactive声明原 ...
- Web For Pentester - SQL injections/Directory traversal
SQL injections Example 1 典型的SQL注入 name=root' or 1=1 %23 直接执行就可以导出所有用户 查看后端的源码 观察到,我们传入入的name中,传入就成为了 ...