小组成员:网络2113 付浩帆 吕威
任务分配:付浩帆:面向对象设计,功能设计,编码规范,前期调查。
吕威:制作博客
参考连接:购物车程序的面向对象设计_网络2013何镇宇的博客-CSDN博客
准备实现的功能有:1.查找商品;2.删除购物车内商品;3.添加商品到购物车;4.添加新商品;5.计算购物车内商品总价;6.修改购物车内商品数量。
客户进入主菜单可以查看自己购物车内的商品,删除购物车内不想要的商品,添加自己想要的商品,且可以增加所需商品的数量,还可以搜索程序所原代的商品,还可以添加新商品。
1.前期调查:
京东的购物车中,有商品的名称,可以添加删除商品,还可以修改要购买商品的数量,也可以看到商品的价格,通过勾选所需商品最后能显示出商品的总价。
2.系统功能结构:
3.系统功能描述。
客户进入主菜单可以查看自己购物车内的商品,删除购物车内不想要的商品,添加自己想要的商品,且可以增加所需商品的数量,还可以搜索程序所原代的商品,还可以添加新商品.
4.功能:
(一)功能1:主菜单界面,代码如下:
class Menu{//菜单显示
public void display() {
System.out.println("********菜单界面**********");
System.out.println(" a.购物车商品显示 ");
System.out.println(" b.初始化商品内容加入购物车 ");
System.out.println(" c.删除购物车商品 ");
System.out.println(" d.结算购物车商品 ");
System.out.println(" e.购物车商品数量添加 ");
System.out.println(" f.购物车商品添加 ");
System.out.println(" g.商品搜索 ");
System.out.println("请输入选项: ");
}
}
(二)功能2:商品属性,代码如下:
class Commidity{//商品属性
private int id;
private String name;
private double price;
private int num;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public String toString() {
return "Commidity [id=" + id + ", name=" + name + ", price=" + price + ", num=" + num + "]";
}
public Commidity(int id, String name, double price, int num) {
super();
this.id = id;
this.name = name;
this.price = price;
this.num = num;
}
(三)功能3:购物车相关操作,代码如下:
class Cart{//购物车相关操作
public static ArrayList<Commidity> shoplist = new ArrayList<>();
public void putCart(Commidity s){
shoplist.add(s);
}
public static void delete(int produceID) {
shoplist.remove(produceID);
}
public void search(String n) {
for (int i = 0;i < shoplist.size();i++) {
if(n.equals(shoplist.get(i).getName())) {
System.out.println(shoplist.get(i));
}
}
}
public static void addNum(String m,int num) {
for (Commidity c : shoplist) {
if(m.equals(c.getName()))
c.setNum(c.getNum()+num);
}
}
public static void addCommidity(int id,String name,double price,int num) {
Commidity c = new Commidity(id,name, price, num);
shoplist.add(shoplist.size(),c );
}
public static void display() {
for (Commidity commidity : shoplist) {
System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
}
}
public static double numPrice() {
double p = 0;
for (int i = 0;i<shoplist.size();i++) {
p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
}
System.out.println("********商品总价钱 = " + p +"********");
return p;
}
四,功能四启动代码,代码如下:
public class Main {
public static void main(String[] args) {
Commidity c1 = new Commidity(1,"IPhonex",3690,10);
Commidity c2 = new Commidity(2,"IPhone11",4199,9);
Commidity c3 = new Commidity(3,"IPhone12",4699,8);
Commidity c4 = new Commidity(4,"IPhone13",5299,7);
Commidity c5 = new Commidity(5,"IPhone14",5999,6);
Scanner in = new Scanner(System.in);
int a;
int num;
String n;
String m;
Cart cart = new Cart();
Menu menu = new Menu();
while(in.hasNextLine()) {
menu.display();
String choice = in.nextLine();
switch(choice)
{
case"a":
cart.display();
case"b":
cart.putCart(c1);
cart.putCart(c2);
cart.putCart(c3);
cart.putCart(c4);
cart.putCart(c5);
break;
case"c":
a = in.nextInt();
cart.delete(a);
System.out.println("购物车商品删除成功!!!");
break;
case"d":
double x = cart.numPrice();
break;
case"e":
System.out.println("请输入想要添加的商品数量");
m = in.nextLine();
num = in.nextInt();
cart.addNum(m,num);
break;
case"f":
System.out.println("请输入新加商品编号");
int ID = in.nextInt();
System.out.println("请输入新加商品品名");
String name = in.nextLine();
System.out.println("请输入新加商品价格");
double price = in.nextDouble();
System.out.println("请输入新加商品数量");
int Num = in.nextInt();
Cart.addCommidity(ID,name, price, Num);
break;
case"g":
System.out.println("请输入想要搜索的商品名");
n = in.nextLine();
cart.search(n);
break;
}
}
in.close();
}
5.源代码:代码如下:
class Cart{//购物车相关操作
public static ArrayList<Commidity> shoplist = new ArrayList<>();
public void putCart(Commidity s){
shoplist.add(s);
}
public static void delete(int produceID) {
shoplist.remove(produceID);
}
public void search(String n) {
for (int i = 0;i < shoplist.size();i++) {
if(n.equals(shoplist.get(i).getName())) {
System.out.println(shoplist.get(i));
}
}
}
public static void addNum(String m,int num) {
for (Commidity c : shoplist) {
if(m.equals(c.getName()))
c.setNum(c.getNum()+num);
}
}
public static void addCommidity(int id,String name,double price,int num) {
Commidity c = new Commidity(id,name, price, num);
shoplist.add(shoplist.size(),c );
}
public static void display() {
for (Commidity commidity : shoplist) {
System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
}
}
public static double numPrice() {
double p = 0;
for (int i = 0;i<shoplist.size();i++) {
p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
}
System.out.println("********商品总价钱 = " + p +"********");
return p;
}
}
(四)功能四:启动代码,代码如下:
package 购物车程序的面向对象设计;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Scanner;
class Menu{//菜单显示
public void display() {
System.out.println("********菜单界面**********");
System.out.println(" a.购物车商品显示 ");
System.out.println(" b.初始化商品内容加入购物车 ");
System.out.println(" c.删除购物车商品 ");
System.out.println(" d.结算购物车商品 ");
System.out.println(" e.购物车商品数量添加 ");
System.out.println(" f.购物车商品添加 ");
System.out.println(" g.商品搜索 ");
System.out.println("请输入选项: ");
}
}
class Commidity{//商品属性
private int id;
private String name;
private double price;
private int num;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public String toString() {
return "Commidity [id=" + id + ", name=" + name + ", price=" + price + ", num=" + num + "]";
}
public Commidity(int id, String name, double price, int num) {
super();
this.id = id;
this.name = name;
this.price = price;
this.num = num;
}
}
class Cart{//购物车相关操作
public static ArrayList<Commidity> shoplist = new ArrayList<>();
public void putCart(Commidity s){
shoplist.add(s);
}
public static void delete(int produceID) {
shoplist.remove(produceID);
}
public void search(String n) {
for (int i = 0;i < shoplist.size();i++) {
if(n.equals(shoplist.get(i).getName())) {
System.out.println(shoplist.get(i));
}
}
}
public static void addNum(String m,int num) {
for (Commidity c : shoplist) {
if(m.equals(c.getName()))
c.setNum(c.getNum()+num);
}
}
public static void addCommidity(int id,String name,double price,int num) {
Commidity c = new Commidity(id,name, price, num);
shoplist.add(shoplist.size(),c );
}
public static void display() {
for (Commidity commidity : shoplist) {
System.out.println("商品编号 = "+commidity.getId()+"商品名称 = "+commidity.getName()+" 商品价格 = "+commidity.getPrice()+" 商品数量 = "+commidity.getNum());
}
}
public static double numPrice() {
double p = 0;
for (int i = 0;i<shoplist.size();i++) {
p+=shoplist.get(i).getPrice()*shoplist.get(i).getNum();
}
System.out.println("********商品总价钱 = " + p +"********");
return p;
}
}
public class Main {
public static void main(String[] args) {
Commidity c1 = new Commidity(1,"IPhonex",3690,10);
Commidity c2 = new Commidity(2,"IPhone11",4199,9);
Commidity c3 = new Commidity(3,"IPhone12",4699,8);
Commidity c4 = new Commidity(4,"IPhone13",5299,7);
Commidity c5 = new Commidity(5,"IPhone14",5999,6);
Scanner in = new Scanner(System.in);
int a;
int num;
String n;
String m;
Cart cart = new Cart();
Menu menu = new Menu();
while(in.hasNextLine()) {
menu.display();
String choice = in.nextLine();
switch(choice)
{
case"a":
cart.display();
case"b":
cart.putCart(c1);
cart.putCart(c2);
cart.putCart(c3);
cart.putCart(c4);
cart.putCart(c5);
break;
case"c":
a = in.nextInt();
cart.delete(a);
System.out.println("购物车商品删除成功!!!");
break;
case"d":
double x = cart.numPrice();
break;
case"e":
System.out.println("请输入想要添加的商品数量");
m = in.nextLine();
num = in.nextInt();
cart.addNum(m,num);
break;
case"f":
System.out.println("请输入新加商品编号");
int ID = in.nextInt();
System.out.println("请输入新加商品品名");
String name = in.nextLine();
System.out.println("请输入新加商品价格");
double price = in.nextDouble();
System.out.println("请输入新加商品数量");
int Num = in.nextInt();
Cart.addCommidity(ID,name, price, Num);
break;
case"g":
System.out.println("请输入想要搜索的商品名");
n = in.nextLine();
cart.search(n);
break;
}
}
in.close();
}
/*public static void Join1() {
for(int i=0;i<s.length;i++) {
cart.putCart(s[i]);
}
cart.display();
}*/
/*public static Commidity[] input1(Scanner in) {
Cart cart = new Cart();
int n = in.nextInt();
Commidity[] s = new Commidity[n];
for(int i =0;i<n;i++){
String name = in.next();
double price = in.nextDouble();
int num = in.nextInt();
s[i] = new Commidity(name,price,num);
cart.putCart(s[i]);
}
return s;
}*/
}
开发工具:Eclipse