classstudentSys(object):'''_init_(self) 被称为类的构造函数或初始化方法,
self 代表类的实例,self 在定义类的方法时是必须有的,虽然在调用时不必传入相应的参数。'''
def_init_(self):#全局变量
self.students = []#列表[{"name":"刘备", "age":20, "sex":"男"},{"name":"关羽", "age":20, "sex":"男"}]
"打印输入提示信息"
defprint_menu(self):#输出50个连续的等于号(50个=)
print("="*50)#\t : 横向制表符
print("="*50 +\"\n\t\t学生管理系统1.00版本" +\"\n\t\t1:添加学生信息" +\"\n\t\t2:删除学生信息" +\"\n\t\t3:修改学生信息" +\"\n\t\t4:查找学生信息" +\"\n\t\t5:显示学生信息" +\"\n\t\t6:退出学生管理系统\n" +\"="*50)#打印一行空白
print("\n")#添加学生信息的函数
defadd_info(self):#修改全局变量
#global students
#字典
student ={}
name= input("请输入要添加学生的姓名:")
age= input("请输入要添加学生的年龄:")
sex= input("请输入要添加学生的性别:")
phone= input("请输入要添加学生的电话:")
QQ= input("请输入要添加学生的QQ:")#往字典里添加输入的数据
student["name"] =name
student["age"] =age
student["sex"] =sex
student["phone"] =phone
student["QQ"] =QQ#把字典添加到列表(末尾)中去
self.students.append(student)
self.save_info()#删除学生信息函数
defdelete_info(self):
name= input("请输入要删除的学生姓名:")for student inself.students:if name == student.get("name"):
self.students.remove(student)
self.save_info()
self.show_info()#修改学生信息函数
defmodify_info(self):
name= input("请输入要修改学生的姓名:")for student inself.students:if name == student.get("name"):
info= input("请输入要修改的信息标题:")if info == "name":
new_name= input("请输入新的姓名:")
student["name"] =new_nameelif info == "age":
new_age= input("请输入新的年龄:")
student["age"] =new_ageelif info == "sex":
new_sex= input("请输入新的性别:")
student["sex"] =new_sexelif info == "phone":
new_phone= input("请输入新的电话:")
student["phone"] =new_phoneelif info == "QQ":
new_QQ= input("请输入新的QQ:")
student["QQ"] =new_QQelse:print("请输入含有的信息标题")
self.save_info()
self.show_info()#查找学生信息函数
deffind_info(self):
name= input("请输入要查找的学生姓名:")
flag= 0 #找到一个就是找到了
for student inself.students:if name == student.get("name"):print(student)print("\t" + student["name"] +\"\t\t" + student["age"] +\"\t\t" + student["sex"] +\"\t\t" + student["phone"] +\"\t\t" + student["QQ"])
flag= 1
#循环结束后判断
if flag ==0:print("无此人信息")#显示学生信息函数
defshow_info(self):print("\t\t\t\t当前学生信息\n" +\"-"*80 + "\n\t姓名\t\t年龄\t\t性别\t\t电话\t\tQQ")for student inself.students:print("\t" + student["name"] +\"\t\t" + student["age"] +\"\t\t" + student["sex"] +\"\t\t" + student["phone"] +\"\t\t" + student["QQ"])print("-"*80,"\n")#保存信息
defsave_info(self):
f= open("students.txt","w")#每次保存都会覆盖,覆盖保存w
f.write(str(self.students))#保存
f.close()#关闭资源
#读取运行时的信息
defload_info(self):
f= open("students.txt","a+")
f.seek(0)
content=f.read()if len(content) >0:
self.students=eval(content)
f.close()#关闭资源
#定义一个入口函数
defmain(self):
self.print_menu()
self.load_info()whileTrue:print("\t\t操作指令\n" +\"~"*50 +\"\n 1:添加|2:删除|3:修改|4:查找|5:显示|6:退出 \n" +\"~"*50)#输入的内容都当做字符串
input_num = input("请按照提示输入相应的指令:")#判断用户输入的内容
if input_num == "1":#print("增加\n")
self.add_info()elif input_num == "2":#print("删除\n")
self.delete_info()elif input_num == "3":#print("修改\n")
self.modify_info()elif input_num == "4":#print("查找\n")
self.find_info()elif input_num == "5":#print("显示\n")
self.show_info()elif input_num == "6":print("退出\n")break
else:print ("请不要瞎玩,这里需要输入对应的数字!\n")#创建实例对象,调用方法
studentSys().main()