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

学生管理系统本地化存储

使用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("输入有误,请重新输入")
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,我可以给你提供一个基于Tkinter的单的学生管理系统示例代码。该可以添加、删除、修改和查询学生信息,并将学生信息保存到本地文件中(txt格式)。 代码如下: python from tkinter import * import tkinter.messagebox as messagebox class Student: def __init__(self, name, id, age, gender): self.name = name self.id = id self.age = age self.gender = gender class StudentManagementSystem: def __init__(self): self.window = Tk() self.window.title("学生管理系统") self.window.geometry("500x300") self.students = [] Label(self.window, text="姓名").grid(row=0, column=0) Label(self.window, text="学号").grid(row=1, column=0) Label(self.window, text="年龄").grid(row=2, column=0) Label(self.window, text="性别").grid(row=3, column=0) self.name_entry = Entry(self.window) self.id_entry = Entry(self.window) self.age_entry = Entry(self.window) self.gender_entry = Entry(self.window) self.name_entry.grid(row=0, column=1) self.id_entry.grid(row=1, column=1) self.age_entry.grid(row=2, column=1) self.gender_entry.grid(row=3, column=1) Button(self.window, text="添加学生", command=self.add_student).grid(row=4, column=0, pady=10) Button(self.window, text="删除学生", command=self.delete_student).grid(row=4, column=1, pady=10) Button(self.window, text="修改学生", command=self.modify_student).grid(row=4, column=2, pady=10) Button(self.window, text="查询学生", command=self.query_student).grid(row=5, column=0, pady=10) Button(self.window, text="显示所有学生", command=self.show_all_students).grid(row=5, column=1, pady=10) Button(self.window, text="保存学生信息", command=self.save_students).grid(row=5, column=2, pady=10) self.result_text = Text(self.window, height=8, width=50) self.result_text.grid(row=6, columnspan=3) self.load_students() def add_student(self): name = self.name_entry.get() id = self.id_entry.get() age = self.age_entry.get() gender = self.gender_entry.get() student = Student(name, id, age, gender) self.students.append(student) self.result_text.insert(END, "添加成功!\n") def delete_student(self): id = self.id_entry.get() for student in self.students: if student.id == id: self.students.remove(student) self.result_text.insert(END, "删除成功!\n") return self.result_text.insert(END, "学号不存在!\n") def modify_student(self): id = self.id_entry.get() for student in self.students: if student.id == id: student.name = self.name_entry.get() student.age = self.age_entry.get() student.gender = self.gender_entry.get() self.result_text.insert(END, "修改成功!\n") return self.result_text.insert(END, "学号不存在!\n") def query_student(self): id = self.id_entry.get() for student in self.students: if student.id == id: self.name_entry.delete(0, END) self.age_entry.delete(0, END) self.gender_entry.delete(0, END) self.name_entry.insert(END, student.name) self.age_entry.insert(END, student.age) self.gender_entry.insert(END, student.gender) self.result_text.insert(END, "查询成功!\n") return self.result_text.insert(END, "学号不存在!\n") def show_all_students(self): self.result_text.delete(1.0, END) for student in self.students: self.result_text.insert(END, "姓名:{},学号:{},年龄:{},性别:{}\n".format(student.name, student.id, student.age, student.gender)) def save_students(self): with open("students.txt", "w") as f: for student in self.students: f.write("{},{},{},{}\n".format(student.name, student.id, student.age, student.gender)) messagebox.showinfo("提示", "保存成功!") def load_students(self): try: with open("students.txt", "r") as f: for line in f: name, id, age, gender = line.strip().split(",") student = Student(name, id, age, gender) self.students.append(student) except FileNotFoundError: pass def run(self): self.window.mainloop() if __name__ == "__main__": system = StudentManagementSystem() system.run() ``` 该系统包含一个Student类和一个StudentManagementSystem类。Student类用于存储学生信息,而StudentManagementSystem类实现了添加、删除、修改和查询学生信息等功能。 你可以将该代码保存为student_management_system.py文件,并在终端执行以下命令来运行该系统: ```bash python student_management_system.py ``` 运行后,会弹出一个窗口,你可以在窗口中进行各种操作。同时,学生信息会保存到本地文件中,下次打开程序时可以自动加载之前保存的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

海梦在飘扬

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

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

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

打赏作者

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

抵扣说明:

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

余额充值