老师布置了一份作业,用C语言写一份超市收银的系统,先做完这学期可以免考。
于是我连夜给写出来了一份。结果。。。。。。
运行结果如下:
代码如下:
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int d = 1, m = 1, cao = 0;
int a = 0, b = 0, c = 0, pe = 0, wocao;
float e = 0.0, f = 0.0, g = 0.0, h = 0.0;
puts("欢迎您使用 “日了狗” 超市结账系统");
for (wocao = 1; wocao < 100; wocao++)
putchar('*');
putchar('\n');
that:
d = 1;
g = 0;
printf("输入“0”开始结账\n");
do {
e = g;
printf(" 第%d件商品多儿钱?", d++);
scanf("%f", &f);
g = e + f;
puts("按1继续");
scanf("%d", &m);
} while (m != 0);
printf("本次共购买:%d 件商品;\n一共:%.2f 元\n", d - 1, g);
int da = 0, svip = 0, nvip, zk = 8, xsvip;
float dz = 1.0;
puts("是否是本超市的 究极 svip 客户?");
puts("如果是请扣0;不是请扣1");
printf("请输入您的答案");
scanf_s("%d", &da);
if (da < 1)
{
printf("请输入您的8位 svip 会员卡号:");
scanf("%d", &svip);
switch (svip)
{
case 3838438:printf(" svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
case 55555555:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
case 66666666:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
case 88888888:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
case 99999999:printf("svip 客户今日折扣 %d 折\n", zk); dz = 0.8; break;
}
}
if (da >= 1)
{
printf("是否办理会员卡?今日消费可打 %d 折\n", zk);
printf("办理请扣 0 ;不办请扣 1\n"); scanf("%d", &nvip);
switch (nvip)
{
case 1: dz = 1; break;
case 0:printf("创建一个容易记住的账号:");
scanf("%d", &xsvip);
printf("基于本账号为您打%d折\n", zk);
dz = 0.8;
break;
}
}
g = dz * g;
printf("本次共购买:%d 件商品;\n一共:%.2f 元\n", d - 1, g);
float ok = 0.0;
do {
printf("本次收款 元\n");
scanf("%f", &h);
printf("应收:%.2f 元;\n实收:%.2f 元;\n找零:%.2f 元。\n", g, h + ok, ok + h - g);
cao = ok + h - g;
if (h + ok < g)
{
ok = h;
puts("穷逼,钱少了!");
cao = 1;
}
else cao = 3;
} while (cao < 2);
int j = (h - g + ok) / 100;
int k = 0;
if (j >= 1)
{
printf("找您 %d 张 壹佰元\n", j);
}
(int)k = (h - g + ok) - 100 * j;
if (k > 50)
{
puts("1 张 伍十元");
k = k - 50;
}
if (k >= 20)
{
int ko = k / 20;
switch (ko)
{
case 1:puts("1 张 贰拾元"); k -= 20; break;
case 2:puts("2 张 贰拾元"); k -= 40; break;
}
}
if (k >= 10)
{
puts("1 张 拾元");
k = k - 10;
}
if (k >= 5)
{
printf("1 张 伍元\n");
k = k - 5;
}
if (k >= 1)
{
printf("%d 张/枚 壹元\n", k);
}
int l = h - g + ok;
float mn = h - g + ok;
int n = (mn - (float)l) * 100;
if (n >= 10)
{
printf("%d 张壹角\n", n / 10);
}
printf("%d 张 壹分\n", n % 10);
pe++;
printf("结账已完成,第%d位顾客\n", pe);
for (wocao = 1; wocao < 100; wocao++)
putchar('*');
putchar('\n');
goto that;
return 0;
}