C语言实现超市计价收款系统
作者:不吃肉的胖子 发布时间:2021-08-21 17:56:47
标签:C语言,收款系统
本文实例为大家分享了C语言实现超市计价收款系统的具体代码,供大家参考,具体内容如下
学习一个月的C语言,写了一个简易的超市计价收款系统
源码如下
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define M 10
typedef struct ? ?//定义商品的结构体?
{ ??
? ? ?
?? ?char name[10];
?? ?int num;
?? ?float ?price;?
?? ?int ID;?
}Store;
Store store[M];
void shuru( ) ? //定义输入商品的函数?
{
?? ?int i;
?? ?int isgo;
?? ?int n;
?? ?for(i=0;i<M;i++)
?? ?{
?? ??? ?store[i].ID=i+1;//自定义商品的ID?
?? ??? ?printf("输入商品的名字\n");
?? ??? ?scanf("%s",&store[i].name);?
?? ??? ?printf("输入商品的价格\n");
?? ??? ?scanf("%f",&store[i].price);?
?? ??? ?printf("还需要输入商品吗?\n");
?? ??? ?printf("1.YES,2.NO\n");
?? ??? ?scanf("%d",&isgo);
?? ??? ?if(isgo!=2)//判断是否继续输入商品?
?? ??? ?{
?? ??? ??? ?
?? ??? ?}else//不输入商品直接跳出,展示所有商品的信息?
?? ??? ?{
?? ??? ??? ?for(n=0;n<=i;n++)
?? ??? ? ? ?{
?? ??? ? ? ? ? ?printf("商品ID\t商品名字\t商品价格\n");
?? ??? ? ? ? ? ?printf("%d\t,%s\t,%f\n",store[n].ID,store[n].name,store[n].price);
?? ??? ? ? ?}
?? ??? ? ? ?i=10;
?? ??? ?}
?? ??? ?
?? ?}
}
void shopp() ?//购物函数?
{
?? ?int isgo=1;
?? ?int i;
?? ?int n;
?? ?int number;
?? ?int shoppid;?
?? ?float pricenum;
?? ?float pricesum=0.0;
?? ?float priceguke;
?? ??
?? ?
?? ?printf("库存的商品如下\n");
?? ?for(n=0;n<M;n++)
? ? {
? ??? ? ? printf("商品ID\t商品名字\t商品价格\n");
?? ? ? printf("%d\t,%s\t,%f\n",store[n].ID,store[n].name,store[n].price);
?? ? ? if(store[n].price==0)//这里是为了不把没定义的商品不显示出来?
?? ? ? {
? ??? ??? ?n=M;
? ??? ? ? }
?? ?
?? ? ??
? ? }
?? ?while(isgo)//购物?
?? ?{
?? ??? ?printf("按下你需要的商品ID和数量\n");
?? ??? ?scanf("%d,%d",&shoppid,&number);
?? ??? ?pricenum=(store[shoppid-1].price)*number;
?? ??? ?pricesum=pricesum+pricenum;
?? ??? ?printf("你购买的商品%s是%d个,价格是%f,总金额是%f\n",store[shoppid-1].name,number,pricenum,pricesum);
?? ??? ?printf("是否继续购物\n");
?? ??? ?printf("0.退出,1.继续\n");
?? ??? ?scanf("%d",&isgo);?
?? ?}
?? ?printf("输入顾客支付的金钱\n");//结算?
?? ?scanf("%f",&priceguke);
?? ?if(priceguke>=pricesum)
?? ?{
?? ??? ?printf("收到顾客%f元,找回顾客%f元\n",priceguke,priceguke-pricesum);
?? ?}else
?? ??? ?{
?? ??? ?printf("收到的钱小于总金额\n");
?? ?}
?? ?printf("谢谢光临\n");
?? ??? ?
}
main()
{
?? ?int xitong=1;
?? ?
?? ?while(xitong!=3)
?? ?{
?? ??? ?printf("-------------------欢迎登录好浪费超市系统-----------------------\n");
? ??? ? ? ?printf("1.输入商品信息\n");
?? ? ? ?printf("2.购买商品\n");
? ? ? ? printf("3.退出系购买商品统\n");
?? ? ? ?scanf("%d",&xitong);
?? ? ? ?switch(xitong)
?? ? ? ?{
? ? ?? ??? ?case 1:shuru();
? ? ?? ??? ?break;
? ? ?? ??? ?case 2:shopp();
? ? ?? ??? ?break;
? ? ?? ??? ?case 3:printf("欢迎再次使用好浪费超市系统\n");?
? ? ?? ?}
?? ??? ??? ??? ?
?? ?}
}
来源:https://blog.csdn.net/qq_43547520/article/details/118652441


猜你喜欢
- 前言通过上一章的学习, 我们了解了Server启动的大致流程, 有很多组件与模块并没有细讲, 从这个章开始, 我们开始详细剖析netty的各
- 一、在学习枚举之前,首先来听听枚举的优点。1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。2、枚举使代码更易于维护,有助于确保
- 占位符Placeholder的使用xml中的配置:<?xml version="1.0" encoding=&qu
- 一个中大型的 Java 项目往往包含若干 JAR 包,这些 JAR 包有着不同的版本号。如果这些 JAR 包单独发布,然后直接通过版本号引用
- 1. 什么是RESTREST全称是Representational State Transfer,中文意思是表述(编者注:通常译为表征)性状
- 一、介绍以及编解码流程MediaCodec 类可用于访问低级媒体编解码器,即编码器/解码器组件。它是 Android 低级多媒体支持基础结构
- SpringAOP 通过JoinPoint获取参数名和值在Java8之前,代码编译为class文件后,方法参数的类型固定,但是方法名称会丢失
- 这几天开发遇到一个需求:将自定义文件后缀添加默认图标双击自定义的文件后缀可以自动关联到指定的应用程序并自动打开上述第一、二两点其实是一个需求
- 加密解密本身并不是难事,问题是在何时去处理?定义一个过滤器,将请求和响应分别拦截下来进行处理也是一个办法,这种方式虽然粗暴,但是灵活,因为可
- 本文实例讲述了Java date format时间格式化操作。分享给大家供大家参考,具体如下:import java.util.Date;i
- 首先给大家声明一点:需要 jdk 7 , tomcat需要支持websocket的版本 1.InitServlet &n
- Android 重写ViewGroup 分析onMeasure()和onLayout()方法在继承ViewGroup类时,需要重写两个方法,
- IDEA设置文档注释模板创建Class文件时自动生成的头部注释如图如何配置idea的头部注释格式,可以生成像之前的注释格式一样的文档注释?F
- 代码如下: 实现1: BasicEditor.java package swt_jface.demo5; import java.io.Bu
- SpinnerSpinner是一个列表选择框,会在用户选择后,展示一个列表供用户进行选择。Spinner是ViewGroup的间接子类,它和
- 介绍该系统有三个角色,分别是:普通用户、房屋中介、管理员。普通用户的功能:浏览房屋信息、预约看房、和中介聊天、申请成为中介等等。房屋中介的功
- 介绍死信队列:没有被及时消费的消息存放的队列,消息没有被及时消费有以下几点原因:1.有消息被拒绝(basic.reject/ basic.n
- 一、前言前面我们讲了Java的入门知识,相信许多小伙伴对Java基础有一个大概的认识了,这也为我们后续的学习打下了基础,所以我们可以继续学习
- 这两天看到Hibernate的代理部分,第一反应是底层使用了反射,针对用户实体生成了代理类,后来反应过来了,反射没有任何可以产生新类的能力,
- Spring Aop的原理Spring的AOP就是通过 * 实现的。当为某个Bean或者某些Bean配置切面时,Spring会为其创建代理