学员管理系统(StudentsManagerSystem) 面向对象练习

自我第一篇文章得到很多人的支持与关注,小白有些受宠若惊,但是我更加坚定在程序员的路上越走越远和坚持写博客记录与分享,谢谢支持!
最近在写一个对我来说代码量较大的小游戏,因为最近开始了网课,每天在pycharm上花费的时间会少一些,再过几天我应该就写完了,然后会发出来,在这之前,我把面向对象这块知识进行一个练习,参考着做了这一个学员管理系统(好像这个是许多程序员都做过的一个项目,但是一万个人眼中有一万个哈姆雷特,所以这是我做的你也可以看看,顺便提出你的建议,谢谢支持!)
这个程序分三个模块【主函数启动模块(main)管理系统模块(manageSystem)学生模块(student)

在这里插入图片描述
就不再进行过多的赘述了,这篇文章精简一点,也是给我留些精力去做别的项目

主程序模块(main)


# 1.导入管理系统模块
from manageSystem import *

# 2.启动管理系统:保证当前文件运行才启动管理系统:if __name__
if __name__ == '__main__':
    student_manager = StudentManage()
    student_manager.run()

管理系统(manageSystem)

from student import *


class StudentManage(object):
    def __init__(self):
        # 存储数据所用的列表
        self.student_list = []

    # 一 程序入口函数
    def run(self):
        # 1.加载学员信息
        self.load_student()
        while True:

            # 用户输入功能序号
            menu_num = int(input('请输入需要的功能序号(菜单序号为0):'))
            #       功能
            if menu_num == 0:
                #       显示功能菜单
                self.show_meun()
            elif menu_num == 1:
                # 添加学员信息
                self.add_student()
            elif menu_num == 2:
                # 删除学员信息
                self.del_student()
            elif menu_num == 3:
                # 修改学员信息
                self.modify_student()
            elif menu_num == 4:
                # 查询学员信息
                self.search_student()
            elif menu_num == 5:
                # 显示所有学员信息
                self.show_student()
            elif menu_num == 6:
                # 保存学员信息
                self.save_student()
            elif menu_num == 7:
                # 退出系统
                break
            else:
                print('您输入的有误,请重新输入')

    # 二,系统功能函数
    # 2.1显示功能函数 需求:打印序号功能对应关系  静态
    # @staticmethod
    def show_meun(self):
        print('请选择如下功能:')
        print('1.添加学员信息')
        print('2.删除学员信息')
        print('3.修改学员信息')
        print('4.查询学员信息')
        print('5.显示所有学员信息')
        print('6.保存学员信息')
        print('7.退出学员信息')

    # 2.2添加功能函数
    def add_student(self):
        # 1.用户输入姓名,性别,手机号
        name = input('请输入您的姓名')
        gender = input('请输入您的性别')
        tel = input('请输入您的手机号')
        # 2.创建学员对象
        student = Student(name, gender, tel)

        # 3.添加学员到列表
        self.student_list.append(student)
        print('\t添加成功')

    # 2.3删除功能函数
    def del_student(self):
        # 删除指定姓名的学员
        del_name = input('请输入学员姓名')
        for i in self.student_list:
            if i.name == del_name:
                self.student_list.remove(i)
                print('\t删除成功')
                break
            else:
                print('\t查无此人,删除失败')

    # 2.4修改功能函数
    def modify_student(self):
        #     1.用户输入目标学员姓名
        modify_name = input('请输入要修改的学员姓名')
        for i in self.student_list:
            if i.name == modify_name:
                i.name = input('请输入新的姓名')
                i.gender = input('请输入新的性别')
                i.tel = input('请输入新的手机号')
                print('\t修改成功')
                break
            else:
                print('\t查无此人,修改失败')

    # 2.5查询学员功能函数
    def search_student(self):
        search_name = input('请输入查询学员姓名')
        for i in self.student_list:
            if i.name == search_name:
                print(f'学员姓名是{i.name},学员性别是{i.gender},学员电话是{i.tel}')
                print('\t查询完成')
                break
            else:
                print('查无此人,查询失败')

    # 2.6显示所有学员功能函数
    def show_student(self):
        print('姓名\t性别\t电话')
        for i in self.student_list:
            print(f'{i.name}\t{i.gender}\t{i.tel}')
            print('\t显示成功')

    # 2.7保存学员功能函数
    def save_student(self):
        # 1.打开文件
        f = open('student.data', 'w')
        # 2.文件写入数据
        # 2.1 [学员对象]转换成{字典}
        new_list = [i.__dict__ for i in self.student_list]
        # 2.2 文件写入 字符串数据
        f.write(str(new_list))
        # 3.关闭文件
        f.close()
        print('保存成功')

    # 2.8加载学员信息功能函数
    def load_student(self):

        try:
            f = open('student.date', 'r')

        except:
            f = open('student.data', 'w')
        else:
            data = f.read()

            new_list = eval(data)
            self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
        finally:
            f.close()


# 下面是测试代码块
if __name__ == '__main__':
    student = StudentManage()
    student.run()

学生模块(student)

class Student(object):
    def __init__(self,name,gender,tel):
        self.name = name
        self.gender = gender
        self.tel = tel

    def __str__(self):
        return f'学员姓名是{self.name},性别是{self.gender},电话是{self.tel}'


# 下方是当前文件测试代码块,可以进行测试
if __name__ == '__main__':
    print(1)

个人总结

代码就是这些,可以把这些代码放一块,为什么要制作模块呢?
我个人认为
一,思路清晰:
是一块一块去写和思路相匹配,修改改错也很方便,去调试代码,如果放在一起如果出现Error就会出现很多的地方,改错都不好找,单个模块测试通过再导入就会很方便。
二,分析方便:
当再去看代码,一个模块一个模块去看,就会很清晰

如果觉得我写的那里不足就请提出您的高见,感谢您的建议,如果觉得这篇文章还可以,那么请您点赞评论关注您的支持就是我不断写下去的动力!

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
以下是一个简单的Python面向对象的学生信息管理系统的示例: ```python # 定义学生类 class Student(object): def __init__(self, name, age, gender): self.name = name self.age = age self.gender = gender # 定义学生管理系统类 class StudentManager(object): def __init__(self): # 存储学员数据 -- 列表 self.student_list = [] # 添加学员 def add_student(self, student): self.student_list.append(student) print("学员添加成功!") # 删除学员 def delete_student(self, student): if student in self.student_list: self.student_list.remove(student) print("学员删除成功!") else: print("学员不存在!") # 修改学员信息 def modify_student(self, student, new_name, new_age, new_gender): if student in self.student_list: student.name = new_name student.age = new_age student.gender = new_gender print("学员信息修改成功!") else: print("学员不存在!") # 查询学员信息 def query_student(self, student): if student in self.student_list: print("学员姓名:", student.name) print("学员年龄:", student.age) print("学员性别:", student.gender) else: print("学员不存在!") # 显示所有学员信息 def show_all_students(self): for student in self.student_list: print("学员姓名:", student.name) print("学员年龄:", student.age) print("学员性别:", student.gender) # 保存学员信息 def save_students(self): # 将学员信息保存到文件中 with open("students.txt", "w") as f: for student in self.student_list: f.write(student.name + "," + str(student.age) + "," + student.gender + "\n") print("学员信息保存成功!") # 退出系统 def exit_system(self): self.save_students() print("学员信息管理系统已退出!") # 创建学生管理系统对象 manager = StudentManager() # 添加学员 student1 = Student("张三", 18, "男") manager.add_student(student1) # 修改学员信息 manager.modify_student(student1, "李四", 20, "女") # 查询学员信息 manager.query_student(student1) # 显示所有学员信息 manager.show_all_students() # 删除学员 manager.delete_student(student1) # 退出系统 manager.exit_system() ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值