Python 3.x 根据下面给出的类图,编写一个Python程序来生成在线公交车预订的车票 将静态变量计数器初始化为0 validate\u source\u destination():验证源和目标。来源必须始终是德里,目的地可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回false generate_ticket():验证源和目标。如果有效,则生成票证id并将其分配给属性ticket\u id。生成票证id时,源的第一个字母后跟目的地的第一个字母,自动生成的值从01开始(例如:DM01、DP02、…、DK10、DC11)。否则,将票证id设置为无 注意:执行不区分大小写的字符串比较
对于测试:Python 3.x 根据下面给出的类图,编写一个Python程序来生成在线公交车预订的车票 将静态变量计数器初始化为0 validate\u source\u destination():验证源和目标。来源必须始终是德里,目的地可以是孟买、钦奈、浦那或加尔各答。如果两者都有效,则返回true。否则返回false generate_ticket():验证源和目标。如果有效,则生成票证id并将其分配给属性ticket\u id。生成票证id时,源的第一个字母后跟目的地的第一个字母,自动生成的值从01开始(例如:DM01、DP02、…、DK10、DC11)。否则,将票证id设置为无 注意:执行不区分大小写的字符串比较,python-3.x,Python 3.x,对于测试: 创建票证类的对象 在ticket对象上调用generate\u ticket()方法 显示车票id、乘客姓名、来源、目的地 如果出现错误/无效数据,则显示相应的错误消息 舱单: 计数器=0 定义初始(自身、乘客姓名、来源、目的地): 自身。\乘客\姓名=乘客\姓名 self.\uu source=源 self.\uu destination=目的地 self.Counter=Ticket.Counter 售票处+=1 def验证源目的地(自身): 如果(self.\uu sour
- 创建票证类的对象
- 在ticket对象上调用
方法generate\u ticket()
- 显示车票id、乘客姓名、来源、目的地
- 如果出现错误/无效数据,则显示相应的错误消息
舱单:
计数器=0
定义初始(自身、乘客姓名、来源、目的地):
自身。\乘客\姓名=乘客\姓名
self.\uu source=源
self.\uu destination=目的地
self.Counter=Ticket.Counter
售票处+=1
def验证源目的地(自身):
如果(self.\uu source==“德里”和(self.\uu destination==“普纳”或self.\uu destination==“孟买”或self.\uu destination==“钦奈”或self.\uu destination==“加尔各答”):
返回真值
其他:
返回错误
def生成_票证(自我):
如果为真:
__票证id=self.\u源[0]+self.\u目的地[0]+“0”+str(self.Counter)
打印(“票证id将为:,\u票证\u id)
其他:
返回错误
def get_ticket_id(自我):
返回self.ticket\u id
def get_乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
如果self.\uu source==“德里”:
返回自我源
其他:
打印(“您已写入无效的资源选项”)
一无所获
def get_目的地(自身):
如果self.\uu destination==“Pune”:
返回自我目的地
elif self.uu destination==“孟买”:
返回自我目的地
elif self.\uu destination==“钦奈”:
返回自我目的地
elif self.\uu目的地==“加尔各答”:
返回自我目的地
其他:
一无所获
当generate\u ticket()
方法将给出false条件时,我不想打印ticket\u id
,但在false语句之后的代码中,ticket id确实会打印输出。尝试以下方法:
舱单:
定义初始(自身、乘客姓名、来源、目的地):
self.counter=0
自身。\乘客\姓名=乘客\姓名
self.\uu source=源
self.\uu destination=目的地
self.Counter=self.Counter
self.counter+=1
def验证源目的地(自身):
所有目的地=[“浦那”、“孟买”、“钦奈”、“加尔各答”]
如果self.\u source==“德里”和self.\u目的地在所有目的地中:
返回真值
其他:
返回错误
def生成_票证(自我):
如果self.validate_source_destination()==True:
self.ticket\u id=self.\u源[0]+self.\u目的地[0]+“0”+str(self.Counter)
打印(“票证id将为:“+self.Ticket\u id”)
其他:
返回错误
def get_ticket_id(自我):
返回self.ticket\u id
def get_乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
如果self.\uu source==“德里”:
返回自我源
其他:
打印(“您已写入无效的资源选项”)
一无所获
def get_目的地(自身):
所有目的地=[“浦那”、“孟买”、“钦奈”、“加尔各答”]
如果在所有目的地中都有self.\u目的地:
返回自我目的地
其他:
一无所获
客票:
计数器=0
definit(自身、乘客姓名、来源、目的地):
自身。\乘客\姓名=乘客\姓名
self.\uuu source=source.lower()
self.\uu destination=destination.lower()
self.\u票证\u 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
def获取乘客姓名(自我):
返回自我。\u乘客\u姓名
def get_源(自身):
返回自我源
def get_目的地(自身):
返回自我目的地
def get_ticket_id(自我):
返回自我。\u车票\u id
def验证源目的地(自身):
如果self.\uu source==“德里”和(self.\uu destination==“孟买”或self.\uu destination==“钦奈”或self.\uu destination==“普纳”或self.\uu destination==“加尔各答”):
返回真值
其他:
返回错误
def生成_票证(自我):
如果self.validate_source_destination()==True:
srcchar=self.\uuu源[0]。上限()
destchar=self.\u目的地[0]。上限()
if(Ticket.counter)但是您编写了if True:
,因此条件始终是….True
…将if True:
更改为if self.validate\u destination():
您更改了计数器的含义
。所有票证都将具有相同的IDXX00
如何使用该类?将声明票证类实例的主函数发送给我为什么?这无关紧要。重点是计数器
是一个静态类变量,因此每个票证
实例created将获得一个唯一的ID。您将计数器
放在\uuuu init\uuuu
中,因此现在所有票据都有self.counter=0
,用于生成票据。。。