学生管理系统本地化存储版

本文介绍了使用Python编写的简单学生管理系统,通过CSV文件实现数据的本地存储和基本操作,包括添加、查询、删除和修改学生信息。
摘要由CSDN通过智能技术生成

学生管理系统本地化存储

使用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("输入有误,请重新输入")
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海梦在飘扬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值