ImageVerifierCode 换一换
格式:DOC , 页数:15 ,大小:389.54KB ,
资源ID:9463729      下载积分:10 金币
验证码下载
登录下载
邮箱/手机:
图形码:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/9463729.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请。


权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4009-655-100;投诉/维权电话:18658249818。

注意事项

本文(谭经涛--图书续借与归还模块课程设计报告.doc)为本站上传会员【仙人****88】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

谭经涛--图书续借与归还模块课程设计报告.doc

1、《数据库信息系统开发》 课 程 设 计 报 告 学号: 1204020108 姓名: 谭 经 涛 班级: 2012级01班 专业: 计算机信息管理 学院: 商 学 院 咸宁职业技术学院 2014年12月1日 课程设计报告 图书管理系统之图书续借与归还模块 一、课程设计任务: 图书续借与归还模块的实施与测试的任务如下表所示。 任务名称 图书续借与归还模块的实施与测试 模块名称 图书续借与归还 窗体名称 frm

2、BookReturnOrRenew 业务处理层的类名称 returnOrRenewClass 数据表名称 借阅信息、图书信息 数据操作层的类名称 bookDBClass 任务说明 (1)创建图书续借与归还模块的类 (2)设计图书续借与归还应用程序界面 (3)编写图书续借与归还模块的程序代码 (4)测试图书续借与归还程序 模块主要功能简述 (1)提供凭证续借与归还、凭书续借或归还两种方式。 (2)借阅者或图书的输入或选择可能通过输入借阅者编号+回车或者使用条码扫描器扫描输入或者打开【选择已借出图书】窗口双击选择完成。 (3)对于凭证续借与归还的方式,可以从“借阅者信

3、息”数据表中选择任一位借阅者,但是只能从所选择借阅者的已借出图书列表中选择一本图书续借或归还。 (4)对于凭书续借与归还的方式,可以从“借阅信息”数据表中选择任一本已借出图书,而借阅者编号与所选择图书的借阅者对应,图书借阅员不能自由选择。 二、课程设计准备: (一)图书借出与归还模块的建模 (1)“图书借出与归还”模块的用例图如下所示: (2)“图书借出类”的类图如下所示:         “图书借出与归还”模块的用例图        “图书借出类”的类图 (3)“图书借出界面类”的类图如下所示: “图书借出界面类”的类图

4、 (4)“图书”的状态图如下所示: “图书”的状态图 (5)“图书借出”的顺序图如下所示:  “图书借出”的顺序图 (6)“图书借出”的活动图如下所示: “图书借出”的活动图 (7)“图书借出”的协作图如下所示: “图书借出”的协作图 (二)创建图书续借与归还模块的数据表与数据视图 (1)借阅信息数据表的结构设计及相关数据如下: (2)创建图书信息数据表的结构设计及相关数据如下: (3)在数据库“bookData”中创建一个数据视图“loanView”,该视图的结构信息及相关数据如下: 三、课程设计实施: (一)创

5、建图书借出应用程序的解决方案和多个项目 (1)创建应用程序解决方案 启动Microsoft Visual Studio.NET 2008,显示系统的集成开发环境。在【Microsoft Visual Studio】集成开发环境中,创建应用程序解决方案“bookMis”。 (2)创建数据库访问项目 创建一个数据库访问项目“bookDB”。 (3)创建业务处理项目 创建一个业务处理项目“bookApp”。 (4)创建应用程序项目 创建一个应用程序项目“bookUI”。 (二)创建图书续借与归还模块的类 在现有类库bookApp中添加新类returnOrRenewClass,编写

6、类方法的程序代码。 bookDB类库中bookDBClass类对象的声明代码如下; bookDB.bookDBClass objBookDb = new bookDB.bookDBClass(); (1)方法getLoanInfoByBarcode的程序代码如下; public DataTable getLoanInfoByBarcode(string barcode) { return objBookDb.getDataBySQL("Select 借阅编号,借阅者编号, " + " 姓名,图书条码,图书名称,借出日期,应还日期,续借次数, 图书 阅员 " + " From

7、 loanView Where 图书条码='" + barcode + "' Order by 借阅编号"); } (2)方法loanRenew的程序代码如下; public bool loanRenew(int maxDay, string borrowerId, string bookBarcode) { string strSql = null; strSql = "Update 借阅信息 Set 借出日期=' "+DateTime.Today.ToShortDateString()+ "',应还日期='" + DateTime.Now.AddDays(maxDay).

8、Date.ToShortDateString() + "',续借次数=续借次数+1 where 借阅者编号='" + borrowerId + "' And 图书条码='" + bookBarcode + "'"; return objBookDb.updateDataTable(strSql); } (3)方法loanDelete的程序代码如下; public bool loanDelete(string borrowerId, string bookCode) { string strSql = null; strSql = "Delete From 借阅信息 Wh

9、ere 借阅者编号='" + borrowerId + "' And 图书条码='" + bookCode + "'"; if (objBookDb.updateDataTable(strSql) == true) { return true; } else { return false; } } (4)方法bookNowNumAdd的程序代码如下; public object bookNowNumAdd(string bibliothecaId) { string strEditComm = null; strEditComm = "Update 书目信息 S

10、et 现存数量=现存数量+1 " + "Where 书目编号= '" + bibliothecaId + "'"; return objBookDb.updateDataTable(strEditComm); } (三)图书续借与归还的界面设计 在现有项目bookUI中添加2个Windows窗体:【图书续借与归还】窗体(该窗体的变量名称为frmBookReturnOrRenew)和【选择已借出图书】窗体(该窗体的变量名称为frmSelectLoanBook)。 【图书续借与归还】窗体的外观设计如图所示; 【图书续借与归还】窗体的外观设计 (四)编写图书续借与归还窗体的程

11、序代码 (1)添加引用 将类库bookApp添加到类库bookUI的引用中。 在【解决方案资源管理器】窗口中,在类库名称“BookUI”位置单击右键,在弹出的的快捷菜单中单机选择菜单命令【添加引用】,打开【添加引用】对话框,在该对话框中选择“BookApp”,然后单击确定按钮,即可将“BookApp”添加到【解决方案资源管理器】窗口的“引用”列表中。 (2)声明窗体级变量 声明窗体级变量的程序代码如下; public string flagBorrow; bookApp.returnOrRenewClass objReturnOrRenew = new bookApp.retu

12、rnOrRenewClass(); bookApp.loanClass loanObj = new bookApp.loanClass(); string borrowerId; string bookBarcode; string bibliothecaId; (3)编写方法getBorrowerLoanInfo的程序代码 方法getBorrowerLoanInfo的程序代码如下; private void getBorrowerLoanInfo() { if (loanObj.isOverdue(borrowerId) == true) { DataT

13、able dt = new DataTable(); dt = loanObj.getLoanInfo(borrowerId); if (dt.Rows.Count != 0) { dgLoanInfo.DataSource = dt; btnGetBookBarcode.Enabled = false; } else { dgLoanInfo.DataSource = null; dgLoanInfo.Refresh(); } } else { MessageBox.Show("你已经有超期图书了,请归还再借!", "提示信息", MessageBoxBut

14、tons.OK, MessageBoxIcon.Information); } } (4)编写方法getBook的程序代码 方法getBook的程序代码如下; private void getBook() { DataTable dt = new DataTable(); dt = loanObj.getBookInfo(bookBarcode); if (dt.Rows.Count != 0) { txtBookName.Text = dt.Rows[0]["图书名称"].ToString(); txtPublisher.Text = dt.Rows[0]["出版社名

15、称"].ToString(); txtAuthor.Text = dt.Rows[0]["作者"].ToString(); bibliothecaId = dt.Rows[0]["书目编号"].ToString(); } } (5)编写方法clearControl的程序代码 方法clearControl的程序代码如下; private void clearControl() { txtBookBarcode.Text = ""; txtBookName.Text = ""; txtPublisher.Text = ""; txtAuthor.Text = ""; }

16、 (6)编写【图书续借与归还】窗体Load事件过程的程序代码 【图书续借与归还】窗体bookReturnOrRenew的Load事件过程的程序代码如下; private void frmBookReturnOrRenew_Load(object sender, EventArgs e) { if (flagBorrow == "renew") { this.Text = "续借图书"; btnBookRenew.Enabled = true; btnBookReturn.Enabled = false; } else { this.Text = "归还图书"; btn

17、BookRenew.Enabled = false; btnBookReturn.Enabled = true; } txtBookName.Enabled = false; txtPublisher.Enabled = false; txtAuthor.Enabled = false; txtBorrowerId.Focus(); DataGridViewCellStyle headerStyle = new DataGridViewCellStyle(); headerStyle.Alignment= System.Windows.Forms.DataGridViewCo

18、ntentAlignment.MiddleCenter; this.dgLoanInfo.ColumnHeadersDefaultCellStyle = headerStyle; } (7)编写“选择借阅者”按钮的Click事件过程的程序代码 “选择借阅者”按钮btnGetBorrower的Click事件过程的程序代码如下; private void btnGetBorrower_Click(object sender, EventArgs e) { txtBookName.Enabled = false; txtPublisher.Enabled = false; txtA

19、uthor.Enabled = false; txtBorrowerId.Focus(); DataGridViewCellStyle headerStyle = new DataGridViewCellStyle(); headerStyle.Alignment =System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; this.dgLoanInfo.ColumnHeadersDefaultCellStyle = headerStyle; } (8)编写“借阅者编号”文本框的KeyDown事件过程的程序代码

20、 “借阅者编号”文本框txtBorrowerId的KeyDown事件过程的程序代码如下; private void txtBorrowerId_KeyDown(object sender,Key EventArgs e) { if(e.KeyCode==Keys.Enter) { if(txtBorrowerId.Text.Trim().Length>=5) { borrowerId=txtBorrowerId.Text.Trim(); getBorrowerLoanInfo(); } } } (9)编写“选择图书”按钮的Click事件过程的程序代码 “选择图书”按

21、钮btnGetBookBarcode的Click事件过程的程序代码如下; private void btnGetBookBarcode_Click(object sender, EventArgs e) { DataTable dt = new DataTable(); frmSelectLoanBook frmLoanBook = default(frmSelectLoanBook); Point startLocation = new Point(); startLocation.X = this.Location.X + txtBorrowerId.Location.X;

22、startLocation.Y = this.Location.Y + txtBookBarcode.Location.Y+50; frmLoanBook = new frmSelectLoanBook(startLocation); frmLoanBook.ShowDialog(); bookBarcode = frmLoanBook.getLoanBookId(); txtBookBarcode.Text = bookBarcode; getBook(); dt = objReturnOrRenew.getLoanInfoByBarcode(bookBarcode); txt

23、BorrowerId.Text = dt.Rows[0][1].ToString(); dgLoanInfo.DataSource = dt; btnGetBorrower.Enabled = false; txtBorrowerId.Enabled = false; } (10)编写“图书条码”文本框的KeyDown事件过程的程序代码 “图书条码”文本框txtBookBarcode的KeyDown事件过程的程序代码如下; Private void txtBookBarcode_KeyDown(object sender,KeyEventArgs e) { if(

24、e.KeyCode==Keys.Enter) { bookBarcode=txtBookBarcode.Text.Trim(); getBook(); if(btnGetBookBarcode.Enabled==true) { DataTable dt=new DataTable(); dt=objReturnOrRenew.getLoanInfoByBarcode(bookBarcode); txtBorrowerId.Text=dt.Rows[0][1].ToString(); dgLoanInfo.DataSource=dt; btnGetBorrower.Enabl

25、e=false; txtBorrowerId.Enabled = false; } } } (11)编写DataGridView控件的DoubleClick事件过程的程序代码 DataGridView控件dgLoanInfo的DoubleClick事件过程的程序代码如下; private void dgLoanInfo_DoubleClick(object sender,EventArgs e) { bookBarcode=dgLoanInfo.Rows[dgLoanInfo.CurrentRow.Index].Cells[2]

26、 .Value.ToString(); txtBookBarcode.Text=bookBarcode; getBook(); } (12)编写【续借图书】按钮的Click事件过程的程序代码 【续借图书】按钮btnBookRenew的Click事件过程的程序代码如下; private void btnBookRenew_Click(object sender, EventArgs e) { string strCardState = null; int maxDay = 0; DataTable dt = new

27、DataTable(); if (checkEmpty() == false) { return; } dt = loanObj.getBorrowerInfo(borrowerId); maxDay = Convert.ToInt32(dt.Rows[0]["最长借书期限"]); strCardState = dt.Rows[0]["借书证状态"].ToString(); switch (strCardState) { case "有效": if (objReturnOrRenew.loanRenew(maxDay, borrowerId, b

28、ookBarcode) == true) { dgLoanInfo.DataSource = null; dgLoanInfo.DataSource = loanObj.getLoanInfo(borrowerId); dgLoanInfo.Refresh(); MessageBox.Show("图书续借成功!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information);

29、 } else { MessageBox.Show("图书续借失败!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Question); return; } break; case "挂失": MessageBox.Show("读者的借书

30、证已被挂失,不能继续使用!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); return; case "停用": MessageBox.Show("读者的借书证已被停用,不能继续使用!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); retur

31、n; } btnGetBorrower.Enabled = true; } (13)编写【归还图书】按钮的Click事件过程的程序代码 【归还图书】按钮btnBookReturn的Click事件过程的程序代码如下; private void btnReturn_Click(object sender, EventArgs e) { if (objReturnOrRenew.loanDelete(borrowerId, bookBarcode) == true) { loanObj.setBookStat

32、e(bookBarcode, "在藏"); objReturnOrRenew.bookNowNumAdd(bibliothecaId); dgLoanInfo.DataSource = null; dgLoanInfo.DataSource = loanObj.getLoanInfo(borrowerId); dgLoanInfo.Refresh(); clearControl(); MessageBox.Show("图书归还成功!",

33、 "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { MessageBox.Show("图书归还失败!", "提示信息", MessageBoxButtons.OK, MessageBoxIcon.Question); } } (五)选择已借出图书的窗体设计 (1)设计【选择已借出图书】窗体的外观 【选择已借出图书】窗体的外观设计如图所示,该窗体主要包括1个DataGridView控件。

34、 【选择已借出图书】窗体的外观设计 (2)编写【选择已借出图书】窗体的程序代码 声明窗体级变量的程序代码如下; bookApp.loanClass objLoan=new bookApp.loanClass(); Data Table dt=new DataTable(); Point startLocation; 【选择已借出图书】窗体的程序代码如下; public frmSelectLoanBook(Point winLocation) { IntializeComponet(); startLocation=winLocation; } 方法get

35、LoanBookId的程序代码如下; public string getLoanBookId() { Return dt.Rows[dataGridView1.CurrentRow.Index][“图书条码”].ToString(); } 【选择已借出图书】窗体frmSelectLoanBook的Load事件过程的程序代码如下; private void frmSelectLoanBook_Load(object sender,EventArgs e) { this.FormBorderStyle=FormBorderStyle.None; this.Loca

36、tion=new Point(startLocation.X, startLocation.Y); dt=objLoan.getLoanInfo(“”); dataGridView1.DataSource=dt.DefaultView; } DataGridView控件的DoubleClick事件过程的程序代码只有一条语句,如下所示; this.DialogResult = DialogResult.Yes; 四、课程设计测试: (一)设置启动图书续借与归还模块项目和启动对象 (1)将“bookUI”为启动项目, (2)将窗体“frmBookR

37、eturnOrRenew”设置为启动对象。 (二)用户界面测试 (1) 测试内容:用户界面的视觉效果和易用性;控件状态、位置及内容确认;光标移动顺序。 (2) 确认方法:屏幕拷贝、目测,【续借图书】窗体运行的初始状态如下图所示。 (3) 测试结论:合格 【图书续借与归还】窗体运行的初始状态 (三)功能测试 功能测试的目的是测试任务卡中的功能要求是否能够实现,同时测试【图书续借与归还】模块的容错能力。 (1)准备测试用例。 准备的测试用例如下表; 序号 测试数据 预期结果 借阅者编号 姓名 图书条码 图书名称 1 201303020108 杨乙 000

38、50419 UML基础与Rose建模案例 成功续借图书 2 201303020110 丁一 00050406 网页设计与制作案例教程 成功续借图书 3 201303020110 丁一 00050406 网页设计与制作案例教程 成功续借图书 (2)测试使用有效借书证成功续借图书。 ①测试内容:对于有效借书证,成功续借图书。 ②确认方法:屏幕拷贝、目测。 ③测试过程。 在【续借图书】窗口中,单击“借阅者编号”文本框右侧的【…】按钮,显示的“选择借阅者”窗口,在该窗体中双击选择编号为“201303020108”的借阅证。 在【续借图书】窗口中双击“借出图书”列

39、表中的《UML基础与Rose建模案例》图书,在该窗口右侧显示该图书的相关数据。 接着在【续借图书】窗口中单击【续借图书】按钮,续借图书成功,弹出“图书续借成功!”的【提示信息】对话框,在该对话框中单击【确定】按钮,完成图书续借。 ④测试结论:合格。 (3)测试使用有效借书证成功归还图书 ①测试内容:对于有效借书证,成功续借图书。 ②确认方法:屏幕拷贝、目测。 ③测试过程。 首先打开【图书借出】窗口,在该窗口中借阅者“丁一”成功借出一本图书《网页设计与制作案例教程》。 然后打开【归还图书】窗口,在该窗口的“借阅者编号”文本框中输入编号“201303020110” 按回车键,显示“丁一”的借书记录。 在【归还图书】窗口双击“借出图书”列表中的《网页设计与制作案例教程》图书,在该窗口右侧显示该图书的相关数据。 在【归还图书】窗口单击【归还图书】按钮,归还图书成功,弹出“图书归还成功”的【提示信息】对话框,在对话框中单击【确定】按钮,完成图书归还。 ④测试结论:合格。 14

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服