自动售货机实验报告Word文档下载推荐.docx
- 文档编号:21327439
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:51
- 大小:872.41KB
自动售货机实验报告Word文档下载推荐.docx
《自动售货机实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《自动售货机实验报告Word文档下载推荐.docx(51页珍藏版)》请在冰豆网上搜索。
取消"
);
privateJButtonhelp=newJButton("
帮助"
privateJButtontakeproduct=newJButton("
取货"
privateJButtonmoneyreturn=newJButton("
退币"
privateJButtonproduct[]=newJButton[13];
privateJButtoninsertmoney[]=newJButton[3];
/**************************************************************
商品库存量数组,价格数组,图片数组及金额显示的定义
***************************************************************/
privateintstorage[]={5,5,5,5,5,5,5,5,5,5,5,5,10};
//设普通商品的初始库存量为5,特价商品的初始库存为10。
privatedoubleprice[]={2.5,2.0,3.2,3.6,4.5,4.2,4.8,4.6,3.5,2.7,3.6,3.0,2.0};
//price数组存储每种商品的价格
ImageIconproductImage[]=newImageIcon[13];
//13种为普通商品图片定义,最后一种为特价商品。
。
ImageIconimagead=newImageIcon("
image/ad.jpg"
ImageIconimageout=newImageIcon("
image/out.jpg"
//出货口的初始图片定义。
java.text.DecimalFormatdf=newjava.text.DecimalFormat("
#0.00"
//初始化金额格式化
privateJLabelad=newJLabel(imagead);
privateJLabelproductOut=newJLabel(imageout);
//出货口
privateJTextFieldtext=newJTextField("
欢迎光临"
//金额显示区。
/**************************
初始化函数
构建图形用户界面
**************************/
publicSeller()
/**********************************************************
商品选购区界面设计
product[]中有商品价格和商品图片
**********************************************************/
super("
自动售货机"
product[0]=newJButton("
¥"
+String.valueOf(price[0]),newImageIcon("
Image/0.jpg"
));
product[0].setToolTipText("
商品名称:
雪碧;
\n"
+"
容量:
250ML;
生产日期:
2010-02-10;
保质期:
2年;
"
product[1]=newJButton("
+String.valueOf(price[1]),newImageIcon("
Image/1.jpg"
product[1].setToolTipText("
芬达;
product[2]=newJButton("
+String.valueOf(price[2]),newImageIcon("
Image/2.jpg"
product[2].setToolTipText("
统一冰红茶;
400ML;
product[3]=newJButton("
+String.valueOf(price[3]),newImageIcon("
Image/3.jpg"
product[3].setToolTipText("
可口可乐;
product[4]=newJButton("
+String.valueOf(price[4]),newImageIcon("
Image/4.jpg"
product[4].setToolTipText("
营养快线;
450ML;
product[5]=newJButton("
+String.valueOf(price[5]),newImageIcon("
Image/5.jpg"
product[5].setToolTipText("
咖啡;
product[6]=newJButton("
+String.valueOf(price[6]),newImageIcon("
Image/6.jpg"
product[6].setToolTipText("
百事可乐;
500ML;
product[7]=newJButton("
+String.valueOf(price[7]),newImageIcon("
Image/7.jpg"
product[7].setToolTipText("
雅哈咖啡;
product[8]=newJButton("
+String.valueOf(price[8]),newImageIcon("
Image/8.jpg"
product[8].setToolTipText("
芬达汽水;
"
300ML;
2010-02-16;
1年"
product[9]=newJButton("
+String.valueOf(price[9]),newImageIcon("
Image/9.jpg"
product[9].setToolTipText("
哇哈哈纯净水;
2010-02-17;
product[10]=newJButton("
+String.valueOf(price[10]),newImageIcon("
Image/10.jpg"
product[10].setToolTipText("
茉莉冰醇;
560ML;
product[11]=newJButton("
+String.valueOf(price[11]),newImageIcon("
Image/11.jpg"
product[11].setToolTipText("
350ML;
2010-02-15;
1年;
product[12]=newJButton("
今日特价:
+String.valueOf(price[12]),newImageIcon("
Image/12.jpg"
product[12].setToolTipText("
青岛啤酒;
280ML;
insertmoney[0]=newJButton("
投¥0.1"
//投币按钮的设计
insertmoney[1]=newJButton("
投¥0.5"
insertmoney[2]=newJButton("
投¥1.0"
productOut.setBorder(BorderFactory.createLoweredBevelBorder());
productOut.setBorder(newTitledBorder(newLineBorder(Color.RED,5),"
出货口"
text.setBackground(newColor(100,250,200));
text.setBorder(BorderFactory.createLoweredBevelBorder());
text.setHorizontalAlignment(SwingConstants.CENTER);
//使显示的字位于中间
text.setEditable(false);
text.setColumns(21);
text.setBorder(newTitledBorder(newLineBorder(Color.GREEN,5),"
金额显示区"
JPanelmoneyinserted=newJPanel(newFlowLayout());
moneyinserted.add(text);
moneyinserted.add(Box.createVerticalStrut(100));
JPaneltoubi=newJPanel();
for(inti=0;
i<
3;
i++)
{
toubi.add(insertmoney[i]);
insertmoney[i].addActionListener(this);
}
JPanelButtons=newJPanel(newFlowLayout());
Buttons.add(productOut);
Buttons.add(moneyreturn);
Buttons.add(takeproduct);
Buttons.add(quit);
Buttons.add(help);
help.addActionListener(this);
quit.addActionListener(this);
takeproduct.addActionListener(this);
moneyreturn.addActionListener(this);
JPanelOpt=newJPanel();
Opt.setLayout(newBorderLayout());
Opt.add("
North"
moneyinserted);
Center"
toubi);
South"
Buttons);
JPanelproductshow=newJPanel(newGridLayout(3,4,5,5));
productshow.setBorder(newTitledBorder(newLineBorder(Color.RED,5),"
商品显示区"
JPanelpanel=newJPanel();
panel.setLayout(newBorderLayout());
panel.add("
Opt);
East"
productOut);
West"
product[12]);
//panel.setSize(800,800);
setLayout(newBorderLayout());
add("
productshow);
ad);
panel);
//setResizable(false);
//setBounds(0,0,550,700);
for(inti=0;
13;
{
productImage[i]=newImageIcon("
image/"
+i+"
.jpg"
if(i!
=12)
{
productshow.add(product[i]);
product[i].addActionListener(this);
product[i].setBorder(BorderFactory.createLoweredBevelBorder());
}
product[12].setBorder(newTitledBorder(newLineBorder(Color.RED,5),"
特价商品"
validate();
pack();
setVisible(true);
}
/*****************************************************
购买函数的设计
****************************************************/
publicvoidpurchase(inti)
{
if(occupy==true)//如果取货口已经满则提示用户取货后再购买。
{
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(this,"
请取走货物后再购买"
"
JOptionPane.ERROR_MESSAGE);
elseif(storage[i]==0)//如果供货不足则提示用户商品已经售完,用户可以继续购买其他商品。
Toolkit.getDefaultToolkit().beep();
JOptionPane.showMessageDialog(this,"
非常抱歉,该商品已经售完,请选择其他商品"
JOptionPane.INFORMATION_MESSAGE);
elseif(money<
price[i])//金额不足则提示用户投入足够硬币。
JOptionPane.showMessageDialog(null,"
您的金额不足,请投入足够硬币!
温馨提示"
JOptionPane.WARNING_MESSAGE);
}
elseif(money>
=price[i]&
&
storage[i]>
0)//当用户投入足量硬币并且供货充足的情况下用户可以成功购买商品。
productOut.setIcon(productImage[i]);
occupy=true;
money=money-price[i];
//购买后余额减少。
text.setText("
您已经投币:
¥"
+String.valueOf(df.format(money)));
storage[i]--;
//库存量减少。
if(storage[i]==0)//商品背景变黑表示库存为0.
product[i].setBackground(Color.black);
}
}
publicvoidactionPerformed(ActionEvente)
{
/*****************************************************
点击"
投币"
按钮一次,表示投入一元,
并且在金额显示屏text上显示出当前投入的总金额
*****************************************************/
if(e.getSource()==insertmoney[0])
money=money+0.1;
if(e.getSource()==insertmoney[1])
money=money+0.5;
text.setText("
if(e.getSource()==insertmoney[2])
money=money+1.0;
if(e.getSource()==help)
JOptionPane.showMessageDialog(null,"
欢迎使用我们的自动售货机!
请您按照以下步骤购买您所需的商品:
\n"
+"
1.请投入硬币;
2.选择好您要购买的商品后,按下购买键;
3.您可以在金额充足的情况下连续购买商品,也可以在继续投硬币后继续购买商品;
4.如果您投币不足系统将退还您的全部硬币\n"
5.购买商品后,请记得取走您的余额\n"
6.若系统发生故障请及时与我们联系,联系电话:
5555555"
"
if(e.getSource()==takeproduct)
if(occupy==false)//出货口为满则提示用户取货。
请购买后再取货"
}
else
{//出货口为空则提示用户购买后才能取货。
productOut.setIcon(imageout);
请收好您的货物"
欢迎下次光临"
occupy=false;
}
if(e.getSource()==moneyreturn)
if(money==0)//余额为0不退币
JOptionPane.showMessageDialog(this,"
您的可退余额为零"
}
money=0;
text.setText("
欢迎光临!
请收好您的钱"
}
elseif(e.getSource()==quit)
if(money>
0)
请取走您的余额"
提示"
else
JOptionPane.showMessageDialog(null,"
谢谢您的光临"
System.exit(0);
for(inti=0;
{//判断用户购买的是哪一个商品.
if(e.getSource()==product[i])
Stringmsg="
您确定购买该商品吗?
;
if(JOptionPane.showConfirmDialog(null,msg,"
欢迎光临”,
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE)==JOptionPane.YES_OPTION)
{
purchase(i);
//购买的是第i个商品
publicstaticvoidmain(Stringargs[])
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 自动 售货 实验 报告