分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

               

题目描叙:

使用Java语言编写一个模拟网上超市购物结算功能的程序,要求程序运行后有一个图形用户界面,可供用户输入购买的各种商品相关信息,最后给出用户的购物清单及总价格。

需求分析:

1.管理员添加商品以及其价格

2.用户购买商品打印订单信息以及结算订单


代码:

/* * 创建者:张俊强 * 时间:2016/5/15 * */package SaleSys;import java.awt.*;import java.awt.event.*;import java.util.Vector;import javax.swing.*;import java.sql.*;class Goodspublic String[] name; public Float[] price; Goods(){  name =new String[100];  price=new Float[100]; }}public class SuperMarket extends JFramepublic static void main(String[] args) throws SQLException{  MainWinow mainWin=new MainWinow("网上超市购物结算");    mainWin.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  mainWin.setBounds(300, 300, 500, 400);  mainWin.setVisible(true);  mainWin.setWin(mainWin);  mainWin.setMinWindowLayout(); }}class MainWinow extends JFrame{ Goods goods; private JButton user; private JButton manager; private JLabel loginLabel; private ManageWindow magWin; private UserWindow userWin; private Listener lis; private MainWinow loginWin; private int goodsNum; /* * 设置界面 * */ private JLabel setNameLabel; private JLabel setPriceLabel; private JTextField setNameText; private JTextField setPriceText; private JButton inputBut; private TextArea inputArea; private JButton returnBut1; private JButton cancelBut; /* * 用户界面 * */ private Vector<String> buyItem; private Float[] buyCount; private int buyNum; private JComboBox goodsCombox; private JButton returnBut2; private JLabel choiceGoodLabel; private JLabel showPriceLabel; private JTextField showPrice; private TextArea showChoice; private JLabel showBuyNum; private JTextField showBuyNumText; private JButton submitBuy; private JButton deleteBuyBut; private JList choiceList; private JButton countBut; private Float sumMoney;  /**  * 数据库导入  */  Statement stmt; MainWinow(String winName) throws SQLException{  super(winName);  goodsNum=0;  buyNum=0;  sumMoney=(float)0;  goods=new Goods();  user=new JButton("我是用户");  manager=new JButton("我是管理员");  loginLabel=new JLabel("请选择角色!");  magWin=new ManageWindow("设置商品");  magWin.setBounds(300, 300, 500, 400);  magWin.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);  userWin=new UserWindow("欢迎选购");  userWin.setBounds(300, 300, 500, 400);  userWin.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);  lis=new Listener();  /*  * 设置界面初始化  * */  setNameLabel=new JLabel("商品名:");  setPriceLabel=new JLabel("价格:");  setNameText=new JTextField(5);  setPriceText=new JTextField(5);  inputBut=new JButton("确认添加");  inputArea=new TextArea();  returnBut1=new JButton("返回");  cancelBut=new JButton("撤回添加");  /*        * 用户界面初始化        * */  goodsCombox=new JComboBox();  returnBut2=new JButton("返回");  choiceGoodLabel=new JLabel("请选择商品:");  showPriceLabel=new JLabel("价格");  showPrice=new JTextField(5);  showChoice=new TextArea();  showBuyNum=new JLabel("购买数量:");  showBuyNumText=new JTextField(5);  submitBuy=new JButton("确认购买");  deleteBuyBut=new JButton("删除订单");  countBut=new JButton("订单结算");  choiceList=new JList();  buyItem=new Vector<String>();  buyCount=new Float[100];  /*   * 数据库的导入   * */  try {   Class.forName("com.mysql.jdbc.Driver");  } catch (ClassNotFoundException e) {   // TODO Auto-generated catch block   e.printStackTrace();  }  String url= "jdbc:mysql://localhost:3306/device";  String user="root";  String password="123456";  Connection con=DriverManager.getConnection(url,user,password);     stmt = con.createStatement();     /*      * 数据库数据的导出      * */     importSql(); } public void importSql() throws SQLException {  int i=1;  // TODO Auto-generated method stub  ResultSet result=stmt.executeQuery(    "SELECT name,price FROM goods_info"    );  while(result.next()){   goods.name[i-1]=result.getString(1);   goods.price[i-1]=Float.parseFloat(result.getString(2));   i++;  }  goodsNum=i-1; } public void setWin(MainWinow w){  loginWin=w; } public void setMinWindowLayout(){  Container loginCon=new Container();  loginCon.setLayout(new FlowLayout());  loginCon.add(manager);  loginCon.add(user);    manager.addActionListener(lis);  user.addActionListener(lis);  this.setLayout(new BorderLayout());  this.add(loginLabel,BorderLayout.NORTH);  this.add(loginCon,BorderLayout.CENTER);  this.validate();  /*  * 设置界面布局  * */  magWin.setLayout(new FlowLayout());  magWin.add(setNameLabel);  magWin.add(setNameText);  magWin.add(setPriceLabel);  magWin.add(setPriceText);  magWin.add(inputBut);  magWin.add(inputArea);  magWin.add(cancelBut);  magWin.add(returnBut1);    inputBut.addActionListener(lis);  returnBut1.addActionListener(lis);  cancelBut.addActionListener(lis);  /*  * 用户界面布局  * */  userWin.setLayout(new BorderLayout());  Container userCon=new Container();  userCon.setLayout(new FlowLayout());  userCon.add(choiceGoodLabel);  userCon.add(goodsCombox);  userCon.add(showPriceLabel);  userCon.add(showPrice);  userCon.add(showBuyNum);  userCon.add(showBuyNumText);  userCon.add(submitBuy);  userWin.add(userCon,BorderLayout.NORTH);  //choiceList.setListData(goods.name);  userWin.add(choiceList,BorderLayout.CENTER);  userWin.add(new JScrollPane(choiceList));    Container butCon=new Container();  butCon.setLayout(new FlowLayout());  butCon.add(deleteBuyBut);  butCon.add(countBut);  butCon.add(returnBut2);  userWin.add(butCon,BorderLayout.SOUTH);    goodsCombox.addItemListener(   new ItemListener(){   @Override    public void itemStateChanged(ItemEvent e) {    // TODO Auto-generated method stub    int i=goodsCombox.getSelectedIndex();    if(i>=0)showPrice.setText(goods.price[i].toString());   }  }  );  returnBut2.addActionListener(lis);  submitBuy.addActionListener(lis);  deleteBuyBut.addActionListener(lis);  countBut.addActionListener(lis); }  private void addComboxItem() {  // TODO Auto-generated method stub  for(int i=0;i<goodsNum;i++){   goodsCombox.addItem(goods.name[i]);  } }  class Listener implements ActionListener{  @Override   public void actionPerformed(ActionEvent e) {   // TODO Auto-generated method stub   if(e.getSource()==manager){    addGoods();    loginWin.setVisible(false);    magWin.setVisible(true);   }   if(e.getSource()==user){    loginWin.setVisible(false);    userWin.setVisible(true);    goodsCombox.removeAllItems();    addComboxItem();   }   if(e.getSource()==inputBut){    //String showOut="";        if(setNameText.getText().equals("")||setPriceText.getText().equals("")){     JOptionPane.showMessageDialog(magWin,"不可以有空余项!", "警告",JOptionPane.PLAIN_MESSAGE);    }    else{     goods.name[goodsNum]=setNameText.getText();     goods.price[goodsNum]=Float.parseFloat(setPriceText.getText());     try {      /*       * 写进数据库       * */      stmt.executeUpdate("insert into goods_info(name,price)values('"+goods.name[goodsNum]+"','"+(float)goods.price[goodsNum]+"')");     } catch (SQLException e1) {      // TODO Auto-generated catch block      e1.printStackTrace();     }     goodsNum++;     addGoods();     setNameText.setText("");     setPriceText.setText("");     //showOut="商品名:"+setNameText.getText()+"\t"+"价格:"+setPriceText.getText()+"\n";     //inputArea.append(showOut);    }   }   if(e.getSource()==cancelBut){    if(goodsNum>0){     goodsNum--;     String deleteName=goods.name[goodsNum];     String deletePrice=goods.price[goodsNum].toString();     //System.out.println(deleteName);     /*      * 删除数据库里面的元素      * */     String sql = "delete from goods_info where name = '"+deleteName+"' AND price ='"+deletePrice+"'";     try {      stmt.executeUpdate(sql);     } catch (SQLException e1) {      // TODO Auto-generated catch block      e1.printStackTrace();     }     //Connection con= DBManager .getConnection();;     //PreparedStatement ps = con.prepareStatement(sql);     addGoods();    }   }   if(e.getSource()==returnBut1){    loginWin.setVisible(true);    magWin.setVisible(false);   }   /*   * 用户界面事件响应   * */   if(e.getSource()==returnBut2){    loginWin.setVisible(true);    userWin.setVisible(false);   }   if(e.getSource()==submitBuy){     if(!showBuyNumText.getText().equals("")){      buyCount[goodsCombox.getSelectedIndex()]=Float.parseFloat(showBuyNumText.getText());     String contentItem="";     Float sumMon=Float.parseFloat(showBuyNumText.getText())*(Float)goods.price[goodsCombox.getSelectedIndex()];     contentItem="商品名:"+goods.name[goodsCombox.getSelectedIndex()]+"   "      +"单价:"+goods.price[goodsCombox.getSelectedIndex()].toString()+"   "      +"购买数量:"+showBuyNumText.getText()+"   "      +"总价:"+sumMon.toString();     buyItem.addElement(contentItem);     //buyItem[buyNum]=contentItem;     buyNum++;     choiceList.removeAll();     choiceList.setListData(buyItem);     sumMoney+=sumMon;    }    else{     JOptionPane.showMessageDialog(magWin,"购买数量不可以为空", "警告",JOptionPane.PLAIN_MESSAGE);    }       }   if(e.getSource()==deleteBuyBut){    if(choiceList.getSelectedValue()==null){     JOptionPane.showMessageDialog(magWin,"未选择待删除的物品", "警告",JOptionPane.PLAIN_MESSAGE);         }    else if(buyNum>0){        int i=choiceList.getSelectedIndex();        String selectItem=buyItem.get(i);        //System.out.println(selectItem);        String deletePrice="";        for(int j=0;j<selectItem.length()-3;j++){       //  System.out.println(selectItem.substring(j, j+3));         if(selectItem.substring(j, j+3).equals("总价:")){          deletePrice=selectItem.substring(j+3,selectItem.length());          System.out.println(deletePrice);          sumMoney-=Float.parseFloat(deletePrice);          break;         }        }        buyItem.remove(i);        choiceList.removeAll();        choiceList.setListData(buyItem);        choiceList.validate();        buyNum--;    }    else{     JOptionPane.showMessageDialog(magWin,"购物车为空,不可删除", "警告",JOptionPane.PLAIN_MESSAGE);    }   }   if(e.getSource()==countBut){//sumMoney    for(int i=0;i<buyItem.size();i++){     String str=buyItem.get(i).substring(0, 2);     if(str.equals("总价")){      buyItem.remove(i);     }    }    buyItem.addElement("总价:"+sumMoney.toString());       choiceList.removeAll();       choiceList.setListData(buyItem);       choiceList.validate();   }  }    private void addGoods() {   if(!inputArea.getText().equals(""))inputArea.setText("");   // TODO Auto-generated method stub   for(int i=0;i<goodsNum;i++){    String massage="商品名:"+goods.name[i]+"\t"+"价格:"+goods.price[i].toString()+"\n";    inputArea.append(massage);   }  } }}class ManageWindow extends JFrame { ManageWindow(String title){  super(title); }}class UserWindow extends JFrame{ UserWindow(String title){  super(title); }}
删除有关数据库部分便可以在自己电脑上运行!
有关截图:

Java 网上超市购物结算功能模拟

管理员界面:

Java 网上超市购物结算功能模拟

用户界面:

Java 网上超市购物结算功能模拟

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow

Java 网上超市购物结算功能模拟

相关文章:

  • 2021-05-20
  • 2022-12-23
  • 2021-09-27
  • 2021-10-14
  • 2021-08-13
  • 2021-12-04
  • 2021-06-10
  • 2022-12-23
猜你喜欢
  • 2021-04-02
  • 2022-12-23
  • 2021-12-04
  • 2021-12-27
  • 2022-12-23
  • 2022-01-21
  • 2021-12-04
相关资源
相似解决方案