好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

python实现学生信息管理系统(面向对象)

本文实例为大家分享了python实现学生信息管理系统的具体代码,供大家参考,具体内容如下

1.主要内容

python种的.py文件如图所示

第一个文件是用来管理文件中包中各个模块的关系的文件

第二个文件是主函数文件,就是在主函数文件调用其余文件和模块

第三个模块式学生信息管理的模块

第四个文件是用来存放学生数据的文件

第五个文件是学生信息的定义和显示模块

2.实现代码

1)第一个文件是包中的管理文件自动生成且不需要修改

2)main.py文件

from managerSystem import *#导入模块managerSystem,可以使用其中的功能

if __name__=='__main__':#定义只能在运行main.py文件中运行,才执行的代码
? ? student_manager=StudentManager()
? ? student_manager.run()

3)学生信息管理模块

from student import *


class StudentManager(object):

? ? def __init__(self):
? ? ? ? self.student_list = []

? ? def run(self):
? ? ? ? self.load_student()

? ? ? ? while True:
? ? ? ? ? ? self.show_menu()
? ? ? ? ? ? ret = int(input('请输入数字1——7:'))
? ? ? ? ? ? if ret == 1:
? ? ? ? ? ? ? ? self.add_student()
? ? ? ? ? ? elif ret == 2:
? ? ? ? ? ? ? ? self.del_student()
? ? ? ? ? ? elif ret == 3:
? ? ? ? ? ? ? ? self.modify_student()
? ? ? ? ? ? elif ret == 4:
? ? ? ? ? ? ? ? self.search_student()
? ? ? ? ? ? elif ret == 5:
? ? ? ? ? ? ? ? self.show_student()
? ? ? ? ? ? elif ret == 6:
? ? ? ? ? ? ? ? self.save_student()
? ? ? ? ? ? elif ret == 7:
? ? ? ? ? ? ? ? break

? ? @staticmethod#此方法在执行时,不需要传入任何参数
? ? def show_menu():
? ? ? ? print('请选择如下序号:')
? ? ? ? print('1.添加学员')
? ? ? ? print('2.删除学员')
? ? ? ? print('3.修改学员信息')
? ? ? ? print('4.查找学员')
? ? ? ? print('5.显示学员信息')
? ? ? ? print('6.保存学员信息')
? ? ? ? print('7.退出系统')

? ? def add_student(self):
? ? ? ? name = input('请输入学员姓名:')
? ? ? ? gender = input('请输入学员性别:')
? ? ? ? tel = input('请输入电话号码:')
? ? ? ? student = Student(name, gender, tel)
? ? ? ? self.student_list.append(student)
? ? ? ? # print(self.student_list)
? ? ? ? # print(student)

? ? def del_student(self):
? ? ? ? del_name = input('请输入需要删除的学员姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == del_name:
? ? ? ? ? ? ? ? self.student_list.remove(i)
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('查无此人')
? ? ? ? # print(self.student_list)

? ? def modify_student(self):
? ? ? ? modify_name = input('请输入需要修改的学员姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == modify_name:
? ? ? ? ? ? ? ? i.name = input('亲输入需要修改的学员姓名:')
? ? ? ? ? ? ? ? i.gender = input('请输入需要修过的学员性别:')
? ? ? ? ? ? ? ? i.tel = input('请输入需要修改的学员手机号:')
? ? ? ? ? ? ? ? print(f'修改的信息为{i.name},{i.gender},{i.tel}')
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('需要修改的学员不存在')

? ? def search_student(self):
? ? ? ? searce_name = input('请输入需要查询的学员姓名:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? if i.name == searce_name:
? ? ? ? ? ? ? ? print(f'姓名:{i.name},性别:{i.gender},手机号:{i.tel}')
? ? ? ? ? ? ? ? break
? ? ? ? else:
? ? ? ? ? ? print('查无此人')

? ? def show_student(self):
? ? ? ? print('姓名:\t性别:\t手机号:')
? ? ? ? for i in self.student_list:
? ? ? ? ? ? print(f'{i.name}\t{i.gender}\t{i.tel}')

? ? def save_student(self):
? ? ? ? f = open('student.data', 'w')
? ? ? ? new_list = [i.__dict__ for i in self.student_list]
? ? ? ? print(new_list)
? ? ? ? f.write(str(new_list))
? ? ? ? f.close()

? ? def load_student(self):
? ? ? ? # 1. 打开文件:尝试r打开,如果有异常w
? ? ? ? try:
? ? ? ? ? ? f = open('student.data', 'r')
? ? ? ? except:
? ? ? ? ? ? f = open('student.data', 'w')
? ? ? ? else:
? ? ? ? ? ? # 2. 读取数据:文件读取出的数据是字符串还原列表类型;[{}] 转换 [学员对象]
? ? ? ? ? ? data = f.read() ?# 字符串
? ? ? ? ? ? if data != '': ?# 此时需要添加判断文件是否为空,否则会发生报错
? ? ? ? ? ? ? ? new_list = eval(data)
? ? ? ? ? ? ? ? self.student_list = [Student(i['name'], i['gender'], i['tel']) for i in new_list]
? ? ? ? finally:
? ? ? ? ? ? # 3. 关闭文件
? ? ? ? ? ? f.close()

4)存储数据的文件不需要编辑

5)student.py文件主要是用来存放学生的主要信息的模块,以及可以查看学生信息的方法

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}'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

查看更多关于python实现学生信息管理系统(面向对象)的详细内容...

  阅读:46次