学生管理系统python代码面向对象_Python——面向对象,简易学生信息管理系统

一、概述

1.1涉及到的知识点

项目开发:创建项目,创建包,导入包;

面向对象:静态方法,继承,内置函数,自定义函数;

数据类型:列表,字典,字符串、列表、字典的转换和自动生成导向;

异常处理:捕获异常; 文件操作:读,写;

1.2需求分析

(1)思考学员管理系统需要哪些功能?

(2)思考可以将哪些功能对象化?

(3)创建的对象可将功能方法化(函数化)吗?

二、具体实现

(1)创建项目:StudentManagerSystem;

(2)创建文件:main,managerSystem,student;

(3)在文件内创建具体对象;

Student:基本属性有name,gender,tel,方法(__str__)返回具体属性值

managerSystem:属性依赖于Student,本身无属性,

功能有:执行函数run,静态方法show_menu,以及add_stu等增删改操作

main:创建对象,执行文件

(4)细节要点

确保在相应文件首部中导入正确的包,即使正确,仍可能有警告;

每写完一个小功能,都要立即进行测试,发现问题及时解决;

注意数据的存储形式,列表,字符串;

三、总结

这个项目跟着老师做了差不多一周,因为涉及的知识点很多事前面学过但没有很熟练掌握的,所以有些吃力,加上最近开学,有很任务要完成,勉强每天学一点,效果不是很好,但学了总比没学好。马上就要进入mooc学图形了,不求每天学得很多,能学一点是一点,希望自己可以坚持下去吧!

四、完整源码

1 #student.py

2 classStudent(object):3 def __init__(self, name, gender, tel):4 self.name =name5 self.gender =gender6 self.tel =tel7

8 def __str__(self):9 return f'姓名:{self.name},'\10 f'性别:{self.gender},'\11 f'手机号:{self.tel}'

12

13

14 #managerSystem.py

15 """

16 存储数据:文件(student.data)17 加载文件数据18 修改数据后保存到文件19 存储形式:list 存储学员对象20 系统功能:add,del,modify,find,display,save,exit21 """

22 from student import *

23

24

25 classStudentManager(object):26 def __init__(self):27 """存储数据"""

28 self.stu_list =[]29

30 defrun(self):31 self.load_stu()32

33 whileTrue:34 self.show_menu()35 k = int(input('请输入功能序号:\n'))36 if k == 1:37 self.add_stu()38 elif k == 2:39 self.del_stu()40 elif k == 3:41 self.modify()42 elif k == 4:43 self.find()44 elif k == 5:45 self.display()46 elif k == 6:47 self.save()48 elif k == 7:49 break

50

51 @staticmethod52 defshow_menu():53 """显示功能菜单"""

54 print('请选择如下功能:')55 print('1:添加学员')56 print('2:删除学员')57 print('3:修改学员信息')58 print('4:查询学员')59 print('5:显示全部学员信息')60 print('6.:保存学员信息')61 print('7:退出系统')62

63 defadd_stu(self):64 name = input('请输入您的姓名:')65 gender = input('请输入您的性别:')66 tel = input('请输入您的电话号码:')67 stu =Student(name, gender, tel)68 self.stu_list.append(stu)69 print(self.stu_list, stu)70

71 defdel_stu(self):72 del_name = input('请输入要删除学员姓名:')73 for i inself.stu_list:74 if i.name ==del_name:75 self.stu_list.remove(i)76 break

77 else:78 print('查无此人。')79 print(self.stu_list)80

81 defmodify(self):82 modiy_name = input('请输入要修改的学员姓名:')83 for i inself.stu_list:84 if i.name ==modiy_name:85 i.name = input('请输入您的姓名:')86 i.gender = input('请输入您的性别:')87 i.tel = input('请输入您的电话号码:')88 print(f'姓名:{i.name},性别:{i.gender},电话号码:{i.tel}\n'

89 f'修改学员信息成功.')90 break

91 else:92 print('该学员不存在!')93

94 deffind(self):95 find_name = input('请输入要修改的学员姓名:')96 for i inself.stu_list:97 if i.name ==find_name:98 print(f'姓名:{i.name},性别:{i.gender},电话号码:{i.tel}\n'

99 f'修改学员信息成功.')100 break

101 else:102 print('该学员不存在!')103

104 defdisplay(self):105 for i inself.stu_list:106 print(f'姓名:{i.name},'

107 f'性别:{i.gender},'

108 f'电话号码:{i.tel}\n'

109 f'修改学员信息成功.')110

111 defsave(self):112 """文件写入学员数据"""

113 f = open('student.data', 'w')114 new_list = [i.__dict__ for i inself.stu_list]115 f.write(str(new_list))116 f.close()117

118 defload_stu(self):119 try:120 f = open('student.data', 'r')121 except:122 f = open('student.data', 'w')123 else:124 data =f.read()125

126 #将data字符串转换为列表类型数据

127 new_list =eval(data)128

129 #列表推导式

130 self.stu_list = [Student(i['name'],131 i['gender'],132 i['tel'] )133 for i innew_list]134 finally:135 f.close()136

137 #main.py

138 from managerSystem import *

139

140

141 if __name__ == '__main__':142 stu =StudentManager()143 stu.run()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值