序文: 小規模スーパーマーケットの規模拡大に伴い、商品の数も飛躍的に増加し、商品に関する情報量も飛躍的に増加しています。 スーパーマーケットでは、さまざまな商品情報を常に統計的に分析する必要があります。 しかし、大規模スーパーマーケットの管理システムの機能は強力すぎるため、操作が煩雑になり、小規模スーパーマーケットの作業効率が低下します。 スーパーマーケット管理システムは、市場のスーパーマーケットで一般的に使用されている最も人気のあるシステムの1つです。 Javaの知識を習得したばかりなので、すべての機能は比較的シンプルに設計されており、商品情報の追加、削除、変更、およびクエリのみが可能です。製品情報の包括的、動的、タイムリーな管理を実現します。本稿では、ソフトウェア開発の背景とプロセスを体系的に分析し、まずソフトウェア開発環境を紹介し、次にこのソフトウェアの詳細な設計プロセス(データベース設計、各モジュールの設計と実装、特定のインターフェースの設計と機能)を紹介します。スーパーマーケットの在庫管理システムは、開発ツールとして Java Eclipse を、バックエンド データベース サポートとして Mysql をベースにしています。スーパーマーケット在庫管理システムの開発には、主にインターフェース プログラムの開発、データベースの構築、データベースの保守が含まれます。アプリケーションは完全な機能、優れた人間とコンピュータの相互作用インターフェースを備え、操作が簡単である必要があります。同時に、JAVASwing言語はシンプルで、比較的短期間で、使い勝手が高く、機能が充実し、操作しやすいプログラムを開発することができ、データベースとの接続も実現できます。 メインモジュール: 商品リストデータ表示、商品情報追加、商品情報修正、商品情報削除、商品名による商品情報照会 1. 機能紹介機能スクリーンショット: 製品リスト情報を照会します: 製品情報を追加します: 製品情報を変更する: 製品情報を削除します: 削除後、リストデータを更新する必要があります 番号で製品情報を照会します: 2. キーコード2.1 ホームページの機能パブリッククラスGoodsManageはJFrameを拡張します{ プライベート JTextField テキストフィールド; Select select = new Select(); アップデータ updata = new Updata(); Object[] header= {"商品番号","商品名","数量","単価"}; 文字列 sql = "商品ID、商品名、番号、価格を商品から選択します"; オブジェクト[][]データ= select.getGoods(sql); DefaultTableModel df = 新しい DefaultTableModel(データ、ヘッダー); int v = ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED; int h=ScrollPaneConstants.HORIZONTAL_SCROLLBAR_AS_NEEDED; パブリックGoodsManage() { super("製品管理システム"); 境界を0, 0, 700, 450に設定します。 this.setLocationRelativeTo(null);//ウィンドウを画面の中央に表示します this.setResizable(false);//ウィンドウのサイズを変更しません getContentPane().setLayout(null); JTable jTable = new JTable(df); JScrollPane jsp = 新しい JScrollPane(jTable,v,h); jsp.setBounds(10, 10, 515, 320); getContentPane() を追加します(jsp); JButton button_1 = new JButton("すべての製品を表示"); button_1.addActionListener(新しいActionListener() { @オーバーライド パブリック void アクションが実行されました (アクションイベント e) { 文字列 sql = "商品ID、商品名、番号、価格を商品から選択します"; オブジェクト[][]データ = Select.getGoods(sql); df.setDataVector(データ、ヘッダー); } }); ボタン1に境界を設定します(535, 80, 127, 30); getContentPane().add(button_1); JButton button_2 = new JButton("製品の変更"); ボタン2.setBounds(535, 140, 127, 30); getContentPane() を追加します(button_2); button_2.addActionListener(新しいActionListener() { @オーバーライド パブリック void アクションが実行されました (アクションイベント e) { (jTable.getSelectedColumn()<0) の場合 { JOptionPane.showMessageDialog(null, "変更するデータを選択してください!"); } それ以外 { int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString()); 文字列名 = jTable.getValueAt(jTable.getSelectedRow(), 1).toString(); int num = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 2).toString()); 文字列価格 = jTable.getValueAt(jTable.getSelectedRow(), 3).toString(); 商品 goods = new Goods(goodsID,name,num,price); 商品XG 商品XG = 新しい商品XG(商品); goodsXG.setVisible(true); } } }); JButton button_3 = new JButton("製品を削除"); ボタン3.setBounds(535, 200, 127, 30); getContentPane().add(button_3); button_3.addActionListener(新しいActionListener() { @オーバーライド パブリック void アクションが実行されました (アクションイベント e) { (jTable.getSelectedColumn()<0) の場合 { JOptionPane.showMessageDialog(null, "削除するデータを選択してください!"); } それ以外 { int goodsID = Integer.parseInt(jTable.getValueAt(jTable.getSelectedRow(), 0).toString()); 文字列 sql="delete from goods where goodsid="+goodsID; int 結果 = updata.addData(sql); 結果>0の場合{ JOptionPane.showMessageDialog(null, "正常に削除されました!"); JOptionPane.showMessageDialog(null, "更新を忘れないでください!"); } それ以外 { JOptionPane.showMessageDialog(null, "削除に失敗しました!"); } } } }); JButton button_4 = new JButton("商品を追加"); ボタン4.setBounds(535, 258, 127, 30); getContentPane().add(button_4); button_4.addActionListener(新しいActionListener() { パブリック void actionPerformed(ActionEvent arg0) { 商品追加 商品追加 = new 商品追加(); goodsAdd.setVisible(true); } }); JLabel label = new JLabel("製品番号:"); ラベル.setBounds(40, 354, 112, 32); getContentPane().add(ラベル); テキストフィールド = 新しい JTextField(); テキストフィールド.setBounds(154, 358, 127, 26); getContentPane().add(テキストフィールド); テキストフィールド.setColumns(10); JButton button = new JButton("番号によるクエリ"); button.addActionListener(新しいActionListener() { パブリック void actionPerformed(ActionEvent arg0) { 文字列 sql = "SELECT goodsID,goodsname,num,price FROM goods WHERE goodsid LIKE '%"+textField.getText()+"%'"; オブジェクト[][]データ = Select.getGoods(sql); df.setDataVector(データ、ヘッダー); } }); ボタン.setBounds(305, 355, 112, 30); getContentPane().add(ボタン); this.addWindowListener(新しいWindowAdapter() { パブリック void windowClosing(WindowEvent e) { super.windowClosing(e); //アクションを追加 GoodsManagement m = new GoodsManagement(); m.setVisible(true); } }); } パブリック静的voidメイン(String[] args) { GoodsManage t = 新しい GoodsManage(); t.setVisible(true); } } 2.2 製品情報を追加するパブリッククラスGoodsADDはJFrameを拡張します{ プライベート JTextField id、名前、数値、価格; プライベート JButton ボタン; プライベート JButton button_1; パブリックGoodsADD() { super("製品管理システム"); 境界を0, 0, 400, 450に設定します。 this.setLocationRelativeTo(null);//ウィンドウを画面の中央に表示します this.setResizable(false);//ウィンドウのサイズを変更しません getContentPane().setLayout(null); JLabel label = new JLabel("製品番号:"); ラベル.setBounds(85, 89, 87, 22); getContentPane().add(ラベル); id = 新しい JTextField(); id.setBounds(147, 90, 142, 21); getContentPane().add(id); id.setColumns(10); JLabel label_1 = new JLabel("製品名"); label_1.setBounds(85, 139, 87, 22); getContentPane().add(label_1); 名前 = 新しい JTextField(); 名前.setColumns(10); 名前.setBounds(147, 140, 142, 21); getContentPane().add(名前); JLabel label_2 = new JLabel("数量:"); label_2.setBounds(85, 193, 87, 22); getContentPane().add(label_2); num = 新しい JTextField(); num.setColumns(10); 数値.setBounds(147, 194, 142, 21); getContentPane().add(num); JLabel label_3 = new JLabel("単価:"); ラベル3.setBounds(85, 241, 87, 22); getContentPane().add(label_3); 価格 = 新しい JTextField(); 価格.setColumns(10); 価格.setBounds(147, 242, 142, 21); getContentPane().add(価格); ボタン = 新しい JButton("OK"); ボタン.setBounds(78, 317, 93, 23); getContentPane().add(ボタン); button.addActionListener(新しいActionListener() { パブリック void actionPerformed(ActionEvent arg0) { 文字列 addId = id.getText(); 文字列 addName = name.getText(); 文字列 addNum = num.getText(); 文字列 addPrice = num.getText(); if (addName.equals("")||addName.equals("")||addNum.equals("")||addPrice.equals("")) { JOptionPane.showMessageDialog(null, "追加するデータを完全に入力してください"); } それ以外 { 文字列 sql="INSERT INTO goods VALUES("+addId+",'"+addName+"','"+addNum+"','"+addPrice+"')"; int 結果 = Updata.addData(sql); 結果>0の場合{ JOptionPane.showMessageDialog(null, "正常に追加されました!"); JOptionPane.showMessageDialog(null, "更新を忘れないでください!"); 破棄(); //GoodsManage i = 新しい GoodsManage(); // i.setVisible(true); } それ以外 { JOptionPane.showMessageDialog(null, "追加に失敗しました!"); } } } }); button_1 = 新しい JButton("キャンセル"); ボタン1.setBounds(208, 317, 93, 23); getContentPane().add(button_1); button_1.addActionListener(新しいActionListener() { パブリック void actionPerformed(ActionEvent arg0) { 破棄(); } }); } } 2.3 データベース設計製品リストテーブル `NewTable` を作成します ( `goodsID` int(11) NOT NULL , `goodsName` varchar(10) 文字セット utf8 COLLATE utf8_general_ci NOT NULL , `num` int(11) NOT NULL , `price` 小数点(10,4) NOT NULL , 主キー (`goodsID`) ) エンジン=InnoDB デフォルト文字セット=utf8 COLLATE=utf8_general_ci ROW_FORMAT=コンパクト ; これで 以下もご興味があるかもしれません:
|
<<: インスピレーションを得るための7つのクールなダイナミックウェブサイトデザイン
>>: 24 の実用的な JavaScript 開発のヒント
ここでは主に、スタンドアロンのプログラムを生成できるspring-bootと、Mavenプラグインd...
目次開始と停止データベース関連の操作データベーステーブル関連の操作制約関連デフォルトの制約高度なデー...
まず、MySQL公式サイトからインストールパッケージをダウンロードします。MySQLはオープンソース...
目次概要1. NULL値のテスト2. ユーザー入力を読み取る導入事実の根源はどこにあるのでしょうか?...
序文MySQL スロー クエリ ログは、MySQL が提供するログ レコードの一種です。これは、応答...
ファイルの切り替えは Linux でよく行われる操作です。Linux を初めて学ぶときに最初に触れる...
MySQL データベース テーブルでは、インデックスを作成、表示、再構築、削除できるため、クエリ速度...
目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...
目次0x0 はじめに0x1 インストール0x2 ノードサイドバー0x3 統合例0x0 はじめにプロジ...
目次1. 前提条件1.1 サポートされているプラットフォーム1.2 jdk および hadoop...
プロジェクトで frameset 属性を使用したことがあるかどうかはわかりません。昨年、オンライン ...
目次既存のイメージからイメージを更新します。イメージを最初から構築する: Docker イメージ リ...
ウィンドウ環境にmysql5.7.21をインストールします。詳細は次のとおりです。 1. MySQL...
目次1. 関数バインディング2. パラメータと$eventを使用する3. 1つのイベントに複数の関数...
目次1. vue-video-playerをインストールする2. vue-video-playerを...