Red de conocimiento informático - Aprendizaje de código fuente - Código fuente de supermercado fresco

Código fuente de supermercado fresco

Aprendí Java antes y hice un ejemplo que vale la pena aprender.

1. Primero, enumeré la estructura de clases de Java que necesitamos.

1) base de datos Java: una base de datos que simula el almacenamiento de productos básicos.

2) Bean MC. La clase de entidad Java-commodity, un javabean ordinario, contiene los atributos básicos del producto básico.

3) orderitembean.Formulario de pedido Java.

4) carro de compras. Java: este es el carro de compras principal, que por supuesto es relativamente simple.

5)testshoppingcar. Java: esta es una clase de prueba.

2. El código específico y los comentarios clave se publican a continuación.

Database.java

Base de datos de clase pública {

/* El mapa se utiliza para almacenar datos de productos. ¿Por qué? Creo que debes pensar en este tema tú mismo.

* El número entero es el valor clave del Mapa y McBean es el valor del Mapa.

*/

Mapa estático privado lt entero, McBean gtdata = nuevo HashMap lt entero, McBean gt()

Base de datos pública(){< /p; >

McBean Bean = new McBean();

bean .setid(1

Bean.setName("batata");

p>

precio de bean.set(2.0);

Bean.setInstuction("batata fresca");

data.put(1, bean);//Set el producto Poner en el mapa

bean = newMcBean();

bean setid(2);

bean set name(" patata ");

precio de bean.set(1.2);

Bean.setInstuction("Patatas buenas y grandes");

data.put(2, bean); //Pon el producto en el mapa

bean = newMcBean();

bean.setid(3);

Bean.setName( "Luffa") ;

precio de bean.set(1.5);

Bean.setInstuction("Local Luffa");

data.put(3, bean); /Colocar el producto en el mapa

}

Public void setMcBean(McBean){

data.put(mcBean.getId( ), MC bean);

}

McBean público getMcBean(int nid) {

Devuelve data.get(NID);

}

}

McBean.java

Clase pública McBean{

ID int privada//número de artículo

Nombre de cadena privada; //Nombre del producto

Precio doble privado; //Precio del producto

Comando de cadena privada //Descripción del producto

public int getId() {

Identificación de retorno;

}

public void setId(int id) {

this.id = id

}

Cadena pública getName() {

Nombre devuelto;

}

public void setName(nombre de cadena){

this.name = nombre

}

public double getPrice() {

Precio de retorno

}

Precio público no válido (precio doble) {

this.price = precio

}

Cadena pública getinstruction(){

Instrucción de devolución;

}

Instrucción de configuración de anulación pública (instrucción de cadena){

this.instuction = instrumento

}

}

ShoppingCar.java

Vagón de compras público{

Precio total doble privado //El precio total de todos los artículos en el carrito de compras

Int privado

otalCount//Cantidad de todos los artículos en el carrito de compras

Mapa privado lt entero, OrderItemBean gtitemMap//Par clave-valor de número de artículo y artículo de pedido

Carrito de compras público(){

itemMap = new HashMap lt entero, OrderItemBean gt();

}

compra pública nula (internacional){

Pedido OrderItemBean = elemento map.get(NID);

McBeanMB;

if (order == null) {

mb = nueva base de datos(). getMcBean(NID);

pedido = nuevo OrderItemBean(mb, 1

itemMap.put(nid, pedido

actualización(nid, 1);

} De lo contrario {

pedir set count(order . get count()

update (nid, 1); >

}

}

Eliminación de anulación pública (int nid) {

OrderItemBean de order = item map remove(NID);

recuento total = recuento total-de lorder . get count();

precio total = precio total-de lorder . getPrice()* delorder .get count();

}

Actualización de anulación pública (int nid, int count) {

OrderItemBean orden arriba = mapa de artículos . get(NID);

recuento total = recuento total;

precio total = precio total del pedido. getPrice()* recuento;

}

Public void clear() {

mapa de elementos clear();

recuento total. = 0;

Preciototal = 0.0

}

Public void show() {

DecimalFormat df = new DecimalFormat(" # . ##");

System.out.println("Número de producto\tNombre del producto\tPrecio unitario\tCantidad de compra\tPrecio total");

set set = mapa de artículos. conjunto de claves ();

Iterador it = set . iterador();

while (it.hasNext()) {

Pedido OrderItemBean = mapa de elementos. it . next());

system out . println(order . getthing().getId() "\t "

order.getThing() .

getName() "\t "

df.format(order.getThing().getPrice()) " \t " orden get count()

" \t " df. . format(order . get count()* order . getthing().getPrice()));

}

System.out.println ("total: cantidad total:" df.format(totalCount) "Precio total:" df .format(precio total));

system out . * * * * * * * * * * *);

}

}

OrderItemBean.java

Clase pública OrderItemBean {

Cosa privada de McBean; // La entidad del producto

private int count; // La cantidad del producto

public OrderItemBean(Cosa de McBean, int contar) {

super();

this.thing = thing

this.count = count

}

Public McBean Get(){

Devolver algo;

}

Configuración pública vacía (cosa de McBean){

esto .cosa = cosa

}

public int getCount() {

Recuento de devoluciones;

}

public void setCount(int recuento) {

this.count = recuento

}

}

TestShoppingCar.java

Paquete com.shop

Clase pública TestShoppingCar {

Public static void main(String[] args) {

carro de compras s = auto de compras nuevo ();

s . buy(1); //Compra el producto con el número de producto 1.

s .comprar(1);

s . .buy(1);

s .show();//Mostrar información del carrito de compras.

s .delete(1); //Eliminar el producto con el número de producto 1.

s .mostrar();

s . >

}

3. Imprima los resultados

Nº de producto Nombre del producto Precio unitario Cantidad de compra Precio total

1 batata 2 3 6

2 Patatas 1,2 1 1,2

3 Luffa 1,5 1 1,5

Total: Cantidad total: 5 yuanes Precio total: 8,7 yuanes

* **********************************************

N.º de artículo Nombre del producto Precio unitario Cantidad de compra Precio total

2 patatas 1,2 1 1,2

3 Luffa 1,5 1 1,5

Total: Cantidad total : RMB 2 yuanes Precio total: RMB 2,7 yuanes

********************************* *************** *****

Nº de producto Nombre del producto Precio unitario Cantidad de compra Precio total

Total: Cantidad total: 0 Precio Total: 0

***** ********************************** **********

4. Estoy demasiado cansado para escribir y tengo prisa, pero lo principal es ver si entiendes. ¿Qué no está claro? Mencionarlo de nuevo.