各位亲爱的小伙伴们,大家好!
欢迎来到美美自助商场,首先请建立商品信息,然后选购商品、确定购买数量,放入购物车,计算出总价格到结算中心进行结算。美美商场祝您购物愉快噢!
输入格式:
首行是美美商场的商品种类的数量N;
接下来是N行商品信息,每行商品信息为:商品编号、商品名称、生产商、商品价格、库存数量;
接下来是顾客购物操作的次数M;
最后,是M行的顾客购买商品的操作,每行购买信息为:商品编号、购买或退货的数量count(>0)、购物标志(1--购买,购物车中该商品数量增加;2--退货,购物车中该商品数量减少;3-删除商品,购物车中该商品数量清0,删除操作时count列的值无效)。
美美商场友情提示:
1、0<购买数量<商品库存数量,正常购买;购买数量>商品库存数量,只能购买现库存数量。
2、0<退货数量<购物车中商品数量时,正常退货;退货数量>购物车中商品数量,只能退现在购物车数量;
3、购物车中商品数量>0时,删除商品成功。
4、您购买商品,退货或者从购物车删除商品这些操作成功时,一定要记得同时增减购物车中商品数量和该商品的库存数量噢!
输出格式:
第一部分:购物车中的所有商品详情。
第一行是购物车中商品的数量T;若T=0,则无商品详情信息输出。
接下来是T行商品详情,按照商品编号从小到大的顺序进行输出。
每种商品占一行,详情信息包括:商品编号、商品名称、生产商、商品价格(保留2位小数)、商品最新库存数量、已购买的商品数量。数据之间用1个空格分隔。
最后一行输出:购物车中商品的总价格。(保留2位小数)
第二部分:现有商品清单信息。
第一行是商品的数量N。
接下来是N行商品详情,按照商品编号从小到大的顺序进行输出。
每种商品占一行,详情信息包括:商品编号、商品名称、生产商、商品价格(保留2位小数)、商品最新库存数量。数据之间用1个空格分隔。
输入样例:
5
1 运动鞋 Adidas 300.80 10
2 蓝球服 李宁 268.00 10
3 苹果 栖霞 5.00 500
4 智能手表 苹果 4888.00 10
5 鼠标 罗技 120.00 50
9
1 5 1
3 5 1
4 1 1
3 2 2
5 2 1
1 2 1
5 0 3
3 1 1
3 5 2
输出样例:
2
1 运动鞋 Adidas 300.80 3 7
4 智能手表 苹果 4888.00 9 1
6993.60
5
1 运动鞋 Adidas 300.80 3
2 蓝球服 李宁 268.00 10
3 苹果 栖霞 5.00 500
4 智能手表 苹果 4888.00 9
5 鼠标 罗技 120.00 50
代码长度限制
16 KB
时间限制
400 ms
内存限制
64 Mb
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int N;
int no;
String name;
String name1;
double prise;
int geshu;
N=sc.nextInt();
ArrayList m=new ArrayList();
ArrayList a=new ArrayList();
ArrayList li=new ArrayList();
//ShangPin sp=new ShangPin();
for(int i=0;i<N;i++) {
no=sc.nextInt();
name=sc.next();
name1=sc.next();
prise=sc.nextDouble();
geshu=sc.nextInt();
li.add(new ShangPin(no,name,name1,prise,geshu));
a.add(new ShangPin(no,name,name1,prise,geshu));
}
/*System.out.println("=============================================");
for(int q=0;q<a.size();q++) {
System.out.println(li.get(q));
}*/
int M;
M=sc.nextInt();
for(int i=1;i<=M;i++) {
int xuanze=sc.nextInt();
int ges=sc.nextInt();
int caozuo=sc.nextInt();
for(int y=0;y<li.size();y++) {
ShangPin s=(ShangPin)li.get(y);
ShangPin s1=(ShangPin)a.get(y);
if(s.getNo()==xuanze) {
if(caozuo==1) {
s.geshu=s.geshu-ges;
}else if(caozuo==2) {
if(s.geshu+ges>s1.geshu) {
s.geshu=s1.geshu;
}else
s.geshu=s.geshu+ges;
}else {
s.geshu=s1.geshu;
}
}
}
}
//System.out.println("=============================================");
int index=0;
double sum=0.0;
for(int y=0;y<li.size();y++) {
ShangPin s=(ShangPin)li.get(y);
ShangPin s1=(ShangPin)a.get(y);
if(s.geshu!=s1.geshu) {
index++;
sum=sum+s.prise*(s1.geshu-s.geshu);
}
}
System.out.println(index);
for(int y=0;y<li.size();y++) {
ShangPin s=(ShangPin)li.get(y);
ShangPin s1=(ShangPin)a.get(y);
if(s.geshu!=s1.geshu) {
System.out.print(s.no+" "+s.name+" "+s.name1+" ");
System.out.printf("%.2f",s.prise);
System.out.println(" "+s.geshu+" "+(s1.geshu-s.geshu));
}
}
System.out.printf("%.2f\n",sum);
System.out.println(li.size());
for(int q=0;q<li.size();q++) {
ShangPin s=(ShangPin)li.get(q);
ShangPin s1=(ShangPin)a.get(q);
System.out.print(s.no+" "+s.name+" "+s.name1+" ");
System.out.printf("%.2f",s.prise);
System.out.println(" "+s.geshu);
}
//System.out.println("运行结束");
}
}
class ShangPin{
int no;
String name;
String name1;
double prise;
int geshu;
public ShangPin() {
}
public ShangPin(int no,String name,String name1,double prise,int geshu) {
this.no=no;
this.name=name;
this.name1=name1;
this.prise=prise;
this.geshu=geshu;
}
public int getNo() {
return no;
}
public void setNo(int no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrise() {
return prise;
}
public void setPrise(double prise) {
this.prise = prise;
}
public int getGeshu() {
return geshu;
}
public void setGeshu(int geshu) {
this.geshu = geshu;
}
public String getName1() {
return name1;
}
public void setName1(String name1) {
this.name1 = name1;
}
@Override
public String toString() {
return no + " " + name + " " + name1 + " " + prise + " " + geshu
;
}
}