java 商品管理的效果实现

啥也不说;;;直接上代码!!!
1、main函数

package goin;

import fenlei.shopping;
import fenlei.shuxin;

/**
 * 
 * @Description
 * @author huoyu   Email:2319899766@qq.com
 * @version
 * @date 2020年2月10日上午9:17:20
 *
 */
public class zhu {
//测试类
	
	public static void main(String[] args) {
		shopping hh=new shopping();
		hh.shuwmenu();

		
	}

}

2、shopping.java

package fenlei;

import java.util.Scanner;

/**
 * 
 * @Description 管理大量的商品对象信息
 * @author huoyu   Email:2319899766@qq.com
 * @version 6.6.6版本
 * @date 2020年2月10日上午9:17:11
 *
 */
public class shopping {

	shuxin[] yh=new shuxin[200];//可以用yh调用数组里的商品信息
	int index=0;//代表对象数组中现有的元素个数 下一次添加新商品对象储存的下标位置
	public boolean addsp(String name,double money ,int tiaoma,int num){
		//传入的数组组装成商品对象
		shuxin s=new shuxin(name,money,tiaoma,num);
		//验证该对象是否已经在数组中
		int f=getflag(s.getTiaoma());
		if (f==-1) {
			//新商品的条码没有出现过
			yh[index]=s;
			index++;
			return true;	
		}
		else {
			//商品信息存在
			return false;
		}
	}
	//根据商品条码获取商品对象在数组中的下标位置
	public int getflag(int tiaoma){
		int flag=-1;
		for (int i = 0; i < index; i++) {
			if (tiaoma==yh[i].getTiaoma()) {
				flag=i;
				break;
			}
		}
		return flag;
	}
	
	
	public void sortBycount(){
		//查询全部的商品,并且以价格的升序排序
		for (int i = 0; i < index-1; i++) {
			for (int j = 0; j < index-i-1; j++) {
				//比较的是两个对象的数量属性大小
				if (yh[j].getNum()>yh[j+1].getNum()) {
					//交换的应该是两个对象的位置交换
					shuxin k=yh[j];//地址备份
					yh[j]=yh[j+1];
					yh[j+1]=k;
				}
			}
		}
		
	}
	
	public void findall(){
		//全查询
		System.out.println("商品名称\t商品价格\t商品条码\t商品价格\t");
		for (int i = 0; i < index; i++) {
			System.out.println(yh[i].getName()+"\t"+yh[i].getMoney()+"\t"+yh[i].getTiaoma()+"\t"+yh[i].getNum());
		}
	}
	Scanner input=new Scanner(System.in);
	//购买商品
	public double getmoney(){
		double sum=0;
		String answer;
		do {
			System.out.println("请输入条码");
			int  c=input.nextInt();
			//调用根据查找下标位置的方法
			int i=getflag(c);
			if (i==-1) {
				System.out.println("没有找到要结算的商品信息");
			} else {
				//找到了要结算的商品信息  可以结算
				//修改这件商品的剩余数量
				if (yh[i].getNum()>0) {
					yh[i].setTiaoma(yh[i].getTiaoma()-1);
				}
				//累加总价
				sum+=yh[i].getTiaoma();
			}
			System.out.println("是否继续?y/n");
			answer=input.next();
		} while (answer.equals("y"));
		return 0;
		
	}
	
	/**
	 * 补货方法
	 */
	//根据商品条码修改商品的数量
	public  String modify (int tiaoma,int num){
		if (num>0) {
			//补货商品数量合理  可以进行操作
			int f=getflag(tiaoma);
			if(f==-1){
				//没有找到对应条码的商品
				return "没有匹配的商品信息";
			}
			else{
				//找到商品
				yh[f].setNum(yh[f].getNum()+num);
				return"商品补货成功";
			}
		}
		else{
			return "数量填写有误";
			
		}
	}
	//商品下架(删除商品的方法)
	public String remove(int tiaoma){
		//查找对应条码的商品是否存在
		int f=getflag(tiaoma);//返回的是对应条码的商品对象在对象数组中的下标位置
		if (f==-1) {
			//没有找到该商品的信息
			return"没有找到此类商品";
		} else {
			for (int i = f; i < index-1; i++) {
				yh[i]=yh[i+1];//后面一个替换前面一个
			}
			index--;//替换完成以后,将整个数组进行减一个
		}
		return null;
		
	}

	//计算所有商品的总价值
	public double getSum(){
		//准备一个总价的容器
		double sum=0;
		for (int i = 0; i < yh.length; i++) {
			sum+=yh[i].getNum()*yh[i].getMoney();//计算
		}
		return sum;
		
	}
	//菜单方法 将上面的功能整合起来
	public void shuwmenu(){
		System.out.println("1.新商品入库 2.商品清单展示3.购物结算4.补货5.下架6.查看总价值7.退出");
		int choose=input.nextInt();
		switch (choose) {
		case 1:
			//解收用户输入必要的方法参数
			System.out.println("请输入新商品的名称");
			String code=input.next();
			System.out.println("请输入新商品的价格");
			int money=input.nextInt();
			System.out.println("请输入新商品的条码");
			int tiaoma=input.nextInt();
			System.out.println("请输入新商品的数量");
			int count=input.nextInt();
			System.out.println(addsp(code,money,tiaoma,count)?"新增商品成功":"新增商品失败");
			shuwmenu();
			break;
		case 2:
			sortBycount();//排序
			findall();//展示
			shuwmenu();
			
			break;
		case 3:
			double money1=getmoney();
			System.out.println("您总计消费"+money1+"元!");
			shuwmenu();
			break;
		case 4:
			System.out.println("请输入要补货的商品条码:");
			int c1=input.nextInt();
			System.out.println("请输入商品的补货数量:");
			int count1=input.nextInt();
			System.out.println(modify(c1, count1));
			shuwmenu();
			break;
		case 5:
			System.out.println("请输入要下架的商品条码:");
			int c2=input.nextInt();
			System.out.println(remove(c2));
			shuwmenu();
			break;
		case 6:
			System.out.println("所以商品总价值为:"+getSum()+"元!");
			shuwmenu();
			break;
		case 7:
			System.out.println("谢谢使用!再见!");
			break;
		default:
			System.out.println("错误的选择!请重新输入!");
			shuwmenu();
			break;
		}
	}
}


3、shuxin.java

package fenlei;
/**
 * 
 * @Description
 * @author huoyu   Email:2319899766@qq.com
 * @version
 * @date 2020年2月10日上午9:16:56
 *
 */
public class shuxin {

	//private属性私有化
	//名称,单价,条码,数量
	private String name;
	private double money;
	private int tiaoma,num;
	public shuxin(){
		
	}
	//构造方法
	public shuxin(String name,double money ,int tiaoma,int num){
		this.setName(name);
		this.setMoney(money);
		this.setTiaoma(tiaoma);
		this.setNum(num);
	}
	
	public String getName(){
		return name;
	}
	public void setName(String name){
		this.name=name;
	}
	public double getMoney() {
		return money;
	}
	public void setMoney(double money) {
		if (money>=0) {
			this.money = money;//给一个限制
		}
	}
	public int getTiaoma() {
		return tiaoma;
	}
	public void setTiaoma(int tiaoma) {
		this.tiaoma = tiaoma;
	}
	public int getNum() {
		return num;
	}
	public void setNum(int num) {
		if (num>=0) {//给一个限制
			this.num = num;
		}
		
	}
	
	
}

只要这三个代码就可以实现了,代码里面的基本操作和作用也注释了

如果是新手的话这个例子还是不错的,看了之后,可以自己下来实现以下,对应得ppt要求和说明我也上传一下,方便大家更能有效的去理解和学习,谢谢!

posted @ 2020-02-10 17:03  Rosemajor  阅读(423)  评论(0)    收藏  举报