一、传统非智能售货机投入纸币或硬币,货币识别器进行识别。选货,按下选货按钮,自动售货机程序根据商品的定价对现金进行加减计算。出货,如果投入的金额不足会有提示,如果金额足够的话就直接出货了。等待顾客的进一步 *** 作,如不买其他的东西选择找零的话,售货机会根据刚才计算的结果自动找零硬币,购物完成。
二、智能自动售货机选货后,售货机程序会向后台服务器发起收款申请二维码(微信、支付宝或其他的电子支付),二维码直接显示在售货机显示屏上。顾客扫码后,后台服务器会查询收款账户是不是收到款了,如果收到了,后台服务器会向售货机发出出货的指令,售货机根据指令出货。
智能售货机功能比较多,原理也很复杂,有些不需要付款根据输入的提货码也能出货,原理是顾客输入提货码或者奖券码,售货机把提货码发到后台服务器,后台服务器对提货码进行核实,并把对应的出货指令发给售货机,售货机根据指令出对应的商品。自动售货机的工作原理大概都是这个样子,现在市面上越来越多的都是这种智能的自动售货机了,支付方式也越来越多。
一、传统的非智能自动售货机放入纸币或硬币,货币识别器会识别它们。选择商品,按下选择键,自动售货机程序会根据商品的定价加减现金。发货,如果投入金额不足会有提示,如果金额充足会直接发货。等待顾客的进一步 *** 作,如果不买别的东西而选择换,自动售货机会根据刚才的计算结果自动换币,购物完成。二、智能自动售货机选择商品后,自动售货机程序会向后台服务器发起支付应用二维码(微信、支付宝或其他电子支付),二维码直接显示在自动售货机显示屏上。客户扫码后,后台服务器会查询支付账户是否收到款项。如果有,后台服务器会向自动售货机发送发货指令,自动售货机根据指令发货。现代智能自动售货机的内部控制系统采用VHDL描述语言,系统的状态用有限状态机来描述。上电复位后,系统自动初始化,根据外部输入信号转换不同状态(如投币状态、销售状态、找零状态)。总之,我们现在接触到的自动售货机,功能多,原理复杂。其中一些可以根据输入的提货代码免费发货。原理是顾客输入取货码或抽奖码,自动售货机将取货码发送给后台服务器,后台服务器验证取货码并向自动售货机发送相应的发货指令,自动售货机根据指令发送相应的商品。自动售货机的工作原理大概是这样的。现在市面上的智能自动售货机越来越多。毕竟用手机扫码支付方便多了。
import javautilScanner;
public class Shop
{
private String coffee="咖啡";
private String coke="可乐";
private String tea="茶";
private double coffeeprice=200;
private double cokeprice=300;
private double teaprice=5;
private double price=00;
public Shop()
{
}
public void getName(int i)
{
if(i==1)
{
Systemoutprintln("你选择的是咖啡");
}
if(i==2)
{
Systemoutprintln("你选择的是可乐");
}
if(i==3)
{
Systemoutprintln("你选择的是茶");
}
}
public double getShopping(int i,double p)
{
if(i==1)
{
if(p<coffeeprice)
{
Systemoutprintln("您的钱不够买此商品");
}
else
{
price=p-coffeeprice;
}
}
if(i==2)
{
if(p<cokeprice)
{
Systemoutprintln("您的钱不够买此商品");
}
else
{
price=p-cokeprice;
}
}
if(i==3)
{
if(p<teaprice)
{
Systemoutprintln("您的钱不够买此商品");
}
else
{
price=p-teaprice;
}
}
return price;
}
public static void main(String[] args)
{
Shop shop=new Shop();
try
{
Systemoutprintln("请选择你想要的商品\n 1咖啡 2可乐 3茶");
Scanner si=new Scanner(Systemin);
int i=sinextInt();
Systemoutprintln(" ");
if(i>3||i<1)
{
Systemoutprintln("没有此产品");
}
else
{
shopgetName(i);
Systemoutprintln(" ");
Systemoutprint("请付账:");
Scanner sp=new Scanner(Systemin);
double p=spnextDouble();
Systemoutprintln(" ");
if(shopgetShopping(i,p)!=00)
{
Systemoutprintln("找你的钱:"+shopgetShopping(i,p));
}
}
}
catch(Exception ex)
{
Systemoutprintln("请正确输入!");
}
}
}
自己再根据以下程序好好修改下吧
#include<iostream>
#include<string>
#include<vector>
using namespace std;
class coin
{
public:
Coin(string n,double v );
string get_name()const;
double get_value()const;
private:
string name;
double value;
};
Coin::Coin(string n,double v)
{
name=n;
value=v;
}
string Coin::get_name() const
{
return name;
}
double Coin::get_value() const
{
return value;
}
#include "producth"
product::product(void)
{
}
product::~product(void)
{
}#pragma once
class product
{
public:
product(void);
Product(string n, double p, int q)
string get_name() const;
double get_price() const
int get_quantity() const;
void add_quantity(int amount);
~product(void);
private:
string name;
double price;
int quantity;
};
Product::Product(string n, double p,int q)
{ name = n;
price = p;
quantity = q;
}
string Product::get_name() const
{
return name;
}
double Product::get_price() const
{ return price;
}
int Product::get_quantity() const
{ return quantity;
}
void Product::add_quantity(int amount)
{ quantity = quantity + amount;
}
#include "VendingMachineh"
VendingMachine::VendingMachine(void)
{
}
VendingMachine::~VendingMachine(void)
{
}
#pragma once
class VendingMachine
{public:
VendingMachine(void);
public:
VendingMachine();
void add_product(Product p);
bool select_product(string name);
bool add_coin();
double return_coins();
double xiaoshouzonge();
double remove_money();
void get_product();
double leiji();
double chae();
void add_current_payment();
private:
vector<Product> products;
int current_product;
vector<Coin>
current_payment;
vector<Coin> coins;
};
VendingMachine::V
endingMachine()
{
current_product = -1;
}
void V
endingMachine::add_product(Product p)
{ for (int i = 0; i < productssize(); i++)
{ if (products[i]get_name() == pget_name() && products[i]get_price() == pget_price())
{ products[i]add_quantity(pget_quantity()
return;
}
}
productspush_back(p);
}
bool V
endingMachine::select_product(string name)
{
for (int i = 0; i < productssize(); i++)
{ if (products[i]get_name() == name && products[i]get_quantity() > 0
&&xiaoshouzonge()<=5000)
~VendingMachine(void);
};
#include<stdioh>
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];
}
以上就是关于了解一下自动售卖机全部的内容,包括:了解一下自动售卖机、自动售货机原理、跪谢!求用JAVA编写一个自动贩卖机的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)