南昌大學(xué)javaweb大作業(yè)報告書.doc_第1頁
南昌大學(xué)javaweb大作業(yè)報告書.doc_第2頁
南昌大學(xué)javaweb大作業(yè)報告書.doc_第3頁
南昌大學(xué)javaweb大作業(yè)報告書.doc_第4頁
南昌大學(xué)javaweb大作業(yè)報告書.doc_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、南昌大學(xué)軟件學(xué)院 java web大作業(yè) 實驗報告軟件學(xué)院大作業(yè)實驗報告題 目: 基于Struts的圖書管理系統(tǒng) 專 業(yè): 軟件工程 班 級: 122班(java方向) 學(xué) 號: 8000112163 學(xué)生姓名: 王冠 完成人數(shù): 1 人 起訖日期: 2015/05/20 任課教師: 周興斌 職稱: 副教授 部分管主任: 劉曉強 完成時間: 2015/05/30 27 / 27目錄1.前言31.1 實驗?zāi)康?1.2 實驗的基本要求32. 系統(tǒng)分析與設(shè)計32.1 系統(tǒng)功能描述(簡單需求分析)32.2 系統(tǒng)功能流程32.3數(shù)據(jù)庫設(shè)計42.3.1數(shù)據(jù)表的構(gòu)建43.系統(tǒng)的實現(xiàn)與測試53.1系統(tǒng)采用的關(guān)

2、鍵技術(shù)53.2 關(guān)鍵程序流程63.3 關(guān)鍵代碼分析73.4 出現(xiàn)的問題及解決183.4.1向數(shù)據(jù)庫中插入數(shù)據(jù)出現(xiàn)亂碼以及界面顯示有中文亂碼問題:183.4.2彈出提示框問題194. 系統(tǒng)界面194.1 進入系統(tǒng)界面 (登錄界面)194.2 管理員模塊界面:194.3 添加圖書界面:204.4 罰金設(shè)置界面:204.5 用戶管理界面:204.6 用戶模塊界面:214.7 圖書檢索、借閱界面:214.8 續(xù)借圖書界面:224.9 歸還界面:224.9 安全退出界面:235.操作方法235.1 登錄235.2 圖書檢索,借閱235.3圖書歸還,續(xù)借235.4圖書,用戶的添加235.5 圖書,用戶的刪

3、除操作245.6 圖書,用戶的更新操作246.分析與總結(jié)246.1實驗分析與總結(jié)247.附錄:257.1 參考文獻:257.3 MVC架構(gòu)模式的認識251.前言 1.1 實驗?zāi)康膶W(xué)習(xí)Web應(yīng)用程序的開發(fā),以B/S方式,JSP編程技術(shù)開發(fā)圖書管理系統(tǒng);通過編程實踐掌握JSP的動態(tài)網(wǎng)頁與sql2012數(shù)據(jù)庫相結(jié)合的技術(shù);通過MVC(模型-視圖-控制)架構(gòu)模式,使其在開發(fā)過程中得以應(yīng)用,并了解Web編程模式下的Model1和Model2 的區(qū)別;了解Struts框架的具體含義及在Struts模式下的開發(fā)。 1.2 實驗的基本要求數(shù)據(jù)庫表不少于3個,且表之間必須存在關(guān)聯(lián)。頁面設(shè)計布局合理,顏色使用恰當

4、,風(fēng)格統(tǒng)一,頁面應(yīng)不少于10個。系統(tǒng)功能不少于6個,且能正確運行。系統(tǒng)采用面向?qū)ο蟮姆绞皆O(shè)計,盡量使界面、業(yè)務(wù)、數(shù)據(jù)之間的耦合關(guān)系降低。代碼實現(xiàn)盡量使用事件處理、事務(wù)處理。系統(tǒng)應(yīng)對一些常見的異常進行適當?shù)奶幚怼?shù)據(jù)的操作以事務(wù)的方式實現(xiàn),要求處理并發(fā)問題。2. 系統(tǒng)分析與設(shè)計 2.1 系統(tǒng)功能描述(簡單需求分析)圖書管理系統(tǒng)是典型的信息管理系統(tǒng)(MIS),本系統(tǒng)是根據(jù)現(xiàn)代化校園的發(fā)展而設(shè)計的基于jsp的圖書管理系統(tǒng),本系統(tǒng)就是為了管理好圖書信息和借閱等一系列操作而設(shè)計的。圖書管理系統(tǒng)需要滿足來自兩方面的需求,這三個方面分別是學(xué)生和管理員。學(xué)生的需求是查詢圖書館的藏書,借閱圖書,和退換圖書等功能

5、;管理員的功能最為復(fù)雜,包括對學(xué)生、圖書進行管理,及系統(tǒng)狀態(tài)的查看、維護并。學(xué)生要使用圖書管理系統(tǒng),需要進行登陸,登陸之后則可以進行一系列的操作,例如:查詢圖書,借閱圖書,歸還圖書等功能。而作為管理員,則可以對學(xué)生進行添加,只有已添加有卡號的學(xué)生才可以進行圖書管理系統(tǒng)的登陸,管理員還可以對圖書進行增,刪,改,查。亦可以對用戶進行增,刪,改查等功能。 2.2 系統(tǒng)功能流程為了滿足以上的需求,系統(tǒng)分成了兩大模塊,普通用戶模塊和管理員模塊。功能模塊圖如圖所示。相應(yīng)Struts頁面流程如下所示(電子版可自行放大):2.3數(shù)據(jù)庫設(shè)計2.3.1數(shù)據(jù)表的構(gòu)建本系統(tǒng)采用如下的數(shù)據(jù)表:用戶信息表 users:用

6、于記錄用戶信息數(shù)據(jù)表字段名類型長度是否為主鍵可否為空說明IDnchar10是否用戶IDusernamenchar10否否用戶姓名passwordnchar10否否用戶密碼cardnumint10否否卡號信息userlevelint10否否用戶級別coaterint10否否借閱限額borrowedint10否否已借閱數(shù)can_borrowint10否否可借閱數(shù)圖書信息表books: (用于存儲圖書相關(guān)信息)字段名類型長度是否為主鍵可否為空說明b_IDint10是否圖書IDb_namenvarchar50否否圖書名稱b_authornchar10否否圖書作者b_publishnvarchar50否

7、否圖書出版社b_typenchar10否否圖書類型b_countint10否否擁有數(shù)量b_hotint10否否歡迎度借閱表 borrowbook: (用于表示借閱信息)字段名類型長度是否為主鍵可否為空說明bridint10是否借閱表idcardnumint10是否用戶表外鍵b_IDint10是否圖書表外鍵borrowdaynchar10否否借閱日期shouldreturnnchar10否否應(yīng)還日期罰金表fine: (用于設(shè)置罰金)字段名類型長度是否為主鍵可否為空說明finefloat10是否罰金3.系統(tǒng)的實現(xiàn)與測試 3.1系統(tǒng)采用的關(guān)鍵技術(shù)本系統(tǒng)采用的是Model2模型,Model2表示的是基

8、于MVC模式的框架。MVC是ModelViewController的簡寫。Model 代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,), View 是應(yīng)用的表示面(由JSP頁面產(chǎn)生),Controller 是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實現(xiàn)。這些組件可以進行交互和重用。從而彌補了Model1的不足。Model2具有組件化的優(yōu)點從而更易于實現(xiàn)對大規(guī)模系統(tǒng)的開發(fā)和管理,但是開發(fā)MVC系統(tǒng)比簡單的JSP開發(fā)要復(fù)雜許多,它需要更多的時間學(xué)習(xí)和掌握。同時新東西的引入會帶來新的問題(這讓我想起來關(guān)于自動計算的一篇文章,中間

9、提到為了降低系統(tǒng)的復(fù)雜度,卻導(dǎo)致更高的復(fù)雜度)。必須基于MVC組件的方式重新思考和設(shè)計應(yīng)用結(jié)構(gòu)。原來通過建立一個簡單的JSP頁面就能實現(xiàn)的應(yīng)用現(xiàn)在變成了多個步驟的設(shè)計和實現(xiàn)過程。 所有的頁面和組件必須在MVC框架中實現(xiàn),所以必須進行附加地開發(fā)工作。 MVC本身就是一個非常復(fù)雜的系統(tǒng),所以采用MVC實現(xiàn)Web應(yīng)用時,最好選一個現(xiàn)成的MVC框架,在此之下進行開發(fā),從而取得事半功倍的效果。現(xiàn)在有很多可供使用的MVC框架,由于Struts有完整的文檔并且相對來講比較簡單,所以用它開發(fā)MVC系統(tǒng)還是比較方便地。 3.2 關(guān)鍵程序流程 本實驗的總體流程如下: 本系統(tǒng)應(yīng)用3層架構(gòu)模型,現(xiàn)分別對其進行闡述:第

10、一層架構(gòu)為數(shù)據(jù)庫層,也是程序的最底層(主要由DataBase.java實現(xiàn)),它的功能實現(xiàn)sql2012數(shù)據(jù)庫的連接,函數(shù)里封裝了幾個操作。public boolean query(String s) (用于查詢數(shù)據(jù)表操作);public ResultSet getlist(String s) (用于獲取數(shù)據(jù)的可以滾動結(jié)果集) ;public int update(String s)(用于簡單的數(shù)據(jù)更新操作)public boolean executebatch(String a)(批處理,用于處理多條sql);第二層為JavaBean層和DAO層,主要實現(xiàn)對數(shù)據(jù)表的信息及對其進行操作的信息進

11、行封裝(主要由文件Books.java、Fine.java、borrowbook.java、Users.java、BookService.java 、borrowbookSevice.java、FineService.java和 UserService.java來實現(xiàn)的)。在相應(yīng)的JavaBean層封裝了所有數(shù)據(jù)表的信息,在上述的實體類中(Books.java、Fine.java、borrowbook.java、Users.java)僅包含對屬性的set和get方法,在相應(yīng)的DAO層主要包含對數(shù)據(jù)表的相關(guān)操作,如獲得該數(shù)據(jù)表的全部信息或部分信息,增加、刪除、修改、查詢相應(yīng)的數(shù)據(jù)表;第三層為業(yè)務(wù)

12、邏輯層,主要由Struts和其的action來實現(xiàn),實現(xiàn)頁面的控制和跳轉(zhuǎn)到相應(yīng)的jsp頁面,其中action主要包括BooksAction.java、LoginAction.java、ResetfineAction.java、UserAction.java。相應(yīng)的程序架構(gòu)如圖所示:3.3 關(guān)鍵代碼分析 數(shù)據(jù)庫的連接和相關(guān)一些操作函數(shù) (在文件DataBase.java中實現(xiàn)的):package com.wk.util;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import

13、 java.sql.SQLException;import java.sql.Statement;public class DataBase private Connection conn = null;private Statement stmt;ResultSet rs = null;/數(shù)據(jù)庫的urlprivate String url = jdbc:sqlserver:/localhost:1433;DatabaseName=Book;/數(shù)據(jù)庫的用戶名密碼String user = sa;String pass = 123;/用于驗證查詢操作public boolean query(St

14、ring s) throws SQLExceptiontry/加載驅(qū)動Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);catch(ClassNotFoundException e)System.out.println(加載驅(qū)動器類時異常);try/創(chuàng)建鏈接conn = DriverManager.getConnection(url, user, pass);stmt = conn.createStatement();rs = stmt.executeQuery(s);catch(SQLException e)System.

15、out.println(query連接數(shù)據(jù)庫的過程中出現(xiàn)SQL異常);return(rs.next();/用于結(jié)果集可滾動的操作public ResultSet getlist(String s) throws SQLExceptiontry/加載驅(qū)動Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);catch(ClassNotFoundException e)System.out.println(加載驅(qū)動器類時異常);try/建立連接conn = DriverManager.getConnection(url, user,

16、 pass);/得到statement對象stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);/得到一個可滾動但不可以更新的結(jié)果集rsrs = stmt.executeQuery(s);catch(SQLException e)System.out.println(更新操作連接數(shù)據(jù)庫的過程中出現(xiàn)SQL異常);return rs;/用于對數(shù)據(jù)庫的更新public int update(String s) throws SQLExceptionint msg=0;try/加載

17、驅(qū)動Class.forName(com.microsoft.sqlserver.jdbc.SQLServerDriver);catch(ClassNotFoundException e)System.out.println(加載驅(qū)動器類時異常);try/創(chuàng)建鏈接conn = DriverManager.getConnection(url, user, pass);stmt = conn.createStatement(); msg = stmt.executeUpdate(s);catch(SQLException e)System.out.println(連接數(shù)據(jù)庫的過程中出現(xiàn)SQL異常);

18、return(msg);/批處理,用于處理多條sqlpublic boolean executebatch(String a)try /創(chuàng)建鏈接conn = DriverManager.getConnection(url, user, pass);conn.setAutoCommit(false);/關(guān)閉自動提交,進行事物處理stmt = conn.createStatement();for(int i=0;ia.length;i+)stmt.addBatch(ai);int number = stmt.executeBatch();/開始批處理,返回被執(zhí)行的sql語句的序號m

19、it();System.out.println(共有+number.length+條sql語句被執(zhí)行);stmt.clearBatch();/清空batchconn.close();return true; catch (SQLException e) / TODO Auto-generated catch blocktry conn.rollback();return false; catch (SQLException e1) / TODO Auto-generated catch blocke1.printStackTrace();e.printStackTrace();return f

20、alse;/關(guān)閉數(shù)據(jù)流public void close() throws SQLExceptionconn.close();stmt.close();rs.close(); 管理員操作用戶(在文件UserService.java中實現(xiàn)的)/管理員對用戶的添加操作public boolean adduser(String a) throws SQLException/將密碼明文轉(zhuǎn)換為密文存入數(shù)據(jù)庫a2 = ead.encrypt(a2);/利用字符串的拼接組成sql語句sql = insert into users values(+a0+,+a1+,+a2+,+a3+,+a4+,+a5+,+a

21、6+);System.out.println(添加的sql+sql);/調(diào)用數(shù)據(jù)庫的更新數(shù)據(jù)的操作函數(shù)int result = db.update(sql);if(result!=0)return true;return false;/管理員對用戶的刪除操作public boolean deluser(String id) throws SQLExceptionsql = delete from users where ID=+id+;System.out.println(del sql=+sql);int result = db.update(sql);if(result!=0)return

22、 true;return false;/管理員對用戶的更新操作public boolean updateusers(String a) throws SQLExceptionsql = update users set username=+a1+,userlevel=+a2+ where ID=+a0+;System.out.println(更新sql=+sql);int result = db.update(sql);if(result!=0)return true;return false;這里管理員對圖書的操作和對用戶的操作很類似,這里就不再贅述了。 用戶對圖書的查詢,借閱和續(xù)借和歸還(

23、主要在BooksService.java和borrowbookService.java實現(xiàn)的)BooksService.java部分代碼:/模糊查詢,獲取用戶的關(guān)鍵詞,以此為查詢條件進行搜索,默認按人氣高至低排列public ArrayList getbook(String a) throws SQLExceptionArrayList al = new ArrayList();for(int i=0;ia.length;i+)System.out.println(ai);if(a0.equals()sql = select * from books where +a2+ LIKE %+a1+

24、% order by b_hot desc;elsesql = select * from books where +a2+ LIKE %+a0+% order by b_hot desc;System.out.println(sql:+sql);/調(diào)用DataBase.java的函數(shù),獲取相應(yīng)的圖書列表rs = db.getlist(sql);while (rs.next() Books bk = new Books();bk.setB_ID(rs.getInt(1);bk.setB_name(rs.getString(2);bk.setB_author(rs.getString(3);bk

25、.setB_publish(rs.getString(4);bk.setB_type(rs.getString(5);bk.setB_count(rs.getInt(6);bk.setB_hot(rs.getInt(7);al.add(bk); / 將al放到arrayList中return al;borrowbookService.java部分代碼:/歸還圖書,public boolean returnbook(String brid,String cardnum,String b_ID) throws SQLExceptionString sql1 = update users set b

26、orrowed = borrowed-1 , can_borrow = can_borrow+1 where cardnum = +cardnum;String sql2 = update books set b_count = b_count+1 where b_ID=+b_ID;String sql3 = delete from borrowbook where brid=+brid;String a = sql1,sql2,sql3;/處理多條語句時,使用事務(wù)處理和使用批處理進行處理。if(db.executebatch(a)return true;return false;/續(xù)借圖書p

27、ublic boolean renewbook(String brid) throws SQLException/將當前時間獲得,拼接之sql,進行數(shù)據(jù)庫表的更新操作sql = update borrowbook set borrowday =+new Day().getnowdate()+,shouldreturn = +new Day().getdate()+ where brid=+brid;System.out.println(sql=+sql);int r = db.update(sql);if(r!=0)return true;return false; 管理員對罰金的設(shè)置(主要由

28、FineService.java和Resetfine.java完成的)FineService.java代碼:package com.wk.service;import java.sql.ResultSet;import java.sql.SQLException;import com.wk.util.DataBase;public class FineService DataBase db = new DataBase();ResultSet rs = null;String sql = ;/管理員設(shè)定罰金金額public boolean setfine(float f)/字符拼接將設(shè)置的金額

29、拼接成sqlsql = update fine set fine =+f;System.out.println(sql);try /調(diào)用database.java的更新函數(shù)進行數(shù)據(jù)庫操作int r = db.update(sql);if(r!=0)System.out.println(設(shè)置罰金成功!);return true;elseSystem.out.println(設(shè)置罰金失敗!); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return false;/獲取上一次設(shè)定的罰金金額p

30、ublic float getlastfine()float m = 0;sql = select fine from fine;try /獲取當前設(shè)定的金額rs = db.getlist(sql);while(rs.next()m = rs.getFloat(1); catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();return m;Resetfine.java部分代碼:/設(shè)置罰金if(y.equals(isfirst)f.setFine(fs.getlastfine();request.s

31、etAttribute(oldfine, f.getFine();return mapping.findForward(success);elsef.setFine(fs.getlastfine();System.out.println(oldfine=+f.getFine();request.setAttribute(oldfine, f.getFine();/獲取表單輸入的罰金金額,轉(zhuǎn)為float類型fs.setfine(Float.parseFloat(fineForm.getFine();f.setFine(fs.getlastfine();System.out.println(new

32、fine=+f.getFine();request.setAttribute(newfine, f.getFine();/跳轉(zhuǎn)至成功界面return mapping.findForward(success); 輔助工具包(實現(xiàn)用戶密碼的加密和時間的計算轉(zhuǎn)換問題)Day.java/* * 換算時間 * 計算兩個日期之間相差的天數(shù) * 計算一個日期在n天之后的日期字符串 */package com.wk.util;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;i

33、mport java.util.Date;public class Day /傳入兩個時間字符串,計算其中相差的天數(shù)public int getlaterday(String d1,String d2) throws ParseExceptionDate a = new SimpleDateFormat(yyyy-MM-dd).parse(d1);Date b = new SimpleDateFormat(yyyy-MM-dd).parse(d2);/獲取相減后天數(shù)long day = (a.getTime()-b.getTime()/(24*60*60*1000);System.out.pr

34、intln(day+);return (int) day;/獲取兩個月后時間字符串public String getdate()SimpleDateFormat formatDate = new SimpleDateFormat(yyyy-MM-dd); /字符串轉(zhuǎn)換 Calendar c = Calendar.getInstance(); /new Date().getTime();這個是獲得當前電腦的時間,你也可以換成一個隨意的時間 c.setTimeInMillis(new Date().getTime(); c.add(Calendar.DATE, 60);/天后的日期 Date da

35、te= new Date(c.getTimeInMillis(); /將c轉(zhuǎn)換成Date System.out.println(date=+formatDate.format(date); return formatDate.format(date);/獲取當前的時間public String getnowdate() Date dt=new Date(); SimpleDateFormat matter1=new SimpleDateFormat(yyyy-MM-dd); System.out.println(matter1.format(dt); return matter1.format

36、(dt);EncryptAndDecrypt.javapackage com.wk.util;public class EncryptAndDecrypt /* * 加密String明文輸入,String密文輸出 * * param * return */public String encrypt(String sourceString)char p = 圖書管理.toCharArray();int n = p.length;char c = sourceString.toCharArray();int m = c.length;for(int k = 0;km;k+)int mima = c

37、k+pk%n;ck = (char)mima;/加密return new String (c);/返回密文/* * 輸入加密后的String,返回原本的String * * param * return */public String decrypt(String sourceString)char p = 圖書管理.toCharArray();int n = p.length;char c = sourceString.toCharArray();int m = c.length;for(int k = 0;km;k+)int mima = ck-pk%n;ck = (char)mima;/

38、解密return new String (c);/返回明文3.4 出現(xiàn)的問題及解決3.4.1向數(shù)據(jù)庫中插入數(shù)據(jù)出現(xiàn)亂碼以及界面顯示有中文亂碼問題:問題描述:當需要將數(shù)據(jù)插入數(shù)據(jù)庫時,會發(fā)現(xiàn)插入的數(shù)據(jù)有亂碼。在界面的表單進行數(shù)據(jù)輸入時,傳出傳入的中文數(shù)據(jù)也會出現(xiàn)亂碼。1、JSP顯示中文亂碼的問題,一般都是沒有設(shè)置頁面編碼,注意添加以下這樣一段代碼 pageEncoding指定了當前jsp文件存儲使用的編碼方式,“contentType”用來指定響應(yīng)頭消息中的Content-Type當服務(wù)端的響應(yīng)頭消息中沒有指定charset時,客戶端會依據(jù)上面代碼中的charset指定的編碼方式解碼頁面。 并且

39、JSP都以UTF-8的編碼方式保存,把所有可能出現(xiàn)的問題通通抹殺。如果你使用Myeclipse,可以設(shè)置Myeclipse的默認參數(shù),使Myeclipse新建JSP文件時,可以自動是用UTF-8的編碼方式。方法:Windows-Preference-Myeclipse-File and Editor-JSP-Encoding,選擇ISO 10646/Unicode(UTF-8)。2、從表單獲取的數(shù)據(jù)有中文亂碼,在Struts里面,一般都使用過濾器進行數(shù)據(jù)的過濾,保證數(shù)據(jù)的編碼格式與你自己頁面設(shè)置的一致。關(guān)鍵代碼如下:public void doFilter(Se

40、rvletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException / TODO Auto-generated method stub/這里設(shè)置接受編碼arg0.setCharacterEncoding(utf-8);/繼續(xù)讓它前進,這句話必須要有arg2.doFilter(arg0, arg1); 值得一提的是,arg0.doFilter(arg0,arg1);這句話一定要有,不然過濾器不會向前執(zhí)行,會停止不前,這樣程序就沒法運行了!3、讀取數(shù)據(jù)時,在Servlet中添加

41、request.setCharacterEncoding(UTF-8);可以很好地解決從JSP頁面接受中文參數(shù)亂碼。3.4.2彈出提示框問題問題描述:由于對Struts還不是完全的熟悉,對于其該怎樣使用彈出框還是有點困擾,其不能再action里彈出一個彈出框后再進行return mapping 的操作,這樣寫并不會有提示框,而是直接執(zhí)行了return mapping語句。解決方法:使用servlet和jsp結(jié)合來彈出提示框,即在servlet里給jsp傳遞一個參數(shù),然后在jsp里進行該參數(shù)的判斷,然后根據(jù)判斷結(jié)果看是否彈出提示框,因為在jsp里可以直接寫js代碼,這樣彈出框會方便很多,只要用a

42、lert(“我是彈出框!”);這一句就可以了。4. 系統(tǒng)界面 4.1 進入系統(tǒng)界面 (登錄界面) 4.2 管理員模塊界面: 4.3 添加圖書界面: 4.4 罰金設(shè)置界面: 4.5 用戶管理界面: 4.6 用戶模塊界面: 4.7 圖書檢索、借閱界面: 4.8 續(xù)借圖書界面: 4.9 歸還界面: 4.9 安全退出界面:5.操作方法 5.1 登錄首先,輸入正確網(wǎng)址即可打開系統(tǒng)登錄界面,輸入正確賬號密碼,系統(tǒng)會根據(jù)賬號的級別,相應(yīng)的進入不同的操作界面。 5.2 圖書檢索,借閱登錄成功,點擊左側(cè)導(dǎo)航欄的檢索、借閱,即可進入相應(yīng)界面。輸入關(guān)鍵詞,或選擇類別,點擊搜索,會出現(xiàn)相應(yīng)內(nèi)容。 5.3圖書歸還,續(xù)借

43、登錄成功后,點擊左側(cè)相應(yīng)的歸還或續(xù)借菜單,即可進入相關(guān)界面,點擊歸還或續(xù)借按鈕即可完成操作。 5.4圖書,用戶的添加管理員界面,點擊左側(cè)菜單的添加用戶和添加圖書,輸入相關(guān)信息,點擊添加即可。 5.5 圖書,用戶的刪除操作管理員界面,點擊左側(cè)菜單的刪除用戶和刪除圖書,找到想要刪除的用戶或圖書,當然也可以通過id號或卡號進行搜索,然后進行操作。 5.6 圖書,用戶的更新操作管理員界面,點擊左側(cè)菜單的更新用戶和更新圖書,找到想要更新的用戶或圖書,當然也可以通過id號或卡號進行搜索,然后在該用戶的這一條記錄的相應(yīng)位置填寫修改后的數(shù)據(jù)(當然有些字段是不能修改的),點擊更新按鈕即可。6.分析與總結(jié) 6.1

44、實驗分析與總結(jié)在這一節(jié)中,我主要討論了兩個問題,一個是系統(tǒng)的聯(lián)機文檔,另一個是系統(tǒng)的測試,下面我們分別加以說明。作為一個完整的系統(tǒng),聯(lián)機文檔是其中不可缺少的部分也是相當重要的部分。好的文檔能夠使用戶快速了解并準確的使用系統(tǒng)的各項功能。減少誤操作,減少錯誤產(chǎn)生的可能,這對用戶和開發(fā)人員都有很多的好處。所以在開發(fā)本系統(tǒng)中,也加入了不少的文檔,除了對于幾大模塊的詳細說明外,對于易出錯和不易操作的地方(如多條件查詢部分)又作了詳細的說明。由于本身能力的局限性,所以做編寫的代碼,即使經(jīng)過反復(fù)檢查也難免出錯所以在本階段力求使用有限的時間找出盡可能多的錯誤,力求系統(tǒng)盡量正確。我們在本系統(tǒng)的測試中使用了黑盒法(即不關(guān)心程序內(nèi)部的邏輯結(jié)構(gòu),而是根據(jù)程序的功能來設(shè)計是檢測)請一位不熟悉本系統(tǒng)的人來進行隨意性的操作,打破習(xí)慣的操作順序,從中發(fā)現(xiàn)錯誤,在此階段系統(tǒng)的大量錯誤得到了改正.信息管理系統(tǒng)所涉及的數(shù)據(jù)庫設(shè)計的重要步驟加載測試。加載測試工作貫穿于程序測試工作的全過程,整個錄入、修改、查詢、處理

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論