《信息系統(tǒng)開(kāi)發(fā)》課程設(shè)計(jì)
《《信息系統(tǒng)開(kāi)發(fā)》課程設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《信息系統(tǒng)開(kāi)發(fā)》課程設(shè)計(jì)(42頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、. 計(jì)算機(jī)科學(xué)系課程設(shè)計(jì)報(bào)告 《黔南民族師范學(xué)院圖書(shū)館管理系統(tǒng)》 課題組成員 姓名 學(xué)號(hào) 崔建虎 1108045102 馮靈兵 1108045138 課程名稱(chēng): 信息系統(tǒng)開(kāi)發(fā) 指導(dǎo)教師: 郭勇 班 級(jí): B11計(jì)信班 專(zhuān) 業(yè): 信息管理與信息系統(tǒng) 學(xué) 期: 2013-2014 二 O一 四 年 六 月 九 日 1概述 1.1 課題背景(課題背景及現(xiàn)行
2、系統(tǒng)存在的問(wèn)題) 1.2 目的與意義 1.3 課題目標(biāo) 1.4 可行性分析 1.5 進(jìn)度計(jì)劃 1.6 分工介紹(2人以上課題) 2 系統(tǒng)分析 2.1 系統(tǒng)調(diào)查(調(diào)查途徑、方法、手段) 2.2 組織結(jié)構(gòu)與職責(zé)(大系統(tǒng)) 2.3 專(zhuān)業(yè)術(shù)語(yǔ)(行業(yè)專(zhuān)業(yè)術(shù)語(yǔ)) 2.4 業(yè)務(wù)與數(shù)據(jù)類(lèi)分析(列舉出業(yè)務(wù)與數(shù)據(jù)類(lèi),主要對(duì)象的E-R圖,大課題需有U-C矩陣圖) 2.5 系統(tǒng)總體結(jié)構(gòu)(畫(huà)出系統(tǒng)總體結(jié)構(gòu)圖) 3 系統(tǒng)設(shè)計(jì) 3.1 技術(shù)方案介紹 3.1.1 開(kāi)發(fā)技術(shù)平臺(tái)及要求(技術(shù)特點(diǎn)、實(shí)際運(yùn)行客戶(hù)端及服務(wù)器端軟硬件及網(wǎng)絡(luò)要求等) 3.1.2 開(kāi)發(fā)軟件(主要與輔助軟件、第三方組件、插件、控
3、件等) 3.1.3 數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)介 3.2 系統(tǒng)開(kāi)發(fā)規(guī)范(系統(tǒng)文件目錄結(jié)構(gòu)、源程序、數(shù)據(jù)庫(kù)的命名統(tǒng)一規(guī)范) 3.3 業(yè)務(wù)流程設(shè)計(jì)(畫(huà)出重要的業(yè)務(wù)流程圖,至少一個(gè)) 3.4 功能設(shè)計(jì)(按子系統(tǒng)或模塊劃分的功能圖表) 3.5 數(shù)據(jù)庫(kù)設(shè)計(jì)(應(yīng)有相應(yīng)的設(shè)計(jì)表結(jié)構(gòu)與關(guān)系圖表) 3.6 安全設(shè)計(jì)(針對(duì)系統(tǒng)安全性方面的措施及技術(shù)) 3.7 代碼設(shè)計(jì)(系統(tǒng)中主要的對(duì)象代碼規(guī)范) 3.8 I/O設(shè)計(jì)(特殊的I/O設(shè)計(jì)說(shuō)明) 3.8.1 輸入設(shè)計(jì):輸入校驗(yàn)說(shuō)明、特殊的輸入手段與方法說(shuō)明 3.8.2 輸出設(shè)計(jì):輸出方式、格式、報(bào)表及圖表說(shuō)明 3.9 界面設(shè)計(jì)(總體要求與特色) 3.10 特殊
4、模塊設(shè)計(jì)(如果有,比如一些公共類(lèi)的設(shè)計(jì)說(shuō)明) 4 系統(tǒng)實(shí)現(xiàn) 分小標(biāo)題羅列出主要模塊功能界面及關(guān)鍵源程序、原型截圖 5 系統(tǒng)測(cè)試(包括測(cè)試環(huán)境、測(cè)試用例、測(cè)試結(jié)果) 5.1 單元測(cè)試(對(duì)個(gè)別特殊功能進(jìn)行的測(cè)試) 5.2 集成測(cè)試(含分離客戶(hù)端與服務(wù)器機(jī)器的應(yīng)用環(huán)境模擬測(cè)試) 5.3 并發(fā)測(cè)試(客戶(hù)/服務(wù)器模式的需進(jìn)行) 5.4 平臺(tái)測(cè)試(實(shí)際應(yīng)用中的不同版本操作系統(tǒng)與瀏覽器兼容性測(cè)試) 6 系統(tǒng)評(píng)價(jià) 6.1 總體評(píng)價(jià) 6.2 存在的問(wèn)題 7 總結(jié) 7.1 收獲 7.2 改進(jìn)的方法或思路 ―――――――――――――――――――――――――――――————————— 《
5、黔南民族師范學(xué)院圖書(shū)館管理系統(tǒng)》設(shè)計(jì)報(bào)告 1概述 1.1課題背景(課題背景及現(xiàn)行系統(tǒng)存在的問(wèn)題) 圖書(shū)館管理系統(tǒng)的主要工作是對(duì)圖書(shū)館的借書(shū)、還書(shū)和更新圖書(shū)以信息化的方式進(jìn)行管理,最大限度的減少各個(gè)環(huán)節(jié)中可能出現(xiàn)的錯(cuò)誤,有效減少因漏記、錯(cuò)記導(dǎo)致的信息錯(cuò)誤,降低人員的工作量,及時(shí)掌握?qǐng)D書(shū)信息,提高對(duì)圖書(shū)管理的靈活性,使圖書(shū)館能夠合理控制借書(shū),新書(shū)入庫(kù)的每個(gè)關(guān)鍵步驟,提高圖書(shū)館的管理運(yùn)行。 1.2目的與意義 提高工作效率,降低圖書(shū)管理員的工作量。使圖書(shū)管理員實(shí)時(shí)掌握?qǐng)D書(shū)的去向,圖書(shū)館圖書(shū)保有量。 1.3課題目標(biāo) 盡可能的開(kāi)發(fā)出一個(gè)圖書(shū)管理系統(tǒng),對(duì)圖書(shū)館的圖書(shū)進(jìn)行實(shí)時(shí)
6、去向確定,圖書(shū)剩余量確定。 系統(tǒng)要求如下: (1) 界面設(shè)計(jì)美觀大方,操作方便、快捷、靈活。 (2) 實(shí)現(xiàn)強(qiáng)大的借閱、庫(kù)存管理,包括圖書(shū)信息、入庫(kù)時(shí)間,借閱次數(shù),本次借閱人。 (3) 能夠在不同的操作系統(tǒng)下運(yùn)行,不局限于特定的平臺(tái)。 (4) 提供數(shù)據(jù)庫(kù)備份和恢復(fù)功能。 提供技術(shù)支持的聯(lián)系方式,可以使用郵件進(jìn)行溝通,或者直接聯(lián)系到技術(shù)網(wǎng)站。 1.4可行性分析 黔南民族師范學(xué)院圖書(shū)館是一個(gè)中型的綜合性圖書(shū)館,為了更好的管理圖書(shū)借閱,使圖書(shū)能為更多的人所使用,特此開(kāi)發(fā)一圖書(shū)管理系統(tǒng)。 可行性研究的前提: 附加引進(jìn)新書(shū)、圖書(shū)受損等功能以增加管理的靈活性。 系統(tǒng)的功能要符合本圖
7、書(shū)館的實(shí)際情況。 管理內(nèi)容比較多,涉及窗口容易混亂,應(yīng)提供窗口集合操作和菜單管理。 支持?jǐn)?shù)據(jù)庫(kù)備份和恢復(fù)功能,提高系統(tǒng)安全性。 總結(jié): 如若交給軟件公司進(jìn)行開(kāi)發(fā),則屬于一個(gè)小的系統(tǒng),很容易完成。但成本相對(duì)有點(diǎn)高。 1.5進(jìn)度計(jì)劃 支出: 根據(jù)預(yù)算,此系統(tǒng)大概需要6個(gè)人,為此需要支付9萬(wàn)元的工資及各種福利待遇,項(xiàng)目的安裝、調(diào)試以及用戶(hù)培訓(xùn)、員工出差費(fèi)用支出需要2.5萬(wàn)元;在項(xiàng)目后期維護(hù)階段預(yù)計(jì)需要投入2萬(wàn)元的資金,累計(jì)項(xiàng)目投入需要13.5萬(wàn)元。 需要3個(gè)月才能開(kāi)發(fā)使用,除去系統(tǒng)分析,測(cè)試,確認(rèn)等,程序開(kāi)發(fā)需要80天的時(shí)間進(jìn)行系統(tǒng)設(shè)計(jì)、程序編碼、系統(tǒng)測(cè)試、程序調(diào)試和系統(tǒng)打包部署
8、工作。 1.6分工介紹(2人以上課題) 崔建虎進(jìn)行系統(tǒng)的分析、系統(tǒng)設(shè)計(jì)、界面的分析部署等。馮靈兵進(jìn)行程序編碼、系統(tǒng)測(cè)試調(diào)試等。 2系統(tǒng)分析 2.1系統(tǒng)調(diào)查(調(diào)查途徑、方法、手段) 直接參加圖書(shū)館管理業(yè)務(wù)的實(shí)踐,閱讀和分析現(xiàn)有系統(tǒng)的資料,發(fā)現(xiàn)現(xiàn)存系統(tǒng)存在的不足。 2.2組織結(jié)構(gòu)與職責(zé)(大系統(tǒng)) 由于《圖書(shū)館管理系統(tǒng)》規(guī)模比較小,專(zhuān)業(yè)性較強(qiáng),偏向于技術(shù)性,而且小組成員不多,所以最終選擇職能型組織結(jié)構(gòu)。 2.3專(zhuān)業(yè)術(shù)語(yǔ)(行業(yè)專(zhuān)業(yè)術(shù)語(yǔ)) OAs:辦公自動(dòng)化系統(tǒng) TPS:事物處理系統(tǒng) MIS:管理信息系統(tǒng) 2.4業(yè)務(wù)與數(shù)據(jù)類(lèi)分析(列舉出業(yè)務(wù)與數(shù)據(jù)類(lèi),主要對(duì)象的E-R圖
9、,大課題需有U-C矩陣圖) 通過(guò)對(duì)學(xué)校的圖書(shū)館借書(shū)、還書(shū)的調(diào)查 ,弄清了借書(shū)還書(shū)的業(yè)務(wù)流程圖,如下圖所示: 通過(guò)對(duì)業(yè)務(wù)流程圖的細(xì)化,可得到系統(tǒng)的分層數(shù)據(jù)流圖。 系統(tǒng)U/C矩陣分析 過(guò)程/數(shù)據(jù)矩陣(U/C矩陣) U/C矩陣是用來(lái)表達(dá)過(guò)程與數(shù)據(jù)兩者之間的關(guān)系。矩陣中的行表示數(shù)據(jù)類(lèi),列表示過(guò)程,并以字母U(Use)和C(Create)來(lái)表示過(guò)程對(duì)數(shù)據(jù)類(lèi)的使用和產(chǎn)生。 U/C矩陣是MIS開(kāi)發(fā)中用于系統(tǒng)分析階段的一個(gè)重要工具。提出了一種用關(guān)系數(shù)據(jù)庫(kù)實(shí)現(xiàn)U/C矩陣的方法,并對(duì)其存儲(chǔ)、正確性檢驗(yàn)、表上作業(yè)等做了分析。 2.5系統(tǒng)總體結(jié)構(gòu)(畫(huà)出系統(tǒng)總體結(jié)構(gòu)圖) 3系統(tǒng)設(shè)
10、計(jì) 3.1技術(shù)方案介紹 3.1.1開(kāi)發(fā)技術(shù)平臺(tái)及要求(技術(shù)特點(diǎn)、實(shí)際運(yùn)行客戶(hù)端及服務(wù)器端軟硬件及網(wǎng)絡(luò)要求等) 利用Java技術(shù)進(jìn)行開(kāi)發(fā),能夠在Windows系統(tǒng)運(yùn)行就行。 3.1.2開(kāi)發(fā)軟件(主要與輔助軟件、第三方組件、插件、控件等) 基礎(chǔ)類(lèi)的:JDK、JRE 中間件:WEBSPHERE、WEBLOGIC、JBOSS、TOMCAT、RESIN等 開(kāi)發(fā)工具:ECLIPSE、JBUILDER、NETBEANS、RATIONAL等 此外還有很多其它工具:如IBM WID(SOA開(kāi)發(fā))、Business Moduler 數(shù)據(jù)庫(kù):SQL server 2005 3.2
11、數(shù)據(jù)庫(kù)系統(tǒng)簡(jiǎn)介 SQL Server 2005 是一個(gè)全面的數(shù)據(jù)庫(kù)平臺(tái),使用集成的商業(yè)智能 (BI) 工具提供了企業(yè)級(jí)的數(shù)據(jù)管理。SQL Server 2005 數(shù)據(jù)庫(kù)引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲(chǔ)功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。 SQL Server 2005 數(shù)據(jù)引擎是本企業(yè)數(shù)據(jù)管理解決方案的核心。此外 SQL Server 2005 結(jié)合了分析、報(bào)表、集成和通知功能。這使您的企業(yè)可以構(gòu)建和部署經(jīng)濟(jì)有效的 BI 解決方案,幫助您的團(tuán)隊(duì)通過(guò)記分卡、Dashboard、Web services 和移動(dòng)設(shè)備將數(shù)據(jù)應(yīng)用推向業(yè)務(wù)的各個(gè)領(lǐng)
12、域。 3.3業(yè)務(wù)流程設(shè)計(jì)(畫(huà)出重要的業(yè)務(wù)流程圖,至少一個(gè)) 3.4功能設(shè)計(jì)(按子系統(tǒng)或模塊劃分的功能圖表) 用例分析圖 3.5數(shù)據(jù)庫(kù)設(shè)計(jì)(應(yīng)有相應(yīng)的設(shè)計(jì)表結(jié)構(gòu)與關(guān)系圖表) 依據(jù)數(shù)據(jù)庫(kù)的原理,并結(jié)合以上E-R圖,經(jīng)過(guò)轉(zhuǎn)化,即可進(jìn)行數(shù)據(jù)庫(kù)的物理設(shè)計(jì)。基于以上數(shù)據(jù)庫(kù)的邏輯設(shè)計(jì),考慮程序設(shè)計(jì)的簡(jiǎn)易性,本系統(tǒng)決定采用一個(gè)數(shù)據(jù)庫(kù),在其下創(chuàng)建7個(gè)數(shù)據(jù)表,其結(jié)構(gòu)分別如下: 1.圖書(shū)信息表 2.圖書(shū)丟失登記表,其字段列表如表所示。 3. 圖書(shū)歸還登記表,其字段列表如表所示 4.學(xué)生信息表(tVip),其字段列表如表所示 5.管理員信息表 6.
13、 圖書(shū)超期時(shí)間登記表 7.圖書(shū)預(yù)約表 3.6安全設(shè)計(jì)(針對(duì)系統(tǒng)安全性方面的措施) 校園圖書(shū)管理系統(tǒng)本身沒(méi)有什么重要信息,存在安全風(fēng)險(xiǎn)較小。這時(shí)候我們只需裝個(gè)安全軟件,定期進(jìn)行安全掃描即可。圖書(shū)管理系統(tǒng)的主機(jī)應(yīng)不進(jìn)行互聯(lián)網(wǎng)聯(lián)網(wǎng)。 3.7代碼設(shè)計(jì)(系統(tǒng)中主要的對(duì)象代碼規(guī)范) 主要有六個(gè)類(lèi):登錄類(lèi),圖書(shū)信息表類(lèi),學(xué)生信息表類(lèi),管理員信息表類(lèi),圖書(shū)歸還類(lèi),圖書(shū)借閱類(lèi),數(shù)據(jù)庫(kù)類(lèi)。部分代碼分別如下 登錄類(lèi): package xuyaodelei; import javax.swing.*;import java.awt.*; import java.awt.event.*
14、;import javax.swing.table.*; import javax.swing.event.*;import java.sql.*; import java.util.*;import java.util.Date; public class Login extends JFrame implements ActionListener{ private JPanel jp=new JPanel();//創(chuàng)建JPanel對(duì)象 private JLabel []jlArray={//創(chuàng)建標(biāo)簽組 new JLabel("用戶(hù)IP"),new JLabel("端口號(hào)
15、"),new JLabel("用戶(hù)名"), new JLabel("密 碼"),new JLabel("") }; private JButton[] jbArray={//創(chuàng)建按鈕數(shù)組 new JButton("學(xué)生登錄"),new JButton("清空"),new JButton("管理員登錄") }; private JTextField[] jtxtArray={ //創(chuàng)建文本框 new JTextField("127.0.0.1"),new JTextField("3306"),new JTe
16、xtField("1001") }; private JPasswordField jpassword=new JPasswordField("number1"); //創(chuàng)建密碼框 String sql; public Login(){ jp.setLayout(null); //設(shè)置JPanel的布局管理器 for(int i=0;i<4;i++){ //對(duì)標(biāo)簽與按鈕控件循環(huán)處理 jlArray[i].setBounds(30,20+i*50,80,25);//設(shè)置標(biāo)簽與按鈕的大小和位置
17、 jp.add(jlArray[i]);//將標(biāo)簽和按鈕添加進(jìn)JPanel容器中 } for(int i=0;i<3;i++){//設(shè)置按鈕的大小位置并為其添加事件監(jiān)聽(tīng)器 jbArray[i].setBounds(10+i*120,230,100,25); jp.add(jbArray[i]); jbArray[i].addActionListener(this); } for(int i=0;i<3
18、;i++){//設(shè)置文本框的大小位置并為其添加事件監(jiān)聽(tīng)器 jtxtArray[i].setBounds(80,20+50*i,180,25); jp.add(jtxtArray[i]); jtxtArray[i].addActionListener(this); } jpassword.setBounds(80,170,180,25);//設(shè)置密碼框的大小位置 jp.add(jpassword);//將密碼框添加進(jìn)JPanel容器 jp
19、assword.setEchoChar(*);//設(shè)置密碼框的回顯字符 jpassword.addActionListener(this);//為密碼框注冊(cè)監(jiān)聽(tīng)器 jlArray[4].setBounds(10,280,300,25);//設(shè)置用于顯示登錄狀態(tài)的標(biāo)簽的大小位置 jp.add(jlArray[4]); //將標(biāo)簽添加進(jìn)JPanel容器 this.add(jp); Image image=new ImageIcon("ico.gif").getImage();//對(duì)logo圖
20、片進(jìn)行初始化 this.setIconImage(image); //設(shè)置窗體的大小位置及可見(jiàn)性 this.setTitle("登錄"); this.setResizable(false); this.setBounds(100,100,400,350); this.setVisible(true); } //實(shí)現(xiàn)ActionListener接口中的方法 public void actionPerformed(ActionEvent
21、e) {//事件源為文本框 String mgno=jtxtArray[2].getText().trim(); String mgIP=jtxtArray[0].getText().trim(); String port=jtxtArray[1].getText().trim(); String message=mgIP+":"+port; if(e.getSource()==jtxtArray[0]){ jtxtArray[1].requestFocus();//切換輸入焦點(diǎn)到下一個(gè)框
22、 } if(e.getSource()==jtxtArray[1]){ jtxtArray[2].requestFocus();//切換輸入焦點(diǎn)到下一個(gè)框 } if(e.getSource()==jtxtArray[2]) { jpassword.requestFocus();//切換輸入焦點(diǎn)到密碼框 } else if(e.getSource()==jbArray[1]){//事件源為清空按鈕 //清空所有
23、信息 jlArray[4].setText(""); jtxtArray[2].setText(""); jpassword.setText(""); //將輸入焦點(diǎn)設(shè)置到文本框 jtxtArray[2].requestFocus(); } else if(e.getSource()==jbArray[2]){//事件源為管理員登錄按鈕 //判斷用戶(hù)名和密碼是否匹配 if(!mgno.mat
24、ches("\\d+")) {//如果用戶(hù)名格式輸入有誤 JOptionPane.showMessageDialog(this,"用戶(hù)名格式錯(cuò)誤?。?!","信息", JOptionPane.INFORMATION_MESSAGE); return; } if(jtxtArray[0].getText().trim().equals("")) {//如果"用戶(hù)IP"文本框?yàn)榭眨崾? JOptionP
25、ane.showMessageDialog(this,"用戶(hù)IP不能為空?。?!","信息", JOptionPane.INFORMATION_MESSAGE); return; } if(jtxtArray[1].getText().trim().equals("")) {//如果"端口號(hào)"文本框?yàn)榭眨崾? JOptionPane.showMessageDialog(this,"用戶(hù)端
26、口號(hào)不能為空?。?!","信息", JOptionPane.INFORMATION_MESSAGE); return; } sql="select mgNo,password from manager where mgNo="+Integer.parseInt(mgno); try{ String mgNo=""; String password=""; jlArray[4].setText("恭喜您,登錄成功?。?!"
27、); new Root(mgNo); this.dispose(); } catch(Exception e1){e1.printStackTrace();} } else if(e.getSource()==jbArray[0]){//事件源為學(xué)生登錄按鈕 if(!jtxtArray[2].getText().trim().matches("\\d+")){ //
28、若學(xué)號(hào)格式錯(cuò)誤,輸出提示對(duì)話框 JOptionPane.showMessageDialog(this,"輸入有誤,學(xué)號(hào)只能為數(shù)字!!!", "消息", JOptionPane.INFORMATION_MESSAGE); return; } if(jtxtArray[0].getText().trim().equals("")){//若"用戶(hù)IP"文本框輸入為空,提示 JOptionPane.showMessageDialog(this,"用戶(hù)IP不能為空?。?!","信息",
29、 JOptionPane.INFORMATION_MESSAGE); return; } if(jtxtArray[1].getText().trim().equals("")){//若"端口號(hào)"文本框輸入為空,提示 JOptionPane.showMessageDialog(this,"用戶(hù)端口號(hào)不能為空?。?!", "信息",JOptionPane.INFORMATION_MESSAGE); return;
30、 } //查詢(xún)學(xué)號(hào)文本中所輸學(xué)號(hào)是否存在于STUDENT表中 sql="select StuNO,Password from STUDENT where StuNO=" +Integer.parseInt(jtxtArray[2].getText().trim()); try{ String mgNo=""; String password=""; jlArray[4].setText("恭喜您,登錄成功?。。?);
31、 new StudentSystem(); this.dispose(); } catch(Exception e1){e1.printStackTrace();} } } public static void main(String[]args) { new Login(); } } 圖書(shū)信息類(lèi): package xuyaodelei; import
32、javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.table.*; import java.sql.*; import java.util.*; import java.util.Date; public class BookManage extends JPanel implements ActionListener { private JSplitPane jsp=new JSplitPane(JSplitPane.VERTICAL_SPLIT,true);
33、 private JPanel jpt=new JPanel(); String []str1=new String [7]; String sql; DataBase db; private JLabel[] jlArray=new JLabel[] { new JLabel(" 書(shū) 號(hào)"), new JLabel(" 書(shū) 名"), new JLabel(" 作 者"), new JLabel(" 出 版 社"), new JLabel("
34、 購(gòu)買(mǎi)日期"), new JLabel(" 已 預(yù) 約"), new JLabel(" 已 借 閱") }; private JTextField[] jtxtArray=new JTextField[] { new JTextField(), new JTextField(), new JTextField(), new JTextField(), new JTextField() }; //設(shè)置JButton按鈕的文本 private JButton[] jbArray= {
35、new JButton("圖書(shū)入庫(kù)"),
new JButton("刪除圖書(shū)"),
new JButton("修改圖書(shū)記錄"),
new JButton("查找圖書(shū)")
};
//創(chuàng)建標(biāo)題
Vector
36、否預(yù)約");
}
//在下部子窗口中設(shè)置表格
Vector
37、"否","是"}; //創(chuàng)建下拉列表框 private JComboBox jcp1=new JComboBox(str); private JComboBox jcp2=new JComboBox(str); public BookManage() { this.setLayout(new GridLayout(1,1)); //設(shè)置面板的上部分為空布局管理器 jpt.setLayout(null); //設(shè)置jspt中分割條的初始位置 jsp.setDividerLocation(140); //設(shè)置分隔條的寬度 jsp.set
38、DividerSize(4); jsp.setTopComponent(jpt); jsp.setBottomComponent(jspn); for(int i=0;i<5;i++) { jpt.add(jtxtArray[i]); } for(int i=0;i<7;i++) { jpt.add(jlArray[i]); if(i<3) { jlArray[i].setBounds(15,10+30*i,100,20); jtxtArray[i].setBounds(115,10+30
39、*i,150,20); } else if(i>2&&i<5) { jlArray[i].setBounds(265,10+30*(i-3),100,20); jtxtArray[i].setBounds(375,10+30*(i-3),120,20); } else { jlArray[i].setBounds(495,10+30*(i-5),100,20); } } for(int i=0;i<5;i++) { jtxtArray[i].addActionListene
40、r(this); } this.add(jsp); jpt.add(jcp1); jpt.add(jcp2); //設(shè)置下部子窗格 jsp.setBottomComponent(jspn); jcp1.setBounds(595,10,100,20); jcp2.setBounds(595,40,100,20); //將JButton添加進(jìn)jpt for(int i=0;i<4;i++) { jpt.add(jbArray[i]); jbArray[i].setBounds(150+112*i,100,11
41、2,25); } //設(shè)置監(jiān)聽(tīng)器 for(int i=0;i<4;i++) { jbArray[i].addActionListener(this); } //設(shè)置窗體的大小位置及可見(jiàn)性 this.setBounds(5,5,600,500); this.setVisible(true); } public void actionPerformed(ActionEvent e){ //設(shè)置鼠標(biāo)焦點(diǎn) if(e.getSource()==jtxtArray[0]){ jtxtArray[1].req
42、uestFocus(); } if(e.getSource()==jtxtArray[1]){ jtxtArray[2].requestFocus(); } if(e.getSource()==jtxtArray[2]){ jtxtArray[3].requestFocus(); } if(e.getSource()==jtxtArray[3]){ jtxtArray[4].requestFocus(); } if(e.getSource()==jbArray[0]){
43、//添加圖書(shū) this.insertBook(); } if(e.getSource()==jbArray[1]){//將書(shū)號(hào)為書(shū)號(hào)框的書(shū)從書(shū)庫(kù)刪除 this.deleteBook(); } if(e.getSource()==jbArray[2]){//將書(shū)號(hào)為書(shū)號(hào)框的書(shū)信息進(jìn)行修改 this.updateBook(); } if(e.getSource()==jbArray[3]){//查詢(xún)圖書(shū)信息 this.searchBook(); } }
44、 public void insertBook(){ for(int i=0;i<5;i++){//聲明輸入變量 str1[i]=jtxtArray[i].getText().trim(); } if(str1[0].equals("")&&str1[1].equals("")&&str1[2].equals("") &&str1[3].equals("")&&str1[4].equals("")){//當(dāng)輸入為空進(jìn)行提示 JOptionPane.showMessageDialog(this, "圖書(shū)信息不能為空?。?!",
45、 "消息",JOptionPane.INFORMATION_MESSAGE); return; } if(!str1[0].equals("")&&!str1[1].equals("")&&!str1[2].equals("") &&!str1[3].equals("")&&!str1[4].equals("")){//將圖書(shū)信息插入Book表 str1[5]=jcp1.getSelectedItem().toString(); str1[6]=jcp2.getSelectedItem()
46、.toString(); sql="insert into BOOK values("+str1[0]+","+str1[1]+"," + str1[2] + ", "+str1[3]+","+ str1[4]+","+str1[5]+","+str1[6]+")"; PreparedStatement ps=null; Connection ct=null; ResultSet rs=null; try { Class.for
47、Name("sun.jdbc.odbc.JdbcOdbcDriver"); ct=DriverManager.getConnection("jdbc:odbc:tushu","sa","700700"); ps=ct.prepareStatement("insert into book values("+str1[0]+","+str1[1]+"," + str1[2] + ", "+str1[3]+","+ str1[4]+","+str1[5]+","+str1[6]+")"); ps.set
48、String(1,str1[0]); ps.setString(2,str1[1]); ps.setString(3,str1[2]); ps.setString(4,str1[3]); ps.setString(5,str1[4]); ps.setString(6,str1[5]); ps.setString(6,str1[6]); ps.execu
49、teUpdate(); } catch (Exception e){} finally { try { if(rs!=null) { rs.close(); } if(ps!=null) { ps.close(); } if(ct!=null) { ct.close(); }
50、 } catch (Exception e){}
}
Vector
51、d deleteBook(){ String bookno = jtxtArray[0].getText().trim(); if(bookno.equals("")){//當(dāng)書(shū)號(hào)輸入為空,提示 JOptionPane.showMessageDialog(this, "書(shū)號(hào)不能為空!?。?, "消息",JOptionPane.INFORMATION_MESSAGE); return; } sql="select * from RECORD where BookNO="+Integer.parseInt(bookno);
52、 db=new DataBase(); sql="delete from book where BookNO="+Integer.parseInt(bookno); } public void updateBook(){ String bookno = jtxtArray[0].getText().trim(); if(bookno.equals("")){//當(dāng)書(shū)號(hào)輸入為空時(shí),進(jìn)行提示 JOptionPane.showMessageDialog(this, "請(qǐng)輸入需要更改信息圖書(shū)的書(shū)號(hào)!", "消息",JO
53、ptionPane.INFORMATION_MESSAGE); return; } else{//當(dāng)輸入書(shū)號(hào)后的情況 for(int i=0;i<5;i++){//聲明文本框輸入的變量 str1[i]=jtxtArray[i].getText().trim(); } db=new DataBase(); int i=0; int flag=0; int b=Integer.parseInt(bookno); if(!str1[1].equals("")){i=i+
54、1;} if(!str1[2].equals("")){i=i+2;} if(!str1[3].equals("")){i=i+4;} if(!str1[4].equals("")){i=i+8;} switch(i){//請(qǐng)?jiān)敿?xì)解讀switch語(yǔ)句 case 0: JOptionPane.showMessageDialog(this,"信息不能為空?。。?, "消息",JOptionPane.INFORMATION_MESSAGE); break; case 1:
55、 sql="update BOOK set BookName="+str1[1]+" where BookNO="+b; db=new DataBase(); if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 2: sql=
56、"update BOOK set Author="+str1[2]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 3: sql="update BOOK set BookName="+str1[1]+"
57、,"+"Author=" +str1[2]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 4: sql="update BOOK set Publ
58、ishment="+str1[3]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 5: sql="update BOOK set BookName="+str1[1]+","+"Publishment
59、=" +str1[3]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 6: sql="update BOOK set Author="+str1[2
60、]+","+"Publishment=" +str1[3]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 7: sql="update BOOK s
61、et BookName="+str1[1]+","+"Author="+str1[2] +","+"Publishment="+str1[3]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break;
62、 case 8: sql="update BOOK set BuyTime="+str1[4]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 9: sql="upda
63、te BOOK set BookName="+str1[1]+","+"BuyTime=" +str1[4]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 10:
64、sql="update BOOK set Author="+str1[2]+","+"BuyTime=" +str1[4]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 11:
65、 sql="update BOOK set BookName="+str1[1]+","+"Author="+str1[2] +","+"BuyTime="+str1[4]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE);
66、 }break; case 12: sql="update BOOK set Publishment="+str1[3]+","+"BuyTime=" +str1[4]+" where BookNO="+b; if(flag>0){ JOptionPane.showMessageDialog(this,"恭喜你,修改成功!!!", "消息",JOptionPane.INFORMATION_MESSAGE); }break; case 13: sql="update BOOK set BookName="+str1[1]+","+"Publishment=
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《朱德的扁擔(dān)》名師課件(第二課時(shí))
- 《曹沖稱(chēng)象》【優(yōu)秀課件推薦】
- 國(guó)際財(cái)務(wù)管理第8章課件
- 水文地質(zhì)學(xué)基礎(chǔ)課程實(shí)驗(yàn)
- 腦出血病人的護(hù)理
- 三年級(jí)下冊(cè)幾百幾十?dāng)?shù)和幾十幾除以一位數(shù)的口算人教版
- 快樂(lè)工作-創(chuàng)造雙贏的人際溝通課件
- 心肺腦復(fù)蘇最新進(jìn)展及新思路-課件
- 制藥用水課件
- 一汽大眾沖壓件認(rèn)可過(guò)程課件
- 一次成功就夠了(哈蘭·山德士)課件
- 一次函數(shù)與一元一次方程及不等式課件
- 感恩節(jié)母親的圖片ppt
- 地中海氣候溫帶季風(fēng)氣候課件
- 亞低溫治療的護(hù)理和展望