作者在 2020-11-23 19:54:51 发布以下内容
编写程序,计算使用某快递公司运输货物的运费(用if语句)。
要求:
1)显示目的城市列表,通过输入需要选择城市。
2)输入货物重量
3)根据运费价格表来计算运费,其中首重费用为1kg以内的费用,超过1kg的部分每公斤使用续重费用计算。
4)1kg内的总运费=首重费用
大于1kg的总运费=首重费用+(重量-1)*续重
城市 费用
广东 首重8元,续重2元
上海 首重9元,续重7元
北京 首重12元,续重10元
东三省 首重15元,续重13元
#include <stdio.h>
#include <string.h>
void menu();
int yf(int,int,int);
int main()
{
char ch=0;
int gd=0,sh=0,bj=0,dss=0;
int zl=0,gdzl=0,shzl=0,bjzl=0,dsszl=0;
int gdyf=0,shyf=0,bjyf=0,dssyf=0,zyf=0;
do{
menu();
printf("请选择城市:");
while(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5')
{
if(ch=='\n')printf("请选择城市:");
ch=getchar();
}
if (ch=='5')break;
printf("请输入重量:");
scanf("%d",&zl);
if(ch=='1'){gdzl=gdzl+zl;gdyf=yf(8,2,gdzl);gd=1;}
else if(ch=='2'){shzl=shzl+zl;shyf=yf(9,7,shzl);sh=1;}
else if(ch=='3'){bjzl=bjzl+zl;bjyf=yf(12,10,bjzl);bj=1;}
else if(ch=='4'){dsszl=dsszl+zl;dssyf=yf(15,13,dsszl);dss=1;}
zyf=gdyf+shyf+bjyf+dssyf;
if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
printf("\n\n合计总运费为:%d元。" ,zyf);
while((ch=getchar())!='\n');
printf("\n\n还寄么?(N--不寄了,回车--继续寄)");
ch=getchar();
if(ch=='n'||ch=='N')break;
//while((ch=getchar())!='\n');
}while(1);
if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
printf("\n\n合计总运费为:%d元。\n\n" ,zyf);
printf("\n\n*****感谢使用本系统*****\n\n");
return 0;
}
int yf(int a,int b,int c)
{
return a+(c-1)*b;
}
void menu()
{
printf("\n ==========京上广快递公司竭诚为您服务==========\n");
for (int i=0;i<50;i++)
{
printf("*");
}
printf("\n");
printf("请选择目的地:\n");
printf(" 城市\t\t费用\n");
printf("1)广东\t\t首重 8元,续重 2元\n");
printf("2)上海\t\t首重 9元,续重 7元\n");
printf("3)北京\t\t首重12元,续重10元\n");
printf("4)东三省\t首重15元,续重13元\n");
printf("5)退出\n");
for (int i=0;i<50;i++)
{
printf("*");
}
printf("\n");
}
要求:
1)显示目的城市列表,通过输入需要选择城市。
2)输入货物重量
3)根据运费价格表来计算运费,其中首重费用为1kg以内的费用,超过1kg的部分每公斤使用续重费用计算。
4)1kg内的总运费=首重费用
大于1kg的总运费=首重费用+(重量-1)*续重
城市 费用
广东 首重8元,续重2元
上海 首重9元,续重7元
北京 首重12元,续重10元
东三省 首重15元,续重13元
#include <stdio.h>
#include <string.h>
void menu();
int yf(int,int,int);
int main()
{
char ch=0;
int gd=0,sh=0,bj=0,dss=0;
int zl=0,gdzl=0,shzl=0,bjzl=0,dsszl=0;
int gdyf=0,shyf=0,bjyf=0,dssyf=0,zyf=0;
do{
menu();
printf("请选择城市:");
while(ch!='1'&&ch!='2'&&ch!='3'&&ch!='4'&&ch!='5')
{
if(ch=='\n')printf("请选择城市:");
ch=getchar();
}
if (ch=='5')break;
printf("请输入重量:");
scanf("%d",&zl);
if(ch=='1'){gdzl=gdzl+zl;gdyf=yf(8,2,gdzl);gd=1;}
else if(ch=='2'){shzl=shzl+zl;shyf=yf(9,7,shzl);sh=1;}
else if(ch=='3'){bjzl=bjzl+zl;bjyf=yf(12,10,bjzl);bj=1;}
else if(ch=='4'){dsszl=dsszl+zl;dssyf=yf(15,13,dsszl);dss=1;}
zyf=gdyf+shyf+bjyf+dssyf;
if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
printf("\n\n合计总运费为:%d元。" ,zyf);
while((ch=getchar())!='\n');
printf("\n\n还寄么?(N--不寄了,回车--继续寄)");
ch=getchar();
if(ch=='n'||ch=='N')break;
//while((ch=getchar())!='\n');
}while(1);
if(gd==1)printf("\n您寄往广东的快递费用为:%d元。",gdyf);
if(sh==1)printf("\n您寄往上海的快递费用为:%d元。",shyf);
if(bj==1)printf("\n您寄往北京的快递费用为:%d元。",bjyf);
if(dss==1)printf("\n您寄往东三省的快递费用为:%d元。",dssyf);
printf("\n\n合计总运费为:%d元。\n\n" ,zyf);
printf("\n\n*****感谢使用本系统*****\n\n");
return 0;
}
int yf(int a,int b,int c)
{
return a+(c-1)*b;
}
void menu()
{
printf("\n ==========京上广快递公司竭诚为您服务==========\n");
for (int i=0;i<50;i++)
{
printf("*");
}
printf("\n");
printf("请选择目的地:\n");
printf(" 城市\t\t费用\n");
printf("1)广东\t\t首重 8元,续重 2元\n");
printf("2)上海\t\t首重 9元,续重 7元\n");
printf("3)北京\t\t首重12元,续重10元\n");
printf("4)东三省\t首重15元,续重13元\n");
printf("5)退出\n");
for (int i=0;i<50;i++)
{
printf("*");
}
printf("\n");
}
这篇代码对输错的处理还没有处理好。