kekefu

一、概述

 

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 class Student(object):
  3     def __init__(self, name, gender, tel):
  4         self.name = name
  5         self.gender = gender
  6         self.tel = tel
  7 
  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,exit
 21 """
 22 from student import *
 23 
 24 
 25 class StudentManager(object):
 26     def __init__(self):
 27         """存储数据"""
 28         self.stu_list = []
 29 
 30     def run(self):
 31         self.load_stu()
 32 
 33         while True:
 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     @staticmethod
 52     def show_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     def add_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     def del_stu(self):
 72         del_name = input(\'请输入要删除学员姓名:\')
 73         for i in self.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     def modify(self):
 82         modiy_name = input(\'请输入要修改的学员姓名:\')
 83         for i in self.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     def find(self):
 95         find_name = input(\'请输入要修改的学员姓名:\')
 96         for i in self.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     def display(self):
105         for i in self.stu_list:
106             print(f\'姓名:{i.name},\'
107                   f\'性别:{i.gender},\'
108                   f\'电话号码:{i.tel}\n\'
109                   f\'修改学员信息成功.\')
110 
111     def save(self):
112         """文件写入学员数据"""
113         f = open(\'student.data\', \'w\')
114         new_list = [i.__dict__ for i in self.stu_list]
115         f.write(str(new_list))
116         f.close()
117 
118     def load_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 in new_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()

 

分类:

技术点:

相关文章: