赞
踩
12.1.需求分析
12.1.1.使用面向对象编程思想完成学员的管理系统开发
12.2.角色分析
12.2.1.在面向对象编程思想中,必须找到具体实现操作的实体
12.2.2.分析
12.3.要求
12.3.1..为了方便代码的维护,一个角色一个程序文件
12.3.2.项目必须要有主程序入口,一般习惯为main.py.
12.4.创建项目
12.4.1.创建一个student项目名
12.4.2.创建学生信息文件:student.py
12.4.3.创建信息管理系统文件:studentManger
12.5.student.py学员信息存储代码分析
12.5.1.需求:学员(主题)->属性(姓名、年龄、电话...)
12.5.2.实现:创建Student类,初始化、定义_ _str _ _方法来实现输出学员信息
- #定义一个Student学员类
- class Student():
- #定义初始化方法
- def __init__(self,name,age,mobile):
- self.name=name
- self.age=age
- self.mobile=mobile
-
- def __str__(self):
- return f'{self.name},{self.age},{self.mobile}'
'运行
12.6.studentManger.py信息管理代码分析
12.6.1.需求:存储数据文件名:student.data
12.6.2.存储数据的形式:列表存储学员对象
12.6.3.系统子功能
12.6.4.原则:先搭建程序框架,具体功能回头在填充
- class StudentManger(object):
- #定义一个初始化方法
- def __init__(self): #初始化一个student_list属性,将所有学员信息保存起来
- self.student_list=[]
-
- def load_student(self): #定义load_student方法
- pass
-
- #定义一个静态方法
- @staticmethod
- def show_help():
- print('-'*40)
- print('信息管理系统')
- print('1.添加学员信息')
- print('2.删除学员信息')
- print('3.修改学员信息')
- print('4.查询学员信息')
- print('5.显示所有学员信息')
- print('6.保存学员信息')
- print('7.退出系统')
-
-
- def add_student(self):
- pass
-
- def del_student(self):
- pass
-
- def mod_student(self):
- pass
-
- def show_student(self):
- pass
-
- def show_all(self):
- pass
-
- def save_student(self):
- pass
-
- #定义一个run()方法,专门实现对系统个功能的调用
- def run(self):
- #1.调用一个学员加载方法,用于加载文件中所有学员信息,加载完成后,将所有学员信息保存到student_list中
- self.load_student()
- #2.显示帮助信息,提示用户输入要实现的功能编号
- self.show_help()
- user_num=int(input('请输入要操作功能的编号:'))
- if user_num==1:
- self.add_student()
- elif user_num==2:
- self.del_student()
- elif user_num==3:
- self.mod_student()
- elif user_num==4:
- self.show_student()
- elif user_num==5:
- self.show_all()
- elif user_num==6:
- self.save_student()
- elif user_num==7:
- print("感谢你使用信息管理系统,欢迎下次使用")
- else:
- print('信息输入错误,请重新输入')
'运行
12.6.5.编写add_student()学员添加方法
- def add_student(self):
- name=input('请输入学员信息:')
- age=int(input('请输入学员年龄:'))
- moblie=int(input('请输入学员电话号码:'))
- student=Student(name,age,moblie) #创建实例对象,并初始化
- self.student_list.append(student) #调用student_list属性追加student对象信息
- print('学员信息已添加成功')
'运行
12.6.6.编写del_student()学员删除方法
- def del_student(self):
- name=input("请输入需要删除学员的姓名:")
- #对student_list列表进行遍历
- for i in self.student_list:
- if i.name==name:
- self.student_list.remove(i) #若找到了则删除
- print(f'学员{name}信息成功删除')
- break
- else:
- print('要删除的学员不存在...')
'运行
12.6.7.编写mod_student()方法实现修改
- def mod_student(self):
- name=input('请输入要修改的学员姓名:')
- #对student_list属性进行遍历,判断要修改的学员是否存在
- for i in self.student_list:
- if i.name==name:
- i.name=input('请输入修改后的学员姓名:')
- i.age=input('请输入修改后的学员年龄:')
- i.mobile=input('请输入修改后的学员电话:')
- print(f'学员信息修改成功,修改后信息如下=>学员姓名:{i.name},学员年龄:{i.age},学员电话:{i.mobile}')
- break
- else:
- print('你要修改的学员信息不存在')
'运行
12.6.8.编写show_student()方法:
- def show_student(self):
- name=input('请输入要查询的学员姓名:')
- for i in self.student_list:
- if i.name==name:
- print(i)
- break
- else:
- print("你要查找的学员信息不存在")
'运行
12.6.9.编写show_all()方法
- def show_all(self):
- for i in self.student_list:
- print(i) #遍历列表直接输出
'运行
12.6.10.编写save_student()保存信息的方法
- def save_student(self):
- #将self.studet_list转为字符串保存到student.data文件中
- f=open('student.data','w',encoding='utf-8')
- #将列表转为字典
- new_list=[i.__dict__ for i in self.student_list]
- #读写文件
- f.write(str(new_list))
- f.close()
- print('学员信息保存成功')
'运行
12.6.11.编写load_student()方法实现学员加载功能
- def load_student(self): #定义load_student方法
- try:
- f=open('student.data','r',encoding='utf-8')
- except:
- f=open('student.data','w',encoding='utf-8')
- else:
- content=f.read()
- data=eval(content) #将字符串转为原始数据类型[{},{},{}]
- self.student_list=[Student(i['name'],i['age'],i['mobile']) for i in data]
- finally:
- f.close()
'运行
12.7.编写main.py主入口文件
- from studentManager import StudentManager
-
- # 定义入口代码
- if __name__=='__main__':
- student_Manager=StudentManager()
- student_Manager.run()
-
- # 整个程序需要在main()中开始执行
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。