当前位置:   article > 正文

JavaSwing(GUI窗口)+Mysql实现简单的库存管理系统(角色:普通用户/管理员 商品的增删查等)_java swing实现仓储管理系统

java swing实现仓储管理系统

JavaSwing库存管理系统

本系统简单实现了库存管理和角色权限管理,管理员可以管理和发布商品,普通用户浏览商品需求

实现功能截图

登录页面:
在这里插入图片描述
不同角色校验:
在这里插入图片描述
管理员页面:
在这里插入图片描述
普通用户页面:
在这里插入图片描述

系统功能

本库存管理系统实现了以下功能:
管理员/普通用户权限管理
不同角色登录
商品的增删查

使用技术

数据库:mysql
开发工具:netbeans(Eclipse、Myeclispe、Idea也可以)
知识点:JavaSwing

由于功能简单,代码都放在了一个包下面:
在这里插入图片描述

代码

登录页面:

package com.stock.java;

import javax.swing.*;
import javax.swing.plaf.InsetsUIResource;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URL;
import java.text.SimpleDateFormat;

/**
 * @Author: wen
 * @Date: 2020/11/20 22:28
 * @Description: 登陆模块
 * @Version: 1.0
 */
public class Login extends JFrame {

    private static final long serialVersionUID = 1L;
    private JPanel jContentPane = null;
    private JButton jButton21 = null;
    private JButton jButton22 = null;
    private JTextField jTextField = null;
    private JPasswordField jPasswordField = null;
    private JLabel jLabel = null;
    public static String storeUserName = null;// 登录用户名
    public static String storeUserPassword = null;// 登录密码
    static boolean RELOAD = true;// 重新登陆标记
    static int login_user_type;// 1表示管理员,0销售
    private JLabel jLabel_User = null;
    private JLabel jLabel_userName = null;
    private JLabel jLabel_password = null;
    private JLabel jLabel_privilege = null;
    private URL imgURL = null;

    private BtnListener btl = null;
    private JComboBox jComboBox = null;
    private JLabel jLabel_tips = null;

    private void initialize() {

        jLabel_tips = new JLabel();
        jLabel_tips.setBounds(new Rectangle(15, 247, 277, 24));
        this.setResizable(false);
        this.setSize(296, 356);
        // this.setSize(350, 450);
        this.setTitle("Welcome Login");
        imgURL = this.getClass().getResource(
                "icon.png");
        this.setIconImage(Toolkit.getDefaultToolkit().getImage(imgURL));
        this.setLocationRelativeTo(null);
        // this.setUndecorated(true);//设置无边框
        try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");// 使用windows外观
        } catch (Exception e) {
            e.printStackTrace();
        }
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
        jButton21 = new JButton();
        jButton21.setBounds(new Rectangle(15, 295, 78, 26));

        imgURL = this.getClass().getResource("/com/code2life/user/images/icon.png");

        jButton21.setText("login");
        // 允许回车登录
        getRootPane().setDefaultButton(jButton21);

        jButton22 = new JButton();
        jButton22.setBounds(new Rectangle(110, 296, 78, 26));
        jButton22.setText("exit");

        jTextField = new JTextField(20);
        jTextField.setBounds(new Rectangle(120, 180, 124, 23));

        jPasswordField = new JPasswordField();
        jPasswordField.setBounds(new Rectangle(120, 210, 124, 23));

        jLabel = new JLabel();
        jLabel.setText("");
        jLabel.setBounds(new Rectangle(0, -1, 291, 142));
        imgURL = this.getClass()
                .getResource("login.gif");
        jLabel.setIcon(new ImageIcon(imgURL));
        jLabel_password = new JLabel();
        jLabel_password.setBounds(new Rectangle(29, 210, 71, 19));
        jLabel_password.setText("password:");
        jLabel_userName = new JLabel();
        jLabel_userName.setBounds(new Rectangle(29, 181, 71, 19));
        jLabel_userName.setText("username:");
        jLabel_User = new JLabel();
        jLabel_User.setBounds(new Rectangle(10, 147, 275, 98));

        jLabel_privilege = new JLabel();
        jLabel_privilege.setBounds(new Rectangle(18, 272, 71, 19));
        jLabel_privilege.setText("type:");

        jComboBox = new JComboBox();
        jComboBox.setBounds(new Rectangle(109, 272, 123, 23));
        jComboBox.addItem("sale");
        jComboBox.addItem("admin");

        imgURL = this.getClass().getResource("user.gif");
        jLabel_User.setIcon(new ImageIcon(imgURL));
        jLabel_User.setText("User");

        jContentPane = new JPanel();// 新建jPanel面板
        jContentPane.setLayout(null);
        jContentPane.add(jLabel_userName, null);
        jContentPane.add(jLabel_password, null);
        jContentPane.add(jButton21, null);
        jContentPane.add(jButton22, null);
        jContentPane.add(jTextField, null);
        jContentPane.add(jPasswordField, null);
        jContentPane.add(jLabel, null);
        jContentPane.add(jLabel_User, null);

        jContentPane.add(jComboBox, null);
        jContentPane.add(jLabel_privilege, null);
        jContentPane.add(jLabel_tips, null);
        setContentPane(jContentPane);

        btl = new BtnListener();
        jButton21.addActionListener(btl);
        jButton22.addActionListener(btl);

    }

    /**
     * @author Administrator
     * @监听类
     */
    public class BtnListener implements ActionListener {
        public void actionPerformed(ActionEvent e) {
            if (e.getSource() == jButton21) {
                GoodsService ud = new GoodsService();
                String user = jTextField.getText().trim();
                String password = new String(jPasswordField.getPassword())
                        .trim();// char to String

                storeUserName = user;
                storeUserPassword = password;
                login_user_type = jComboBox.getSelectedIndex();

                if ("".equals(user)) {
                    JOptionPane.showMessageDialog(null, "用户名不能为空");
                    return;
                }
                if ("".equals(password)) {
                    JOptionPane.showMessageDialog(null, "密码不能为空");
                    return;
                }
                SimpleDateFormat sdf = new SimpleDateFormat(
                        "yyyy-MM-dd HH:mm:ss");
                String dt = sdf.format(new java.util.Date());
                // 登陆
                    if (ud.userLogin(login_user_type, storeUserName,
                            storeUserPassword)) {

                        dispose();
                        try {

                            UIManager.put("RootPane.setupButtonVisible", false);
                            UIManager.put("ToolBar.isPaintPlainBackground",
                                    Boolean.FALSE);
                            UIManager.put("TabbedPane.tabAreaInsets",
                                    new InsetsUIResource(0, 0, 0, 0));
                            UIManager.put("TabbedPane.contentBorderInsets",
                                    new InsetsUIResource(0, 0, 2, 0));
                            UIManager.put("TabbedPane.tabInsets",
                                    new InsetsUIResource(3, 10, 9, 10));
                            Font frameTitleFont = (Font) UIManager
                                    .get("InternalFrame.titleFont");
                            frameTitleFont = frameTitleFont
                                    .deriveFont(Font.PLAIN);
                            UIManager.put("InternalFrame.titleFont",
                                    frameTitleFont);
                        } catch (Exception e1) {
                            // TODO exception
                        }
                        GoodsFrame mf = new GoodsFrame(user);
                        mf.setVisible(true);
                    } else {
                        JOptionPane.showMessageDialog(null, "login fail");
                        return;
                    }
            } else if (e.getSource() == jButton22) {
                System.exit(0);
            }
        }
    }

    /**
     * @param args
     * @throws Exception
     * @主函数
     */
    public static void main(String[] args) throws Exception {
        try {
            UIManager.put("RootPane.setupButtonVisible", false);
            UIManager.put("ToolBar.isPaintPlainBackground", Boolean.FALSE);

        } catch (Exception e) {
            // TODO exception
        }
        UIManager.put("RootPane.setupButtonVisible", false);
        UIManager.put("TabbedPane.tabAreaInsets", new InsetsUIResource(0, 0, 0,
                0));
        UIManager.put("TabbedPane.contentBorderInsets", new InsetsUIResource(0,
                0, 2, 0));
        UIManager.put("TabbedPane.tabInsets",
                new InsetsUIResource(3, 10, 9, 10));
        Font frameTitleFont = (Font) UIManager.get("InternalFrame.titleFont");
        frameTitleFont = frameTitleFont.deriveFont(Font.PLAIN);
        UIManager.put("InternalFrame.titleFont", frameTitleFont);

        Login login = new Login(RELOAD);
        login.setVisible(true);
    }
    public Login() {
        super();
        initialize();
    }
    public Login(boolean reload) {
        super();
        initialize();
    }
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229

商品管理页面:

package com.stock.java;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.JScrollPane;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.util.List;
import java.awt.event.ActionEvent;

public class GoodsFrame extends JFrame {

	private JPanel contentPane;
	private JTextField textField_1;
	private JTable table;
	private String[] columnCount= {"ID","goods_name","quantity","price","time"};
	private List<Goods> list;
	public static Goods goo;
	public static GoodsFrame frame;
	
	/**
	 * Launch the application.
	 */
	public static void main(String[] args) {
		EventQueue.invokeLater(new Runnable() {
			public void run() {
				try {
					frame = new GoodsFrame("admin");
					//窗口居中
					frame.setLocationRelativeTo(null);
					frame.setVisible(true);
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		});
	}

	/**
	 * Create the frame.
	 */
	public GoodsFrame(String type) {
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setBounds(100, 100, 764, 469);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JScrollPane scrollPane = new JScrollPane();
		scrollPane.setBounds(29, 58, 692, 332);
		contentPane.add(scrollPane);
		
		table = new JTable();
		scrollPane.setViewportView(table);
		
		textField_1 = new JTextField();
		textField_1.setBounds(30, 22, 40, 23);
		contentPane.add(textField_1);
		
		JButton button = new JButton("query");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				quaryAll();
			}
		});
		
		button.setBounds(80, 22, 70, 23);
		contentPane.add(button);
		
		JButton button_1 = new JButton("add");
		button_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				new FromFjame().setVisible(true);
			}
		});
		button_1.setBounds(400, 22, 70, 23);
		if (type.equals("admin")){
			contentPane.add(button_1);
		}
		
		
		//全屏
//		setExtendedState(JFrame.MAXIMIZED_BOTH);
		
		
		JButton button_3 = new JButton("delete");
		button_3.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				remove();
				quaryAll();
			}
		});
		button_3.setBounds(510, 22, 70, 23);
//		contentPane.add(button_3);
		if (type.equals("admin")){
			contentPane.add(button_3);
		}
		
		
		JButton button_4 = new JButton("close");
		button_4.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				System.exit(0);
			}
		});
		button_4.setBounds(650, 22, 70, 23);
		contentPane.add(button_4);
		
	}
	//查询
	public void quaryAll() {
		String select_val = textField_1.getText();
		System.out.println(select_val);
		GoodsService ss=new GoodsService();
		list = ss.queryAll(select_val);
		if(list==null) {
			JOptionPane.showMessageDialog(null, "Server is busy!");
			return;
		}
		Object[][] data = Util.listToArray(list);
		table.setModel(new DefaultTableModel(data, columnCount));
	}
	
	//删除
	private void remove() {
		int i = table.getSelectedRow();
		Goods s = list.get(i);
		int code = new GoodsService().delete(s.getId());
		if(code==0) {
			JOptionPane.showMessageDialog(null, "delete success");
			return;
		}else {
			JOptionPane.showMessageDialog(null,Util.errors.get(code) );
		}
		quaryAll();
	}
	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146

提交表单页面:

package com.stock.java;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.time.LocalDate;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import java.awt.event.ItemListener;
import java.awt.event.ItemEvent;

public class FromFjame extends JFrame {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	private JPanel contentPane;
	private JTextField textField;
	private JTextField textField_1;
	private JTextField textField_3;
	private JComboBox comboBox;
	private JComboBox comboBox_1;
	private JComboBox comboBox_2;

	public FromFjame() {
		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		setBounds(100, 100, 314, 436);
		contentPane = new JPanel();
		contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
		setContentPane(contentPane);
		contentPane.setLayout(null);
		
		JLabel label = new JLabel("add");
		label.setFont(new Font("宋体", Font.PLAIN, 17));
		label.setBounds(118, 20, 78, 39);
		contentPane.add(label);
		
		JLabel label_1 = new JLabel("name");
		label_1.setBounds(23, 71, 40, 15);
		contentPane.add(label_1);
		
		textField = new JTextField();
		textField.setBounds(87, 68, 155, 21);
		contentPane.add(textField);
		textField.setColumns(10);
		
		JLabel label_2 = new JLabel("quantity");
		label_2.setBounds(23, 128, 40, 15);
		contentPane.add(label_2);
		
		textField_1 = new JTextField();
		textField_1.setBounds(87, 125, 155, 21);
		contentPane.add(textField_1);
		textField_1.setColumns(10);
		
		JLabel lblNewLabel = new JLabel("time");
		lblNewLabel.setBounds(23, 191, 32, 15);
		contentPane.add(lblNewLabel);
		
		JLabel label_3 = new JLabel("price");
		label_3.setBounds(23, 251, 32, 15);
		contentPane.add(label_3);
		
		textField_3 = new JTextField();
		textField_3.setBounds(87, 248, 155, 21);
		contentPane.add(textField_3);
		textField_3.setColumns(10);
		
		comboBox = new JComboBox();
		comboBox.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				addDay();
			}
		});
		comboBox.setBounds(87, 188, 54, 21);
		contentPane.add(comboBox);
		
		comboBox_1 = new JComboBox();
		comboBox_1.addItemListener(new ItemListener() {
			public void itemStateChanged(ItemEvent e) {
				addDay();
			}
		});
		comboBox_1.setBounds(151, 188, 47, 21);
		contentPane.add(comboBox_1);
		
		comboBox_2 = new JComboBox();
		comboBox_2.setBounds(202, 188, 40, 21);
		contentPane.add(comboBox_2);
		
		//选择框添加内容
		addBirth();
		
		JButton button = new JButton("add");
		button.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				if(GoodsFrame.goo==null) {
					add();
				}
			}
		});
		button.setBounds(37, 325, 93, 23);
		contentPane.add(button);
		
		JButton button_1 = new JButton("back");
		button_1.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				//每次返回清空信息
				GoodsFrame.goo=null;
				//退出
				dispose();
			}
		});
		button_1.setBounds(169, 325, 93, 23);
		contentPane.add(button_1);
		
		//当点击的行数的信息不为空时,进行下面操作
		if(GoodsFrame.goo!=null) {
			textField.setText(GoodsFrame.goo.getGood_name());
			textField_1.setText(GoodsFrame.goo.getQuantity()+"");
			textField_3.setText(GoodsFrame.goo.getPrice()+"");
			LocalDate birth =GoodsFrame.goo.getTime();
			comboBox.setSelectedItem(birth.getYear());
			comboBox_1.setSelectedItem(birth.getMonthValue());
			comboBox_2.setSelectedItem(birth.getDayOfMonth());
			button.setText("update");
		}
	}

	//选择框填充内容
	private void addBirth() {
		int year=LocalDate.now().getYear();
		for(int i=1970;i<=year;i++) {
			comboBox.addItem(i);
		}
		for(int i=1;i<=12;i++) {
			comboBox_1.addItem(i);
		}
	}
	
	private void addDay() {
		int year=1970;
		int month=1;
		int day=0;
	    Object oYear = comboBox.getSelectedItem();
		Object oMonth =comboBox_1.getSelectedItem();
		if(oYear==null||oMonth==null) {
			return;
		}else {
			year=(int) oYear;
			month=(int) oMonth;
		}
		boolean flag=(year%4==0&&year%100!=0)||year%400==0;
		switch(month) {
			case 1:
			case 3:
			case 5:
			case 7:
			case 8:
			case 10:
			case 12:
				day=31;
				break;
			case 2:
				day=flag?28:29;
				break;
			default:
				day=30;
				break;
		}
		comboBox_2.removeAllItems();
		for(int i=1;i<=day;i++) {
			comboBox_2.addItem(i);
		}
	}
	
	//增加
	private void add() {
		String goods_name=textField.getText();
		String quantity=textField_1.getText();
		String price=textField_3.getText();
		int year=(int)comboBox.getSelectedItem();
		int month=(int) comboBox_1.getSelectedItem();
		int day=(int) comboBox_2.getSelectedItem();
		Goods s=new Goods(goods_name,quantity,Double.parseDouble(price),LocalDate.of(year, month, day));
		int insert = new GoodsService().insert(s);		
		if(insert==0) {
			JOptionPane.showMessageDialog(null, "add success");
			textField.setText("");
			textField_1.setText("");
			textField_3.setText("");
			return;
		}else {
			JOptionPane.showMessageDialog(null, Util.errors.get(insert));
		}
	}
	
}

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206

写在最后

如果运行代码中遇到问题,或者需要完整源码和报告,可以加博主V交流:Code2Life2

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/877409
推荐阅读
相关标签
  

闽ICP备14008679号