学生管理系统本地化存储
使用Python写的一个小时管理系统,当操作的时候会将数据存储在本地文件夹中。
import csv
class Student():
def __init__(self,name,age,gender):
self.name = name
self.age = age
self.gender = gender
def setName(self,name):
self.name = name
def setAge(self,age):
self.age = age
def setGender(self,gender):
self.gender = gender
def __str__(self):
return f"'name':{self.name},'age':{self.age},'gender':{self.gender}"
def arrlist(self):
dict1 = dict()
dict1["name"] = self.name
dict1["age"] = self.age
dict1["gender"] = self.gender
return dict1
path = r"stu_info.csv" # 本地存储路径
class StuManaged():
# 将从文件中读取到的数据写入列表中
def __init__(self,StudentList):
self.StudentList = StudentList
with open(path, mode="r", encoding="utf-8") as file2:
content = csv.DictReader(file2)
for i in content:
self.StudentList.append(i)
# 添加学生
def addStudent(self):
name = input("请输入名字:")
age = int(input("请输入年龄:"))
gender = input("请输入性别:")
s = Student(name, age, gender)
self.StudentList.append(s.arrlist())
# 查询全部
def findAll(self):
for i in self.StudentList:
print(i)
# 查询单个学生
def findName(self):
name = input("请输入你要查询的学生名字:")
for i in self.StudentList:
if i["name"] == name:
print(i)
break
else:
print("查询失败")
# 删除操作
def deleteName(self):
name = input("请输入需要删除的学生名字:")
for i in self.StudentList:
if i["name"] == name:
self.StudentList.remove(i)
print("删除成功")
break
else:
print("请检查输入是否正确")
self.findAll()
# 修改操作
def updateStudent(self):
name = input("请输入需要修改的学生姓名:")
for i in self.StudentList:
if i["name"] == name:
stu_name = input("请输入新的名字(无需更改请输入None):")
stu_age = input("请输入年龄(无需更改请输入None):")
stu_gender = input("请输入性别(无需更改请输入None):")
i["name"] = stu_name if stu_name != None else i["name"]
i["age"] = stu_age if stu_age != None else i["age"]
i["gender"] = stu_gender if stu_gender != None else i["gender"]
print("修改成功")
break
else:
print("未查询到该学生")
# 进行本地化存储
def save(self):
# 写入操作
with open(path, mode="w", encoding="utf-8", newline="") as file1:
writer = csv.DictWriter(file1, fieldnames=['name', 'age', 'gender'])
writer.writeheader()
writer.writerows(self.StudentList)
StudendList = []
s1 = StuManaged(StudendList)
while True:
print(
'''
*****欢迎使用学生管理系统*****
1、添加学生
2、删除学生
3、修改学生
4、查询单个学生
5、查询全部学生
6、保存并退出
'''
)
num = int(input("请输入你的选择:"))
if num == 1:
s1.addStudent()
elif num == 2:
s1.deleteName()
elif num == 3:
s1.updateStudent()
elif num == 4:
s1.findName()
elif num == 5:
s1.findAll()
elif num == 6:
s1.save()
break
else:
print("输入有误,请重新输入")