软件工程概论作业---航空行李托运费计算

软件工程概论作业—航空行李托运费计算

2021年3月24日

姓名:李鼎
学号:201901041110

问题描述:
在这里插入图片描述
input:
输入一个正整数n;
接下来的n行输入n个乘客的信息;
(按照 国籍–健康状态–是否头等舱–姓名–行李重量 的顺序录入信息)

output:
输出每个乘客的信息以及费用;

input_case:

5
1 1 1 Jack 32
1 0 1 Tom 25
0 0 1 zhangsan 50
0 1 0 lisi 66
0 1 1 wangwu 58

output_case:

nationality:1 health:1 is_VIP:1 name:Jack pay:8
nationality:1 health:0 is_VIP:1 name:Tom pay:0
nationality:0 health:0 is_VIP:1 name:zhangsan pay:80
nationality:0 health:1 is_VIP:0 name:lisi pay:108
nationality:0 health:1 is_VIP:1 name:wangwu pay:56

code:

#include<iostream>
using namespace std;

typedef struct passenger{
    
    //结构体存放每个用户的信息
	string name;      //姓名
	int nationality;  //国籍    0为中国人,1为外国人 
	int health;       //健康状态     0为健康  , 1为残疾 
	int is_VIP;       //是否是头等舱 0为不是,   1为是 
	double pay;       //付款金额 
	double lugWeight; //行李重量 
}passenger;

double getPay(passenger P){
    
    //计算支付金额函数
	if(P.lugWeight<=30){
    
    
		return 0;
	}else if(P.health==0&&P.nationality==0&&P.is_VIP==0){
    
    //非残疾,国内人,非头等舱 
		return 6*(P.lugWeight-30);
	}else if(P.health==1&&P.nationality==0&&P.is_VIP==0){
    
    //残疾,   国内人,非头等舱 
		return 3*(P.lugWeight-30);
	}else if(P.health==0&&P.nationality==1&&P.is_VIP==0){
    
    //非残疾, 外国人,非头等舱 
		return 12*(P.lugWeight-30);
	}else if(P.health==1&&P.nationality==1&&P.is_VIP==0){
    
    //残疾,   外国人,非头等舱 
		return 6*(P.lugWeight-30);
	}else if(P.health==0&&P.nationality==0&&P.is_VIP==1){
    
    //非残疾, 国内人,头等舱 
		return 4*(P.lugWeight-30);
	}else if(P.health==1&&P.nationality==0&&P.is_VIP==1){
    
    //残疾,   国内人,头等舱 
		return 2*(P.lugWeight-30);
	}else if(P.health==0&&P.nationality==1&&P.is_VIP==1){
    
    //非残疾, 外国人, 头等舱 
		return 8*(P.lugWeight-30);
	}else if(P.health==1&&P.nationality==1&&P.is_VIP==1){
    
    // 残疾 ,  外国人,头等舱 
		return 4*(P.lugWeight-30);
	}
}

int main(){
    
    
	printf("请输入乘客数量:\n");
	int n;
	cin>>n;
	
	passenger a[n];
	printf("请输入%d个乘客的信息:(按照  国籍--健康状态--是否头等舱--姓名--行李重量  的顺序录入信息)\n",n);
	//按照  国籍---健康状态---是否头等舱---姓名---行李重量   顺序录入信息 
	for(int i=0;i<n;i++){
    
    
		cin>>a[i].nationality>>a[i].health>>a[i].is_VIP>>a[i].name>>a[i].lugWeight;
	}
	
	for(int i=0;i<n;i++){
    
    
		a[i].pay=getPay(a[i]);//计算每一个用户的付款金额 
	}
	
	printf("乘客需要支付的信息如下:\n");
	
	for(int i=0;i<n;i++){
    
    
		cout<<"nationality:"<<a[i].nationality
		<<" health:"<<a[i].health<<" is_VIP:"<<a[i].is_VIP
		<<" name:"<<a[i].name<<" pay:"<<a[i].pay<<endl;
	}
	
	return 0;
} 

Online judge:
https://www.baidu.com/link?url=EbIwkkfKbbp1kZatQcHwBdXgedwCqpFnT6aOlUkxl9ibLsPtPW7iLrL4UDwSdg5j&wd=&eqid=cde7ba4e00002dd900000003605c8278

猜你喜欢

转载自blog.csdn.net/timelessx_x/article/details/115185016