当前位置:首页 » 编程语言 » c语言编写售货机
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

c语言编写售货机

发布时间: 2022-05-08 13:19:36

c语言编程:自动售货机

抱歉!!不会

㈡ c语言 自动售货机 switch语句

#include<stdio.h>
intmain(void)
{intx,i;
doubley;
for(i=1;i<5;i++)
{printf("pleasechoose: 1)selectcrisps 2)selectpopcorn 3)selectchocolate 4)selectcola 0)exit ");
scanf("%d",&x);//这里是%d

printf("%d",x);
if(x==0)
break;
switch(x)
{
case1:y=3.0;break;//case跟1之间要有空格
case2:y=2.5;break;
case3:y=4.0;break;
case4:y=3.5;break;
default:y=0.0;break;
}
printf("价格为%0.1f元",y);

}
printf("谢谢惠顾!");
return0;
}

㈢ C程序填空:编写一个自动售货机的程序

#include<stdio.h>
main()
{
int x,n,y;
float sum=0.0;
printf("请选择: 1.日用品 2.文具 3. 食品\n");
scanf("%d",&x);
switch(x)
{
case 1: printf("请选择:1.牙刷(3.5元/支) 2.牙膏(6.2元支)\n");
printf(" 3.肥皂(2元/块) 4.毛巾(8.6元/条)\n");
scanf("%d",&y);
printf("数量?");
scanf("%d",&n);
switch(y)/*匹配顾客选择的具体商品*/
{
case 1: sum=3.5*n ; break;
case 2: sum=6.2*n ; break;
case 3: sum=2*n ; break;
case 4: sum=8.6*n ; break;
}
break;
case 2: printf("请选择:1.笔( 3元/支) 2.笔记本(1.2元/个)\n");
printf(" 3.文件夹(12元/个) 4.文具盒(8.6元/个)\n");
scanf("%c",&y);
printf("数量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3*n; break;
case 2: sum=1.2*n; break;
case 3: sum=12*n; break;
case 4: sum=8.6*n; break;
}
break;
case 3: printf("请选择:1.白糖(3.6元/包) 2.盐(1元/包)\n");
printf(" 3.饼(2元/个) 4.方便面(3.6元/条)\n");
scanf("%c",&y);
printf("数量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3.6*n; break;
case 2: sum=1*n; break;
case 3: sum=2*n; break;
case 4: sum=3.6*n; break;
}
break;

}
printf("总计:%.2f 元\n",sum);
}

㈣ 自动售货机c语言编程 急!!

#include "stdio.h"
#include "conio.h"

struct stDrink
{
float fPrice; // 价格
int iLeft; // 剩余数
};

void Pay(stDrink* pstPay)
{
float fPay = 0.0f;

if ( pstPay->iLeft<=0 )
{
printf("商品已经售完\r\n");
return;
}
while(1)
{
scanf("%f",&fPay);
if ( fPay<pstPay->fPrice )
{
printf("金额不足,请重新付费\r\n");
}
else if ( fPay>pstPay->fPrice)
{
printf("找零钱%.1f元,请收好\r\n",fPay-pstPay->fPrice);
break;
}
else
{
printf("付费成功\r\n");
break;
}
}
pstPay->iLeft--;
}

int main()
{
stDrink stCoca = {2.5f,5}; // 可乐
stDrink stOrage = {3.5f,5}; // 橙汁
stDrink stMilkTea = {5.0f,5}; // 奶茶

char cInput = 0;

while(1)
{
cInput = getch();
switch(cInput)
{
case '1':
// 可乐
printf("可乐2.5元,请付费\r\n");
Pay(&stCoca);
break;
case '2':
// 橙汁
printf("橙汁3.5元,请付费\r\n");
Pay(&stOrage);
break;
case '3':
// 奶茶
printf("奶茶5元,请付费\r\n");
Pay(&stMilkTea);
break;
case '#':
// 设备维修中
printf("设备维修中\r\n");
break;
case 'e':
// 退出程序
return 0;
}
}
return 0;
}

㈤ 用c语言编写自动售货机程序

#include int main(void){ int i; printf("*******************************\n"); printf("* 可选择的按键: *\n"); printf("* 1. 巧克力 *\n"); printf("* 2. 蛋糕 *\n"); printf("* 3. 可口可乐 *\n"); printf("*******************************\n"); printf("从1~3中选择按键:\n"); scanf("%d", &i); switch(i) { case 1: printf("你选择了巧克力\n"); break; case 2: printf("你选择了蛋糕\n"); break; case 3: printf("你选择了可口可乐\n"); break; default: printf("选择错误\n"); break; } return 0;}

㈥ c语言,编写一个售货机(POS)计算程序,用于水果店售货员算账.苹果每千克3.2元,梨每千克1.96元,香

#include<stdio.h>
intmain(void)
{
floatp[4]={3.2,1.96,3,24};
floatw[4]={1.5,2,3,1.5};
floats=0;
inti;
for(i=0;i<4;i++)
s+=p[i]*w[i];
printf("%s%12s%12s%13s ","名称","单价","重量","应付价钱");
printf("--------------------------------------------- ");
printf("%s%12.2f%12.2f%13.3f ","苹果",p[0],w[0],p[0]*w[0]);
printf("%s%12.2f%12.2f%13.3f ","梨",p[1],w[1],p[1]*w[1]);
printf("%s%12.2f%12.2f%13.3f ","香蕉",p[2],w[2],p[2]*w[2]);
printf("%s%12.2f%12.2f%13.3f ","樱桃",p[3],w[3],p[3]*w[3]);
printf("--------------------------------------------- ");
printf("%s%37.2f ","总计",s);
printf("%s%37.2f ","付款",100.0);
printf("%s%37.2f ","找零",100.0-s);
return0;
}

㈦ 自动售货机的程序代码怎么写 C语言大作业要交的,大路大神帮帮忙٩( 'ω' )و

整个程序的功能 :

商品入库 补货

商品购买 找零

还有乱七八糟的一堆验证

数据只有结构链表存储,退出不保存,你要写文件或数据库保存,你自己写吧,写不动了。

演示看下图:

#include<stdio.h>
#include<string.h>
#include<malloc.h>
#definenameSize21//商品名称数组大小可修改
typedefstructautoMA
{
char*spName;//商品名
intspNum;//商品数量
floatspValue;//商品价格
structautoMA*next;
}AMA;

AMA*amaNEW,*amaP1,*amaSelect;//定义一个新节点指针首节点指针查找用指针
intcontStrplen(char*p);
inteqStr(char*str1,char*str2);//比较字符串是否相等,相等返回1否则返回0
AMA*selectSP(AMA*AMAhead,char*spName);//通过名称查找商品有返回节点地址没有返回NULL
voidinsertSP(AMA*AMAhead,AMA**AMAtail,char*VSPname,intVSPnum,floatVSPvalue);//添加商品如果已有该商品,数量+如果没有新增
float*buySP(AMA*AMAhead,char*name,intnum,floatpay);//购买返回float数组[2]

intmain()
{
AMA*AMAtail,*AMAhead;//定义一个头节点指针尾节点指针
float*b,value;
intnum,answer;
charname[nameSize];
amaSelect=(AMA*)malloc(sizeof(AMA));
AMAhead=(AMA*)malloc(sizeof(AMA));
AMAtail=(AMA*)malloc(sizeof(AMA));
AMAhead->next=NULL;

mu:answer=0;
memset(name,0,nameSize);
num=0;
value=0;
printf("=====系统菜单==== ");
printf("补充库存,输入1 ");
printf("购买商品,输入2 ");
scanf("%d",&answer);
if(answer==2&&AMAhead->next==NULL)
{
printf("当前没有商品库存,请先补充库存 ");
gotomu;
}
if(answer==1)
{
printf("输入ESC00返回菜单 ");
while(1)
{
printf(" 请录入补充的商品名称(名称小于%d个字符,每项空格分隔):",(nameSize-1)/2);
scanf("%s",name);
printf("请录入补充的数量:");
scanf("%d",&num);
printf("请录入单价:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
insertSP(AMAhead,&AMAtail,name,num,value);
}
else
{
printf(" 录入结束返回主菜单 ");
gotomu;
}
}

}
if(answer==2&&AMAhead->next!=NULL)
{
tb:memset(name,0,nameSize);
num=0;
value=0;
printf("输入ESC00返回菜单 ");
while(1)
{
printf(" 请输入要购买的商品名称(名称小于%d个字符):",(nameSize-1)/2);
scanf("%s",name);
printf("请输入要购买的数量:");
scanf("%d",&num);
printf("请输入支付金额:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
b=buySP(AMAhead,name,num,value);
switch((int)b[0])
{
case1:
printf(" 购买商品成功,找回零钱%.2f元 ",b[1]);
break;
case2:
printf(" 商品库存不足,当前剩余数量%d,请重新选择商品 ",(int)b[1]);
gototb;
break;
case3:
printf(" 支付金额不足,还需支付%.2f元 ",b[1]);
gototb;
break;
default:
printf(" 发生错误!交易失败! ");
break;
}
free(b);
b=NULL;
}
else
{
printf(" 购买结束返回主菜单 ");
gotomu;
}
}
}return0;
}
intcontStrplen(char*p)//计算字符串指针指向空间的字符串长度并返回长度
{
intlen=0,i=0;
while(p[i]!='')
{
len++;
i++;
}
returnlen;
}
inteqStr(char*str1,char*str2)//比较字符串是否相等,相等返回1否则返回0
{
inti;
if(strlen(str1)!=strlen(str2))
return0;
for(i=0;i<strlen(str1);i++)
{
if(str1[i]!=str2[i])
return0;
}
return1;
}
AMA*selectSP(AMA*AMAhead,char*spName)//通过名称查找商品有返回节点地址没有返回NULL
{
if(AMAhead->next==NULL)
{
returnNULL;
}

else
{
AMAhead->next=amaP1;//遍历查询前将头节点链表指针重置到首节点为下次查询准备
while(AMAhead->next!=NULL)
{
if(eqStr(AMAhead->next->spName,spName))
{
returnAMAhead->next;
}
AMAhead=AMAhead->next;
}
}
returnNULL;
}
voidinsertSP(AMA*AMAhead,AMA**AMAtail,char*VSPname,intVSPnum,floatVSPvalue)//添加商品如果已有该商品,数量+如果没有新增
//参数:头结点指针地址尾节点指针地址商品名称
{
amaSelect=selectSP(AMAhead,VSPname);
if(amaSelect!=NULL)//商品已存在数量++核实价格
{
printf(" 商品%s已存在库存%d个,现添加%d个,现在共有库存%d个 ",amaSelect->spName,amaSelect->spNum,VSPnum,(amaSelect->spNum)+VSPnum);
(amaSelect->spNum)=(amaSelect->spNum)+VSPnum;
if(amaSelect->spValue!=VSPvalue)
{
printf("--该录入的价格与原价格不一致,保留原价格,如要更新价格,请在【更新商品信息】功能中修改(该功能暂未实现) ");

}
}
else//新增商品
{
amaNEW=(AMA*)malloc(sizeof(AMA));
amaNEW->spName=(char*)malloc(sizeof(char)*(contStrplen(VSPname)+1));//按照输入字符串长度申请内存空间大小
strcpy(amaNEW->spName,VSPname);
amaNEW->spNum=VSPnum;
amaNEW->spValue=VSPvalue;
amaNEW->next=NULL;

if(AMAhead->next==NULL)//首次新增该节点为首节点头结点链表指针和尾节点指针均指向该节点首地址
{
amaP1=amaNEW;
AMAhead->next=amaP1;
*AMAtail=amaP1;
}
else//添加到链表
{
(*AMAtail)->next=amaNEW;
*AMAtail=amaNEW;
}
printf(" 商品%s,数量%d个,价格%.1f元已添加到贩卖机中 ",VSPname,VSPnum,VSPvalue);
}

}
float*buySP(AMA*AMAhead,char*name,intnum,floatpay)//购买返回float数组[2]
//购买商品成功返回[0]=1[1]=找还金额
//失败库存不足返回[0]=2[1]=当前库存
//失败金额不足返回[0]=3[1]=还需支付金额
//失败货物不存在(一般不可能出现)[0]=4[1]=4
{
float*err=(float*)malloc(sizeof(float)*2);
amaSelect=selectSP(AMAhead,name);
if(amaSelect!=NULL)//商品已存在核实数量和价格
{
if((amaSelect->spNum)<num)
{
err[0]=2;
err[1]=(float)(amaSelect->spNum);
}
if((amaSelect->spNum)>=num&&num*(amaSelect->spValue)>pay)
{
err[0]=3;
err[1]=num*(amaSelect->spValue)-pay;
}
if((amaSelect->spNum)>=num&&num*(amaSelect->spValue)<=pay)
{
err[0]=1;
err[1]=pay-num*(amaSelect->spValue);
amaSelect->spNum=amaSelect->spNum-num;
}
}
else
{
err[0]=4;
err[1]=4;
}
returnerr;
}

㈧ 用C语言编写自动售货机

#include<stdio.h>

bool GetCharge(int Sum,int Money);
void Getsmalcharge(int Money,int *ChargeNum);
void main()
{
char state='N';
int Sum=0;
char Pro;
printf("\n********************************\n");
while(true)
{
state='N';
Sum=0;
while(state=='N'||state=='n')
{
printf("\n输入购买物品(a,b,c):");
scanf("%c",&Pro);
getchar();
switch(Pro)
{
case 'a':
Sum=Sum+1;
break;
case 'A':
Sum=Sum+1;
break;
case 'b':
Sum=Sum+5;
break;
case 'B':
Sum=Sum+5;
break;
case 'c':
Sum=Sum+10;
break;
case 'C':
Sum=Sum+10;
break;
default:
printf("\n输入物品有误!!!!\n");
break;
};
printf("\n是否完成(Y/N):");
scanf("%c",&state);
getchar();
}
int Money;
printf("\n购买总价为:%d",Sum);
bool st=false;
while(!st)
{
printf("\n输入金额:");
scanf("%d",&Money);
getchar();
st=GetCharge(Sum,Money);
};
printf("\n----------------购买结束------------\n");
printf("\n");
printf("\n");
printf("\n");
}
}
//----------------------------------------------------
bool GetCharge(int Sum,int Money)
{
int ChargeNum[4];
for(int i=0;i<4;i++)
{
ChargeNum[i]=0;
}
if(Sum>Money)
{
printf("\n金额不够,请重新输入.....");
return false;
}
else if(Sum==Money)
{
printf("\n余额为0");
return true;
}
else
{
int Result=Money-Sum;
Getsmalcharge(Result,ChargeNum);
printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);

}//end if
return true;
}
//------------------------------------
void Getsmalcharge(int Money,int *ChargeNum)
{
if(Money<0)
return;
int Sum=Money;
int charge[4]={1,2,5,10};
ChargeNum[3]=Sum/charge[3];
Sum=Sum%charge[3];
ChargeNum[2]=Sum/charge[2];
Sum=Sum%charge[2];
ChargeNum[1]=Sum/charge[1];
Sum=Sum%charge[1];
ChargeNum[0]=Sum/charge[0];
Sum=Sum%charge[0];
}

㈨ C语言程序 自动售货机 怎么编

#include<stdio.h>

bool GetCharge(int Sum,int Money);
void Getsmalcharge(int Money,int *ChargeNum);
void main()
{
char state='N';
int Sum=0;
char Pro;
printf("\n********************************\n");
while(true)
{
state='N';
Sum=0;
while(state=='N'||state=='n')
{
printf("\n输入购买物品(a,b,c):");
scanf("%c",&Pro);
getchar();
switch(Pro)
{
case 'a':
Sum=Sum+1;
break;
case 'A':
Sum=Sum+1;
break;
case 'b':
Sum=Sum+5;
break;
case 'B':
Sum=Sum+5;
break;
case 'c':
Sum=Sum+10;
break;
case 'C':
Sum=Sum+10;
break;
default:
printf("\n输入物品有误!!!!\n");
break;
};
printf("\n是否完成(Y/N):");
scanf("%c",&state);
getchar();
}
int Money;
printf("\n购买总价为:%d",Sum);
bool st=false;
while(!st)
{
printf("\n输入金额:");
scanf("%d",&Money);
getchar();
st=GetCharge(Sum,Money);
};
printf("\n----------------购买结束------------\n");
printf("\n");
printf("\n");
printf("\n");
}
}
//----------------------------------------------------
bool GetCharge(int Sum,int Money)
{
int ChargeNum[4];
for(int i=0;i<4;i++)
{
ChargeNum[i]=0;
}
if(Sum>Money)
{
printf("\n金额不够,请重新输入.....");
return false;
}
else if(Sum==Money)
{
printf("\n余额为0");
return true;
}
else
{
int Result=Money-Sum;
Getsmalcharge(Result,ChargeNum);
printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);

}//end if
return true;
}
//------------------------------------
void Getsmalcharge(int Money,int *ChargeNum)
{
if(Money<0)
return;
int Sum=Money;
int charge[4]={1,2,5,10};
ChargeNum[3]=Sum/charge[3];
Sum=Sum%charge[3];
ChargeNum[2]=Sum/charge[2];
Sum=Sum%charge[2];
ChargeNum[1]=Sum/charge[1];
Sum=Sum%charge[1];
ChargeNum[0]=Sum/charge[0];
Sum=Sum%charge[0];
}