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

学生管理系统本地化存储

使用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. 学生管理系统本地化存储

    2024-03-30 07:36:04       18 阅读
  2. day12笔记(学生管理系统升级)

    2024-03-30 07:36:04       28 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-30 07:36:04       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-30 07:36:04       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-30 07:36:04       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-30 07:36:04       18 阅读

热门阅读

  1. Redis Scan指令解析与使用示例

    2024-03-30 07:36:04       18 阅读
  2. MongoDB聚合运算符:$linearFill

    2024-03-30 07:36:04       18 阅读
  3. C# 命名空间的两种定义哦写法与区别

    2024-03-30 07:36:04       17 阅读
  4. Nginx的预定义变量

    2024-03-30 07:36:04       20 阅读
  5. 算法部署总结

    2024-03-30 07:36:04       18 阅读
  6. L2-3 图着色问题

    2024-03-30 07:36:04       16 阅读
  7. 【每日一题】C++生成组合数

    2024-03-30 07:36:04       19 阅读