news 2026/4/16 12:46:19

基于python语言的链接文件存储的面向对象的学生管理系统小练习

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于python语言的链接文件存储的面向对象的学生管理系统小练习

这个小项目适用于正在进行python面向对象部分学习的同志们 ,可以通过这个小项目巩固学到的知识 ,进行知识的串联与复习语法知识

----------------------------------------------

基础架构部分:

对于一个学生管理系统 ,主要角色必然是 学生 以及系统中管理学生的一些机制

对于学生可以设置这几个属性:

-姓名

-性别

-年龄

-手机号

-描述信息

-等等

其次就是系统中管理学生的机制:

- 添加学生

-删除学生

-修改学生

-查询单个学生

-显示所有学生

-保存学生信息 (关联文件)

-加载学生信息(导入文件)

-退出系统

这就是我们需要设置的信息

接下来我们新建对于不同的类分别建立不同的文件

1. 学生类 2.管理系统类 3.测试类(main入口)

建立文件时我们需要对文件的功能做出说明 ,养成良好的编码习惯

------------------------------------------

下面开始实现代码:

新建Student.py文件

"""

该文件用于记录学生类 ,姓名 ,性别 ,年龄 ,手机号 ,描述信息

"""

class Student: def __init__(self, name, gender,age,phone,desc): """ 该魔法方法 ,用于初始化属性信息 :param name: 学生姓名 :param gender: 性别 :param age: 年龄 :param phone: 手机号 :param desc: 描述信息 """ self.name = name self.age = age self.gender = gender self.phone = phone self.desc = desc def __str__(self): return "姓名:%s,性别:%s,年龄:%s,手机号:%s,描述:%s" % (self.name, self.gender, self.age, self.phone, self.desc) """ 测试代码 ,测试当前进度写的对不对 """ if __name__ == '__main__': s = Student("小王", "男", 18, "12345678901", "喜欢cosplay无能的丈夫") print( s)

注意:在测试分文件的代码时需要添加main函数在进行测试 ,否则在进行代码整合的时候会导致编码错误导致程序运行失败

这样 ,我们的Student类就完成了 ,接下来我们进行StudentCMS.py的编辑 ,不要忘了对代码进行功能说明

""" 该文件用于完成学生管理系统的具体业务操作: 增删改查 ,保存学生信息等这里我们先完成管理系统的函数设计部分的基础架构 ,不详细完成函数功能,在进行项目过程中 这份工作是交给架构师来完成 ,而程序员只需完成部分的函数功能即可"""
#这里导包前面设计的Student类 from Student import Student class StudentCMS(object): def __init__(self): #空列表存储学生信息 self.stu.list=[] #展示管理系统主菜单 def show_view(): pass #添加学生 def add_student(self): pass #删除学生 def delete_student(self): pass #修改学生 def update_student(self): pass #查询单个学生 def find_index_student(self): pass #显示所有学生 def show_all_student(self): pass #保存学生信息到文件中 def save_student(self): pass #从文件中加载学生信息 def load_student(self): pass #程序入口(执行管理系统的全流程) def start(self): pass """ 1. 创建学生管理系统对象 2. 调用学生管理系统的start方法 """ if __name__ == '__main__': sm=StudentCMS() sm.start()

这样 ,我们的StudentCMS类就完成了 ,接下来我们进行main.py的编辑 ,不要忘了对代码进行功能说明

""" 该文件用于程序的入口文件 """
from StudentCMS import StudentCMS if __name__ == '__main__': sm = StudentCMS() sm.start()

至此 ,我们的基础架构部分的骨骼就已经全部完成了 ,剩下的只需要对StudentCMS部分的功能函数

加入血肉,整个管理系统就结束了

---------------StudentCMS-----------------------

主菜单 show_view()

这部分并没有用到对象的内容 ,所以可以将函数定义为静态函数

@staticmethod def show_view(): print("---------欢迎来到弗雷尔卓德学生管理系统---------") print("\t1. 添加学生") print("\t2. 删除学生") print("\t3. 修改学生") print("\t4. 查询单个学生") print("\t5. 显示所有学生") print("\t6.保存学生信息") print("\t7. 退出系统") print("------------------------------------")

添加学生 add_student(self)

def add_student(self): name = input("请输入学生姓名:") gender = input("请输入学生性别:") age = input("请输入学生年龄:") phone = input("请输入学生手机号:") desc = input("请输入学生描述:") stu = Student(name, gender, age, phone, desc) self.stu_list.append(stu) print("添加学生",name,"成功\n")

删除学生 delete_student(self)

def delete_student(self): del_name=input("要删除的学生信息是 :") for stu in self.stu_list: if stu.name == del_name: self.stu_list.remove(stu) print("删除成功") break else : print("没有此学生信息,检查后再试")

修改学生信息 update_student(self)

def update_student(self): update_name = input("要修改的学生姓名是 :") for stu in self.stu_list: if stu.name == update_name: stu.gender = input("请输入修改后的学生性别:") stu.age = input("请输入修改后的学生年龄:") stu.phone = input("请输入修改后的学生手机号:") stu.desc = input("请输入修改后的学生描述:") print("学员",stu.name,"修改成功") break else: print("没有此学生信息,检查后再试")

查找单名学生信息 find_index_student(self)

def find_index_student(self): find_name = input("要查找的学生姓名是 :") for stu in self.stu_list: if stu.name == find_name: print(stu) print("查找成功\n") break else: print("没有此学生信息,检查后再试")

展示全部学生信息 show_all_student(self)

def show_all_student(self): if self.stu_list: for index,stu in enumerate(self.stu_list): print(index,stu) else: print("当前列表中暂无学生信息 ,请添加后在进行查询")

加载学生信息到文件中 save_student(self)

def save_student(self): # 关联学生信息文件 with open("./student.txt", "w", encoding="utf-8") as f: stu_dict=[stu.__dict__ for stu in self.stu_list] f.write(str(stu_dict)) #转成字符串

从文件中加载学生信息到管理系统中 load_student(self)

def load_student(self): try: with open("./student.txt", "r", encoding="utf-8") as f: stu_date = eval(f.read()) self.stu_list = [Student(**stu) for stu in stu_date] except FileNotFoundError: with open("./student.txt", "w", encoding="utf-8") as _f: pass

管理系统全流程实现 start(self)

def start(self): self.load_student() #加入异常处理 ,有可能文件不存在 while True: #为了效果更明显 ,加入延迟(休眠线程) time.sleep(1) StudentCMS.show_view() choice = input("请输入您的选择:") if choice == "1": print("请添加学生") self.add_student() elif choice == "2": self.delete_student() elif choice == "3": self.update_student() elif choice == "4": self.find_index_student() elif choice == "5": self.show_all_student() elif choice == "6": self.save_student() print("保存成功") elif choice == "7": self.save_student() result = input("是否要退出系统(y/n)") if result.lower() == "y": print("谢谢您的使用,期待下次再会!") break else : print("输入错误,请重新输入")

完成该部分以后 ,我们的一个基于python的可链接文件的一个简单的学生管理系统就完成了 ,通过这部分的练习 ,我们可以巩固阶段性学习的面向对象的一些语法以及特性 ,获得正反馈更加具有动力进行下一阶段的学习 ,同志们加油.

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 11:08:28

VSCode远程开发必看:文件同步延迟问题的深度剖析与优化方案

第一章:VSCode远程调试的文件同步在进行远程开发时,VSCode 通过 Remote-SSH、Remote-Containers 或 Remote-WSL 等扩展实现本地编辑与远程执行的无缝衔接。其中,文件同步是确保代码变更能即时反映在远程环境中的关键环节。VSCode 并不依赖传统…

作者头像 李华
网站建设 2026/4/16 11:09:24

流媒体服务中的音频编解码技术实战指南

流媒体服务中的音频编解码技术实战指南 【免费下载链接】go2rtc Ultimate camera streaming application with support RTSP, RTMP, HTTP-FLV, WebRTC, MSE, HLS, MP4, MJPEG, HomeKit, FFmpeg, etc. 项目地址: https://gitcode.com/GitHub_Trending/go/go2rtc 你是否在…

作者头像 李华
网站建设 2026/4/15 16:05:49

3个VS Code语法检查技巧,让技术文档质量提升200%

3个VS Code语法检查技巧,让技术文档质量提升200% 【免费下载链接】grammarly Grammarly for VS Code 项目地址: https://gitcode.com/gh_mirrors/gr/grammarly 作为一名开发者,您是否曾经因为语法错误导致技术文档显得不够专业?或者因…

作者头像 李华
网站建设 2026/4/15 15:27:27

Docker容器化部署AI应用:从零到生产的完整实战指南

Docker容器化部署AI应用:从零到生产的完整实战指南 【免费下载链接】anthropic-quickstarts A collection of projects designed to help developers quickly get started with building deployable applications using the Anthropic API 项目地址: https://gitc…

作者头像 李华
网站建设 2026/4/16 3:06:29

容器化AI应用部署:从零到一的完整实践指南

容器化AI应用部署:从零到一的完整实践指南 【免费下载链接】anthropic-quickstarts A collection of projects designed to help developers quickly get started with building deployable applications using the Anthropic API 项目地址: https://gitcode.com/…

作者头像 李华
网站建设 2026/4/15 19:27:05

多模态AI视频描述的终极指南:从零到精通完整教程

多模态AI视频描述的终极指南:从零到精通完整教程 【免费下载链接】awesome-multimodal-ml Reading list for research topics in multimodal machine learning 项目地址: https://gitcode.com/gh_mirrors/aw/awesome-multimodal-ml 还在为海量视频内容的管理…

作者头像 李华