Código fuente de supermercado fresco
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(){ p>
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.