软件工程概论作业—航空行李托运费计算
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