DVD管理系統

  • #usr/bin/python
    #-*-coding:utf-8-*-
    '''
    ----DVD管理系統----:
    1.查詢全部DVD
    2.增長DVD
    3.借出DVD
    4.歸還DVD
    5.退出
    '''
    class dvd:
    
        def __init__(self,name,price,state):
            self.name=name;
            self.price=price
            self.state=state
    
        def __str__(self):
            stat='已借出';
            if self.state==1:
                stat='未借出'
            return  '名稱:《%s》 單價:%d 狀態:%s'%(self.name,self.price,stat)
    
    class DVDManager:
        #存儲 多個dvds 每個元素 都是一個DVD
        dvds=[]
        def init(self):
            self.dvds.append(dvd('光輝歲月',10,0));
            self.dvds.append(dvd('紳士', 5, 1));
            self.dvds.append(dvd('海闊天空', 11, 1));
    
        def Menu(self):
            self.init()
            while(True):
                print('1.查詢全部DVD')
                print('2.增長DVD')
                print('3.借出DVD')
                print('4.歸還DVD')
                print('5.退出')
                choose=int(input('請選擇:'));
                if choose==1:
                    self.showAllDVD();
                elif choose==2:
                    self.insertDVD();
                elif choose==3:
                    self.jiechuDVD();
                elif choose==4:
                    self.rollBackDVD();
                elif choose==5:
                    print('5.謝謝使用')
                    break;
    
        def showAllDVD(self):
            for d in self.dvds:
                print(str(d))
        def jiechuDVD(self):
            name = input('請輸入DVD的名稱:')
            ret = self.checkDVD(name);
            if ret != None:
                if ret.state==0:
                    print('dvd 已經借出去了')
                    #return;
                else:
                    days=int(input('請輸入借出天數:'))
                    ret.state = 0;
                    print('借出 %d 天,應還利息%d '%(days,ret.price*days))
    
            else:
                print('DVD 不存在!')
    
        def rollBackDVD(self):
            name = input('請輸入歸還DVD的名稱:')
            ret = self.checkDVD(name);
            if ret == None:
                print('DVD 不存在!')
            else:
                if ret.state == 1:
                    print('dvd 未借出!')
                else:
                    days= int(input('請輸入借出去了多少天?'))
                    y_money=ret.price * days
                    print('借出 %d 天,應還利息%d ' % (days, y_money))
                    money= int(input());
                    if money<y_money:
                        print('不夠!')
                        return;
                    elif money>y_money:
                        print('找零:%d'%(money-y_money));
    
                    ret.state=1;
                    print('歸還成功!')
    
        def insertDVD(self):
            name = input('請輸入DVD的名稱:')
            ret= self.checkDVD(name);
            if ret != None:
                print('DVD 已經存在!')
            else:
                price=int(input('請輸入價格:'))
                new_dvd=dvd(name,price,1);
                self.dvds.append(new_dvd)
                print('存放成功!')
        def checkDVD(self,name):
             for d in self.dvds:
                 if d.name==name:
                     return d;#返回當前對象-->內存地址
             else:
                 return  None;
    
    manager= DVDManager();
    manager.Menu();
相關文章
相關標籤/搜索