python课程设计--学生管理系统

系统要求

1.添加学生

2.删除学生

3.修改学生信息

4.查询学生

5.查看所有学生信息

6.学生信息数据的存储与读取

源码:student.py

#coding:utf-8
  2 #定义学员类
  3 class student(object):
  4     #初始化实例对象的属性
  5     def __init__(self,name,gender,tel):
  6         self.name = name 
  7         self.sex = gender
  8         self.tel = tel
  9     
 10     def __str__(self):
 11         return f"学员的名字:{self.name},学员的{self.sex},学    员的电话号码{self.tel}"
 12                                                            
 13 

源码:maneger.py

#coding:utf-8                                              
  2 from student import *
  3 class manager(object):
  4     def __init__(self):
  5         #存储学生数据的列表
  6         self.student_list = []
  7 
  8     def show_menu(self):
  9         print("功能菜单...")
 10         print("1.添加学员")
 11         print("2.删除学员")
 12         print("3.修改学员信息")
 13         print("4.查询学员信息")
 14         print("5.显示所有学员")
 15         print("6.保存学员信息.")
 16         print("7.退出系统")
 17     #程序入口
 18     def run(self):
 19         #加载学员信息
 20         self.load_student()
 21         while True:
 22             self.show_menu()
 23             #用户输入功能序号
 24             number = int(input("请输入功能序号:"))
 25             if number == 1:
 26                 #添加学员
 27                 self.add_student()
 28             if number == 2:
 29                 #删除学员
 30                 self.del_student()
 31             if number == 3:
 32                 #修改学生信息
 33                 self.change_student_info()
 34             if number == 4:
 35                 #查询学生信息
 36                 self.seach_student()
 37             if number == 5:
 38                 #显示所有学生信息
 39                 self.display_all_student()
 40             if number == 6:
 41                 #保存学生信息
 42                 self.save_student_info()
 43             if number == 7:
 44                 #退出系统
 45                 break
 46     #系统功能函数
 47     def show_menu(self):
 48         print("功能菜单...")
 49         print("1.添加学员")
 50         print("2.删除学员")
 51         print("3.修改学员信息")
 52         print("4.查询学员信息")
 53         print("5.显示所有学员")
  print("6.保存学员信息.")
 55         print("7.退出系统")
 56 
 57     def add_student(self):
 58         name = input("请输入学生姓名:")
 59         sex = input("请输入学生的性别:")
 60         tel = input("请输入学生的电话号码:")
 61         #创建学员对象
 62         student1 = student(name,sex,tel)
 63         self.student_list.append(student1)
 64         print(self.student_list)
 65         print(student1)
 66 
 67     def del_student(self):
 68         remove_name = input("请输入需要删除的学生的姓名:")
 69         for i in self.student_list:
 70             if i.name == remove_name:
 71                 #直接移除一个对象
 72                 self.student_list.remove(i)
 73                 break
 74         else:
 75             print("查无此人")
 76         print(self.student_list)
 77 
 78     def change_student_info(self):
 79         change_name = input("请输入学生姓名:")
 80         for i in self.student_list:
 81             if i.name == change_name:
 82                 i.name = input("新的姓名:")
 83                 i.sex = input("新的性别:")
 84                 i.tel = input("新的电话号码:")
 85                 print(f"学员信息{i.name},{i.sex},{i.tel}")
 86                 break
 87         else:
 88             print("查无此人")
 89     
 90     def seach_student(self):
 91         seach_name = input("学生姓名:")
 92         for i in self.student_list:
 93             if i.name == seach_name:
 94                 print(f"学员信息{i.name},{i.sex},{i.tel}")
 95                 break
 96         else:
 97             print("查无此人")
 98 
 99     def display_all_student(self):
100         print("姓名\t性别\t手机号")
101         for i in self.student_list:
print(f"{i.name}\t{i.sex}\t{i.tel}")
103 
104     def save_student_info(self):
105         f = open("student.data","w")
106         #文件写入学员数据
107         #注意:文件写入的数据不能是学员对象的内存地址,需要
    把学员数据转化成列表字典数据再做存储
108         new_list = [i.__dict__ for i in self.student_list]#    列表解析
109         #[{"name":},{"sex":},{"tel":}]
110         f.write(str(new_list))
111         #关闭文件
112         f.close()
113     
114     def load_student(self):
115         #进行一个文件的检测,看文件是否存在
116         try:
117             f = open("student.data","r")
118         except:
119             f = open("student.data","w")
120         else:
121             data = f.read()
122         #文件中读取的数据都是字符串且字符串内部为字典,故需
    要转换数据类型在转换字典为对象后从存储到学员列表
123             new_list = eval(data)
124             #字典转化为对象,类似与c语言中的类型强转       
125             self.student_list = [student(i["name"],i["sex"]    ,i["tel"]) for i in new_list]#列表解析
126         finally:
127             f.close()

源码:main.py

 #conding:utf-8                                             
  2 #导入模块
  3 from maneger import *
  4 
  5 #程序入口
  6 #保证当前文件运行才创建对象
  7 if __name__ == "__main__":
  8     student_manager = manager()
  9     student_manager.run()
 10 
#运行截图
功能菜单...
1.添加学员
2.删除学员
3.修改学员信息
4.查询学员信息
5.显示所有学员
6.保存学员信息.                                                
7.退出系统                                                     
请输入功能序号:   

代码还有许多可以优化的地方,比如在添加学员时进行名字是否重复的扫描等等。大家可以尝试着去完善代码。

posted @ 2020-09-20 14:04  zou-ting-rong  阅读(6047)  评论(0编辑  收藏  举报