Python基础笔记——学生管理系统(面向对象版)

运用面向对象的部分内容,进行学生信息的增、删、改、查

创建student.py文件

# 定义学生类
class Student(object):
	# 添加学生id,姓名,年龄,性别属性
	def __init__(self,stu_id,name,age,gender):
		# 学生id
		self.stu_id = stu_id
		# 学生姓名
		self.name = name
		# 学生年龄
		self.age = age
		# 学生性别
		self.gender = gender
	# 输出
	def __str__(self):
		return f"学生学号:{self.stu_id},学生姓名:{self.name},学生年龄:{self.age},学生性别:{self.gender}"
# 防止别人导入时执行
if __name__ == '__main__':
    stu = Student(1, '王', 18, '男')
    print(stu)

定义student_manager_system,py文件

# 导入student.py文件
import student
# 创建stu_dicts储存学生信息(可用列表、元组)
class StudentManagerSystem(object):
    def __init__(self):
    	# 定义用于储存学生信息
        self.stu_dicts = {}
    # 定义为静态方法
    @staticmethod
    # 定义目录用于进行操作
    def show_menu():
        print('1.添加学生新生')
        print('1.删除学生新生')
        print('3.修改学生信息')
        print('4.查看指定学生信息')
        print('5.查看所有学生信息')
        print('6.退出系统')
	# 添加学生信息
    def insert_student(self):
        # input获取学生信息
        stu_id = input("请输入学生学号:")
        # 代码优化,判断学生信息是否存在,学号是否存在,判断字典key是否存在
        if stu_id in self.stu_dicts:  # key存在返回True
            print('学生信息已存在!')
            return
        # 输入学生姓名
        name = input("请输入学生姓名:")
        # 输入学生年龄
        age = input("请输入学生年龄:")
        # 输入学生性别
        gender = input("请输入学生性别:")
        # 使用学生信息 ,创建学生对象
        stu = student.Student(stu_id, name, age, gender)
        # 将学生对象添加到字典中   字典添加数据:字典[key] = 数据值
        self.stu_dicts[stu_id] = stu
	# 删除学生信息
    def remove_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 删除字典中数据
            del self.stu_dicts[stu_id]
            print("学生已经删除!")
        # 不存在输出
        else:
            print("学生信息不存在,无法删除!")
	# 定义修改学生信息
    def modify_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 修改对象属性  对象.属性名= 属性值
            stu = self.stu_dicts[stu_id]
            # 输入修改后的年龄
            stu.age = input('请输入新的学生年龄:')
            # 输入修改后的学生姓名
            stu.name = input("请输入新的学生姓名:")
            # 输入修改后的学生性别
            stu.gender = input("请输入新的学生性别:")
            print("学生已经修改!")
        # 如果不存在输出
        else:
            print("学生信息不存在,无法删除!")
	# 定义查找学生信息
    def search_student(self):
        # 1.使用input输入学号
        stu_id = input("请输入学号:")
        # 判断是否存在
        if stu_id in self.stu_dicts:
            # 修改对象属性  对象.属性名= 属性值
            stu = self.stu_dicts[stu_id]
            print(stu)
        else:
            print("学生信息不存在,无法删除!")
	# 定义查看所有学生信息
    def show_all_info(self):
    	# 循环遍历学生信息
        for stu in self.stu_dicts.values():
            print(stu)
	# 定义文件
    def save(self):
    	# 如果存在student.txt文件则覆盖,没有则创建
        f = open('student.txt', 'w', encoding='utf-8')
        # 遍历stu_dicts储存到文件中
        for stu in self.stu_dicts.values():
            f.write(str(stu) + '\n')  # str(stu)  调用student类中的__str__方法
        # 关闭文件
        f.close()
	# 防止报错
    def load_info(self):
        try:
            f = open('student.txt', 'r', encoding='utf-8')
            # 定义空列表写入
            buf_list = f.readlines()
            # 循环遍历列表
            for buf in buf_list:
                buf = buf.strip()  # 移除自带的\n(回车符)
                info_list = buf.split(',')  # 列表类型
                # 创建对象
                # stu = student.Student(info_list[0],info_list[1],info_list[2],info_list[3])
                stu = student.Student(*info_list)  # 等价于上一个
                # 将对象添加到字典中
                stu_id = info_list[0]
                self.stu_dicts[stu_id] = stu
            # 关闭文件
            f.close()
       	# 不报错跳过
        except Exception:
            pass
	# 定义开始函数
    def start(self):
        while True:
            self.show_menu()
            # 输入操作
            opt = input("请输入要操作编号:")
            if opt == '1':
                self.insert_student()
            elif opt == '2':
                self.remove_student()
            elif opt == '3':
                self.modify_student()
            elif opt == '4':
                self.search_student()
            elif opt == '5':
                self.show_all_info()
            elif opt == '6':
                self.save()
                print('欢迎下次使用本程序')
                break
            else:
                print("输入有误,请再次输入"·)
                continue
            input("——————————输入回车下一步——————————")

建立main.py文件(主文件,用于运行程序)

# 导入student_manager_system.py文件
import student_manager_system as sms
# 魔法方法
if __name__ == '__main__':
    stu_sms = sms.StudentManagerSystem()
    stu_sms.start()
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
好的,我可以为您介绍如何使用 Python 制作一个简易的学生信息管理系统。这个系统将使用面向对象编程的方式实现,可以方便地添加、删除和修改学生信息。 首先,我们需要定义一个 `Student` 类,用来表示学生信息。每个学生都有姓名、学号、年龄等基本信息,可以使用类的属性来表示: ```python class Student: def __init__(self, name, student_id, age): self.name = name self.student_id = student_id self.age = age ``` 在 `__init__` 方法中,我们定义了三个属性,分别对应学生的姓名、学号和年龄。接下来,我们需要添加一些方法,来实现学生信息的添加、删除和修改: ```python class Student: def __init__(self, name, student_id, age): self.name = name self.student_id = student_id self.age = age def get_name(self): return self.name def set_name(self, name): self.name = name def get_student_id(self): return self.student_id def set_student_id(self, student_id): self.student_id = student_id def get_age(self): return self.age def set_age(self, age): self.age = age ``` 在上面的代码中,我们定义了六个方法,分别对应获取和设置学生的姓名、学号和年龄。这些方法可以方便地对学生信息进行修改。 接下来,我们可以创建一个 `StudentManager` 类,用来管理所有的学生信息。这个类包含了一个学生列表,可以添加、删除和修改学生信息: ```python class StudentManager: def __init__(self): self.students = [] def add_student(self, student): self.students.append(student) def remove_student(self, student): self.students.remove(student) def get_all_students(self): return self.students def search_student_by_id(self, student_id): for student in self.students: if student.get_student_id() == student_id: return student return None ``` 在上面的代码中,我们定义了四个方法,分别对应添加、删除、获取所有学生和根据学号查找学生。这些方法可以方便地对学生信息进行管理。 现在,我们可以创建一个 `main` 函数,来实现学生信息管理系统的基本功能: ```python def main(): manager = StudentManager() # 添加学生 student1 = Student('张三', '001', 18) manager.add_student(student1) student2 = Student('李四', '002', 19) manager.add_student(student2) student3 = Student('王五', '003', 20) manager.add_student(student3) # 查找学生 s = manager.search_student_by_id('001') print(s.get_name(), s.get_student_id(), s.get_age()) # 修改学生信息 s.set_name('赵六') s.set_age(21) # 删除学生 manager.remove_student(student3) # 打印所有学生信息 students = manager.get_all_students() for student in students: print(student.get_name(), student.get_student_id(), student.get_age()) ``` 在上面的代码中,我们首先创建了一个 `StudentManager` 对象,并添加了三个学生。然后,我们使用 `search_student_by_id` 方法查找学号为 '001' 的学生,并打印出其姓名、学号和年龄。接着,我们使用 `set_name` 和 `set_age` 方法修改了该学生的姓名和年龄。然后,我们使用 `remove_student` 方法删除了一个学生。最后,我们使用 `get_all_students` 方法获取所有学生信息,并打印出来。 这样,一个简易的学生信息管理系统就完成了。您可以根据自己的需求,继续添加其他功能,如文件读写、GUI 界面等。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值