序文: 小規模スーパーマーケットの規模拡大に伴い、商品の数も飛躍的に増加し、商品に関する情報量も飛躍的に増加しています。 スーパーマーケットでは、さまざまな商品情報を常に統計的に分析する必要があります。 しかし、大規模スーパーマーケットの管理システムの機能は強力すぎるため、操作が煩雑になり、小規模スーパーマーケットの作業効率が低下します。 スーパーマーケット管理システムは、市場のスーパーマーケットで一般的に使用されている最も人気のあるシステムの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 開発のヒント
今日から、定期的にちょっとした豆知識を整理していきます。簡単なものもあるかもしれませんが、どれも役に...
この記事では、コードレイン特殊効果を実現するためのjQueryプラグインの具体的なコードを参考までに...
1. CentOS 7 と CentOS 8 のネットワーク構成の違い: VMware Workst...
1. サービス方法ファイアウォールのステータスを確認します。 [root@centos6 ~]# サ...
CentOS 7.3のインストール手順を図解しました。具体的な内容は次のとおりです。この記事では、v...
1.ターミナルに入ったらPHPのバージョンを確認するphp -v出力は次のようになります。 PHP ...
自動ビルドとは、Docker Hub を使用して、Dockerfile ファイルを含む GitHub...
前回の「最もシンプルなスイッチを実現するCSS」のように、HTML5とCSS3でほとんどの機能をすで...
この記事では、MySQL 8.0.23のインストールと設定方法を参考までに紹介します。具体的な内容は...
MySQL データベース管理ソフトウェアには、エンタープライズ エディションとコミュニティ エディシ...
目次作成機能配列プロトタイプの削減Array.prototype.reduceRightパイプ関数作...
SQLyog が MySQL に接続する際にエラー番号 1129 が発生します: mysql エラー...
目次序文Ajax シリアルおよびパラレルAjaxの同時リクエスト制御のための2つのソリューションPr...
目次HTMLの実装CSSを追加Javascript部分の実装デモアドレス HTMLの実装まず、hea...
序文モバイル端末の開発の過程で、モバイル端末のディスプレイはデスクトップ端末のディスプレイとは一般的...