package wryyyyy;
public class goods
{
int id;//商品编号
String name;//商品名称
double price;//商品价格
int buynumber;//购买数量
}
package wryyyyy;
import java.util.Scanner;
public class shopcartest
{
public static void main(String[] args)
{
goods[] shopcar=new goods[100];//[null,null...]
/*
搭建操作架构
*/
while (true) {
System.out.println("请您选择如下命令进行操作:");
System.out.println("添加商品道购物车:add");
System.out.println("添加商品道购物车:query");
System.out.println("修改商品购买数量:update");
System.out.println("结算购买商品的金额:pay");//自动换行
Scanner sc=new Scanner(System.in);//输入,得到一个键盘扫描对象
/*
接收键盘输入,不用限定格式;
后面用到键盘输入时,用sc.next();
(调用sc对象的功能,等待用户输入数据)
用String commmand=sc.next();接收数据
*/
System.out.println("请输入您的命令:");
String command=sc.next();//接收string类型输入
switch (command)
{
case "add":
addgoods(shopcar,sc);
break;
case "query":
querygoods(shopcar);
break;
case "update":
updategoods(shopcar,sc);
break;
case "pay":
pay(shopcar);
break;
default:
System.out.println("没有该功能!");
}
}
}
private static void pay(goods[] shopcar)
{
querygoods(shopcar);
double money=0;
for (int i = 0; i < shopcar.length; i++)
{
goods g=shopcar[i];
if(g!=null)
{
money+=(g.price*g.buynumber);
}
else
{
break;
}
}
System.out.println("订单总金额:"+money);
}
private static void updategoods(goods[] shopcar,Scanner sc)
{
while (true) {
System.out.println("请您输入要修改的商品id:");
int id=sc.nextInt();
goods g=getgoodsbyid(shopcar,id);
if(g==null)
{
System.out.println("没有购买该商品!");
}
else
{
System.out.println("请输入"+g.name+"商品最新购买数量:");
int buynumber= sc.nextInt();
g.buynumber=buynumber;
System.out.println("修改成功");
querygoods(shopcar);
break;
}
}
}
public static goods getgoodsbyid(goods[] shopcar,int id)//友元函数???
{
for (int i = 0; i < shopcar.length; i++)
{
goods g=shopcar[i];
if (g!=null)
{
if(g.id==id)
{
return g;
}
}
else
{
return null;
}
}
return null;
}
private static void querygoods(goods[] shopcar)
{
System.out.println("================查询购物车信息如下==================");
System.out.println("编号\t\t名称\t\t价格\t\t\t购买数量");
for (int i = 0; i < shopcar.length; i++)
{
goods g=shopcar[i];
if(g!=null)
{
System.out.println(g.id+"\t\t"+g.name+"\t\t"+g.price+"\t\t"+g.buynumber);
}
else
{
break;
}
}
}
private static void addgoods(goods[] shopcar,Scanner sc)
{
/*
让用户录入商品信息,创建商品对象封装商品信息;
把商品对象加入到购物车数组中去;
查询购物车信息,遍历购物车中商品对象;
*/
//录入商品需要扫描器,但也把扫描器对象可以传过来(或者扫描器放在main外)
System.out.println("请您输入购买商品的编号(不重复):");
int id=sc.nextInt();
System.out.println("请您输入购买商品的名称:");
String name=sc.next();
System.out.println("请您输入购买商品的数量:");
int buynumber=sc.nextInt();
System.out.println("请您输入购买商品的价格:");
double price=sc.nextDouble();
//把商品信息封装到商品对象中
goods g=new goods();
g.id=id;
g.name=name;
g.buynumber=buynumber;
g.price=price;
//把这个商品添加到购物车数组中去;查询购物车信息,遍历购物车中商品对象;
for (int i = 0; i < shopcar.length; i++)
{
if(shopcar[i]==null)
{
shopcar[i] = g;//对象变量里面存的是一块地址
break;
}
}
System.out.println("您的商品:"+g.name+"添加到购物车完成");
}
}