啥也不说;;;直接上代码!!!
1、main函数
package goin;
import fenlei.shopping;
import fenlei.shuxin;
public class zhu {
//测试类
public static void main(String[] args) {
shopping hh=new shopping();
hh.shuwmenu();
}
}
2、shopping.java
package fenlei;
import java.util.Scanner;
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;
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要求和说明我也上传一下,方便大家更能有效的去理解和学习,谢谢!