freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

java課程設(shè)計(jì)--網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)設(shè)計(jì)-在線瀏覽

2025-03-25 14:57本頁面
  

【正文】 為了提高性能擴(kuò)展成“連接池”,同時(shí)對(duì)使用它的 xDAO 類沒有影響。 詳細(xì)設(shè)計(jì) 詳細(xì)設(shè)計(jì)主要 是關(guān) 注模塊一級(jí)的設(shè)計(jì),一般有界面,核心 算法及 處理流程,數(shù)據(jù)庫表 (表、屬性及表間關(guān)系) 的設(shè)計(jì) 。 數(shù)據(jù)庫設(shè)計(jì) 數(shù)據(jù)庫設(shè)計(jì)主要是根據(jù)分析和概要設(shè)計(jì)中發(fā)現(xiàn)的對(duì)象和類,確定哪些對(duì)象需要持久保存,然后將對(duì)象屬性及對(duì)象間關(guān)系轉(zhuǎn)化成關(guān)系表。其中 Card、 Computer、 Record的關(guān)系如下圖所示: 圖 持久對(duì)象 屬性及 關(guān)系圖 一條 Record 記錄必有對(duì)應(yīng)的一個(gè) Card 及一臺(tái) Computer,對(duì)于未用機(jī)器及卡,則沒有對(duì)應(yīng)的記錄。 共設(shè)計(jì)出四張表: 表 名稱 編碼 數(shù)據(jù)類型 卡號(hào) ID(主鍵) VARCHAR( 20) 用戶名 USERNAME(非空) VARCHAR( 20) 密碼 PASSWORD(非空) VARCHAR( 15) 卡狀 態(tài) STATUS(非空) INTEGER 余額 BALANCE(非空) DOUBLE 表 名稱 編碼 數(shù)據(jù)類型 機(jī)器號(hào) ID(主鍵) VARCHAR( 10) 狀態(tài) STATUS(非空) INTEGER 備注 NOTES VARCHAR( 200) 表 名稱 編碼 數(shù)據(jù)類型 記錄號(hào) ID(主鍵) VARCHAR( 20) 卡號(hào) CARDID(非空) VARCHAR( 20) 機(jī)器號(hào) COMPUTERID(非空) VARCHAR( 10) 上機(jī) 時(shí)間 BEGINTIME(非空) DATE 下機(jī)時(shí)間 ENDTIME DATE 上機(jī)費(fèi)用 FEE DOUBLE 4. Manager 表 名稱 編碼 數(shù)據(jù)類型 用戶名 USERNAME(非空) VARCHAR( 20) 口令 PASSWORD(非空) VARCHAR( 20) 經(jīng)驗(yàn)共享: 數(shù)據(jù)庫設(shè)計(jì)一般相對(duì)獨(dú)立,采用的主要方法是將對(duì)象模型轉(zhuǎn)化為數(shù)據(jù)庫關(guān)系模型, 也可以采用傳統(tǒng)的設(shè)計(jì)出 ER圖,再定關(guān)系表的方法。首先基本的是確定有哪 幾張表,表間關(guān)系,然后是表中的字段,比較麻煩的是確定字段的約束(主鍵、非空等),字段數(shù)據(jù)類型 ,范式的調(diào)整等 ,因?yàn)榇藭r(shí)會(huì)考慮到存儲(chǔ)空間、性能、易編程 、數(shù)據(jù)質(zhì)量 等 方面的因素 。 再比如確定哪些字段為“非空”,從編程角度看必須保證“非空”字段有值,這 會(huì)增加驗(yàn)證 “非空”字段 程序的代碼量,對(duì)用戶的約束也加強(qiáng),有些值要求用戶必 須輸入,如口令就不能為空。 一個(gè)基本的方向是“約束”多,則編程的代碼量會(huì)變大, 性能會(huì)下降, 但數(shù)據(jù)的質(zhì)量會(huì)得到 提高 。 一般數(shù)據(jù)庫表結(jié)構(gòu)的變動(dòng)對(duì)于程序的影響較大,在程序設(shè)計(jì)上可通過 xDAO類 盡量消減變動(dòng)的影響,在實(shí)現(xiàn)階段應(yīng)避免對(duì)數(shù)據(jù)庫結(jié)構(gòu) 大 的改動(dòng)。 設(shè)計(jì)應(yīng)簡(jiǎn)潔實(shí)用,避免在細(xì)節(jié)上(如字體、顏色)耗費(fèi)時(shí)間。 ( 7)提示上網(wǎng)成功 三 經(jīng)驗(yàn)共享 1 上機(jī)處理中的第 6步 要在一個(gè)完整的“事務(wù)”中完成,對(duì)卡、記錄、機(jī)器數(shù)據(jù)的更改 添加 要保證要么全部更改成功,要么都不更改,以保證數(shù)據(jù)的一致性。 3 記錄 ID 如何保證唯一且自動(dòng)增長。二是利用關(guān)系數(shù)據(jù)庫提供的“自增字段”特性,將 ID設(shè)置成“自增字段”,由數(shù)據(jù)庫負(fù)責(zé)每添加一條記錄就 將 ID 加 1。當(dāng)然還有其它的設(shè)計(jì)方式,如顯示當(dāng)前上機(jī)的所有記錄信息,選中 其中一條執(zhí)行下機(jī)操作。 6 系統(tǒng)顯示 本次上網(wǎng) 完整 的記錄( Record) 信息及卡余額,并 提示下機(jī)成功 注: 下機(jī)處理 4 中 修改三表的操作應(yīng)作為一個(gè)“事 務(wù) ”完成。界面設(shè)計(jì)布局應(yīng)簡(jiǎn)潔一致,從用戶友好性出發(fā),提供了輸入提示,增加了“確認(rèn)密碼”,以提醒用戶記住密碼 ,輸入的密碼用 *號(hào)顯示以提 高安全性 。 當(dāng)然從口令強(qiáng)度考慮,要求密碼只輸入數(shù)字和字母又是不妥的, 相反可提示用戶輸入特殊字符及輸入的最小字符數(shù)。 圖 發(fā)卡界面 二 發(fā)卡 流程 1 系統(tǒng)從界面獲取所有信息,依次判斷是否為空 2 判斷金額是否大于 0 3 判斷密碼和確認(rèn)密碼是否一致, 4 判斷密碼 和用戶名 是 否 在最小及最大長度之間 5 判斷卡號(hào)是否有效(唯一) 6 生成 Card 對(duì)象,請(qǐng)求 CardDao 向 Card 表中添加一條新記錄。 驗(yàn)證輸入數(shù)據(jù)的難點(diǎn)之一 在于在驗(yàn)證的代碼量和限制大多數(shù)常見錯(cuò)誤間取得平衡,過多地驗(yàn)證代碼無疑會(huì)增加編碼量和難度,但沒有驗(yàn)證或很少驗(yàn)證又使程序可靠性太差而難以實(shí)用。 一般驗(yàn)證可遵循 如下策略 :輸入前提示 如何輸入 ,輸入后驗(yàn)證,驗(yàn)證不通過則 再 提示(如通過對(duì)話框)。 驗(yàn)證通過后的數(shù)據(jù)在程序內(nèi)部傳遞時(shí),一般無需重復(fù)驗(yàn)證。最基本的方式由管 理員手工編號(hào)并保證卡號(hào)的唯一性,但卡一旦多了,這會(huì)成為管理員的負(fù)擔(dān),因此, 可以由系統(tǒng)自動(dòng)編號(hào),如規(guī)定卡號(hào)從 1依次遞增編號(hào),這樣卡號(hào)就無需輸入。也可以獲取 當(dāng)前時(shí)間轉(zhuǎn)化成字符串作為 ID,一般時(shí)間不會(huì)重復(fù),可保證 ID 唯一,優(yōu)點(diǎn)是生成 ID 無需訪問數(shù)據(jù)庫,還可以代表發(fā)卡時(shí)間。 4 系統(tǒng) 從 Card 查詢卡狀態(tài) 5 若 為“在用”,則提示“不能刪除在用卡” 6 查詢余額,若有則對(duì)話框提示“請(qǐng)結(jié)清余額” 7 若余額 已結(jié)清且狀態(tài)為“空閑”,則將該卡信息刪除 8系統(tǒng)提示刪除成功 三 經(jīng)驗(yàn)共享 1 如何刪除卡:一種是真刪,卡記錄信息從數(shù)據(jù)庫中永久刪除, 采用 delete from where 語句,此時(shí)還要注意,由于 Record 中有指向 Card 表的外鍵, 刪除涉及到“級(jí)連刪除”這一概念,即在 Record 中包含該卡號(hào)的記錄是否要一 起刪除。還有一種是假刪,即標(biāo)注卡狀態(tài)信息為“ 停用” ,只需用update 語句更改其狀態(tài)即可,這樣做好處是:一是可以完整保留已發(fā)卡信息,二是易于重新恢復(fù)已刪卡。 2 一般數(shù)據(jù)庫中數(shù)據(jù)刪除后難以恢復(fù) ,同時(shí)難以避免因?yàn)橐馔鈱?dǎo)致的數(shù)據(jù)損壞 ,因此重要數(shù)據(jù)的保存?zhèn)浞荼夭豢缮?,本系統(tǒng)沒有要求 做 數(shù)據(jù)備份功能, 因?yàn)閿?shù)據(jù)庫管理工具一般會(huì)提供相應(yīng)功能,只是要求 用戶會(huì)使用數(shù)據(jù)庫管理工具,所以從方便用戶使用考慮,程序本身提供備份(手動(dòng)或定期自動(dòng) 備份 )功能也是必要的。 數(shù)據(jù)庫訪問 對(duì)數(shù)據(jù)庫的基本操作是:增、刪、改、查,數(shù)據(jù)庫連接的建立 、關(guān)閉 ,其中的難點(diǎn)是訪問數(shù)據(jù)庫的異常處理和參數(shù)化 SQL,現(xiàn)舉 例如下: 1 獲取連接 的 代碼: private static final String DRIVER_CLASS = 。 //定義 ODBC 數(shù)據(jù)源 public static Connection getConnction() { Connection dbConnection = null。 dbConnection = (DATASOURCE)。 } return dbConnection。 2 查詢代碼: 下面是根據(jù)用戶名和口令驗(yàn)證卡是否有效的代碼 ,需要注意的是查詢參數(shù)值需要加單引號(hào)‘’ : /** * judge card is valid or not. * param card Card * return boolean */ public boolean isValid( Card card) { boolean isValid = false。 PreparedStatement pStatement = null。 try { dbConnection = ()。 + () + 39。 + () + 39。 } //查詢操作 pStatement = (strSql)。//執(zhí)行 SQL 語句 ,并返回結(jié)果 if (()) { //若 res有記錄說明卡存在 isValid = true。 } finally { (res)。 (dbConnection)。 } 3 更新代碼 下面是更新機(jī)器狀態(tài)的代碼 ,其中 SQL 語句中,“ id =(?)”是動(dòng)態(tài)參數(shù),具體值設(shè)置在 (1, ()) /** * record the puter have used. * param puter Computer */ public void updateOnUse( Computer puter) { Connection dbConnection = null。 try { String strSql = update puter set Status =1 where id =(?) 。 pStatement = (strSql)。 //設(shè)置機(jī)器號(hào) id 參數(shù) ()。 } finally { (pStatement)。 } } 下機(jī)模塊 在 BusinessManager 類中有一 doCheckOut()方法是實(shí)現(xiàn)下機(jī)過程的關(guān)鍵。 //獲取包含了下機(jī)記錄及對(duì)應(yīng)卡信息 的 ComsumeDisplayInfo ComsumeDisplayInfo result = (rec)。 Card card = ()。 (fee)。 (())。 //將數(shù)據(jù)寫入數(shù)據(jù)庫 RecordDAO dao2 = new RecordDAO()。 //返回含有 上機(jī) 記錄 、 CARD 記錄的 ComsumeDisplayInfo,供界面顯示 下機(jī)結(jié)果 (record)。 return result。 /** * deal business about click confirm button. * param e ActionEvent */ void confirmButton_actionPerformed(ActionEvent e) { String cardId=。 String puterId =。 //獲取密碼 for(int i=0。i++){ passwordtemp += ()[i]。 //判斷機(jī)器號(hào)是否為空,未填或只有空格 if(puterId==null || ().length()==0){ (this,請(qǐng)選擇機(jī)器號(hào) !,警 告 , ,null )。 } /判斷卡號(hào)是否為空,未填或只有空格 if(cardId==null || ()==0){ (this,請(qǐng)輸入卡號(hào) !,警告 , ,null )。 } if(passwordtemp==null || ()==0){ (this,請(qǐng)輸入密碼 !,警告 , ,null )。 } //生成卡對(duì)象, 并設(shè)置卡用戶名、口令、上機(jī)時(shí)間 Card card = new Card()。 (passwordtemp)。 (cardId)。 (dispalyNowTime)。 (puterId)。 }else{ (this,卡余額不足,請(qǐng)充值 !,警告, ,null )。 } }else{ (this,卡號(hào)或者密碼不對(duì) !,警告 , ,null )。 return。做到這兩點(diǎn)并不容易,內(nèi)容正確要求寫幫助的人對(duì)系統(tǒng)的功能非常熟悉,簡(jiǎn)明易懂則充分體現(xiàn) 出作者的文字功底。 友情提示: 客戶會(huì)根據(jù)幫助說明來使用系統(tǒng),系統(tǒng)功能正確 , 但因?yàn)閹椭f明錯(cuò)誤導(dǎo)致的 問題甚至官司比比皆是,所以在通過基本的驗(yàn)收測(cè)試后,老師會(huì)按照你寫的幫助來使用系統(tǒng),進(jìn)而測(cè)試幫助文檔的正確性。 展望 本系統(tǒng)是一個(gè)簡(jiǎn)單的網(wǎng)吧計(jì)費(fèi)管理系統(tǒng), 無論在功能上還是使用方式上, 與現(xiàn)實(shí)中的網(wǎng)吧管理系統(tǒng)相比仍有 較大差距,但本系統(tǒng)可進(jìn)一步擴(kuò)展成實(shí)用的系統(tǒng),并且大部分代碼 (業(yè)務(wù)邏輯、數(shù)據(jù)庫及存取部分) 可以重用。 最后 以一句話結(jié)束本項(xiàng)目:“ 路漫漫其修遠(yuǎn)兮,吾將上下而求索 ”。 了解 Java 的多線程機(jī)制,掌握 Java 多線程技術(shù)的應(yīng)用 。 了解 Socket 編程的協(xié)議約定 ,掌握簡(jiǎn)單應(yīng)用協(xié)議的開發(fā)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1