Flask接口签名sign原理与实例代码浅析
341
2023-07-15
Java编写网上超市购物结算功能程序
使用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 Goods{
public String[] name;
public Float[] price;
Goods(){
name =new String[100];
price=new Float[100];
}
}
public class SuperMarket extends JFrame{
public 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
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 JButtonzoQSSLhFF 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
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="zjq1314520";
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();
zoQSSLhFF /*
* 设置界面布局
* */
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 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.getSourzoQSSLhFFce()==deleteBuyBut){ if(choiceList.getSelectedValue()==null){ JOptionPane.showMessageDialog(magWin,"未选择待删除的物品", "警告",JOptionPane.PLAIN_MESSAGE); } else if(buyNum>0){ int i=choiceList.getSelectedIndex(); String http://selectItem=buyItem.get(i); //System.out.println(selectItem); String deletePrice=""; for(int j=0;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 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 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); } } 删除有关数据库部分便可以在自己电脑上运行! 有关截图: 管理员界面: 用户界面:
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.getSourzoQSSLhFFce()==deleteBuyBut){
if(choiceList.getSelectedValue()==null){
JOptionPane.showMessageDialog(magWin,"未选择待删除的物品", "警告",JOptionPane.PLAIN_MESSAGE);
}
else if(buyNum>0){
int i=choiceList.getSelectedIndex();
String http://selectItem=buyItem.get(i);
//System.out.println(selectItem);
String deletePrice="";
for(int j=0;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 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 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); } } 删除有关数据库部分便可以在自己电脑上运行! 有关截图: 管理员界面: 用户界面:
// 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 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 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); } } 删除有关数据库部分便可以在自己电脑上运行! 有关截图: 管理员界面: 用户界面:
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 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); } } 删除有关数据库部分便可以在自己电脑上运行! 有关截图: 管理员界面: 用户界面:
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);
}
}
删除有关数据库部分便可以在自己电脑上运行!
有关截图:
管理员界面:
用户界面:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~