根据下面给出的类图,编写一个Python程序来生成在线公共汽车预订的车票

8tntrjer  于 2023-02-26  发布在  Python
关注(0)|答案(2)|浏览(79)
  • 将静态变量计数器初始化为0
  • validate_source_destination():验证源和目标。源必须始终是德里,目标可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回false
  • generate_ticket():验证源和目标。如果有效,则生成票证ID并将其分配给属性ticket_id。票证ID应使用源的第一个字母、目标的第一个字母和从01开始的自动生成值(例如:DM01、DP02、...、DK10、DC11),否则将票证标识设置为无。
  • 注意:执行不区分大小写的字符串比较

用于测试:

  • 创建票证类的对象
  • 调用票证对象上的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()方法给出false条件时,我不想打印ticket_id,但在我的代码中,在false语句之后,票证ID确实打印输出。

6yt4nkrj

6yt4nkrj1#

头等舱机票:计数器=0 definit(自身、乘客姓名、出发地、目的地):本人。__乘客姓名=本人的乘客姓名。__源=源。下层()本人。__目的地=目的地。下层()本人。__车票ID=无车票。计数器+=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
iyr7buue

iyr7buue2#

试试这个

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

相关问题