1、在學生類中增加一個學生綜合學業成績的屬性,屬性名為GPA。GPA的取值范圍為0.0~5.0,要求在輸入這個屬性時需進行檢查GPA屬性的合法性;
2、修改class StudentList的__update和update兩個函式,當用戶輸入學號時檢查這個學生是否存在,當該生存在時,先顯示該生的資訊,然后才繼續輸入修改該生的資訊;
3、增加保存學生資訊到檔案命令save,和從檔案加載學生資訊的命令load。保存學生資訊的檔案名為StudentInfo.txt;
原代碼如下:
lass 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 vaild")
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()
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41216.html
標籤:其它技術問題
上一篇:求代碼
