前言
这次的题目几乎就是弱化版的实例2,代码可参考实例二,此博客也仅在实例二上微做删改。这次直接将4,5的需求一起实现一、题干
4、设计一个用于学生管理的类Student(学生)。考虑到通用性,这里只抽象出所有学生都具有的数据成员:学号、姓名、性别、年龄、班级等。要求给每个数据成员声明对应的读写属性,定义下列成员方法:学生信息的录入、显示以及修改,另外根据需要适当添加特殊方法(如构造方法)。实现并测试这个类。
5、在第4题的基础上定义并实现一个学生数组类StudentArray,支持一批学生信息的处理,能实现以下菜单功能:
(1)学生信息录入
(2)学生信息显示(显示所有学生信息)
(3)学生信息删除(按学号)
二、使用步骤
1.创建类,并使用构造方法
class Student:
def __init__(self):
self.name=''
self.sex=''
self.age=''
self.classNum=''
self.numStu=''
2.建立Get方法实现数据输入
def Get(self):
self.name=input('请输入姓名')
self.sex=input('请输入性别')
self.age=input('请输入年龄')
self.classNum=input('请输入班号')
self.numStu=input('请输入学号')
3.建立类储存并处理数据
def __init__(self):
self.dataBaseName=[]
self.dataBaseSex=[]
self.dataBaseAge=[]
self.dataBaseClass=[]
self.dataBaseSNO=[]
def InputDataAll(self):
user=Student()
user.Get()
save=user.Output()
name=save[0]
sex=save[1]
age=save[2]
class1=save[3]
sno=save[4]
self.dataBaseClass.append(class1)
self.dataBaseSNO.append(sno)
self.dataBaseName.append(name)
self.dataBaseSex.append(sex)
self.dataBaseAge.append(age)
def DeleteInfo(self):
sno=eval(input('请输入想删除的学号'))
search=self.dataBaseSNO.index(str(sno))
del self.dataBaseName[search]
del self.dataBaseSex[search]
del self.dataBaseAge[search]
del self.dataBaseClass[search]
del self.dataBaseSNO[search]
4.建立菜单
def main3():
user=StudentArray()
for i in range(0,10000):
userinput=eval(input('1.输入信息,2.输出信息,3.删除数据,4.结束'))
if userinput == 1:
user.InputDataAll()
elif userinput == 2:
print(user.GetStu())
elif userinput == 3:
user.DeleteInfo()
elif userinput == 4:
break
else:
continue
#main3()
三、完全代码
class Student:
def __init__(self):
self.name=''
self.sex=''
self.age=''
self.classNum='' #定义
self.numStu=''
def Get(self):
self.name=input('请输入姓名')
self.sex=input('请输入性别')
self.age=input('请输入年龄')
self.classNum=input('请输入班号')
self.numStu=input('请输入学号')
def Output(self):
return self.name,self.sex,self.age,self.classNum,self.numStu
class StudentArray():
def __init__(self):
self.dataBaseName=[]
self.dataBaseSex=[]
self.dataBaseAge=[]
self.dataBaseClass=[]
self.dataBaseSNO=[]
def InputDataAll(self):
user=Student()
user.Get()
save=user.Output()
name=save[0]
sex=save[1]
age=save[2]
class1=save[3]
sno=save[4] #return出来的数据是元组 需要进行处理
self.dataBaseClass.append(class1)
self.dataBaseSNO.append(sno)
self.dataBaseName.append(name)
self.dataBaseSex.append(sex)
self.dataBaseAge.append(age) #将数据储存至列表
def DeleteInfo(self):
sno=eval(input('请输入想删除的学号'))
search=self.dataBaseSNO.index(str(sno)) #输出下标 一一对应删除
del self.dataBaseName[search]
del self.dataBaseSex[search]
del self.dataBaseAge[search]
del self.dataBaseClass[search]
del self.dataBaseSNO[search]
def GetStu(self):
return self.dataBaseName,self.dataBaseSex,self.dataBaseAge,self.dataBaseClass,self.dataBaseSNO
def main3():
user=StudentArray()
for i in range(0,10000):
userinput=eval(input('1.输入信息,2.输出信息,3.删除数据,4.结束'))
if userinput == 1:
user.InputDataAll()
elif userinput == 2:
print(user.GetStu())
elif userinput == 3:
user.DeleteInfo()
elif userinput == 4:
break
else:
continue
#main3()