当前位置:   article > 正文

python编写的学生信息管理系统_用python写学生信息管理系统

用python写学生信息管理系统

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 _ _方法来实现输出学员信息

  1. #定义一个Student学员类
  2. class Student():
  3. #定义初始化方法
  4. def __init__(self,name,age,mobile):
  5. self.name=name
  6. self.age=age
  7. self.mobile=mobile
  8. def __str__(self):
  9. 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.原则:先搭建程序框架,具体功能回头在填充

  1. class StudentManger(object):
  2. #定义一个初始化方法
  3. def __init__(self): #初始化一个student_list属性,将所有学员信息保存起来
  4. self.student_list=[]
  5. def load_student(self): #定义load_student方法
  6. pass
  7. #定义一个静态方法
  8. @staticmethod
  9. def show_help():
  10. print('-'*40)
  11. print('信息管理系统')
  12. print('1.添加学员信息')
  13. print('2.删除学员信息')
  14. print('3.修改学员信息')
  15. print('4.查询学员信息')
  16. print('5.显示所有学员信息')
  17. print('6.保存学员信息')
  18. print('7.退出系统')
  19. def add_student(self):
  20. pass
  21. def del_student(self):
  22. pass
  23. def mod_student(self):
  24. pass
  25. def show_student(self):
  26. pass
  27. def show_all(self):
  28. pass
  29. def save_student(self):
  30. pass
  31. #定义一个run()方法,专门实现对系统个功能的调用
  32. def run(self):
  33. #1.调用一个学员加载方法,用于加载文件中所有学员信息,加载完成后,将所有学员信息保存到student_list中
  34. self.load_student()
  35. #2.显示帮助信息,提示用户输入要实现的功能编号
  36. self.show_help()
  37. user_num=int(input('请输入要操作功能的编号:'))
  38. if user_num==1:
  39. self.add_student()
  40. elif user_num==2:
  41. self.del_student()
  42. elif user_num==3:
  43. self.mod_student()
  44. elif user_num==4:
  45. self.show_student()
  46. elif user_num==5:
  47. self.show_all()
  48. elif user_num==6:
  49. self.save_student()
  50. elif user_num==7:
  51. print("感谢你使用信息管理系统,欢迎下次使用")
  52. else:
  53. print('信息输入错误,请重新输入')
'
运行

12.6.5.编写add_student()学员添加方法

  • 需求:将用户输入的学员姓名、年龄、手机号信息添加到系统中
  1. def add_student(self):
  2. name=input('请输入学员信息:')
  3. age=int(input('请输入学员年龄:'))
  4. moblie=int(input('请输入学员电话号码:'))
  5. student=Student(name,age,moblie) #创建实例对象,并初始化
  6. self.student_list.append(student) #调用student_list属性追加student对象信息
  7. print('学员信息已添加成功')
'
运行

12.6.6.编写del_student()学员删除方法

  • 需求输入学员姓名,若存在则删除该学员信息
  1. def del_student(self):
  2. name=input("请输入需要删除学员的姓名:")
  3. #对student_list列表进行遍历
  4. for i in self.student_list:
  5. if i.name==name:
  6. self.student_list.remove(i) #若找到了则删除
  7. print(f'学员{name}信息成功删除')
  8. break
  9. else:
  10. print('要删除的学员不存在...')
'
运行

12.6.7.编写mod_student()方法实现修改

  1. def mod_student(self):
  2. name=input('请输入要修改的学员姓名:')
  3. #对student_list属性进行遍历,判断要修改的学员是否存在
  4. for i in self.student_list:
  5. if i.name==name:
  6. i.name=input('请输入修改后的学员姓名:')
  7. i.age=input('请输入修改后的学员年龄:')
  8. i.mobile=input('请输入修改后的学员电话:')
  9. print(f'学员信息修改成功,修改后信息如下=>学员姓名:{i.name},学员年龄:{i.age},学员电话:{i.mobile}')
  10. break
  11. else:
  12. print('你要修改的学员信息不存在')
'
运行

12.6.8.编写show_student()方法:

  1. def show_student(self):
  2. name=input('请输入要查询的学员姓名:')
  3. for i in self.student_list:
  4. if i.name==name:
  5. print(i)
  6. break
  7. else:
  8. print("你要查找的学员信息不存在")
'
运行

12.6.9.编写show_all()方法

  1. def show_all(self):
  2. for i in self.student_list:
  3. print(i) #遍历列表直接输出
'
运行

12.6.10.编写save_student()保存信息的方法

  • 需求:将所有学员信息保存到文件中(student.data)
  • b步骤:打开文件->读写文件->关闭文件
  1. def save_student(self):
  2. #将self.studet_list转为字符串保存到student.data文件中
  3. f=open('student.data','w',encoding='utf-8')
  4. #将列表转为字典
  5. new_list=[i.__dict__ for i in self.student_list]
  6. #读写文件
  7. f.write(str(new_list))
  8. f.close()
  9. print('学员信息保存成功')
'
运行

12.6.11.编写load_student()方法实现学员加载功能

  • 需求:每次进入系统后,修改文件内部数据
  • 步骤:读取文件、读取数据、转换数据
  1. def load_student(self): #定义load_student方法
  2. try:
  3. f=open('student.data','r',encoding='utf-8')
  4. except:
  5. f=open('student.data','w',encoding='utf-8')
  6. else:
  7. content=f.read()
  8. data=eval(content) #将字符串转为原始数据类型[{},{},{}]
  9. self.student_list=[Student(i['name'],i['age'],i['mobile']) for i in data]
  10. finally:
  11. f.close()
'
运行

12.7.编写main.py主入口文件

  • 软件从当前文件开始执行,从入口程序
  1. from studentManager import StudentManager
  2. # 定义入口代码
  3. if __name__=='__main__':
  4. student_Manager=StudentManager()
  5. student_Manager.run()
  6. # 整个程序需要在main()中开始执行

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/神奇cpp/article/detail/808069
推荐阅读
相关标签
  

闽ICP备14008679号