|
package internetshop;
import java.util.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
enum Status{
v_ozhidanii,kupleno;
}
class DataBase{
private ArrayList<Product> products;
private ArrayList<Client> clients;
DataBase(){
products=new ArrayList<Product>();
clients=new ArrayList<Client>();
}
public ArrayList<Product> getProducts(){
return products;
}
public Product searchOfId(int id){
Product p=null;
Iterator<Product> it=products.iterator();
while(it.hasNext()){
p=it.next();
if(p.getId()==id)
return p;
}
return null;
}
public void addProduct(Product p){
products.add(p);
}
public void deleteProduct(int id){
Product p;
Iterator<Product> it=products.iterator();
while(it.hasNext()){
p=it.next();
if(p.getId()==id)
products.remove(p);
}
}
public ArrayList<Client> getClient(){
return clients;
}
public void addClient(Client client){
clients.add(client);
}
public void deleteClient(int id){
Client c;
Iterator<Client> it=clients.iterator();
while(it.hasNext()){
c=it.next();
if(c.getId()==id)
clients.remove(c);
}
}
}
class Administrator{
private String name;
Administrator(){
name="Administrator";
}
public void addProduct(DataBase db,String category,String name,int quantity){
db.addProduct(new Product(category,name,quantity));
}
public void deleteProduct(DataBase db,int id){
db.deleteProduct(id);
}
public void setQuantityProduct(DataBase db,int id,int q){
db.searchOfId(id).setQuantity(q);
}
public void deleteClient(DataBase db,int id){
db.deleteClient(id);
}
public String listDataBase(DataBase db){
return "\n====================================================================\n"
+ "Товары:\n"+db.getProducts()
+"\n--------\n"
+"Клиенты:\n"+db.getClient();
}
public void podtverditProdazhy(DataBase db,Number n){
Client c;
int id,kol,size;
Iterator<Client> it=db.getClient().iterator();//берем из базы данных список клиентов
while(it.hasNext()){
c=it.next();
if(c.getCarzina().containsKey(n)){//ищем клиента у которого в корзине введенный номер заказа
for(int i=1;i<=c.getCarzina().get(n).size();i++){
c.getHistory().get(n).get(i).oplachenoStatus();//каждому товару в заказе статус "kupleno"
id=c.getHistory().get(n).get(i).getIdproduct();//берем id купленного товара
kol=c.getHistory().get(n).get(i).getKol();//берем кол-во купленного товара
db.searchOfId(id).delQuantity(kol);//уменшаем кол-во купленного товара в базе данных
}
c.getCarzina().remove(n);//удаляем подтвержденный(оплаченный) заказ из корзины клиента(заказ остается в history)
}
}
}
public String toString(){
return ""+name;
}
}
class Client{
private static int count=0;
private final int id=++count;
private String name;
private static int n=0;
private Map<Number,Zakaz> carz;
private Map<Number,Zakaz> hist;
private Map<Number,Map<Number,Zakaz>> carzina;
private Map<Number,Map<Number,Zakaz>> history;
Client(String name){
this.name=name;
carzina=new HashMap<Number,Map<Number,Zakaz>>();
history=new HashMap<Number,Map<Number,Zakaz>>();
}
class Zakaz{
private int id_product;
private String date;
private int kol;
private Status checkoutStatus;
Zakaz(int id_product,int kol,String date){
this.id_product=id_product;
this.kol=kol;
this.date=date;
checkoutStatus=Status.v_ozhidanii;
}
public void oplachenoStatus(){
checkoutStatus=Status.kupleno;
}
public int getIdproduct(){
return id_product;
}
public int getKol(){
return kol;
}
public String toString(){
return "id_product:"+id_product+" kol:"+kol+" date:"+date+" checkoutStatus:"+checkoutStatus;
}
}
public void addNewZakaz(int id_product, int kol, String date){
int i=1;
carz=new HashMap<Number,Zakaz>();
hist=new HashMap<Number,Zakaz>();
carz.put(i,new Zakaz(id_product,kol,date));
hist.put(i,new Zakaz(id_product,kol,date));
carzina.put(++n,carz);
history.put(n,hist);
}
public void addToZakaz(Number n,int id_product, int kol, String date){
if(carzina.containsKey(n)){
int i=carzina.get(n).size();
carzina.get(n).put(++i, new Zakaz(id_product,kol,date));
history.get(n).put(i, new Zakaz(id_product,kol,date));
}
}
public void delFromZakaz(Number n,Number i){
if(carzina.containsKey(n)){
int j=i.intValue();
carzina.get(n).remove(i);
while(carzina.get(n).containsKey(j+1)){
carzina.get(n).put(j,carzina.get(n).get(j+1));
carzina.get(n).remove(j+1);
j++;
}
}
if(history.containsKey(n)){
int j=i.intValue();
history.get(n).remove(i);
while(history.get(n).containsKey(j+1)){
history.get(n).put(j,history.get(n).get(j+1));
history.get(n).remove(j+1);
j++;
}
}
}
public void delZakaz(Number n){
carzina.remove(n);
}
public int getId(){
return id;
}
public Map<Number,Map<Number,Zakaz>> getCarzina(){
return carzina;
}
public void clearCarzina(){
carzina.clear();
}
public Map<Number,Map<Number,Zakaz>> getHistory(){
return history;
}
public void clearHistory(){
history.clear();
}
public String listDataBase(DataBase db){
return db.getProducts()+"";
}
public String toString(){
String info=name+"\ncarzina:";
Iterator itc=carzina.entrySet().iterator();
Map<Number,Zakaz> map;
while(itc.hasNext()){
Map.Entry i=(Map.Entry)itc.next();
info+="\nЗаказ номер:"+i.getKey();
map=(Map)i.getValue();
Iterator itm=map.entrySet().iterator();
while(itm.hasNext()){
info+="\n "+itm.next();
}
}
info+="\nhistory:";
Iterator ith=history.entrySet().iterator();
while(ith.hasNext()){
Map.Entry i=(Map.Entry)ith.next();
info+="\nЗаказ номер:"+i.getKey();
map=(Map)i.getValue();
Iterator itm=map.entrySet().iterator();
while(itm.hasNext()){
info+="\n"+itm.next();
}
}
return info;
}
}
class Product{
private static int count=0;
private final int id=++count;
private String category;
private String name;
private int quantity;
Product(String category,String name,int quantity){
this.category=category;
this.name=name;
this.quantity=quantity;
}
public int getId(){
return id;
}
public void delQuantity(int q){
quantity-=q;
}
public void setQuantity(int q){
quantity=q;
}
public String toString(){
return "id="+id+" category:"+category+" name:"+name+" "+quantity+" шт.\n";
}
}
public class InternetShop extends JFrame implements ActionListener{
private JButton btn1;
private JButton btn2;
private JButton btn3;
private JTable tbl1;
private JPanel panel1;
private JPanel panel2;
private JPanel panel3;
private JPanel panel4;
private Container pane;
public InternetShop(){
super("Internet Shop by Denis Oreshko");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(800,600);
// setLocation(0,0);
btn1=new JButton("Exit");
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
btn1actionPerformed(event);
}
});
btn2=new JButton("Panel2");
btn3=new JButton("Panel3");
tbl1=new JTable(10,5);
panel1=new JPanel();
panel2=new JPanel();
panel3=new JPanel();
panel4=new JPanel();
pane=getContentPane();
pane.setLayout(new GridLayout(2,2,5,5));
panel1.setSize(400, 550);
panel1.setLayout(null);
tbl1.setSize(400, 100);
tbl1.setLocation(0, 500);
panel1.add(tbl1);
panel2.setSize(50,50);
panel2.add(btn2);
panel3.setSize(50,50);
panel3.add(btn3);
panel4.setSize(50,50);
panel4.add(btn1);
pane.add(panel1);
pane.add(panel2);
pane.add(panel3);
pane.add(panel4);
btn1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent event){
btn1actionPerformed(event);
}
});
//btn2.addActionListener(new ActionEvent());
}
public void actionPerformed(ActionEvent event){
}
public void btn1actionPerformed(ActionEvent event){
System.exit(0);
}
public static void main(String[] args) {
InternetShop internetshop=new InternetShop();
internetshop.setVisible(true);
/*DataBase db=new DataBase();
Administrator admin=new Administrator();
Client client=new Client("Katya");
db.addClient(client);
admin.addProduct(db, "Телефон", "Nokia E65", 10);
admin.addProduct(db, "Телефон", "Sumsung Duos", 10);
admin.addProduct(db, "Телефон", "SonyEricsson", 10);
admin.addProduct(db, "Телефон", "ZTE20", 10);
admin.addProduct(db, "Телефон", "Matarola", 10);
client.addNewZakaz(1, 2, "21/03/2012");
client.addToZakaz(1, 5, 1, "22/03/2012");
client.addToZakaz(1, 3, 1, "22/03/2012");
client.addNewZakaz(1, 2, "23/03/2012");
System.out.println(admin.listDataBase(db));
client.delFromZakaz(1, 1);
System.out.println(admin.listDataBase(db));
client.addToZakaz(1, 4, 1, "01/02/2012");
System.out.println(admin.listDataBase(db));
admin.podtverditProdazhy(db,1);
System.out.println(admin.listDataBase(db));
admin.podtverditProdazhy(db,2);
System.out.println(admin.listDataBase(db));*/
}
}
Дата добавления: 2015-11-04; просмотров: 21 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
package com.example.sasha; | | | class WrongState extends Exception{} |