書店管理システム:
プロジェクト演習の目的:
1。Javaアプリケーションの基本分析
2。オブジェクト指向プログラミングの基本的なアイデアを育みます
3。基本的なJavaデザインパターンの包括的なアプリケーション
4.レイヤー化とインターフェイスの基本設計をマスターします
5.合理的なJavaアプリケーションパッケージ構造を構築します
6。JSEの包括的な適用によって学んだ知識
7.アプリケーションでコレクションフレームワークを合理的に使用します
8。アプリケーションでのスイングの一般的なコンポーネントの包括的な使用
9。基本的なパフォーマンス層の実装メカニズム
10。IOストリームとファイルの基本操作
11.良いJavaプログラミングの習慣を開発します
12。Javaプログラムをデバッグし、エラーを修正する能力を育む能力を育む
プロジェクト機能要件:
1。ユーザー登録を操作し、基本情報を変更し、削除してクエリを行うことができます。
2。本の基本情報を追加、削除、変更、クエリすることができます。
3.購入フォームに記入できます。購入フォームには、複数の特定の購入情報が含まれています。購入した本は、本管理ですでに入手可能でなければなりません。購入中、在庫内の対応する本の在庫量を変更します。
4.販売フォームに記入できます。販売フォームには、複数の特定の販売情報が含まれています。販売された書籍はすでに本管理に含まれている必要があり、販売数量は現在の在庫量を超えることはできません。販売中は、在庫内の対応する本の在庫量を変更してください。
5.在庫の詳細を表示し、条件に応じて特定の本の在庫値を見つけることができます。
6.権限を簡素化し、固定許可制御を実装します。ユーザーは、モジュールに応じて異なる操作権限を持つ担当者に分割され、特別な管理者ユーザーはすべての機能を操作できます。
基本的なプロジェクトデザイン:
★アーキテクチャデザインの全体的なフレームワーク、モジュール部門:5モジュール:ユーザー、ブック、購入、販売、在庫
★システム機能構造設計各機能モジュールの特定の機能サブモジュール
★データベース設計プロジェクトフレームワークの実装:モジュール、レイヤー、下請け、およびビルドアプリケーション
1。ユーザー管理(user.txt)
注:タイプはintタイプで、演算子のタイプを表すために使用されます。
1-管理者として示されると、すべての操作を実行できます
2-本モジュールを操作できる人としてデノーティング
3-購入モジュールを操作できる人として表現
4-販売モジュールを操作できる人として表現
5-在庫モジュールを操作できる人として表現
2。本管理(book.txt)
3。購入管理(inmain.txt)
4。詳細管理(indetail.txt)を購入する
5。販売管理(outmain.txt)
6。販売詳細管理(outter.txt)
7。在庫管理(stock.txt)
プロジェクト下請け
最初のレイヤー:モジュールによるユーザーモジュール(ユーザー)
本(本)、
購入(in)、
セールス(アウト)、
在庫(ストア)
2番目のレイヤー: 3層モードによると、プレゼンテーションレイヤー(UI)、ロジックレイヤー(ビジネス)、およびデータレイヤー(DAO)に分割されます。
通常、バリューオブジェクトレイヤー(VO)を追加する必要があります
3番目のレイヤー:レイヤー内の分割に従って特定の状況に依存します。たとえば、サブパッケージは鉄の三角形の形で構築する必要がありますが、UIとVOはサブパッケージに分割する必要はありません)。
プロジェクトの層別化のアイデア:
完成していないので、このシリーズに注意を払い続けてください(ii)
以下はコードの一部です:( UTILの公開クラス)
cn.hncu.bookstore.util
fileioutil.java:
package cn.hncu.bookStore.util;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.arraylist; Import java.util.list; import javax.swing.joptionpane;/***ユーザーパブリックデータの読み取りおよび書き込みクラス* @author chen haoxiang** @version 1.0*/public class fileioutil {public fileioutil(){}/** return it( @filam filam filam* @papariデータテーブル) * @param ee(渡されたジェネリックのタイプ!) * @returnすべてのテーブルのレコード! */@suppresswarnings( "un -checked")//警告を押すpublic static <e> list <e> readformfile(string filename、e ee){list <e> list = new arraylist <e>(); final file file = new file(filename); ObjectInputStream in = null; if(!file.exists()){joptionpane.showmessageialog(null、 "データテーブルは存在しません!");返品リスト。 } try {in = new ObjectInputStream(new FileInputStream(filename)); try {list =(list <e>)in.ReadObject(); } catch(classNotFoundException e){e.printstacktrace(); }} catch(filenotfoundexception e){e.printstacktrace(); } catch(ioexception e){e.printstacktrace(); }最後に{if(in!= null){try {in.close(); } catch(ioException e){new nup runtimeexception( "データベースがclose close failed"); }}} return list; } / ** *リストコレクションをデータファイルFilename * * @paramリスト(保存する必要があるデータ収集) * @param filename(ファイルが書かれているファイル名) try {out = new objectOutputStream(new FileOutputStream(filename)); out.writeObject(list); } catch(filenotfoundexception e){e.printstacktrace(); } catch(ioexception e){e.printstacktrace(); }最後に{if(out!= null){try {out.close(); } catch(ioException e){new nup runtimeException( "データベースの閉じた障害!"); }}}}}}}}}}カプセル化されたユーザーデータ:
cn.hncu.bookstore.user.vo;
usermodel.java
パッケージcn.hncu.bookstore.user.vo;/** * @author chen haoxiang * @version 1.0 * * <br/> *ユーザー情報を保存するために使用される値<br/ * 1。 code <br/> *4。tostringmethod <br/> *5。空のパラメーター構築方法<br/> */public class usermodel {private string uuid; //ユーザーユニークな識別コードプライベート文字列名; //ユーザータイププライベート文字列Pwd;一意の識別コード*/ public string getUuid(){return uuid; } / *** function:uuid-user一意の識別コードを設定* @param uuid-user一意の識別コードストリングタイプパラメーター* / public void setuuid(string uuid){this.uuid = uuid; } / *** function:get user's username* @return - name-user name* / public string getname(){return name; } / *** function:get user's username* @return - name-user name* / public string getname(){return name; } / *** function:ユーザー名を設定** @param name-ユーザーによって設定されたユーザー、文字列タイプパラメーター* / public void setname(string name){this.name = name; } / ***機能:ユーザータイプを取得します:* 1 - すべての操作を実行できます* 2 - ブックモジュールを操作できる人を表します* 3 - 購入モジュールを操作できる人を表します* 4-販売モジュールを操作できる人を表します。 } / ***機能:ユーザータイプを設定します:* 1 - 本モジュールを操作できる人を表しますsetType(int type){this.type = type; } / ***関数:ユーザーのパスワードを取得*@return文字列タイプ、ユーザーのパスワード* / public string getpwd(){return pwd; } / ***関数:ユーザーのパスワードを設定します*@param pwd - string type parameter* / public void setpwd(string pwd){this.pwd = pwd; } @override public int hashcode(){final int prime = 31; int result = 1; result = prime * result +((uuid == null)?0:uuid.hashcode());返品結果; } @Override public boolean equals(object obj){if(this == obj)return true; if(obj == null)falseを返します。 if(getClass()!= obj.getClass())falseを返します。 usermodel other =(usermodel)obj; if(uuid == null){if(other.uuid!= null)return false; } else if(!uuid.equals(other.uuid))false; trueを返します。 } @Override public String toString(){return "uuid =" + uuid + "、name =" + name + "、type =" + type + "、pwd =" + pwd + "]"; }}カプセル化されたユーザークエリデータ:
cn.hncu.bookstore.user.vo;
userquerymodel.java
パッケージcn.hncu.bookstore.user.vo; public class userquerymodel拡張usermodel {}このクラスには何もありませんが、Usermodelを継承するだけで、まだ書かなければなりません。これは、誰もが順守するJava執筆仕様です!
ユーザーDAO(データレイヤー):(インターフェイス)
cn.hncu.bookstore.user.dao.dao;
userdao.java
パッケージcn.hncu.bookstore.user.dao.dao; Import java.util.list; Import cn.hncu.bookstore.user.vo.usermodel; Import cn.hhncu.bookstore.user.vo.userquerymodel;/** * * interface userdao { / *** function:create one of user** @param usermodel ---作成されるユーザーデータ* @return - trueは作成の成功、false creation failed* / public boolean create(usermodel user); / ***関数:ユーザーを削除** @param uuid ---ユーザーの一意の識別コード、各ユーザーは同じではありません* @return --- trueは削除が成功することを意味します。 / ***関数:ユーザーデータの変更** @paramユーザー---変更する必要があるユーザーデータパラメーター名* @return return true-変更が成功したことを示し、return false-変更が失敗したことを示します*/ public boolean update(usermodel user); / ***関数:すべてのユーザーデータを取得** @return --- Usermodelコレクション、つまりユーザーのデータ*/ publicリスト<Usermodel> getAll(); /** *関数:特定の検索条件に応じて検索 * <br/> *検索条件を満たすユーザーデータを返します。 ** @param uqm ---カプセル化検索条件* @return ----検索条件を満たすユーザーデータセット*/ public list <usermodel> getByCondition(userquerymodel uqm); / ***関数:特定のユーザーデータを取得** @param uuid ---ユーザー一意の識別コード* @return ---この一意の識別コードに従って見つかったユーザーデータを返します*/ public usermodel getsingle(string uuid);}上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。