学历改变命运
24小时客服:4008135555/010-82335555
当前位置:首页 > 笔记串讲 > 自考“计算机及应用”专业论文参考范文(18

自考“计算机及应用”专业论文参考范文(18)

2007年04月26日    来源:   字体:   打印

  4.3.2  关系数据库的逻辑设计

  由于概念设计的结果是ER图,DBMS一般采用关系型(本人所使用的MS SQL Server就是关系型的DBMS),因此数据库的逻辑设计过程就是把ER图转化为关系模式的过程。由于关系模型所具有的优点,逻辑设计可以充分运用关系数据库规范化理论,使设计过程形式化地进行。设计结果是一组关系模式的定义。

  (1) 导出初始关系模式

  book(图书编号#,图书名称,图书类别#,作者,出版社,出版日期,备注,价格,数量)class(图书类别#,类别名)user(借书证号#,姓名,性别,身份编号#,身份证,联系电话,密码)ID(身份编号#,身份描述,更大借阅数)Owner(借书证号#,图书编号#,借书日期)

  图4-14  关系模式集

  (2) 产生子模式

  子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与概念模式中相应数据的联系,即指出概念模式与子模式之间的对应性。

  借书子模式(借书证号#,姓名,图书编号#,图书名称,借书日期)

  图4-15  部分子模式

  (3) 根据设计中出现的问题本人在写系统时还加入了两个关系模式:

  1、ownertemp:用于工作人员在处理借书、还书工作时临时存储借书、还书信息,以便打印报表时使用。

  2、keyer:用于存储工作人员和图书馆管理员的用户名和密码及权限,以便工作人员或图书馆管理员进入相应的功能模块时进行验证用户的身份。

  4.3.3  数据库的实现

  我选用Microsoft SQL Server2000(企业版)数据库来进行数据库的逻辑设计。首先创建七个基本数据库表如表4-1-4-7所示,然后根据全局ER图,建立各个表之间的联系,如图4-8所示。

  表4-1  借阅者基本信息表的结构(User)

  表4-2 图书信息表的结构(Book)

  表4-3 图书类别信息表的结构(Class)

  表4-4 借阅者身份信息表的结构(ID)

  表4-5 借阅情况信息表的结构(Owner)

  表4-6 借阅情况临时存储信息表的结构(Ownertemp)

  注:在owner表和ownertemp表中加入了索引字段,用来唯一标识一条借书记录,并且设置为标识,标识种子为1.

  表4-7 工作人员和管理员信息表的结构(Keyer)

  图4-8  数据库表间联系图

  第五章   图书管理系统应用程序设计

  §5.1  系统窗体模块组成

  §5.2  数据模块窗体的设置

  在编写数据库应用程序时,经常要遇到这样的情况,即好多组件、窗体同时访问相同的数据源,如果为每一个组件或者窗体都设置一个数据源将是十分耗时的工件,而且要保证这些数据源的确是相同的也需花一番功夫。那么,能不能将这些数据源集中管理,更好是做成一个统一的模块,需要时就将该模块引入而不必直接操作数据源本身呢?数据模块(DataModule)是解决这个问题更好的答案。简单说来,数据模块是用来集中管理数据源的一个窗体,该窗体可被需要的地方随时引入。

  但本人在开发这个系统时,开始使用了一下数据模块,但在使用过程中却碰到了一些问题。并且考虑这个系统使用到的TADOQuery控件比较多,如果使用数据控件可能会带来管理上的麻烦,如弄混各个数据控件的作用。还考虑到使用动态生成ADOQuery可能会更节省资源。所以在本人的系统中,开始做的第一个模块“借阅者个人模块”中还稍微使用了一下数据模块。但在后面做的两个模块中大多都是用动态生成ADOQuery来实现的。并且由于SQL语句是动态加入的所以datamodule中的控件也不会多。

  §5.3  启动画面的实现

  启动画面是为了给用户一个良好的印像,加深软件的亲和力,没有实际的功能,在Form1窗体中加入了Image和Time组件。启动画面的窗体略,主要的源代码如下:

  §5.4  用户登录窗体的的实现

  本窗体是为三种不同的用户(一般用户,工作人员,管理员)提供选择以进入不同的模块,满足不同用户的需求。源代码比较简单,略。

  §5.5  用户密码认证窗体的的实现

  本窗体是为了让工作人员或图书馆管理员按照用户名和密码进行登录,并且跟据用户名检查Keyer表中的“权限”字段,以分辩进入图书馆管理人员模块还是进入工作人员模块。窗体界面、源代码如下

  §5.6  借阅者服务模块的实现

  借阅者服务窗体的功能主要是图书的查询,个人借阅情况查看及个人部分信息的修改。

  5.6.1图书查询功能的实现

  在本系统中,任何人都有权限使用查询功能,不做任何限制。

  由于实现的查询功能有多种,如按图书编号、图书名称等字段进行完全体配查找和部分体配的模糊查找,还有按多个条件进行逻辑与或是逻辑或的多条件查找。其中实现的方法者差不多,所以只给出多条件查找的代码,如下:

  5.6.2借阅者登录功能的实现

  这个功能的实现与工作人员和管理人员登录功能实现的方法大致一样,并且还要简单。是从User表中查到到借阅证号与密码,看与用户输入的是否一致。如果一致,那么用户就可查看自已的借阅情况并维护自己的部分信息。源代码与借阅者登录界面都略。

  5.6.3借阅者借阅情况功能的实现

  当借阅者正确登录到系统后,此功能将被激活,使用户能查看到自身的借阅情况。在此系统中,信息的显示一般用ListView来实现,只在较少的情况下用到了DBgrid,因为我觉得ListView更好实现,并能使信息数据对用户的完全分离。

  在这里跟据借阅者的不同要求实现借阅情况的查询,有检查所有的借阅情部、某本书的借阅情况、和根据已借阅天数的来查询。其中根椐借阅天数来查询更有代表性,有方式一和方式二。以下给出此功能的源代码

  按借阅天数查询 方式一

  按借阅天数查询 方式二

  5.6.4借阅者个人资料维护功能的实现

  此功能实现当前借阅者部份资料的修改,但借书证号和身份类别这样的信息不允许修改,这是图书馆管理员模块的功能。在此界面中点击修改按钮将出现“修改”窗体(Form8),点击修改密码按钮将出现groupbox8,在这里进行密码修改。关键源代码如下。

  这里给出个人部分信息修改的源代码:

  这里给出密码修改的源代码:

  5.7工作人员-图书借阅/归还模块的实现

  5.7.1工作人员进行图书借阅功能实现

  在这个功能中,工作人员输入借阅者的借阅证号和所要借阅的图书的图书编号,然后点击借阅按钮就可进行图书借阅。考虑到实际中可能会出现只知图书名而不知图书编号的情况,在此界面下方加入了一个转换功能,可以把图书名称转换成图书编号,再进行图书借阅。

  在借阅完成后会生借阅报表以便借阅者检查和确认,借阅报表的打印效果如下图,实现比较简单,略去实现过程。

  5.7.2工作人员进行图书归还功能实现

  在此功能中,工作人员根据借阅者的借书证号和归还的图书编号进行图书的归还工作。并且根据现实中可能会出现的只知图书名不知图书编号的归还情况,所以加入了按书籍名称进行归还的功能。这个功能是图书借阅功能中把图书名称转换成图书编号的一种改进方法,这样就不用如借阅功能中一样要先转换再借阅了。归还完成后,同样会打印出归还报表以便用户检查和确认。

  5.8图书馆管理员模块的实现

  5.8.1图书馆管理员图书管理功能的实现

  在这个功能中可以在(*图书编号)中输入图书编号,点查找按钮后就会在各个相应的组件中显示出信息,或按图书名称模糊查找到所要的记录,在各个相应的组件中显示第一条记录的信息,也可在下端的ListView组件中点击某一条记录,在各个相应的组件中也会显示所选记录的信息。在入库功能中只要不是相同的图书编号并且带*号提示的字段不为空就可插入新的图书记录。删除则删除那些Book表中的图书记录,如果借出还可依用户要求连带删除owner表中的记录。因为图书修改与图书入库的功能与工作人员记录修改和工作人员记录添加的实现过程一样,所以下面仅给出删除功能的源代码,如下

  5.8.2图书馆管理员工作人员和管理员管理功能的实现

  在此功能中可以加入工作人员或是管理员,或是修改他们的密码、权限。

  在此功能中如果选中ListView中的记录,则在右边相应的组件中显示出信息,并且管理员还可对这些记录进行修改或加入新的记录。并且也可以点删除按钮删除选中的一条或多条记录。删除功能与图书记录的删除一般,所以下面只给出添加与修改的实现过程。

  5.8.3图书馆管理员修改图书类别及统记功能的实现

  在此窗体中能对图书的类别进行删除,添加和修改,这模块的功能的实现过程与图书记录的删除,添加和修改一样的,但是这个窗体还能跟据图书类别进行统计,还可根据Book表和owner表统计出图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目。在这里给出统计图书总数目,库存图书数目,借出图书数目及借阅过期的图书数目的实现过程中的几个函数和过程

  5.8.4图书馆管理员借阅者管理功能的实现

  查询借阅者可根据借阅者的借书证号或姓名或身份编号查找到借阅者的信息,也可以实行模糊查找,这个功能的实现与前面图书查找的实现过程一般,就不再详细说明。

  5.8.5图书馆维护借阅者管理功能的实现

  此功能能对借阅者信息进行查看添加、删除、修改。在这里给出刷新按钮的实现过程

  5.8.6图书馆身份维护功能的实现

  这一部分是对借阅者身份进行管理,能对身份进行添加、删除、修改。并且同样的在listview中选中某条或多条记录时会在相应的右边的组件中显示出信息。此功能实现过程与前面所叙有雷同,略。

  5.8.7图书馆借阅者统计功能的实现

  此功能按借阅者身份进行统计,得出具有某种身份的借阅者总数,此种身份的并借阅图书的借阅者数和所借阅的图书数,在下面给出实现过程。

  5.8.8图书馆统计借阅过期记录功能的实现

  打印出的借阅过期催还报表如下图所示:

  此报表能显示按借书证号升序排列的借阅信息超过限定时限的信息,其中主要的SQL语句如下:

  5.9系统信息显示的实现

  显过本系统的信息,并且右边的字向上滚动显示。

关闭