资源简介
这个是我做的一个简单的自动售货机,比较符合java规范。加上了Junit测试用例。个人觉得还不错。
代码片段和文件信息
package automat;
import java.util.HashMap;
/**
* 自动售货机程序:
* 工作流程:
* 顾客投入硬币购买饮料:啤酒和橙汁,售价都是5毛一个,机内预存两种饮料各3个,
* 机内存硬币5毛的5个,1元的3个,要求完成一下功能:
* 1。 如顾客投入5毛,则可以选择饮料,如果选择是啤酒和橙汁,且有存货,显示“请取回**饮料”字样;
* 否则如果没有存货或者选择饮料类型超出上面两种,显示错误信息,退出5毛给用户;;
* 2。 如果用户投入超过5毛的金额,则要考虑是否要找钱,只要在饮料种类正确、库存足够、金额足够、
* 能够找钱的情况下才给出饮料,否则显示错误信息;
*
* @author decoer
*
*/
public class SaleMachine {
//number of 50 coin
private int num50 = 5;
//number of 100 coin
private int num100 = 3;
//type of juices
private HashMap types;
//constructor
public SaleMachine(){
//initialization
types = new HashMap(2);
types.put(“beer“ Integer.valueOf(3));
types.put(“orange“ Integer.valueOf(3));
}
/**
* buy an item with given type and money
* @param type
* @param money
* @return the message text
*/
public String buy(String type int money){
//whether a valid money number
if(!(money==50 || money==100))
return SaleMachineMessage.INVALID_MONEY;
//whether an allowed type
if(!types.containsKey(type))
return SaleMachineMessage.NOT_PROVIDED;
//still available
Integer num = types.get(type);
if(num.intValue()==0)
return SaleMachineMessage.ALREADY_SOLD;
//whether to give change
boolean change = false;
if(money>50){
if(num50==0)
return SaleMachineMessage.NO_CHANGE;
num50 --;
num100 ++;
change = true;
}else
num50 ++;
//ok give a juice out and decrease the number by 1
num --;
types.put(type num);
return SaleMachineMessage.PICK_UP + ((change)?SaleMachineMessage.PICK_CHANGE:““);
}
/**
* print current states
*/
public void printInfo(){
System.out.println(“--------------------------“);
System.out.println(“Juice : “);
for(String key : types.keySet()){
System.out.println(“\t“ + key + “\t=\t“ + types.get(key));
}
System.out.println(“50 coin : \t“ + num50);
System.out.println(“100 coin : \t“ + num100);
System.out.println(“Total money : \t“ + Integer.toString(num50*50 + num100*100));
System.out.println(“--------------------------“);
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2011-01-23 20:53 ST.emma.automat\
文件 696 2011-01-24 21:01 ST.emma.automat\.classpath
文件 391 2011-01-23 08:04 ST.emma.automat\.project
目录 0 2011-01-23 08:04 ST.emma.automat\.settings\
文件 629 2011-01-23 08:04 ST.emma.automat\.settings\org.eclipse.jdt.core.prefs
文件 10341 2011-01-23 20:50 ST.emma.automat\beer.jpeg
目录 0 2011-01-24 21:01 ST.emma.automat\bin\
目录 0 2011-01-24 21:01 ST.emma.automat\bin\automat\
文件 2698 2011-01-24 21:01 ST.emma.automat\bin\automat\SaleMachine.class
文件 827 2011-01-24 21:01 ST.emma.automat\bin\automat\SaleMachineMessage.class
文件 1847 2011-01-25 06:16 ST.emma.automat\bin\automat\SaleMachineTest.class
目录 0 2011-01-24 21:01 ST.emma.automat\bin\gui\
文件 1403 2011-01-24 21:01 ST.emma.automat\bin\gui\SaleMachineGUI$1.class
文件 1405 2011-01-24 21:01 ST.emma.automat\bin\gui\SaleMachineGUI$2.class
文件 3180 2011-01-24 21:01 ST.emma.automat\bin\gui\SaleMachineGUI.class
文件 107210 2011-01-23 20:30 ST.emma.automat\bin\org.eclipse.core.commands_3.6.0.I20100512-1500.jar
文件 101957 2011-01-23 20:29 ST.emma.automat\bin\org.eclipse.equinox.common_3.6.0.v20100503.jar
文件 1068738 2011-01-23 20:16 ST.emma.automat\bin\org.eclipse.jface_3.6.0.I20100601-0800.jar
文件 1738337 2011-01-23 20:15 ST.emma.automat\bin\swt.jar
文件 4817 2011-01-23 20:57 ST.emma.automat\orange.jpeg
目录 0 2011-01-23 21:05 ST.emma.automat\src\
目录 0 2011-01-23 21:05 ST.emma.automat\src\automat\
文件 2406 2011-01-24 15:31 ST.emma.automat\src\automat\SaleMachine.java
文件 512 2011-01-23 21:05 ST.emma.automat\src\automat\SaleMachineMessage.java
文件 1906 2011-01-25 06:16 ST.emma.automat\src\automat\SaleMachineTest.java
目录 0 2011-01-23 21:06 ST.emma.automat\src\gui\
文件 2808 2011-01-23 21:05 ST.emma.automat\src\gui\SaleMachineGUI.java
文件 107210 2011-01-23 20:30 ST.emma.automat\src\org.eclipse.core.commands_3.6.0.I20100512-1500.jar
文件 101957 2011-01-23 20:29 ST.emma.automat\src\org.eclipse.equinox.common_3.6.0.v20100503.jar
文件 1068738 2011-01-23 20:16 ST.emma.automat\src\org.eclipse.jface_3.6.0.I20100601-0800.jar
文件 1738337 2011-01-23 20:15 ST.emma.automat\src\swt.jar
............此处省略0个文件信息
评论
共有 条评论