利用python实现面对对象编程实例3


前言

这次的题目几乎就是弱化版的实例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()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值