案例3 图书管理系统Word下载.docx

上传人:b****8 文档编号:22433677 上传时间:2023-02-04 格式:DOCX 页数:91 大小:230.71KB
下载 相关 举报
案例3 图书管理系统Word下载.docx_第1页
第1页 / 共91页
案例3 图书管理系统Word下载.docx_第2页
第2页 / 共91页
案例3 图书管理系统Word下载.docx_第3页
第3页 / 共91页
案例3 图书管理系统Word下载.docx_第4页
第4页 / 共91页
案例3 图书管理系统Word下载.docx_第5页
第5页 / 共91页
点击查看更多>>
下载资源
资源描述

案例3 图书管理系统Word下载.docx

《案例3 图书管理系统Word下载.docx》由会员分享,可在线阅读,更多相关《案例3 图书管理系统Word下载.docx(91页珍藏版)》请在冰豆网上搜索。

案例3 图书管理系统Word下载.docx

5.3.2开发与运行环境

本例的高校图书管理系统开发与运行环境如下:

开发环境:

WindowsXP

开发工具:

Delphi8

数据库管理系统:

SQLServer2000

运行环境:

Windows98/ME/2000/XP

5.4系统设计

5.4.1系统模块设计

根据系统功能分析和高校图书管理的特点,经过模块化的分析得到如图5-2所示的系统功能模块结构图。

图5-2系统功能模块图

5.4.2数据库设计

1.数据字典

根据系统功能模块结构图和高校图书管理流程,以及典型高校图书管理系统的需求,总结出如下的数据字典:

●系统用户数据:

图书馆内部人员使用图书管理系统的身份数据,包含的数据项有用户编号、登录口令、权限代码。

●读者类别数据:

借阅图书读者的类别数据,包含的数据项有读者类别编号、类别名称、借书数量、借书期限、有效期限。

●读者个人数据:

读者个人与图书借阅有关的身份数据,包含的数据项有借阅证编号、读者类别编号、姓名、部门名称、办证时间。

●图书书目数据:

用于图书编目使用的书目数据,包含的数据项有索书号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词。

●新书书目数据:

图书编目产生的书目数据,包含的数据项与图书书目数据相同。

●馆藏书目数据:

新书书目经典藏之后形成馆藏图书书目数据,包含的数据项有索书号、图书条码、书名、作者、出版社、出版日期、字数、页数、内容简介、关键词、入馆日期、复本数、可借数、库室名。

●图书征订数据:

征订图书的相关数据,包含的数据项有书名、作者、出版社、出版日期、数量、征订日期。

●图书借阅数据:

包含的数据项有图书条码、借阅证编号、借阅日期、还书日期、图书所在库室编号。

●操作日志数据:

包含的数据项有用户名、操作时间、操作动作。

2.数据库结构设计

根据系统需求,分析出实体-关系图,如图5-3所示。

图5-3实体-关系图

根据实体-关系图和数据字典,设计出高校图书管理系统数据库中的各个数据表。

根据用户使用要求得到系统用户数据表,根据读者实体得到读者个人数据表,根据数据字典对读者的要求得到读者类别数据表,根据图书实体得到图书书目数据表,根据新书实体得到新书书目数据表,根据馆藏图书实体得到馆藏书目数据表,根据征订关系得到图书征订数据表,根据借阅关系得到图书借阅数据表,根据系统要求记录操作日志得到操作日志数据表。

数据表名称与结构如下:

系统用户数据表:

表名“t_user”,结构见表5-1。

表5-1t_user表结构

字段名

类型

大小

索引

说明

Bh

Char

5

编号

Passwd

6

密码

Limit

Tinyint

权限

读者个人数据表:

表名“t_dzb”,结构见表5-2。

表5-2t_dzb表结构

Zh

证号

Lxdm

类型代码

Xm

20

姓名

Bm

部门

Rq

Datetime

日期

读者类别数据表:

表名“t_lxdm”,结构见表5-3。

表5-3t_lxdm表结构

Lxmc

10

类型名称

Jsl

借书量

Jsq

借书期

Yxq

有效期

图书书目数据表:

表名“t_tsb”,结构见表5-4。

表5-4t_tsb表结构

Id

Bigint

自动增长

Tm

7

条码

Syh

Varchar

30

索引号

Sm

60

书名

Zz

作者

Cbs

出版社

Cbrq

出版日期

Zs

Int

字数

Ys

页数

Nrjj

200

内容简介

Gjz

100

关键字

新书书目数据表:

表名“t_xsb”,结构同上。

馆藏书目数据表:

表名“t_csb”,结构见表5-5。

表5-5t_csb表结构

Rgrq

入馆日期

Jbs

Smallint

基本数

Kjs

可借数

Ksm

库室名

图书征订数据表:

表名“t_dgb”,结构见表5-6。

表5-6t_dgb表结构

Sl

数量

Dgrq

定购日期

图书借阅数据表:

表名“t_jyb”,结构见表5-7。

表5-7t_jyb表结构

Jsrq

借书日期

Hsrq

还书日期

Yh

已还

Kh

库号

操作日志数据表:

表名“t_log”,结构见表5-8。

表5-8t_log表结构

Name

用户名

Czsj

操作时间

Czlog

操作动作

5.5系统实现

5.5.1建立数据库

本例数据库使用SQLServer2000,数据库名为TSGL。

在SQLServer2000数据库服务器上建立数据库以及各数据表的过程,在这里不作介绍,有关内容参阅SQLServer相关书籍。

5.5.2建立连接

本例使用ODBC数据源连接数据库,数据源名为mybase。

建立过程可参阅第四章内容。

5.5.3程序设计

1.主窗体

主窗体保存为main.pas。

主窗体界面如图5-4所示,包含一个Database组件、一个MainMenu组件和一个StatusBar组件。

图5-4主窗体

窗体主要组件属性设置见表5-9。

表5-9主窗体组件属性设置

组件

属性值

Form1

Name='

MainForm'

FormStyle=fsMDIFormCaption='

高校图书管理系统'

MainMenu1

Database1

DatabaseName=mybaseLoginPrompt=False

StatusBar1

其中Database1的Params属性添加两项USERNAME和PASSWORD分别设置为SQLServer的登录用户名和密码。

主窗体中定义全局变量dlname,用于保存登录的用户名。

编写一个过程addlog完成日志记录,和一个函数getnettime用来取得服务器时间,保证系统时间的一致性。

过程和函数的代码如下:

//取得服务器时间函数

functionTMainForm.getnettime:

string;

begin

withTQuery.Create(nil)do

begin

try

Close;

SessionName:

=MainForm.Database1.SessionName;

DatabaseName:

=MainForm.Database1.DatabaseName;

SQL.Clear;

SQL.Add('

selectgetdate()asaa'

);

Open;

result:

=FieldByName('

aa'

).AsString;

finally

Free;

end;

end;

//日志记录过程

procedureTMainForm.addlog(varname,czsj,czlog:

string);

varsqlstr:

//生成将参数传递的信息写入日志数据表的SQL语句

sqlstr:

='

insertintot_log(name,czsj,czlog)values('

'

+name+'

'

+czsj+'

+czlog+'

)'

;

SQL.Add(sqlstr);

ExecSQL;

2.用户登录窗体

用户登录功能是在启动系统后,要求用户登录,只有输入合法的用户名和密码,系统才分配具体的功能模块。

用户登录窗体保存为login.pas。

界面如图5-5所示,包含一个Panel组件、两个Label组件、两个Edit组件和两个Button组件。

图5-5用户登录窗体

主要组件属性设置见表5-10。

表5-10用户登录窗体主要组件属性

Form2

FormStyle=fsMDIChildBorderStyle=bsSingleBorderIcons=[biSystemMenu]

Name=LoginFormCaption='

用户登录窗口'

Panel1

Caption='

BevelOuter=bvLowered

Label1(Panel1)

用户名'

Label2(Panel1)

密码'

Edit1(Panel1)

Text='

Name=Name_Edit

Edit2(Panel1)

PasswordChar=*Text='

Name=Password_Edit

Button1

确定'

Button2

取消'

主要代码如下:

usesmain;

//确定按钮单击事件

procedureTLoginForm.Button1Click(Sender:

TObject);

var

aname,apassword,sqlstr:

a,b:

integer;

//有输入时,从数据库中检验用户信息

if(Length(Trim(Name_Edit.Text))>

0)or(Length(Trim(Password_Edit.Text))>

0)then

aname:

=Trim(Name_Edit.Text);

apassword:

=Trim(Password_Edit.Text);

select*fromt_usera,t_qxbbwhere(a.name='

+aname+'

)and

(a.passwd='

+apassword+'

)and(a.name=b.name)orderbyb.cdx'

ifRecordCount>

0then

//验证通过,根据权限设置菜单项的可访问性

First;

whilenotEofdo

a:

=StrToInt(Copy(FieldByName('

cdx'

).AsString,1,1));

b:

).AsString,2,2));

MainForm.MainMenu1.Items.Items[a].Visible:

=True;

MainForm.MainMenu1.Items.Items[a].Items[b].Visible:

Next;

//关闭登录窗口

LoginForm.Close;

//主窗体状态栏显示登录用户名

MainForm.StatusBar1.Panels[0].Text:

=aname;

MainForm.dlname:

end

else

//验证不通过,提示错误信息

ShowMessage('

请确认登录的用户名和密码是否正确!

Name_Edit.SetFocus;

Name_Edit.SelectAll;

//无输入,提示错误信息

请输入登录用户名和密码!

3.用户管理窗体设计

用户管理需要根据不同的用户类型,分配不同的权限,便于系统的维护。

主要功能包括用户数据(包括编号、密码和权限)的添加、删除和浏览等操作。

高级管理员可以管理系统中所以的用户数据,而普通用户则只能修改自己的密码。

图5-6用户管理窗体设计

用户管理窗体保存为usergl.pas,界面设计如图5-6所示,包含一个PopupMenu组件、一个Query组件、一个DataSource组件和一个DBGrid组件。

窗体的主要组件属性设置见表5-11。

表5-11用户管理窗体主要组件属性

Form3

FormStyle=fsMDIChildName=usergl_FormCaption='

用户管理'

PopupMenu1

MenuItem1Name=N11Caption='

添加用户'

MenuItem2Name=N12Caption='

修改用户'

MenuItem3Name=N13Caption='

删除用户'

Query1

DataSource1

DataSet=Query1

DBGrid1

DataSource=DataSource1PopupMenu=PopupMenu1

用户管理窗体主要代码如下:

public

modi:

Boolean;

//用于标识添加/修改用户

xx:

//用于设置添加/修改用户窗体标题栏

procedureTusergl_Form.FormCreate(Sender:

Query1.SessionName:

Query1.DatabaseName:

=False;

//数据网格双击事件

procedureTusergl_Form.DBGrid1DblClick(Sender:

//相当于修改用户操作

N12.Click;

procedureTusergl_Form.FormShow(Sender:

select*fromt_userorderbyyhm'

Query1.SQL.Clear;

Query1.SQL.Add(sqlstr);

Query1.Open;

//根据数据查询结果,设置弹出菜单项的可访问性

ifQuery1.RecordCount>

N12.Enabled:

N13.Enabled:

//“添加用户”弹出菜单单击事件

procedureTusergl_Form.N11Click(Sender:

//设置标识

//打开添加/修改用户窗体

Application.CreateForm(Tmodiuser_Form,modiuser_Form);

modiuser_Form.ShowModal;

//“修改用户”弹出菜单单击事件

procedureTusergl_Form.N12Click(Sender:

//“删除用户”弹出菜单单击事件

procedureTusergl_Form.N13Click(Sender:

varname,id:

name:

=Query1.FieldByName('

name'

//弹出确认删除对话框

ifMessageDlg('

确认要删除选中的记录码?

mtConfirmation,[mbYes,mbNo],0)=mrYesthen

id:

id'

//删除用户表数据

deletefromt_userwhereid='

+id+'

//删除权限表数据

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 其它模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1