




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大型数据库系统综合课程设计报告课 题: 图 书 管 理 系 统 专业班级: 计科05104班 学 号: 200516010422 姓 名: 黄 福 明 指导教师: 巢 湘 萍 评阅意见:评定成绩: 指导老师签名: 年 月 日目 录 目 录一、摘要2二、设计要求2三、系统描述2四、系统的功能分析与设计3五、部分模块的实现与描述8六、系统实现与数据测试11七、课程设计心得体会14附录一:参考文献15附录二:部分源代码16一、摘要图书资料管理系统主要是针对高校的图书馆作为使用对象而开发的,作为一个典型的信息管理系统(MIS),其系统开发任务主要包括数据库的设计与维护、客户端应用程序的开发等两个方面。对于前者要求建立起的数据库具有完整性和一致性,且具有一定的数据安全性,如用户需要密码才能使用等,而对于后者则要求程序界面友好、功能完备等特点。经过详细的分析,选用BORLAND公司的DELPHI作为前端开发工具,得用其提供的集成开发环境及各种控件,尤其是对数据库的支持完成对数据库的各种操作,达到对图书资料管理的目的。首先建立系统应用原型,然后对原型系统进行需求抚迭代,不断修正和改进,直到形成用户满意的实际可行系统。DELPHI是面向对象的开发工具,具有很多的控件,可以方便的进行界面设计和数据库连接等各种操作,所以本次课程设计旨在学会建立在数据库基础上的应用软件开发,并对数据库概念有深入的了解,提高编程能力。因此我们选用DELPHI作为本次开发的语言。二、设计要求掌握基本的SQL语句,ADO数据引擎的进本操作。熟悉数据访问组件的使用,数据控件的使用。熟悉掌握Access数据库操作。三、系统描述图书管理系统是为了极大地提高图书资料管理的效率,从而设计设计出的一个具有检索迅速、查找方便、可靠性高、存储量大等优点的一个管理系统。它完全取代了原来一直用人工管理的工作方式,减少了图书资料管理者的工作量和劳动强度,给图书资料信息的查找,更新和维护都带来了许多方便。图书管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了图书资料管理的要求。整个系统的主要功能如下:1、登陆界面:提供身份安全检测的功能。2、主界面:提供系统的功能选择。3、图书管理:包括新书录入、图书变更、删除图书、图书查询等。4、客户管理:包括客户录入、客户信息变更、删除客户、基本信息查询等。5、系统用户管理:包括创建新用户、用户密码修改、删除用户、系统用户浏览等。6、借阅管理:包括权限设置、借书、还书、书证签发、参数设置等。7、图书浏览:可以对各个不同类别的图书进行选择性的浏览。四、系统的功能分析与设计(一)本图书管理系统需要完成的功能主要有以下几点:1、各种管理信息的输入,其中包括图书管理信息、客户管理信息和系统用户管理信息的输入。2、各种基本信息的修改和查询,其中包括图书信息、客户信息和系统用户信息的修改和查询。3、借阅信息的管理,其中包括借书、还书和书证等信息的管理。4、图书浏览,即可以对不同类别的图书进行选择性的浏览。(二)本系统功能模块设计:根据系统功能分析和图书管理系统的特点,经过模块化的分析,得到如图1-1所示的系统功能模块结构图。(三)数据库设计:1、数据字典根据系统功能模块结构图和图书管理流程,以及图书管理系统的需求,总结出如下的数据字典:读者个人数据:读者个人与图书借阅有关的身份数据,包含的数据项有书证编号、客户编号、办理价格值、借书上限、书证签发日期;图书类别数据:用于编目图书的类别数据,包含的数据项有图书类别编号与名称;图书书目数据:用于图书编目使用的书目数据,包含的数据项有图书编号、书名、作者、类别编号、出版社编号、版次、版本号、定价、备注信息;出版社类别数据:用于编目出版社的类别数据,包含的数据项有书籍出版编号、出版社名称;图书借阅数据:包含的数据项有书籍编号,借书证号码,借书日期,还书日期;用户权限数据:包含的数据项有权限的编号、选择、更新、删除、插入;系统用户数据:图书馆内部人员使用图书管理系统的身份数据,包含的数据项有登陆编号、登陆用户名、登陆密码、权限编号、员工编号;馆内员工数据:包含的数据项有员工的编号、姓名、性别、年龄、出生日期、住址、登记日期、照片;客户个人数据:包含的数据项有客户的编号、姓名、性别、年龄、出生日期、住址、登记日期、照片;图1-1 系统功能模块图2、数据库结构设计根据系统需求,分析出实体-关系图,如图1-2所示。出版社征订图书编目新书典藏馆藏图书借阅读者 图1-2 实体-关系图根据实体-关系图和数据字典,设计出图书管理系统数据库中的各个数据表。读者个人数据表:表名“tab_bookcardinfo”,结构见表1-1表1-1 tab_bookcardinfo表结构字段名称数据类型字段大小索引 说明bookcard_id 数字 10有书证编号pas_id数字10有客户编号bookcard_money数字10无办理价格默认值50元borrownum数字2有允许一次性借书多少本bookcardcomeday日期/时间16无书证签发日期图书类别数据表:表名“tab_bookclassinfo”,结构见表1-2表1-2 tab_bookclassinfo表结构字段名称数据类型字段大小索引 说明bookclass_id 数字 10有图书类别编号bookclass_name文本20无图书类别名称图书书目数据表:表名“tab_bookinfo”,结构见表1-3表1-3 tab_bookinfo表结构字段名称数据类型字段大小索引 说明book_id 数字 10有图书编号book_name文本60无书名book_writer文本10无作者book_classid数字10无类别编号book_publishid 数字10无出版社编号book_pub_times 文本40无版次book_version 文本30无版本号book_price 文本10无定价book_information文本50无备注信息出版社类别数据表:表名“tab_bookpublish”,结构见表1-4表1-4 tab_bookpublish表结构字段名称数据类型字段大小索引 说明book_publishid 数字 10有书籍出版社编号book_publishname文本60无出版社名称图书借阅数据表:表名“tab_borrow_return”,结构见表1-5 表1-5 tab_borrow_return表结构字段名称数据类型字段大小索引 说明bookcard_id 数字 50有借书证号码book_id数字50有书籍编号y_n_return是/否无是否归还borrowday日期/时间 14无借书日期returnday日期/时间14无还书日期馆内员工数据表:表名“tab_empinfo”,结构见表1-6表1-6 tab_empinfo表结构字段名称数据类型字段大小索引 说明employer_id 数字 10有员工编号emp_name文本10无员工姓名emp_sex文本4无员工性别emp_age数字10无员工年龄emp_birthday日期/时间16无员工出生年月日emp_address 文本60无员工住址emp_comeday日期/时间16无员工登记日期emp_photoOLE 对象员工照片用户权限数据表:表名“tab_human”,结构见表1-7表1-7 tab_human表结构字段名称数据类型字段大小索引 说明human_id 数字 50有权限编号human_select是/否无选择权限human_update是/否无更新权限human_delete是/否 无删除权限human_insert是/否无插入权限系统用户数据表:表名“tab_login”,结构见表1-8表1-8 tab_login表结构字段名称数据类型字段大小索引 说明login_id 数字 10有登陆编号user_name文本10有登陆用户名user_password数字10无登陆密码human_id数字 10有权限编号employer_id数字10有员工编号客户个人数据表:表名“tab_pasinfo”,结构见表1-9表1-9 tab_pasinfo表结构字段名称数据类型字段大小索引 说明passenger_id 数字 10有客户编号pas_name文本10无客户姓名pas_sex文本4无客户性别pas_age数字2无客户年龄pas_birthday日期/时间16无客户出生年月日pas_address 文本60无客户地址pas_comeday日期/时间16无客户登记日期pas_photoOLE 对象客户照片五、部分模块的实现与描述 (一)登陆界面的设计: 新建一个窗体form1,在窗体上分别添加3个lable标签组件、一个Edit组件、一个Combobox组件、一个image组件和两个Button位图组件。窗口设计界面如图1-3所示,其组件的主要属性见表1-10。 图1-3 登录界面图表1-10 登录窗体中组件的属性设置以及功能表组件名称属性属性值功能FormCaption登录界面用来显示登录窗口Lable1Caption用户名Lable2Caption密码Lable3Caption欢迎登陆图书管理系统Button1Caption登录EnabledTrueButton2Caption退出EnabledTrueComboBoxText清空用来选择登录用户名称Edit1Text清空用来输入用户登录密码PasswordChar*Image1Picture导入图片(二)窗体主界面的设计由于主界面的设计相当繁琐,用到的组件也相当之多,不过很多功能也非常相似,所以在此我只介绍中一部分重要的组件及其功能。新建一个应用程序,在窗口中分别添加2个ADOQuery组件、一个CoolBar组件、一个Bands组件、一个ToolBar组件2个ImageList组件、一个MainMenu组件、一个PageControl组件、4个Panel组件、一个ScrollBox组件、一个TreeView组件、一个StatusBar组件、一个Timer。还有用到了很多的DBGrid组件、ToolButton组件、Lable标签组件、CheckBox组件、Image组件等。这些组件的功能简单而繁多,在这里就不很详细地介绍了,想了解的话,可以到程序的主窗口去看看,非常之容易看懂。窗口设计界面如图1-4所示,其组件的主要属性及其属性见表1-11和表1-12所示。 图1-4 主界面设计图表1-11 应用程序主窗口主要组件的属性设置以及功能表 组件名称属性属性值FormCaption图书管理系统MainmenuTimerInterval1000Panel2Caption图书浏览Panel4Caption借阅管理SpeedButton1Caption借书SpeedButton2Caption还书SpeedButton3Caption书证签发SpeedButton4Caption权限设置SpeedButton5Caption参数设置 表1-12 Mainmenu菜单组件的菜单项设置及功能表对象属性设置一级菜单-“基本操作”标题基本操作名称N1一级菜单-“图书管理”标题图书管理名称N3一级菜单-“客户管理”标题客户管理名称N14一级菜单-“系统用户管理”标题系统用户管理名称N19一级菜单-“系统设置”标题系统设置名称N23一级菜单-“关于”标题关于名称N26六、 系统实现与数据测试各个模板和数据库搞好,并与模板连接好后,在实现各个功能模块后,将程序连接编译生成可执行文件即.exe文件,整个系统就可以运行了。直接打开.exe文件,我们将进入登录界面,只要我们输入正确的用户名与密码,即可进入主界面,运行的登录界面和主界面分别如图1-3、图1-4所示。然后点击“图书管理”中的“新书录入”就可以进入“新书录入”界面,在这里可以对新书信息进行录入,其界面如图1-5。图1-5 新书录入界面图 同样点击然后点击“图书管理”中的“图书变更”、“删除图书”、“图书查询”,可以得到相应的界面,同时在相应的界面上对图书进行变更、删除和查询。 点击“借阅管理”中的“借书”就可以进入借书界面,在这里可以借阅图书,其界面如图1-6所示。还点击“借阅管理”中的“还书”就可以进入借书界面,在这里可以归还图书,其界面如图1-7示。同样还可以点击“图书浏览”,在这里可以对图书进行选择性的浏览,点击相应的图书类别,就可以浏览到相应的图书了,其界面如图1-8所示。 图1-6 借书界面图 图1-7 还书界面图 图1-8 图书浏览界面图七、课程设计心得体会一周的数据库系统课程设计已经结束,虽说这次的课程设计是紧张而又繁忙的,不过这次的课程设计也让我受益匪浅。首先,通过本次课程设计,我们的动手实践能力和设计创新精神都得到了加强,作为信息时代的大学生基本的动手能力是一切工作和创造的基础和必要条件。同时在课程设计的这些日子里,也让我们知道团队精神的重要性,大家的团队精神得到了很大的加强,我们不再是单体而是一个整体。相信这些对我们以后的工作会相当大的帮助。还有的就是:现在的学生的创新能力一般都比较差,而这门课正好锻炼了我们的创新能力,使我们的手脑配合更加协调,也让我们更加细心,对我们将来的工作大有裨益。其次,本次的课程设计也让我更加了解DELPHI方面的知识及其运用。通过这次数据库系统的综合编程,学会了综合的运用所学知识,通过设计数据库了解到了怎样通过Mircosoft office Acess创建数据库,怎样通过adoquery datesuore及Dbgrid三者之间的连接,实现数据的保存,数据库与用户之间的交互,通过DBedit等方便的实现了数据的管理,最主要的是通过数据库的设计,知道了数据库的流程,基本实现模块功能的划分E-R图。通过pagecontrol进行分页,形成了不同功能的分页,再在各页上利用groupbox进行小功能模块的划分,使得程序清晰方便使用,通过组件的Visible属性控制在执行某些功能时不同模块的显示使得程序便于用户操作利于程序界面的美观。通过这次课程设计,我也从中发现了自己的很多不足之处,在这就不详细说了,希望有了这次的经验,在以后的学习和工作中,我能不断改进自己的不足之处,不断完善自己。附录一:参考文献 1 伍俊良.Delphi7.0课程设计与系统开发案例.北京:清华大学出版社,2005 2 彭为.Delphi7/8程序设计基础教程.北京:清华大学出版社,2004 3 何旭洪.PB8.0数据库系统开发实例导航.北京:人民邮电出版社,20024 刘子锐.Delphi数据库开发自学教程.北京:人民邮电出版,2002 5 尹立民.Delphi7应用编程150例.北京:电子工业出版社,2003 6 张春林.Delphi 6程序设计导学.北京:清华大学出版社,2002 7 杨宗志.Delphi 数据库程序设计.清华大学出版社,20028 黄晓敏,陈强. Delphi程序设计基础.北京:清华大学出版社,20049 陈平昌.Delphi使用SQL查询.广西:商业高等专科学校学报,2003附录二:部分源代码1、登录界面模块代码: uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, jpeg;type TForm4 = class(TForm) ComboBox1: TComboBox; Edit1: TEdit; Button1: TButton; Button2: TButton; Label1: TLabel; Label2: TLabel; Label3: TLabel; Image1: TImage; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private Private declarations public Public declarations end;var Form4: TForm4;implementation uses unit1,unit8;$R *.dfmprocedure TForm4.Button1Click(Sender: TObject);begincase combobox1.ItemIndex of0:begin if edit1.text=123456 then begin showmessage(欢迎你进入本系统); form1.show; form4.close; edit1.Text:=; endelse begin if edit1.Tag=2 then begin showmessage(对不起,你不能使用本系统); close; end else begin showmessage(你输入的密码不对,请重新输入); edit1.SetFocus; edit1.SelectAll; edit1.Tag:=edit1.Tag+1; end; end;end;1: begin if edit1.text=111111 then begin showmessage(欢迎你进入本系统); form1.show; form4.close; edit1.Text:=; form1.N4.enabled:=false; form1.N5.enabled:=false; form1.N6.enabled:=false; form1.N15.enabled:=false; form1.N6.enabled:=false; form1.N16.enabled:=false; form1.N17.enabled:=false; form1.N20.enabled:=false; form1.N21.enabled:=false; form1.N22.enabled:=false; form1.N23.enabled:=false; form1.toolbutton1.enabled:=false; form1.toolbutton2.enabled:=false; form1.toolbutton3.enabled:=false; form1.toolbutton5.enabled:=false; form1.toolbutton6.enabled:=false; form1.toolbutton7.enabled:=false; end else begin if edit1.Tag=2 then begin showmessage(对不起,你不能使用本系统); close; end else begin showmessage(你输入的密码不对,请重新输入); edit1.SetFocus; edit1.SelectAll; edit1.Tag:=edit1.Tag+1; end; end;end;end;end;procedure TForm4.Button2Click(Sender: TObject);beginclose;form1.Close;end;cedure TForm4.Button2Click(Sender: TObject); /退出系统beginclose;form1.Close;end;end.2、图书管理模块部分代码:procedure TForm1.N4Click(Sender: TObject); /新书录入var ADOQuery:TADOQuery;begin form_panel4Click(); emp_YN_null; PageControl1.ActivePageIndex:=3; ADOQuery:=TADOQuery.Create(self); ADOQuery.ConnectionString:=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+ extractfilepath(application.ExeName)+ DATAdb_booksys.mdb;Persist Security Info=False; /连接字符串 ADOQuery.SQL.Clear; ADOQuery.SQL.Add(select book_id from tab_bookinfo); ADOQuery.Open; ADOQuery.Last; edit5.Enabled:=false; edit5.Text:= Myjiami.db_idtoadd(ADOQuery.FieldValuesbook_id,10); ADOQuery.Free; edit6.Enabled:=true; edit7.Enabled:=true; edit8.Enabled:=true; edit9.Enabled:=true; edit10.Enabled:=true; edit11.Enabled:=true; combobox1.Enabled:=true; combobox2.Enabled:=true; button5.Enabled:=true; button6.Enabled:=false; button7.Enabled:=false; button8.Enabled:=false; edit12.Enabled:=false; form1.book_refrish;end;procedure TForm1.Button8Click(Sender: TObject); /图书查询var ADOQuery:TADOQuery; str_cid:string; /图书类别编号 str_pid:string; /图书出版社编号begin ADOQuery:=TADOQuery.Create(self); ADOQuery.ConnectionString:=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+ extractfilepath(application.ExeName)+ DATAdb_booksys.mdb;Persist Security Info=False; /连接字符串 if edit5.Text= then begin MessageDlg(请输入要查询的图书编号!, mtInformation, mbYes,0); ADOQuery.Free; exit; end; ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(select * from tab_bookinfo where book_id=:A); ADOQuery.Parameters.ParamByName(A).Value:=edit5.Text; ADOQuery.Open; /从书籍信息表中选择相关内容 if ADOQuery.RecordCount0 then begin edit6.Text:= ADOQuery.FieldValuesbook_name; edit7.Text:= ADOQuery.FieldValuesbook_writer; edit8.Text:= ADOQuery.FieldValuesbook_pub_times; edit9.Text:= ADOQuery.FieldValuesbook_version; edit10.Text:= ADOQuery.FieldValuesbook_price; edit11.Text:= ADOQuery.FieldValuesbook_information; str_cid:= ADOQuery.FieldValuesbook_classid; str_pid:= ADOQuery.FieldValuesbook_publishid; str_bookclassid:= str_cid; str_bookpublishid:= str_pid; end else begin MessageDlg(没有这本图书!, mtInformation, mbYes, 0); ADOQuery.Free; exit; end; ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(select bookclass_name from tab_bookclassinfo where bookclass_id=:A); ADOQuery.Parameters.ParamByName(A).Value:=str_cid; ADOQuery.Open; /从书的类别表中选择内容 if ADOQuery.RecordCount0 then begin Combobox1.Text:=ADOQuery.FieldValuesbookclass_name; end; ADOQuery.Close; ADOQuery.SQL.Clear; ADOQuery.SQL.Add(select book_publishname from tab_bookpublish where book_publishid=:A); ADOQuery.Parameters.ParamByName(A).Value:=str_pid; ADOQuery.Open; /从书出版社中选择内容 if ADOQuery.RecordCount0 then begin Combobox2.Text:=ADOQuery.FieldValuesbook_publishname; end; button6.Enabled:=true; button8.En
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年共青团知识竞赛试题及答案(共44题)
- 2025内蒙古事业单位招聘报考指南笔试备考附答案详解(模拟题)
- 安徽省皖能股份有限公司招聘笔试题库2025
- 教师招聘之《幼儿教师招聘》过关检测附答案详解【研优卷】
- 教师招聘之《小学教师招聘》练习题(一)带答案详解(模拟题)
- 2025年教师招聘之《小学教师招聘》通关提分题库(必刷)附答案详解
- 教师招聘之《幼儿教师招聘》考前冲刺分析及参考答案详解(培优a卷)
- 教师招聘之《小学教师招聘》题库检测题型(原创题)附答案详解
- 2025内蒙古事业单位招聘报考指南笔试备考参考答案详解
- 2025年学历类自考国际企业管理-外国文学史参考题库含答案解析(5卷)
- 2025年下半年安徽省港航集团有限公司所属企业社会公开招聘22名考试参考试题及答案解析
- 人教PEP版六年级英语上册全册教案
- 3D打印技术在制造业2025年发展趋势及市场前景可行性分析报告
- 综合楼玻璃安装合同协议书范本模板6篇
- 2025年度集中供暖项目暖气设施安装及售后服务合同
- 护士医护人员职业安全防护培训
- 2025福建厦门市公安局同安分局招聘警务辅助人员50人笔试备考试题及答案解析
- 莲山教学课件下载
- 大学生创新创业基础课件 第7章 创业与创业历程
- 班主任育人故事经验分享陪伴每一名学生慢慢成长模板
- 2025至2030中国漂白粉行业发展研究与产业战略规划分析评估报告
评论
0/150
提交评论