问题描述

设计并实现一个计算和显示地铁支付的应用程序。具体规则如下:

1-4站:2元/人;

5-8站:3元/人;

9-11站:5元/人;

11站以上:8元/人;

输入输出

输入:人数和车站号码

输出:旅行的总费用

例子

假设有3人从1站到10站,应该支付:5元/人*3人=15元

开发和算法

  1. 首先,我们需要接收输入,即人数和车站号码。
  2. 然后,我们需要计算旅行的总费用。根据站数,我们可以按照上述规则计算费用。
  3. 最后,我们将费用输出给用户。

下面的代码实现了上述算法:

def calculate_fare(num_people, station_num):
    if station_num <= 4:
        fare = 2
    elif station_num <= 8:
        fare = 3
    elif station_num <= 11:
        fare = 5
    else:
        fare = 8
    total_fare = num_people * fare
    return total_fare

测试解决方案

我们需要对算法进行测试,以确保它可以正确地计算费用。下面是一些测试用例:

# 测试用例1
assert calculate_fare(1, 1) == 2

# 测试用例2
assert calculate_fare(2, 6) == 6

# 测试用例3
assert calculate_fare(3, 10) == 15

# 测试用例4
assert calculate_fare(4, 12) == 32

输入验证

为了防止用户输入错误的值,我们需要对输入进行验证。下面是一个例子:

while True:
    try:
        num_people = int(input("请输入人数:"))
        if num_people <= 0:
            raise ValueError("人数必须大于0")
        break
    except ValueError as e:
        print(e)

while True:
    try:
        station_num = int(input("请输入车站号码:"))
        if station_num <= 0:
            raise ValueError("车站号码必须大于0")
        break
    except ValueError as e:
        print(e)

完整代码

下面是完整的代码实现:

def calculate_fare(num_people, station_num):
    if station_num <= 4:
        fare = 2
    elif station_num <= 8:
        fare = 3
    elif station_num <= 11:
        fare = 5
    else:
        fare = 8
    total_fare = num_people * fare
    return total_fare


while True:
    try:
        num_people = int(input("请输入人数:"))
        if num_people <= 0:
            raise ValueError("人数必须大于0")
        break
    except ValueError as e:
        print(e)

while True:
    try:
        station_num = int(input("请输入车站号码:"))
        if station_num <= 0:
            raise ValueError("车站号码必须大于0")
        break
    except ValueError as e:
        print(e)

total_fare = calculate_fare(num_people, station_num)
print("旅行的总费用为:{}元".format(total_fare))

测试代码

下面是完整的测试代码实现:

def test_calculate_fare():
    # 测试用例1
    assert calculate_fare(1, 1) == 2

    # 测试用例2
    assert calculate_fare(2, 6) == 6

    # 测试用例3
    assert calculate_fare(3, 10) == 15

    # 测试用例4
    assert calculate_fare(4, 12) == 32


test_calculate_fare()
``
设计并实现一个计算和显示地铁支付的应用程序。具体规则如下1-4站2元人;5-8站3元人;9-11站5元人;11站以上8元人;要求1该应用程序应该允许用户输入人数和车站号码然后计算和显示旅行的总费用。2您的设计应该演示ISYS2001中使用的开发方法的前五个步骤。清楚地陈述问题;描述输入和输出;手工操作一个简单的例子;开发和算法并转换为Python;用各种数据测试解决方案。3创建一个名为studen

原文地址: https://www.cveoy.top/t/topic/hsql 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录