以面向对象的思想做学生信息管理程序

需求:对学生信息(姓名、年龄、分数)进行添加、显示、删除、修改和根据分数排序五个操作。

主要是分成三个类来做:数据模型、逻辑控制、界面视图。

class Student:

    #数据模型

    def __init__(self,name='',age=0,score=0,id=0):

        self.id=id

        self.name=name

        self.age=age

        self.score=score

class Work:

    #逻辑控制

    __init_id=1000

    def __init__(self):

        self.__stu_list=[]

    @property

    def stu_list(self):

        return self.__stu_list

    def add_stu(self,stu_info):

        stu_info.id=self.__get_id()

        self.stu_list.append(stu_info)

    def __get_id(self):

        Work.__init_id+=1

        return Work.__init_id

    def remove_stu(self,id_value):

        #删除学生

        for i in self.__stu_list:

            if i.id==id_value:

                self.__stu_list.remove(i)

                return True#删除成功

        return False#删除失败

    def update_stu(self,stu_info):

        #根据编号修改信息

        for i in self.stu_list:

            if i.id==stu_info.id:

                i.name=stu_info.name

                i.age=stu_info.age

                i.score=stu_info.score

                return True

        return False

    def sort_stu(self):

        #按照分数降序排序

        for i in range(len(self.stu_list)-1):

            for j in range(i+1,len(self.stu_list)):

                if self.stu_list[i].score<self.stu_list[j].score:

                    self.stu_list[i],self.stu_list[j]\

                    =self.stu_list[j],self.stu_list[i]

class View:

    #界面视图

    def __init__(self):

        self.manager=Work()

    def __display_menu(self):

        print('(1)添加')

        print('(2)显示')

        print('(3)删除')

        print('(4)修改')

        print('(5)排序')

    def __select_menu(self):

        a=int(input('请选择:'))

        if a==1:

            self.__input_stu()

        elif a==2:

            self.__output_stu()

        elif a==3:

            self.__delete_stu()

        elif a==4:

            self.__modify_stu()

        elif a==5:

            self.sort_student()

    def main(self):

        while True:

            self.__display_menu()

            self.__select_menu()

    def __input_stu(self):

        name=input('请输入姓名')

        age=int(input('请输入年龄'))

        score=int(input('请输入分数'))

        stu=Student(name,age,score)

        self.manager.add_stu(stu)

    def __output_stu(self):

        for i in self.manager.stu_list:

            print(i.id,i.name,i.age,i.score)

    def __delete_stu(self):

        b=int(input('请输入编号'))

        self.manager.remove_stu(b)

    def __modify_stu(self):

        stu=Student()

        stu.id=int(input('请输入编号'))

        stu.name=input('请输入新姓名')

        stu.age=int(input('请输入新年龄'))

        stu.score=int(input('请输入新分数'))

        self.manager.update_stu(stu)

    def sort_student(self):

        self.manager.sort_stu()

v=View()

v.main()

  • 11
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值