根据下面给出的类图,编写一个Python程序来生成在线巴士订票的票证

时间:2019-07-15 18:36:44

标签: python-3.x

  • 将静态变量计数器初始化为0
  • validate_source_destination():验证源和目标。来源必须始终是德里,目的地必须是孟买,钦奈,浦那或加尔各答。如果两者均有效,则返回true。否则返回假
  • generate_ticket():验证源和目标。如果有效,请生成票证ID并将其分配给属性ticket_id。票证ID的生成应带有来源的首字母,然后是目的地的首字母,以及从01开始的自动生成的值(例如:DM01,DP02,..,DK10,DC11)。否则,将ticket_id设置为“无”。
  • 注意:执行不区分大小写的字符串比较

用于测试:

  • 创建Ticket类的对象
  • 在故障单对象上调用generate_ticket()方法
  • 显示机票ID,乘客姓名,来源,目的地
  • 如果有错误/无效数据,请显示适当的错误消息
class Ticket:
    counter=0 
    def __init__(self,passenger_name,source,destination):
        self.__passenger_name=passenger_name
        self.__source=source
        self.__destination=destination
        self.Counter=Ticket.counter
        Ticket.counter+=1
    def validate_source_destination(self):
        if (self.__source=="Delhi" and (self.__destination=="Pune" or self.__destination=="Mumbai" or self.__destination=="Chennai" or self.__destination=="Kolkata")):
            return True
        else:
            return False

    def generate_ticket(self ):
        if True:
            __ticket_id=self.__source[0]+self.__destination[0]+"0"+str(self.Counter)
            print( "Ticket id will be:",__ticket_id)
        else:
            return False
    def get_ticket_id(self):
        return self.ticket_id
    def get_passenger_name(self):
        return self.__passenger_name
    def get_source(self):
        if self.__source=="Delhi":
            return self.__source
        else:
            print("you have written invalid soure option")
            return None
    def get_destination(self):
        if self.__destination=="Pune":
            return self.__destination
        elif self.__destination=="Mumbai":
            return self.__destination
        elif self.__destination=="Chennai":
            return self.__destination
        elif self.__destination=="Kolkata":
            return self.__destination

        else:
            return None

generate_ticket()方法给出错误条件时,我不想打印ticket_id,但是在我的代码中,在false语句之后,票证ID会打印输出。

2 个答案:

答案 0 :(得分:0)

类机票:     计数器= 0     def init (自身,乘客名称,来源,目的地):         自我.__ passenger_name =乘客名称         self .__ source = source.lower()         self .__ destination = destination.lower()         self .__ ticket_id =无         Ticket.counter + = 1

def get_passenger_name(self):
    return self.__passenger_name
def get_source(self):
    return self.__source
def get_destination(self):
    return self.__destination
def get_ticket_id(self):
    return self.__ticket_id

def validate_source_destination(self):
    if self.__source== "delhi" and (self.__destination=="mumbai" or self.__destination=="chennai" or self.__destination=="pune" or self.__destination=="kolkata"):
        return True
    else:
        return False

def generate_ticket(self):
    if self.validate_source_destination() == True:
        srcchar=self.__source[0].upper()
        destchar=self.__destination[0].upper()
        if(Ticket.counter<10):
            self.__ticket_id=srcchar+destchar+"0"+str(Ticket.counter)
        else:
            self.__ticket_id=srcchar+destchar+str(Ticket.counter)
    else:
        self.__ticket_id=None
    return self.__ticket_id

答案 1 :(得分:-1)

尝试一下:

class Ticket:
    def __init__(self, passenger_name, source, destination):
        self.counter = 0
        self.__passenger_name = passenger_name
        self.__source = source
        self.__destination = destination

        self.Counter = self.counter
        self.counter += 1

    def validate_source_destination(self):
        all_destinations = ["Pune", "Mumbai", "Chennai", "Kolkata"]
        if self.__source == "Delhi" and self.__destination in all_destinations:
            return True
        else:
            return False

    def generate_ticket(self):
        if self.validate_source_destination() == True:
            self.ticket_id=self.__source[0]+self.__destination[0]+"0"+str(self.Counter)
            print("Ticket id will be: " + self.ticket_id)
        else:
            return False

    def get_ticket_id(self):
        return self.ticket_id

    def get_passenger_name(self):
        return self.__passenger_name

    def get_source(self):
        if self.__source == "Delhi":
            return self.__source
        else:
            print("You have written invalid soure option")
            return None

    def get_destination(self):
        all_destinations = ["Pune", "Mumbai", "Chennai", "Kolkata"]

        if self.__destination in all_destinations:
            return self.__destination
        else:
            return None