要求:输出付钱后各个面额找零张数:
票价自拟
功能要求:用C程序去模拟一个地铁售票系统
分析:
1)订售票的规则:
1~3站 2元
4---8站 5元
8站及以上 7元
2) 输入站数和购票张数
3)根据站数及购票张数,计算出应付金额
4)让用户付钱操作 (付钱>=应付金额)
5)如果付钱金额大于应付金额,进行找零操作
73=====50元面额 1张,20元一张 1元面额 3张
代码:
#include
int main()
{
unsigned int station = 0;//乘坐的站数
unsigned int tick = 0;//购入票数
unsigned pay_money=0;//支付金额
unsigned total=0;//应付金额
unsigned change = 0;//找零金额
unsigned money_50 = 0,money_20 = 0,money_10 = 0,money_5 = 0,money_1 = 0;//各面额找零张数
//输入战术以及购票数
printf("请输入乘车站数:");
scanf("%d",&station);
printf("n请输入购票张数:");
scanf("%d",&tick);
//定制售票规则
int tick_price = 0;//单张票价
if(station>0&&station<=3)
{
tick_price = 2;
}
else if(station>3&&station<=8)
{
tick_price = 5;
}
else if(station>8&&station<=40)
{
tick_price = 7;
}
else
{
printf("输入的站数有误!");
return 0;
}
//根据售票张数及站数计算应付金额
total = tick * tick_price;
//提示用户缴费
printf("缴费:%d元",total);
scanf("%d",&pay_money);
//判断支付金额,应付金额
if(pay_money
printf("支付失败!");
return 0;
}
else if(pay_money==total)
{
printf("支付成功,正在出票!");
return 0;
}
else
{
change = pay_money - total;
money_50 = change/50;
change = change%50;
money_20 = change/20;
change = change%20;
money_10 = change/10;
change = change%10;
money_5 = change/5;
change = change%5;
money_1 = change/1;
//打印面额张数
if(money_50 != 0)
{
printf("50面额的张数%d:",money_50);
}
if(money_20 != 0)
{
printf("20面额的张数%d:",money_20);
}
if(money_10 != 0)
{
printf("10面额的张数%d:",money_10);
}
if(money_5 != 0)
{
printf("5面额的张数%d:",money_5);
}
if(money_1 != 0)
{
printf("1面额的张数%d:",money_1);
}
printf("售票完成,即将出票!");
}
return 0;
}



