编程实现以下简单超市管理,具体要求如下:
① 实现描述超市的类Suppermacket类,具有货架属性,记录系统中现有商品,定义盘点商品的函数check(盘点各类商品的数量,并输出盘点结果),查询商品的函数query,并显示查询结果;
② 定义商品类Goods,具有商品名称Name,商品价格Price,商品产地Producer等属性,操作Sale(销售商品,余额不足时给予提示)、Add(商品上架操作)和ShowMe(显示商品信息)。
③ main函数,测试以上所要求的各种功能,即可以根据菜单命令增加、删除、查询商品、盘点商品,以及商品销售和商品上架的操作
提示:① 超市货架可以使用商品数组,数组大小100表明存放100个商品。
② 注意实现商品查询的多态性,要求可以根据商品的名称或产地或价格查询商品的数量。
Goods类:
package Test_2;
public class Goods {
private String Name;
private int Num;
private double Price;
private String Producer;
public Goods(String name, int num, double price, String producer)
{
this.Name = name;
this.Num = num;
this.Price = price;
this.Producer = producer;
}
public Goods() {
}
public String getName() {
return Name;
}
public void setName(String name) {
Name = name;
}
public int getNum() {
return Num;
}
public void setNum(int num) {
this.Num = num;
}
public double getPrice() {
return Price;
}
public void setPrice(double price) {
Price = price;
}
public String getProducer() {
return Producer;
}
public void setProducer(String producer) {
Producer = producer;
}
public void ShowMe(Goods goods) {
System.out.println("商品名称:" + goods.Name +"(商品价格:" + goods.Price +",商品产地:" + goods.Producer +") 商品数量:"+goods.Num) ;
}
public Goods Append(String name, int num, double price, String producer) {
Goods goods = new Goods(name,num,price,producer);
System.out.println("商品已添加!");
return goods;
}
public void Sale(Goods goods,int n) {
if(goods.Num >= n)
{
goods.Num = goods.Num - n;
System.out.println("购买成功!");
System.out.println("售出商品信息更新:");
ShowMe(goods);
}
else
{
System.out.println("商品数量不足" + n +"件");
}
}
}
SuperMarket类:
package Test_2;
import java.util.Scanner;
import java.util.ArrayList;
import java.util.List;
import Test_2.Goods;
public class SuperMarket {
public static Scanner in = new Scanner(System.in);
private List<Goods> goodsList = new ArrayList<Goods>();
public SuperMarket() {
goodsList.add(new Goods("Biscuits",50,10,"korea"));
goodsList.add(new Goods("Beaf",15,80,"Japan"));
goodsList.add(new Goods("Hamburger",30,15,"America"));
goodsList.add(new Goods("Cup",60,5,"China"));
goodsList.add(new Goods("Computer",10,500,"Britain"));
}
public void Check()
{
System.out.println("****************");
System.out.println("商品列表如下!");
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
goods.ShowMe(goods);
}
}
public void search(int n)
{
if(n == 1)
{
System.out.println("请输入商品名称");
String name = in.next();
Query(name);
}
else if (n == 2)
{
System.out.println("请输入商品价格");
double price = in.nextDouble();
Query(price);
}
else if(n == 3)
{
System.out.println("请输入商品产地");
String producer = in.next();
Query(producer);
}
else if(n == 4)
{
System.out.println("请输入商品数量");
int num = in.nextInt();
Query(num);
}
}
public void Query(String n)
{
int temp = -1;
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getName().equals(n))
{
temp = i;
}
}
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getProducer().equals(n))
{
temp = i;
}
}
if(temp == -1)
{
System.out.println("未找到商品!");
}
else
{
System.out.println("已找到商品!");
Goods goods = goodsList.get(temp);
goods.ShowMe(goods);
}
}
public void Query(int num)
{
int temp = -1;
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getNum() == num)
{
temp = i;
}
}
if(temp == -1)
{
System.out.println("未找到商品!");
}
else
{
System.out.println("已找到商品!");
Goods goods = goodsList.get(temp);
goods.ShowMe(goods);
}
}
public void Query(double num)
{
int temp = -1;
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getPrice() == num)
{
temp = i;
}
}
if(temp == -1)
{
System.out.println("未找到商品!");
}
else
{
System.out.println("已找到商品!");
Goods goods = goodsList.get(temp);
goods.ShowMe(goods);
}
}
public void AddGoods()
{
System.out.println("请输入添加商品的名称");
String name = in.next();
System.out.println("请输入添加商品的产地");
String producer = in.next();
System.out.println("请输入添加商品的价格");
double price = in.nextDouble();
System.out.println("请输入添加商品的数量");
int num = in.nextInt();
Goods goods = new Goods();
goods.ShowMe(goods.Append(name,num,price,producer));
}
public void DeleteGoods()
{
System.out.println("请输入删除商品的名称");
String name = in.next();
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getName().equals(name))
{
goods.ShowMe(goods);
System.out.println("是否确认删除?(1/0)");
int num = in.nextInt();
if(num == 1)
{
goodsList.remove(i);
System.out.println("商品已删除");
}
else if(num == 0)
{
System.out.println("已取消删除");
}
}
}
}
public void SaleGoods()
{
System.out.println("请输入所购商品的名称");
String name = in.next();
System.out.println("请输入所购数量");
int num = in.nextInt();
for(int i=0;i < goodsList.size();i++)
{
Goods goods = goodsList.get(i);
if(goods.getName().equals(name))
{
goods.Sale(goods, num);
}
}
}
public void PutGoods() {
System.out.println("请输入添加商品的名称");
String name = in.next();
System.out.println("请输入添加商品的产地");
String producer = in.next();
System.out.println("请输入添加商品的价格");
double price = in.nextDouble();
System.out.println("请输入添加商品的数量");
int num = in.nextInt();
Goods goods = new Goods(name,num,price,producer);
goodsList.add(goods);
goods.ShowMe(goods);
System.out.println("商品已上架");
}
public int showMenu() {
System.out.println("\n****超市管理系统****");
System.out.println("*****1.盘点商品*****");
System.out.println("*****2.查询商品*****");
System.out.println("*****3.增加商品*****");
System.out.println("*****4.删除商品*****");
System.out.println("*****5.销售商品*****");
System.out.println("*****6.商品上架*****");
System.out.println("*****7.退出系统*****");
int choice = in.nextInt();
while(choice < 1 || choice > 7)
{
System.out.println("输入错误,请重新输入!");
choice = in.nextInt();
}
return choice;
}
public int showSearchMenu() {
System.out.println("\n****商品查询系统****");
System.out.println("*****1.查询名称*****");
System.out.println("*****2.查询价格*****");
System.out.println("*****3.查询产地*****");
System.out.println("*****4.查询库存*****");
System.out.println("*****5.退出系统*****");
int choice = in.nextInt();
while(choice < 1 || choice > 5)
{
System.out.println("输入错误,请重新输入!");
choice = in.nextInt();
}
return choice;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
SuperMarket SM = new SuperMarket();
int choice = SM.showMenu();
while(choice != 7)
{
if(choice == 1)
SM.Check();
else if(choice == 2)
{
int searchChoice = SM.showSearchMenu();
if(searchChoice == 5){
System.out.println("*****查找完毕!*****");
}
else{
SM.search(searchChoice);
}
}
else if(choice == 3)
{
SM.AddGoods();
}
else if(choice == 4)
{
SM.DeleteGoods();
}
else if(choice == 5)
{
SM.SaleGoods();
}
else if(choice == 6)
{
SM.PutGoods();
}
else
{
System.out.println("输入错误,请重新输入!");
}
System.out.println("****************");
choice = SM.showMenu();
}
System.out.println("*****谢谢光临!*****");
}
}
写得太僵硬了,还是掌握的知识不够多。
加油啊。