【正文】
name)= then 導(dǎo)向管理員登陸界面 end if 接下來就是借書操作了: //變量說明部分 //readerno 為讀者證號(hào) //borrowno 為借書編號(hào) //number 為是否標(biāo)志是否查詢的讀者信息是否存在,初始為 1,表示有信息,如果輸入讀者證號(hào)后,沒有查到讀者信息,則更新為 0。 算法描述如 下 : 首先導(dǎo)入數(shù)據(jù)庫連接,以便對(duì)讀者信息表和圖書基本信息表進(jìn)行查詢和修改: !include file= 因?yàn)檫€書只能是擁有圖書館工作人員以上的權(quán)限的人才能進(jìn)行的操作,所以在程序開始部份還應(yīng)先判斷一下用戶的權(quán)限,如果沒有工作人員的權(quán)限,則要先進(jìn)行管理員登陸,即轉(zhuǎn)向登陸界面 ,這部分的操作和借書是一樣的 : if session(user_name)= then 導(dǎo)向管理員登陸界面 end if 接下來是還書的操作 : //變量說明部分 // returnno 為還書編號(hào) // state 表示當(dāng)前有無可還書的記錄 //reloan 表示是否要續(xù)借 //step 表示是否提交過表單 ,1初始狀態(tài) ,2已經(jīng)提交 //reader_no 表示還書者讀者編號(hào) //book_no 表示當(dāng)前要還的或要續(xù)借的圖書編號(hào) //count 表示當(dāng)前有沒有過期未還的書 sub return //還書按扭單擊事件 if returnno = then 顯示 請(qǐng)輸入還書編號(hào) ! 光標(biāo)定位到輸入還書編號(hào)欄 else step=1 帶上還書編號(hào)提交表單 end if 接下是查詢?cè)撨€書編號(hào)的書 If request(returnno) then 在數(shù)據(jù)庫中查詢?cè)摼幪?hào)的圖書 if 查詢的記錄數(shù) =0 and reader_no= then 提示“可能輸入了無效的圖書編號(hào)或該書 沒有借出 ,請(qǐng)重輸 !” 結(jié)束程序的繼續(xù)執(zhí)行 else 對(duì)將要顯示的當(dāng)前所要還的書籍的表格中的借閱者,書籍編號(hào),書名,作者,借閱日期單元格的內(nèi)容填值 if 當(dāng)前日期 借閱日期 60 then 更改讀者信息表中的 reader_state 為 1 提示用戶“你的書已過期 !” end if //根據(jù)借閱者的讀者證號(hào)查詢?cè)撟x者的相關(guān)信息 sqlstr2=select * from book_readerinfo where reader_no=39。39。charet=gb2312” title留言板 /title /head body div align=centerimg src=Images/ alt=dl width=1024 height=100 hspace=100 align=middle //div p /p p /p p /p table width=43% border=0 align=center tr align=center bgcolor=00FFFF td colspan=3span class=STYLE2圖書管理系統(tǒng)登錄/span/td /tr tr align=center bgcolor=99FF00 /td /trtd colspan=”2” Width=”542” height=”1”hr/td/tr /table 用戶名或密碼錯(cuò)誤! brbr 單擊 a href=””重新登錄 /a /body /html : % Session(“username”)=” ” (“”) % 管理員操作平臺(tái)界面( ) 圖 管理員操作平臺(tái)界面 管理員操作平臺(tái),包括:管理員用戶對(duì)圖書的查詢、借閱者圖書的歸還、圖書的借閱、圖書的添加、圖書的刪除、查詢用戶、添加用戶和刪除用戶功能模塊。 代碼: !DOCTYPE html PUBLIC //W3C//DTD XHTML Transitional//EN html xmlns= head meta equiv=ContentType content=text/html。 color: 00FF00。 39。 軟件測(cè)試范例: 讀者圖 書預(yù)定測(cè)試用例 功能模塊 名稱 圖書借閱 編制人 何志剛 功能特性 根據(jù)圖書名來借閱圖書 測(cè)試目的 驗(yàn)證 輸入圖書名是否正確 , 正確則允許借閱,否則不能進(jìn)行借閱。msgbox ok if ok=1 then msgbox ookk navigate ?shuhao= amp。nbsp。 fontsize: xlarge。 按照書號(hào)條件查詢: strsql=select * from 圖書表 where 書號(hào) = 39。 SERVER=localhost。 對(duì)要顯示讀者信息的欄位賦值 end if 如果找到了要還的書,便可以還書或續(xù)借了 if returnno = then 顯示 請(qǐng)先輸入還書編號(hào) 光標(biāo)定位于還書編號(hào) exit sub end if if state =no then 光標(biāo)定位于還書編號(hào) exit sub end if if book_no = then 顯示 請(qǐng)選擇 要還的書 ! exit sub end if //提交當(dāng)前表單 *****以上這段程序可以放在借書按的單擊事件中 *****以下是續(xù)借按扭的單擊事件的算法 sub contiborrow //續(xù)借按扭單擊事件 if book_no = then 顯示 請(qǐng)選擇要續(xù)借的書 ! exit sub end if reloan =yes 提交表單 end sub 提交表單后,要對(duì)庫中的數(shù)據(jù)表進(jìn)行還書和續(xù)借的操作了 從提交的表單中提取所有的讀者信息和當(dāng)前所要還的圖書編號(hào) count=0 //設(shè)當(dāng)前無過期書籍 if book_no and reader_no then if 當(dāng)前日期 借閱日期 60 then if reloan=yes then 提示 書已過期 ,不能續(xù)借 ! 不再做任何更改庫中記錄的操作,所回續(xù)借前的狀態(tài) 結(jié)束 ASP 程序的運(yùn)行 end if end if if reloan=yes then 將當(dāng)前書籍的借閱日期減一個(gè)月,因?yàn)槔m(xù)借只能是一個(gè)月 else 還原當(dāng)前所還書籍的借閱者,借閱日期,是否借閱為初始狀態(tài)。 還書功能的具體實(shí)現(xiàn) 還書是在借書的基礎(chǔ)上來操作的過程,總的原則是,沒有借書,就沒有還書,還書所要實(shí)現(xiàn)的功能,在某種程度上和借書是相似的,同樣要提示讀者是否有過期未還的書,此時(shí)也需要對(duì)庫中的信息進(jìn)行更改。在程序中 ,利用 vb script 腳本語言實(shí)現(xiàn)畫面的控制 ,利用 asp 語言來實(shí)現(xiàn)對(duì)庫的操作和算法流程的控制。) AND type in (N39。) AND type in (N39。)) BEGIN EXEC statement = N39。39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。) AND type in (N39。, N39。39。39。39。39。39。39。)) BEGIN CREATE TABLE [dbo].[BorrowRec]( [borrowRecID] [int] IDENTITY(1,1) NOT NULL, [readerID] [nvarchar](50) NOT NULL, [bookID] [nvarchar](50) NOT NULL, [beginDate] [datetime] NULL, [endDate] [datetime] NULL, [borrowStatus] [bit] NULL, [overdueDays] [int] NULL, [penalty] [money] NULL, CONSTRAINT [PK_BorrowRec_1] PRIMARY KEY CLUSTERED ( [borrowRecID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END 存儲(chǔ)過程腳本: SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM WHERE object_id = OBJECT_ID(N39。)) BEGIN CREATE TABLE [dbo].[Book]( [bookID] [nvarchar](50) NOT NULL, [bookName] [nvarchar](50) NULL, [bookIndex] [nvarchar](50) NULL, [bookTypeID] [int] NULL, [author] [nvarchar](50) NULL, [publish] [nvarchar](50) NULL, [price] [money] NULL, [publishDate] [datetime] NULL, [abstract] [ntext] NULL, [keyword] [nvarchar](50) NULL, [status] [int] NULL, [registeDate] [datetime] NULL, CONSTRAINT [PK_BookInfo] PRIMARY KEY CLUSTERED ( [bookID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO IF NOT EXISTS (SELECT * FROM WHERE object_id = OBJECT_ID(N39。)) BEGIN CREATE TABLE [dbo].[Users]( [userID] [nvarchar](50) NOT NULL, [userName] [nvarchar](50) NULL, [userPassword] [nvarchar](50) NULL, [userGender] [bit] NULL, [userDepartment] [nvarchar](50) NULL, [userAddress] [nvarchar](50) NULL, [userPhone] [nvarchar](50) NULL, [userBirthday] [datetime] NULL, [roleID] [int] NULL, CONSTRAINT [PK_Reader] PRIMARY KEY CLUSTERED ( [userID] ASC )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY] END GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO