用JAVA程序实现航空里程累计

南航航空公司里程累计计算表

服务等级

订座舱位(代号)

舱位累积比例

头等舱

F,A

150%

公务舱

C,D

130%

经济舱

Y,T,K

100%

其他舱位

M,G

0

 

 

package choice.sample;

 

import java.io.IOException;

import java.util.Scanner;

 

public class LetMeFly {

 

    /**

     * @param args

     * @throws IOException

     */

    public static void main(String[] args) throws IOException {

       // TODO Auto-generated method stub

       int mznum;

       String seats;

       char seat,choice;

       float newflight1;

       double newflight2,flight=0.0;

       System.out.println("请输入你的明珠卡号:");

       Scanner input1=new Scanner(System.in);

       mznum=input1.nextInt();

       do{

           System.out.println("请输入你的订座舱位:");

           Scanner input2=new Scanner(System.in);

           seats=input2.next();

           seat=seats.charAt(0);

           System.out.println("请输入你的本次飞行里程:");

           Scanner input3=new Scanner(System.in);

           newflight1=input3.nextFloat();

           switch(seat){

           case 'A':

           case 'F':

              newflight2=newflight1*1.5;

              flight=flight+newflight2;

              break;

           case 'C':

           case 'D':

              newflight2=newflight1*1.3;

              flight+=newflight2;

              break;

           case 'Y':

           case 'T':

           case 'K':

              newflight2=newflight1*1;

              flight+=newflight2;

              break;

           case 'M':

           case 'G':

              newflight2=newflight1*0.4;

              flight+=newflight2;

              break;

           default:

              newflight2=0;

              flight+=newflight2;

           }

           System.out.println("还需要继续累积里程吗?请输入Y/N:");

           choice=(char)System.in.read(); 

       }while(choice=='Y');

       System.out.println("明珠卡号为:"+mznum+"的用户,你好!");

       System.out.println("你的本次飞行累积航空里程为:"+flight);

    }

 

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
节约里程法是一种启发式算法,用于解决TSP问题。以下是用Python实现节约里程法的简单代码示例: ```python import math def calc_distance(points, i, j): # 计算两个点之间的欧氏距离 dx = points[i][0] - points[j][0] dy = points[i][1] - points[j][1] return math.sqrt(dx * dx + dy * dy) def saving_algorithm(points): # 初始化边权 n = len(points) edge_weight = [[0] * n for i in range(n)] for i in range(n): for j in range(n): if i == j: edge_weight[i][j] = float('inf') else: # 计算两个点之间的距离 edge_weight[i][j] = calc_distance(points, i, j) # 计算节约值,存储在组中 saving = [[0] * n for i in range(n)] for i in range(n - 1): for j in range(i + 1, n): for k in range(n): if k != i and k != j: saving[i][j] += edge_weight[i][k] + edge_weight[k][j] - edge_weight[i][j] # 对节约值进行排序 savings = [] for i in range(n - 1): for j in range(i + 1, n): savings.append((i, j, saving[i][j])) savings.sort(key=lambda x: -x[2]) # 合并路径 route = list(range(n)) for i, j, s in savings: if route[i] != route[j]: route_j = route[j] for k in range(n): if route[k] == route_j: route[k] = route[i] # 返回路径和长度 res_route = [points[route[i]] for i in range(n)] res_length = sum(calc_distance(res_route, i, i + 1) for i in range(n - 1)) + calc_distance(res_route, n - 1, 0) return res_route, res_length ``` 这个函接受一个由点坐标构成的列表,返回一个最优路径和长度。要使用这个函,请将点列表传递给它,例如: ```python points = [(0, 0), (1, 2), (3, 4), (5, 6)] route, length = saving_algorithm(points) print(route) print(length) ``` 这将输出最优路径和长度。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值