学生信息管理系统python课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学生信息管理系统是一个常见的课程设计项目,旨在帮助学生掌握基本的软件开发技能。以下是一个基于Python的学生信息管理系统的示例代码,供您参考:
python复制代码
# 导入必要的模块
from tkinter import Tk, Label, Entry, Button, Listbox, Message
from tkinter.filedialog import askopenfilename
import os
# 定义学生类
class Student:
def __init__(self, id, name, age, gender, major):
self.id = id
= name
self.age = age
self.gender = gender
self.major = major
# 定义学生信息管理系统类
class StudentInfoSystem:
def __init__(self, master):
self.master = master
self.master.title("学生信息管理系统")
self.students = []
self.student_id = 0
# 创建标签和输入框,用于添加学生信息
Label(master, text="学号").grid(row=0)
Label(master, text="姓名").grid(row=1)
Label(master, text="年龄").grid(row=2)
Label(master, text="性别").grid(row=3)
Label(master, text="专业").grid(row=4)
Entry(master).grid(row=0, column=1)
Entry(master).grid(row=1, column=1)
Entry(master).grid(row=2, column=1)
Entry(master).grid(row=3, column=1)
Entry(master).grid(row=4, column=1)
Button(master, text="添加", command=self.add_student).grid(row=5, column=1)
# 创建标签和列表框,用于显示学生信息列表
Label(master, text="学生信息列表").grid(row=6)
self.listbox = Listbox(master)
self.listbox.grid(row=7, columnspan=2)
Button(master, text="删除选中项", command=self.delete_selected_student).grid(row=8, column=0) Button(master, text="保存数据到文件", command=self.save_to_file).grid(row=8, column=1)
Button(master, text="从文件加载数据", command=self.load_from_file).grid(row=9, columnspan=2)
# 添加学生信息到列表框中
def add_student(self):
id = self.get_id()
name = self.get_entry("姓名").get().strip()
age = self.get_entry("年龄").get().strip()
gender = self.get_entry("性别").get().strip()
major = self.get_entry("专业").get().strip()
student = Student(id, name, age, gender, major)
self.students.append(student)
self.listbox.insert(tkinter.END,
f"{student.id}\t{}\t{student.age}\t{student.gender}\t{stu dent.major}")
self.student_id += 1
# 从输入框中获取值并返回结果,如果输入框为空则返回默认
值(这里是0)
def get_id(self):
id = self.get_entry("学号").get().strip()
if not id: id = 0
return int(id) + self.student_id + 1 # 自增学号并确保是唯一的学号
# 从输入框中获取值并返回结果,如果输入框为空则返回默认值(这里是空字符串)
def get_entry(self, name):
entry = towidget(f"{name}.grid()") # 通过名称获取输入框组件对象
return entry # 返回输入框组件对象,可以直接调用其方法获取值等操作
# 从列表框中删除选中项并更新列表框内容和学生信息列表,同时删除对应的学生信息对象(如果存在)
def delete_selected_student(self):
index = self.listbox.curselection() # 获取选中项的索引值列表,如果有选中项的话只有一个索引值0,如果没有选中项则返回空列表[],注意这里返回的是索引值列表而不是学生对象列表或学生对象本身。因此,我们可以通过索引