试做超市收银程序

     老师布置了一份作业,用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;
}

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值