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

正文內(nèi)容

java課程設(shè)計(jì)--網(wǎng)吧計(jì)費(fèi)管理系統(tǒng)設(shè)計(jì)(編輯修改稿)

2025-02-25 14:57 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 三 經(jīng)驗(yàn)共享 1 輸入數(shù)據(jù)的驗(yàn)證是難點(diǎn), 驗(yàn)證輸入數(shù)據(jù)是保證程序可靠性的重要措施,例如:若不限制用戶或口令長(zhǎng)度在相應(yīng)數(shù)據(jù)庫(kù)表字段設(shè)定的范圍內(nèi),一旦將超長(zhǎng)的用戶名寫入數(shù)據(jù)庫(kù)則會(huì)產(chǎn)生 數(shù)據(jù)被截?cái)嗷?數(shù)據(jù)庫(kù)異常,而這完全可以在用戶輸入時(shí)予以控制。 驗(yàn)證輸入數(shù)據(jù)的難點(diǎn)之一 在于在驗(yàn)證的代碼量和限制大多數(shù)常見(jiàn)錯(cuò)誤間取得平衡,過(guò)多地驗(yàn)證代碼無(wú)疑會(huì)增加編碼量和難度,但沒(méi)有驗(yàn)證或很少驗(yàn)證又使程序可靠性太差而難以實(shí)用。 但也 有一些常規(guī)經(jīng)驗(yàn)可循 ,如 是否限定 字符數(shù)據(jù)的長(zhǎng)度, 驗(yàn)證 是否為空、數(shù)字?jǐn)?shù)據(jù)是否 在 范圍 內(nèi) 等, 有些輸入控件提供了限定輸入長(zhǎng)度等功能,應(yīng)該充分利用以減少編碼量。 一般驗(yàn)證可遵循 如下策略 :輸入前提示 如何輸入 ,輸入后驗(yàn)證,驗(yàn)證不通過(guò)則 再 提示(如通過(guò)對(duì)話框)。輸入驗(yàn)證的時(shí)機(jī):可以在輸入一項(xiàng)后立即驗(yàn)證該項(xiàng)輸入是否合法,也可以全部輸完后再逐項(xiàng)驗(yàn)證,某項(xiàng) 若 驗(yàn)證不通過(guò),除給出提示,從用戶友好性角度,還可以將焦點(diǎn)定位到出錯(cuò)項(xiàng)(缺點(diǎn)是代碼復(fù)雜性增加)。 驗(yàn)證通過(guò)后的數(shù)據(jù)在程序內(nèi)部傳遞時(shí),一般無(wú)需重復(fù)驗(yàn)證。 2 卡號(hào)的獲取。最基本的方式由管 理員手工編號(hào)并保證卡號(hào)的唯一性,但卡一旦多了,這會(huì)成為管理員的負(fù)擔(dān),因此, 可以由系統(tǒng)自動(dòng)編號(hào),如規(guī)定卡號(hào)從 1依次遞增編號(hào),這樣卡號(hào)就無(wú)需輸入。可在每次增加新卡時(shí),從卡表中獲取最大ID,加 1 后作為新增卡的卡號(hào)。也可以獲取 當(dāng)前時(shí)間轉(zhuǎn)化成字符串作為 ID,一般時(shí)間不會(huì)重復(fù),可保證 ID 唯一,優(yōu)點(diǎn)是生成 ID 無(wú)需訪問(wèn)數(shù)據(jù)庫(kù),還可以代表發(fā)卡時(shí)間。 刪除卡模塊 設(shè)計(jì) 一 界面設(shè)計(jì) 刪除卡 參考 界面如下圖所示 : 圖 刪除卡界面 二 刪除卡 流程 1管理員輸入卡號(hào) 2 系統(tǒng)根據(jù)卡號(hào),請(qǐng)求 CardDAO 查詢有無(wú)該卡 3 若 返回的卡對(duì)象存在,則執(zhí)行下一步,否則提示“卡號(hào)錯(cuò)誤”,要求重輸。 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ù)庫(kù)中永久刪除, 采用 delete from where 語(yǔ)句,此時(shí)還要注意,由于 Record 中有指向 Card 表的外鍵, 刪除涉及到“級(jí)連刪除”這一概念,即在 Record 中包含該卡號(hào)的記錄是否要一 起刪除。一般不允許“級(jí)連刪除”,因?yàn)?Record 中記錄是統(tǒng)計(jì)費(fèi)用的基本依據(jù),刪除后會(huì)使統(tǒng)計(jì)數(shù)據(jù)失真。還有一種是假刪,即標(biāo)注卡狀態(tài)信息為“ 停用” ,只需用update 語(yǔ)句更改其狀態(tài)即可,這樣做好處是:一是可以完整保留已發(fā)卡信息,二是易于重新恢復(fù)已刪卡。壞處是:若有大量卡(數(shù)以十萬(wàn)計(jì))長(zhǎng)期不用,會(huì)占用數(shù)據(jù)庫(kù)空間,影響訪問(wèn)卡表的性能。 2 一般數(shù)據(jù)庫(kù)中數(shù)據(jù)刪除后難以恢復(fù) ,同時(shí)難以避免因?yàn)橐馔鈱?dǎo)致的數(shù)據(jù)損壞 ,因此重要數(shù)據(jù)的保存?zhèn)浞荼夭豢缮伲鞠到y(tǒng)沒(méi)有要求 做 數(shù)據(jù)備份功能, 因?yàn)閿?shù)據(jù)庫(kù)管理工具一般會(huì)提供相應(yīng)功能,只是要求 用戶會(huì)使用數(shù)據(jù)庫(kù)管理工具,所以從方便用戶使用考慮,程序本身提供備份(手動(dòng)或定期自動(dòng) 備份 )功能也是必要的。 系統(tǒng)實(shí)現(xiàn) 系統(tǒng)實(shí)現(xiàn)主要運(yùn)用集成開(kāi)發(fā)環(huán)境 、 Java、數(shù)據(jù)庫(kù)工具 根據(jù)設(shè)計(jì) 制做出實(shí)際的界面,編寫代碼,生成數(shù)據(jù)庫(kù) 表 , 進(jìn)行測(cè)試, 這 也是初級(jí)程序員所要完成的主要任務(wù), 在此列出部分典型代碼, 僅 供參考。 數(shù)據(jù)庫(kù)訪問(wèn) 對(duì)數(shù)據(jù)庫(kù)的基本操作是:增、刪、改、查,數(shù)據(jù)庫(kù)連接的建立 、關(guān)閉 ,其中的難點(diǎn)是訪問(wèn)數(shù)據(jù)庫(kù)的異常處理和參數(shù)化 SQL,現(xiàn)舉 例如下: 1 獲取連接 的 代碼: private static final String DRIVER_CLASS = 。 //定義驅(qū)動(dòng)類 private static final String DATASOURCE = jdbc:odbc:NetBarDataSource。 //定義 ODBC 數(shù)據(jù)源 public static Connection getConnction() { Connection dbConnection = null。 try { (DRIVER_CLASS)。 dbConnection = (DATASOURCE)。 } catch (Exception e) { ()。 } return dbConnection。 } 該代碼針對(duì) JdbcOdbcDriver 驅(qū)動(dòng), ODBC 源名為 NetBarDataSource,未支 持口 令驗(yàn)證。 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。 Connection dbConnection = null。 PreparedStatement pStatement = null。 ResultSet res = null。 try { dbConnection = ()。 // 構(gòu)建 查詢 SQL 語(yǔ)句 String strSql = select * from card where id=39。 + () + 39。 and password =39。 + () + 39。 if (dbConnection != null) { (dbConnection != null)。 } //查詢操作 pStatement = (strSql)。 res = ()。//執(zhí)行 SQL 語(yǔ)句 ,并返回結(jié)果 if (()) { //若 res有記錄說(shuō)明卡存在 isValid = true。 } } catch (SQLException sqlE) { ()。 } finally { (res)。//關(guān)閉結(jié)果集 (pStatement)。 (dbConnection)。 //關(guān)閉連接 } return isValid。 } 3 更新代碼 下面是更新機(jī)器狀態(tài)的代碼 ,其中 SQL 語(yǔ)句中,“ id =(?)”是動(dòng)態(tài)參數(shù),具體值設(shè)置在 (1, ()) /** * record the puter have used. * @param puter Computer */ public void updateOnUse( Computer puter) { Connection dbConnection = null。 PreparedStatement pStatement = null。 try { String strSql = update puter set Status =1 where id =(?) 。 。 pStatement = (strSql)。 (1, ())。 //設(shè)置機(jī)器號(hào) id 參數(shù) ()。 } catch (SQLException sqlE) { ()。 } finally { (pStatement)。 (dbConnection)。 } } 下機(jī)模塊 在 BusinessManager 類中有一 doCheckOut()方法是實(shí)現(xiàn)下機(jī)過(guò)程的關(guān)鍵。 /** * do check out business. * @param rec Record,已有機(jī)器號(hào) 值 * @return ComsumeDisplayInfo 含有上機(jī)記錄、對(duì)應(yīng)卡記錄 */ public static ComsumeDisplayInfo doCheckOut( Record rec) { RecordDAO dao = new RecordDAO()。 //獲取包含了下機(jī)記錄及對(duì)應(yīng)卡信息 的 ComsumeDisplayInfo ComsumeDisplayInfo result = (rec)。 Record record = ()。 Card card = ()。 //計(jì)算本次上機(jī)的 費(fèi)用 int fee = calFee((), ())。 (fee)。 //計(jì)算余額 int balance = () fee。 (())。 (balance)。 //將數(shù)據(jù)寫入數(shù)據(jù)庫(kù) RecordDAO dao2 = new RecordDAO()。 (record, card)。 //返回含有 上機(jī) 記錄 、 CARD 記錄的 ComsumeDisplayInfo,供界面顯示 下機(jī)結(jié)果 (record)。 (card)。 return result。 } 上機(jī)模塊 處理請(qǐng)求上機(jī)的部分代碼如下,主要有 界面數(shù)據(jù) (機(jī)器號(hào)、密碼、卡用戶號(hào))驗(yàn)證代碼 ;卡 有效性、余額可用性驗(yàn)證。 /** * deal business about click confirm button. * @param e ActionEvent */ void confirmButton_actionPerformed(ActionEvent e) { String cardId=。 String passwordtemp = 。 String puterId =。 //獲取機(jī)器號(hào),并去掉空格 cardId = ().trim()。 //獲取密碼 for(int i=0。i().length。i++){ passwordtemp += ()[i]。 } //獲取機(jī)器號(hào) puterId = ().toString()。 //判斷機(jī)器號(hào)是否為空,未填或只有空格 if(puterId==null || ().length()==0){ (this,請(qǐng)選擇機(jī)器號(hào) !,警 告 , ,null )。 return 。 } /判斷卡號(hào)是否為空,未填或只有空格 if(cardId==null || ()==0){ (this,請(qǐng)輸入卡號(hào) !,警告 , ,null )。 return 。 } if(passwordtemp==null || ()==0){ (this,請(qǐng)輸入密碼 !,警告 , ,null )。 return 。 } //生成卡對(duì)象, 并設(shè)置卡用戶名、口令、上機(jī)時(shí)間 Card card = new Card()。 (cardId)。 (passwordtemp)。 Record record = new Record()。 (cardId)。 (puterId)。 (dispalyNowTime)。 //生成機(jī)器對(duì)象,更新機(jī)器狀態(tài)時(shí)用 Computer puter = new Computer()。 (puterId)。 //驗(yàn)證卡是否有效、余額是否夠,符合要求后調(diào) doCheckIn 實(shí)際處理上機(jī)業(yè)務(wù) if((card)){ if((card)){ (record,puter)。 }else{ (this,卡余額不足,請(qǐng)充值 !,警告, ,null )。 return 。 } }else{
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1