class Student:
# 初始化函数,创建学生对象时被调用
def __init__(self, No, Name, Gender, Age):
self.No = No
self.Name = Name
self.Gender = Gender
self.Age = Age
# 显示学生信息
def show(self):
print("%-16s %-16s %-8s %-4d" % (self.No, self.Name, self.Gender, self.Age))
class StudentList:
def __init__(self):
self.students = []
# 显示所有学生信息
def show(self):
print("%-16s %-16s %-8s %-4s" % ("No", "Name", "Gender", "Age"))
for s in self.students:
s.show()
# 插入一个新学生
def __insert(self, s):
i = 0
while i < len(self.students) and s.No > self.students[i].No:
i = i + 1
if i < len(self.students) and s.No == self.students[i].No:
print(s.No + " 已经存在")
return False
self.students.insert(i, s)
print("增加成功")
return True
# 更新一个学生信息
def __update(self, s):
flag = False
for i in range(len(self.students)):
if s.No == self.students[i].No:
self.students[i].Name = s.Name
self.students[i].Gender = s.Gender
self.students[i].Age = s.Age
print("修改成功")
flag = True
break
if not flag:
print("没有这个学生")
return flag
# 删除一个学生
def __delete(self, No):
flag = False
for i in range(len(self.students)):
if self.students[i].No == No:
del self.students[i]
print("删除成功")
flag = True
break
if not flag:
print("没有这个学生")
return flag
# 对外公开的删除学生方法
def delete(self):
No = input("No=")
if No != "":
self.__delete(No)
# 对外公开的插入学生方法
def insert(self):
No = input("No=")
Name = input("Name=")
while True:
Gender = input("Gender=")
if Gender == "男" or Gender == "女":
break
else:
print("Gender is not valid")
Age = input("Age=")
if Age == "":
Age = 0
else:
Age = int(Age)
if No != "" and Name != "":
self.__insert(Student(No, Name, Gender, Age))
else:
print("学号、姓名不能为空")
# 对外公开的更新学生信息方法
def update(self):
No = input("No=")
Name = input("Name=")
while True:
Gender = input("Gender=")
if Gender == "男" or Gender == "女":
break
else:
print("Gender is not valid")
Age = input("Age=")
if Age == "":
Age = 0
else:
Age = int(Age)
if No != "" and Name != "":
self.__update(Student(No, Name, Gender, Age))
else:
print("学号、姓名不能为空")
# 处理用户输入的命令
def process(self):
while True:
s = input(">")
if s == "show":
self.show()
elif s == "insert":
self.insert()
elif s == "update":
self.update()
elif s == "delete":
self.delete()
elif s == "exit":
break
else:
print("show: show students")
print("insert: insert a new student")
print("update: insert a new student")
print("delete: delete a student")
print("exit: exit")
st = StudentList()
st.process()
Python Student学生信息表
最新推荐文章于 2024-08-03 20:42:19 发布