当前位置:文档之家› 图书管理信息系统课程设计

图书管理信息系统课程设计

管理信息系统课程设计报告题目: 图书管理信息系统院系:经济管理学院专业班级:电子商务 2008-1 学生姓名:王洪云、袁堂兴、王江、杨亚民指导教师:周长红2011年1月14日目录1.系统规划 (1)1.1问题的提出 (1)1.2研究路线 (1)1.3战略规划说明书 (2)2.系统分析 (5)2.1可行性分析报告 (5)2.2管理业务调查 (6)2.3数据流程分析 (7)2.4数据字典 (9)3.系统设计 (12)3.1功能结构图设计 (12)3.2信息系统流程图设计 (13)3.3输入设计 (13)3.4输出设计 (15)3.5数据存储设计 (17)3.6处理流程图设计 (19)4.系统实施 (21)4.1系统功能界面和主要代码 (21)4.2系统的数据查询和修改 (27)4.3系统的测试 (34)5.总结 (43)参考文献 (46)1.系统规划1.1问题的提出图书馆作为信息资源的集散地,图书和用户借阅资料繁多,包含很多信息数据的管理,现今,有很多的图书馆都是初步开发使用,甚至尚未使用计算机进行信息管理,根据调查得知,他们以前对信息的管理都基于文本,表格等纸介质的手工处理,对图书借阅情况(如借阅天数,超过借阅的天数)的统计和审核都通过借书卡的方式人工查询。

对借阅的权限,借阅天数用人工计算,手工抄写。

数据处理工作量大,容易出错。

由于数据量大容易丢失,且不容易查找。

总的来说,缺乏系统规范的管理手段。

尽管有的图书馆有计算机,但是尚未由于信息管理,没有发挥它的效力,资源闲置比较突出,这就是信息管理系统开发的基本环境。

基于这个问题,我们认为有必要建立一个图书管理系统,使图书管理工作规范化。

1.2研究路线1.3战略规划说明书新系统的名称:图书音像信息管理系统新系统的目标:针对各中等院校的图书管理现状设计出符合一般学校的计算机辅助图书管理信息系统.实现对图书基本信息、读者基本信息进行计算机辅助管理,完成借书和还书有关信息的记录、修改、查询、删除等一系列任务的计算机管理和实现.我们总体设计的目标就是实现图书管理的系统化、规范化和自动化,具体有:(1)系统维护方便可靠、有较高的安全性,满足实用性、先进性的要求。

(2)商品管理信息化,提高服务质量、提高工作效率、降低管理成本。

(3)系统界面友好美观,操作简单易行,查询灵活方便,数据存储安全。

新系统总体结构:系统能完成的任务主要服务于企业发展流程中的三大子系该系统界面友好,操作简单,能完成添加图书信息,修改图书信息,查询图书信息,添加读者类别,修改读者类别,查询读者信息,修改读者信息等一系列图书管理功能,开发本系统的任务是实现图书管理的系统化和自动化,帮助管理人员更好更高效的完成图书管理工作.本着实用性和介绍性原则整个系统有三大模块,每个大模块又包含几个小模块:第一板块、读者管理部分:包括读者信息管理,其功能是实现对各部分数据内容的添加和修改等操作。

第二板块、图书管理部分:包括图书信息管理和类别管理, 其功能是实现对各部分数据内容的添加和修改、查询等操作。

第三板块、图书借阅管理部分:包括借书管理和还书管理, 其功能是实现对各部分数据内容的添加和修改、查询等操作。

开发方法:结构化系统开发方法,它是目前应用得最普遍的一种开发方法。

系统分析:对要开发的新系统的可行性进行论证和详细的系统调查,进行。

系统化分析、建立信息系统的逻辑模型系统设计:在逻辑模型的基础上设计系统的物理模型,包括:代码设计、信息系统流程图设计、数据库设计、处理流程图设计和编写程序设计说明书。

系统实施:程序设计及调试、系统转换及系统运行与评估、编写使用说明书。

我们选择这个开发方法的原因:结构化系统开发方法是在生命周期基础上发展起来的。

与生命周期法相比,结构化系统开发方法更强调开发人员与用户的紧密结合,而且在开发策略上强调“从上到下”,注重开发过程的整体性和全局性,适合大型信息系统的开发。

允许组织根据自身精确的需求定制一个系统采用多个阶段逐一进行的结构化方式建立工厂专业人员与知识工作者之间的任务分离下面是我们根据规划,课程设计的完成的进度表:周一:我们首先确立了课程题目,进行了大体方向研究,然后具体分工,并提出工作计划周二:我们一起深入讨论了系统的有关东西;比如职能,业务过程,数据类,总体结构等等,周三:查阅资料的人搜查有关资料,代码设计者开始准备有关数据库和程序语言的东西周五——周二:文档编写者编写文档周三:最后检查文档和程序,再由排版者进行最后的排版2.系统分析2.1可行性分析报告(1)系统简述:VB和ACCESS开发,即使遇到困难,也能从丰富的参考书中找到解决方案。

(2)管理上的可行性分析:在该单位中,从主管领导、管理人员到具体的业务人员在建立一个计算机产品库存管理新系统的必要性的认识是一致的。

(3)技术上的可行性分析:技术方面,我们选择的是VB和ACCESS,都是组员熟悉的语言,即使遇到部分困难,也可以从丰富的参考书中找到解决方案。

所以技术方面是绝对可行的。

(4)经济上的可行性分析:开发需求较低,加上成熟的软硬件环境、目标系统并不是十分复杂和开发周期较短,人员经济支出有限。

开发完成运行后,为使用者带来便利,为新系统的进一步推广创造了条件,经济收益将远超过投资。

从经济角度考虑,此系统开发可行。

(5)法律上的可行性分析:由于整个系统是自行开发,自行使用,所以系统本身不存在版权争议,符合国家各种政策法规。

服务器软件方面,它的操作系统可能会被微软跟踪,如果不是正版软件,将会面临民事诉讼的风险。

(6)结论:由于该单位有良好的管理基础,单位的经济效益良好,对建立新系统所需的费用由能力支持,因而建立新系统在管理上,技术上合经济上都是可行的,所以我们可以立即开发系统。

2.2管理业务调查1. 管理功能调查2.组织结构调查2.3数据流程分析数据流程调查:通过调查可以绘制出数据流程图。

数据流程图是一种能全面地描述信息系统逻辑模型的主要工具,它可以用少数几种符合综合的反映出信息在系统中的流动、处理和存储情况。

0层数据流程图:第一层数据流程图:第二层数据流程图:2.4数据字典数据字典的内容包括对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储和外部实体等六个方面进行具体的定义。

数据流程图配以数据字典,就可以从图形和文字两个方面对系统的逻辑模型进行完整的描述下面是我们的数据字典(以图书采编过程为例):数据项的定义:数据结构的定义:数据流的定义处理逻辑的定义:数据储存的定义外部实体的定义2.5主要数据处理的描述3.系统设计3.1功能结构图设计3.2信息系统流程图设计3.3输入设计管理员注册:读者登记图书登记3.4输出设计管理员信息查询输出设计读者信息查询设计图书信息查询3.5数据存储设计采用access数据库,VB6开发管理员表(ID,NAME,PASS,USER,BOOK,PHOTO)图书信息表(ID,NAME,SORT,DATE,PRICE,WRITER,CONCERN,REMARK, CHECK_DA TE)图书库存表(ID,QUANTITY)读者信息表(ID,NAME,SEX,IDENTIFICATION,TEL,ADDRESS,PHOTO, CHECK_DA TE)借阅信息表(UER_ID,BOOK_ID,LEND_DATE)图书类型(BOOK_SORT)1.管理员表2.图书信息表3.书库存表4.读者信息5.借阅信息表6.图书类型表3.6处理流程图设计管理员设置读者信息管理图书管理4.系统实施4.1系统功能界面和主要代码登录窗口:'Option ExplicitPrivate Sub cmdCancel_Click()EndEnd SubPrivate Sub cmdOK_Click()Dim str_manager As Stringstr_manager = ""If txt_ManagerID = "" ThenMsgBox "请输入管理员ID"txt_ManagerID.SetFocusExit SubEnd If管理员注册:Private Sub Cmd_manager_check_Click() '确定If Txt_Mid = "" Then: MsgBox "请输入管理员ID": Txt_Mid.SetFocus: Exit SubIf Txt_Mname = "" Then: MsgBox "请输入管理员名": Txt_Mname.SetFocus: Exit SubIf Txt_Mpass(0) = "" Then: MsgBox "请输入密码": Txt_Mpass(0).SetFocus: Exit SubIf Txt_Mpass(0) <> Txt_Mpass(1) Then MsgBox "密码与复核密码不匹配,请重新输入": Txt_Mpass(0).SetFocus: Txt_Mpass(0).SelStart = 0: Txt_Mpass(0).SelLength = (Len(Txt_Mpass(0))): Exit Sub读者信息:读者登记和修改:Private Sub Cmd_User_Check_Click()Dim str_sex As String, str_photo As StringDim i As Integer'对信息的判断'Debug.Print "txt_user(3).Tag:"; txt_user(3).TagFor i = 0 To 5If i <> 2 ThenIf txt_user(i) = "" Then MsgBox "请输入" + lbl_user(i): txt_user(i).SetFocus: Exit SubEnd IfNext iIf Option1(0) = True Then str_sex = "男" Else: str_sex = "女"'控制身份证号的长度为15或18位,且要求除最后一位可以X外,其它全为数字'判断身份证号前17位是否为数字If Not IsNumeric(Mid(txt_user(3), 1, 17)) ThenMsgBox "请输入正确的身份证号"txt_user(3).SetFocustxt_user(3).SelStart = 0txt_user(3).SelLength = Len(txt_user(3))Exit SubEnd If'判断身份证号是否等于15位或18位If Not (Len(txt_user(3)) = 15 Or Len(txt_user(3)) = 18) ThenMsgBox "请输入正确的身份证号"txt_user(3).SetFocustxt_user(3).SelStart = 0txt_user(3).SelLength = Len(txt_user(3))Exit Sub'如果是18位最后一位如果不是数字允许是‘X’或‘x’ElseIf Len(txt_user(3)) = 18 ThenIf Not IsNumeric(Mid(txt_user(3), 18, 1)) And Not (Mid(txt_user(3), 18, 1) = "x" Or Mid(txt_user(3), 18, 1) = "X") ThenMsgBox "请输入正确的身份证号"txt_user(3).SetFocustxt_user(3).SelStart = 0txt_user(3).SelLength = Len(txt_user(3))Exit SubEnd IfEnd If读者一览表:Debug.Print Mid(user_s, 5)'Set rds_user = New ADODB.RecordsetIf Mid(user_s, 5) = "" Thenrds_user.Open "select * from 读者信息", myconn, adOpenKeyset, adLockOptimistic, 1rds_usercount.Open "select count(USER_ID) from 读者信息", myconn, adOpenKeyset, adLockOptimistic, 1Elserds_user.Open "select * from 读者信息where" + Mid(user_s, 5),myconn, adOpenKeyset, adLockOptimistic, 1rds_usercount.Open "select count(USER_ID) as cu from 读者信息where" + Mid(user_s, 5), myconn, adOpenKeyset, adLockOptimistic, 1 End IfIf rds_user.RecordCount > 0 ThenSet MSHFlexGrid1.DataSource = rds_userMSHFlexGrid1.TextMatrix(0, 0) = "读者编号"MSHFlexGrid1.TextMatrix(0, 1) = "读者姓名"MSHFlexGrid1.TextMatrix(0, 2) = "读者性别"MSHFlexGrid1.TextMatrix(0, 3) = "身份证号"MSHFlexGrid1.TextMatrix(0, 4) = "电话"MSHFlexGrid1.TextMatrix(0, 5) = "家庭住址"MSHFlexGrid1.TextMatrix(0, 6) = "相片存储位置"MSHFlexGrid1.TextMatrix(0, 7) = "登记日期"'rds_user.Close'MsgBox "共有" & rds_usercount.Fields(0) & "条满足条件"MDIMain.StatusBar1.Panels(3).Text = "共有" & rds_usercount.Fields(0) & "条满足条件"ElseMsgBox "没有匹配的查询信息,请重新输入"If rds_user.State = adStateOpen Then rds_user.CloseCall Cmd_Uclear_Clicktxt_user(0).SetFocusEnd If图书信息:4.2系统的数据查询和修改图书修改:图书查询:图书借阅情况:图书借阅情况查询:Private Sub search_book()Dim i As IntegerWith rds_jieyue'读者编号,图书编号,借阅日期'.Open "select USER_ID,BOOK_ID,LEND_DATE from 借阅信息where USER_ID='" + txt_userid(0) + "'", myconn, adOpenKeyset, adLockOptimistic, 1.Open "SELECT 借阅信息.USER_ID, 借阅信息.BOOK_ID, 图书信息.BOOK_name,LEND_DATE FROM 借阅信息INNER JOIN 图书信息ON 借阅信息.BOOK_ID=图书信息.BOOK_ID where 借阅信息.USER_ID='" + txt_userid(0) + "'", myconn, adOpenKeyset, adLockOptimistic, 1For i = 1 To havenumtxt_bookid(i) = .Fields(2) '图书名称(借)txt_bookid(i + 3) = .Fields(2) '图书名称(还)txt_bookid(i).Locked = True '已借图书禁止修改txt_bookid(i).ForeColor = vbRed '给出明显标记txt_bookid(i).BackColor = Me.BackColorCheck1(i).Enabled = TrueCheck1(i).Value = 1lbl_lenddate(i) = .Fields(3) '借阅时间(借)lbl_lenddate(i + 3) = .Fields(3) '借阅时间(还)If .EOF Then: .Close: Else: .MoveNextNext itxt_userid(1) = txt_userid(0)Exit SubEnd WithEnd SubPrivate Sub Cmdjy_search_Click() '读者及借阅查询Dim i As IntegerDim rds_jycount As RecordsetSet rds_jycount = New RecordsetIf txt_userid(0) = "" Then: MsgBox "请输入读者编号": txt_userid(0).SetFocus: Exit Sub'用户查询With rds_jycountIf .State = adStateOpen Then .Close.Open "select USER_ID from 读者信息where USER_ID='" + txt_userid(0) + "'", myconn, adOpenKeyset, adLockOptimistic, 1If .Fields(0) = "" ThenMsgBox "读者编号不存在,请重新输入"txt_userid(0).SetFocus: txt_userid(0).SelStart = 0: txt_userid(0).SelLength = Len(txt_userid(0)).CloseExit SubElseMDIMain.StatusBar1.Panels(3) = ""End IfEnd WithPrivate Sub Cmdgh_search_Click() '归还查询txt_userid(0) = txt_userid(1)Call Cmdjy_search_ClickEnd SubPrivate Sub Form_Activate()Dim i As IntegerDim str_sql As Stringtxt_userid(0) = ""txt_userid(1) = ""Call renewFor i = 1 To 6lbl_lenddate(i) = DateNext iCmdjieyue.Enabled = FalseEnd SubPrivate Sub SSTab1_Click(PreviousTab As Integer)If SSTab1.Tab = 2 ThenIf rds_jieyue.State = adStateOpen Then rds_jieyue.Closestr_sql = "SELECT 读者信息.USER_ID, 读者信息.USER_NAME, 借阅信息.BOOK_ID, 图书信息.BOOK_NAME, 借阅信息.LEND_DATE FROM 图书信息RIGHT JOIN (借阅信息LEFT JOIN 读者信息ON 借阅信息.USER_ID = 读者信息.USER_ID) ON 图书信息.BOOK_ID = 借阅信息.USER_ID"rds_jieyue.Open str_sql, myconn, adOpenForwardOnly, adLockOptimistic, 1Set MSHFlexGrid1.DataSource = rds_jieyueMSHFlexGrid1.TextMatrix(0, 0) = "读者编号"MSHFlexGrid1.TextMatrix(0, 1) = "读者姓名"MSHFlexGrid1.TextMatrix(0, 2) = "图书编号"MSHFlexGrid1.TextMatrix(0, 3) = "图书名称"MSHFlexGrid1.TextMatrix(0, 4) = "借阅时间"End IfEnd Sub关于:图书管理信息系统:Dim exit_state As StringPrivate Sub MDIForm_Load()'Image1.Picture = LoadPicture(App.Path + "\image\library.jpg")If rds_manager.Fields(0) = "admin" Thenmnu_manager_reg.Enabled = True '注册新管理员mnu_manager_edit.Enabled = True '管理员一览4.3系统的测试程序和系统调试的目的是发现程序和系统中可能存在的错误并及时予以纠正。

相关主题