完成一个自购贩售机模型 贩售机中可以容纳一定数量(1 贩售机可以接受用户投入钱
贩售机可以让用户投入钱并且选择所需要购买的商品,选择之后比较投入钱币金额和商品单价.如果满足则吐出商品(不用找零)
用户可以查看贩售机中各种商品的数量
贩售机可以提供一个添加商品的入口
说是要用面向对象
贩售机可以让用户投入钱并且选择所需要购买的商品,选择之后比较投入钱币金额和商品单价.如果满足则吐出商品(不用找零)
用户可以查看贩售机中各种商品的数量
贩售机可以提供一个添加商品的入口
说是要用面向对象
贩售机可以看成对象
所以我们创建一个贩售机的类 */
Class 贩售机
{
//然后我们再来实现你老师的需求,首先是添加商品,也就是写方法吧
public static void 添加商品()
//接下来你老是需要些什么功能全部用方法写在下面就可以了
}
大概就是这个样子,具体的代码和这其中设计到的变量这些这些就得你自己想和写了。希望对你有帮助哈
import java.util.ArrayList;
import java.util.Scanner;public class Shop {
Scanner scan = new Scanner(System.in);
ArrayList<Commodity> al = new ArrayList<Commodity>();
public Commodity addCom() {
System.out.println("请输入添加商品的种类,价格:");
Commodity c = new Commodity();
c.setType(scan.next());
c.setPrice(scan.nextDouble());
al.add(c);
return c;
}
public void findAll() {
for(int i = 0; i < al.size(); i ++) {
int count = 0;
for(int j = 0; j < al.size(); j ++) {
if(al.get(i).getType().equals(al.get(j).getType()) && al.get(i).getPrice() == al.get(j).getPrice()) {
count ++;
}
}
System.out.println(al.get(i) + "," + "总量为:" + count);
}
}
public void shopping(double money, Commodity c) {
if(money >= c.getPrice()) {
System.out.println("交易成功!");
al.remove(c);
} else {
System.out.println("交易失败,您的金额不足!");
}
}
public static void main(String[] args) {
Shop s = new Shop();
String type;
double money;
while(true) {
System.out.println("1 --- 添加商品");
System.out.println("2 --- 显示库存");
System.out.println("3 --- 购买商品");
System.out.println("请选择输入:");
char choose = s.scan.next().charAt(0);
switch(choose) {
case '1' :
s.addCom();
System.out.println("添加成功!");
break;
case '2' :
s.findAll();
break;
case '3' :
boolean succeed = false;
System.out.println("请输入 所需商品名称:");
type = s.scan.next();
for(int i = 0; i < s.al.size(); i ++) {
if(s.al.get(i).getType().equals(type)) {
System.out.println(s.al.get(i));
System.out.println("请投币:");
money = s.scan.nextDouble();
s.shopping(money, s.al.get(i));
succeed = true;
break;
}
}
if(!succeed) {
System.out.println("查无此货");
}
break;
default :
System.out.println("您的输入有误,请重新输入!");
}
}
}
}
public class Commodity {
private String type;
private double price;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public String toString() {
return "商品名称:" + this.type + ",商品价格:" + this.price + "元";
}
}
Things[] things = new Things[];
public static void 添加商品(){
}
public static show(){
}
public static buy(int price){
}
}
class Things{
int price;
int count;
}
import java.util.Iterator;
import java.util.Map.Entry;
import java.util.Set;public class ShopTest {
private static HashMap<Goods,Integer> map = new HashMap<Goods,Integer>();
//添加商品。
public void addGoods(Goods good){
boolean flag =false;
//如果存在该商品,数量+1;
Set<Entry<Goods,Integer>> set=map.entrySet();
for(Iterator<Entry<Goods,Integer>> ite = set.iterator();ite.hasNext();){
Entry<Goods,Integer> entry = ite.next();
Goods good1 = entry.getKey(); //商品对象
//贩售机存在商品
if(good1.getName().equals(good.getName())){
int number = entry.getValue();//指定商品数量
number+=1;
map.put(good1,number);
flag = true;
}
}
//贩售机不存在商品
if(!flag){
map.put(good,1);
}
}
//查看商品详细信息。
public void showGoods(){
Set<Entry<Goods,Integer>> set=map.entrySet();
for(Iterator<Entry<Goods,Integer>> ite = set.iterator();ite.hasNext();){
Entry<Goods,Integer> entry = ite.next();
Goods good = entry.getKey(); //商品对象
int number = entry.getValue();//指定商品数量
System.out.println("商品名称:"+good.getName()+" 商品价格:"+good.getPrice()+" 数量:"+number);
}
}
//能否购买商品。
public boolean canBuy(String name,int coin){
Set<Entry<Goods,Integer>> set=map.entrySet();
for(Iterator<Entry<Goods,Integer>> ite = set.iterator();ite.hasNext();){
Entry<Goods,Integer> entry = ite.next();
Goods good = entry.getKey(); //商品对象
int number = entry.getValue();//指定商品数量
if(good.getName().equals(name)){
if(coin>=good.getPrice()){
number-=1;
//如果商品卖完了,直接删除这个商品。
if(0==number){
map.remove(good);
}
//否则更新商品数量-1
else{
map.put(good,number);
}
System.out.println("购买成功");
return true;
}
else{
System.out.println("对不起,您金额不够!");
return false;
}
}
}
System.out.println("购买失败");
return false;
}
public static void main(String[] args) {
//测试数据
ShopTest test = new ShopTest();
Goods baishi = new Goods("百事可乐",3.5f);
Goods xuebi = new Goods ("雪碧",3);
test.addGoods(baishi);
test.addGoods(xuebi);
test.showGoods();
System.out.println("--------");
Goods xuebi2 = new Goods("雪碧",3);
test.addGoods(xuebi2);
test.showGoods();
test.canBuy("雪碧",3);
System.out.println("----------");
test.showGoods();
}
}
//商品类。
class Goods{
private String name; //商品名.
private float price; //价格.
public Goods(){
}
public Goods(String name,float price){
this.name=name;
this.price=price;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public float getPrice() {
return price;
}
public void setPrice(float price) {
this.price = price;
}
}可以优化下的。。