实例图书管理信息系统的设计与开发Word格式文档下载.docx

上传人:b****7 文档编号:21943852 上传时间:2023-02-01 格式:DOCX 页数:78 大小:877.15KB
下载 相关 举报
实例图书管理信息系统的设计与开发Word格式文档下载.docx_第1页
第1页 / 共78页
实例图书管理信息系统的设计与开发Word格式文档下载.docx_第2页
第2页 / 共78页
实例图书管理信息系统的设计与开发Word格式文档下载.docx_第3页
第3页 / 共78页
实例图书管理信息系统的设计与开发Word格式文档下载.docx_第4页
第4页 / 共78页
实例图书管理信息系统的设计与开发Word格式文档下载.docx_第5页
第5页 / 共78页
点击查看更多>>
下载资源
资源描述

实例图书管理信息系统的设计与开发Word格式文档下载.docx

《实例图书管理信息系统的设计与开发Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《实例图书管理信息系统的设计与开发Word格式文档下载.docx(78页珍藏版)》请在冰豆网上搜索。

实例图书管理信息系统的设计与开发Word格式文档下载.docx

该属性决定是否弹出密码输入框。

默认值是True,即弹出密码输入框,用手工输入密码。

如果应用程序使用的数据库有密码,并且在上面的“连接”页面中输入了密码且选中“允许保存密码”,那么此属性社顶为False后,应用程序在运行时将不会弹出密码输入框了。

数据库设置了密码,并在此选中了“允许保存密码”,LoginPrompt属性设为False.

程序在运行时就不会弹出密码输入框了。

3.2图书管理信息系统的实现

3.2.1系统总体设计

3.2.2系统数据库设计

(1)Access数据库

本系统采用Microsoft公司的Access文件数据库来存放数据。

一个Access数据文件中可以包含多个数据表。

图书信息管理系统Access数据文件的名字是:

BookManage.mdb

三个数据表的名字:

1.Book

2.Reader

3.Lend

▲用MS-Access创建数据表,如下图所示

保存数据文件的路径:

C:

\ProgramFiles\

Borland\Delphi7

Projects\DataBase

自己建立的文件夹夹

数据文件名

点击“创建”按钮

单击

改为Memo1,

Memo为保留字字字!

Reader表

Lend表

▲给数据文件设置密码

从MS-Access的菜单“工具”|“安全”|“设置数据库密码”

设置密码:

(2)SQLServer2000数据库

数据库的四张数据表:

表1图书数据表—Book

表2读者数据表--Reader

表3借阅数据表–Lend

表4用户数据表–User(登录用)

列名

数据类型

长度

允许为空

说明

UserName

Varchar

10

操作员名称

UserPow

操作员密码

UserLev

2

操作员级别

在该数据表中先保存一条记录,作为系统启动后的初始用户和密码。

例如:

3.2.3工程窗体设计

共有5个窗体。

这5个窗体的Name属性及其单元文件如下:

序号

Name属性

单元文件名

Caption属性

1

MainForm

Main.pas

图书管理系统

BookForm

Book.pas

图书管理

3

ReaderForm

Reader.pas

读者管理

4

LendForm

Lend.pas

借阅管理

5

QueryForm

InfoQuery.pas

信息查询

工程文件名

BookManage.dpr

注意:

主窗口要Use其余4个窗口的单元文件。

即在主窗口的单元文件中加入usesBook,Reader,Lend,InfoQuery;

▲设计5个空白窗体,并按照上面表格中的名称命名:

记住:

主窗口(MainForm)要Use其余4个窗口的单元文件

3.2.4主窗体设计

主窗体的代码部分:

▲在主窗体创建时,要得到应用程序的当前路径并设置时间格式,为此,在主窗口单元文件“Main.pas”的变量定义处定义两个变量:

Mypath、MypathW(数据库文件的密码)。

具体程序如下所示:

unitMain;

public

{Publicdeclarations}

end;

var

MainForm:

TMainForm;

implementation

usesBook,Reader,Lend,InfoQuery;

主窗口要用到另外4个窗口

{$R*.dfm}

procedureTMainForm.BitBtn1Click(Sender:

TObject);

begin

BookForm.Show;

显示“图书管理”窗口

end;

procedureTMainForm.BitBtn2Click(Sender:

显示“读者管理”窗口

ReaderForm.Show;

procedureTMainForm.BitBtn3Click(Sender:

LendForm.Show;

显示“借阅管理”窗口

procedureTMainForm.BitBtn4Click(Sender:

关闭主窗口

Close;

procedureTMainForm.BitBtn5Click(Sender:

这是第2页“信息查询”页上的“图书查询”按钮

QueryForm.Show;

显示“信息查询窗口”

end.

3.2.5数据模块设计

建立数据模块–DataModule用来存放ADO组件对象,便于各窗体统一使用ADO组件对象访问数据库,同时也使得对数据库文件的修改和维护变得简单。

Name属性:

DataModuleADO

▲打开BookManege.dpr工程文件

▲从菜单File|New|Other点选DataModule.

▲放置3个ADO组件对象

▲单元文件名:

DataModule.pas

保存该单元文件DataModule.pas后,调出其余4个窗口,Use该DataModule.pas。

文件名:

DataModule.pas,是工程文件BookManage.mdb的一个Unit成员。

现在,该工程文件有如下成员:

DataModuleADO的代码:

unitDataModule;

interface

uses

Windows,SysUtils,Classes,DB,ADODB,DBTables;

type

TDataModuleADO=class(TDataModule)

ADOConnection1:

TADOConnection;

ADOTable1:

TADOTable;

ADOQuery1:

TADOQuery;

private

{Privatedeclarations}

public

DataModuleADO:

TDataModuleADO;

implementation

仅此一项是通过菜单中的“UseUnit…”手工加上去的.

usesMain;

3.2.6图书管理窗体设计

图书管理窗体包括:

▲新书入库

▲图书管理

调出先前设计好的BookForm空白窗体,放入TpageControl组件对象,按鼠标右键,选择NewPage产生2个新的页面。

1.

在MaxLength属性中输入10,限制书号的最大长度是10位

新书入库

CostEdit

CodeEdit

NameEdit

AuthorEdit

PressEdit

OutTimeEdit

Button1

Button2

这些组件是Additional页上的StaticText组件。

它与Tlabel组件类似。

区别在于StaticText显示某些状态信息

图书管理窗体的代码:

▲在新书入库页面显示时,清空几个编辑框,并将输入焦点放在输入书号的编辑框CodeEdit上,这在新书入库页(TabSheet1)的Onshow事件的处理程序中实现:

procedureTBookForm.TabSheet1Show(Sender:

CodeEdit.SetFocus;

将输入焦点放在输入书号的编辑框CodeEdit上

CodeEdit.SelectAll;

NameEdit.Text:

='

'

;

AuthorEdit.Text:

OutTimeEdit.Text:

CostEdit.Text:

PressEdit.Text:

Memo1.Clear;

▲单击

按钮,将在几个编辑框中填入的数据加入到数据库中,其主要内容有:

(1)检查新书书号是否正确

(2)检查此书号是否存在,如果存在则退出入库操作

(3)将新书的数据加入到数据库中

以上功能在新书入库按钮的Onclick事件的处理程序中实现,代码如下:

procedureTBookForm.Button1Click(Sender:

ifLength(CodeEdit.Text)<

>

10then//新书书号长度是否为10

begin

MessageDlg('

书号不正确'

mtError,[mbok],0);

Exit;

//书号不正确,退出入库操作

withDataModuleADO.ADOQuery1do//检查新书的书号是否已存在

SQL.Clear;

SQL.Add('

selectCodefromBook

whereCode=:

Code'

);

//上面这段代码检查新书的书号是否已经存在

Parameters.ParamByName('

).Value:

=

CodeEdit.Text;

Open;

ifRecordCount<

0then//此书已经存在

MessageDlg('

书号<

+CodeEdit.Text+'

已经存在

//下面的代码将新书的数据插入到图书数据表Book中

try

withDataModuleADO.ADOQuery1do

insertinto

book(Code,Name,Author,Press,OutDate,Cost,Memo1)'

+values(:

Code,:

Name,:

Author,:

Press,:

OutDate,:

Cost,

:

Memo1)'

Parameters.ParamByName('

).value:

=

Name'

NameEdit.Text;

Author'

AuthorEdit.Text;

Press'

PressEdit.Text;

Memo1'

Memo1.Text;

try

OutDate'

StrToDate(OutTimeEdit.Text);

Except

参数<

出版时间>

设置错误'

try

Cost'

=StrToFloat(CostEdit.Text);

价格>

ExecSQL;

要提示的内容

TabSheet1Show(Sender);

入库出错'

该提示框的种类

●关于“MessageDlg”函数:

显示提示信息对话框,函数的原型声明:

funcationMessageDlg(constMsg:

string;

Atype:

TmsgDlgType;

Abuttons:

TMsgDlgButtons;

HelpCtx:

Longint):

Word

默认值设置为0

提示框内按钮的种类

MessageDlg函数内的参数传入值及函数返回值意义见下表:

AType参数值的内容

AType参数值

意义

mtWaring

警告信息显示窗口

mtError

错误信息显示窗口

MtInformation

帮助信息窗口

mtConfirmation

确认信息显示窗口

MtCustom

自定义信息窗口

AButtons参数值内容及函数返回值

AButton参数值

返回值

mbYes

加上“是”按钮

mrYes

mbNo

加上“否”按钮

mrNo

mbOk

加上“确定”按钮

mrOk

mbCancel

加上“取消”按钮

mrCancel

mbHelp

加上“帮助”按钮

mrHelp

mbAbort

加上“终止”按钮

mrAbort

mbRetry

加上“重试”按钮

mrRetry

mbIgnore

加上“忽略”按钮

mrIgnore

mbAll

加上“全部”按钮

mrAll

●ShowMessage:

这是Delphi提供的简易信息提示窗口。

这个过程只有一个字符串参数,你可以把要显示出来的字符串放到这个字符串参数内就可以了:

如ShowMessage(“复制成功!

”);

●MessageBox:

这是Win32API内的函数,作用是建立消息框窗体。

该函数的格式:

intMessageBox(

HWNDHwnd,//信息窗口所有者的窗口handle

LPCTSTRlpText,//信息窗口内的信息字符串

LPCTSTRlpCaption//信息窗口的标题字符串

UNITuType//信息窗口的类型

);

第一个参数所有者的窗口handle,如果没有,就设置成NULL;

第二个及第三个参数的类型是PChar,者两个字符串就是你要显示的字符串信息;

最后一个参数则是信息窗口的类型。

如MessageBox(Form1.Handle,‘提示信息窗口!

’,’Dialog’,MB_OK);

它的功能与MessageDlg函数相同。

建议使用该函数作为信息提示窗口,因为它所声明的类型都是ObjectPascal的标准类型,而且它的组合定义也比较简单。

2.图书管理

图书管理页完成对数据库中图书数据的修改。

DataSet属性:

DataModuleADO.ADOTable1

图书管理页的界面设计

这些都是数据感知组件,必须指定DataSource属性:

DataSource1

StaticText组件

这些都是DBEdit组件

每个组件的Name

如框内所示

ComboBox1

初始化:

在图书管理页显示时,将数据库中所有图书的书号插入到ComboBox1中,供用户选择。

这在TabSheet2(图书管理页)的Onshow事件的处理程序中实现:

procedureTBookForm.TabSheet2Show(Sender:

图书管理窗体的第2页:

i:

integer;

ComboBox1.Items.Clear;

执行查询功能

SQL.Add('

selectCodefrombook'

Book数据表

First;

fori:

=0toRecordCount-1do

beginComboBox1.Items.Add(FieldbyName('

).AsString);

Next;

将所有图书号都加入到

ComboBox1框中

用户选择要处理的图书号有两种办法:

1)从ComboBox1框的下拉菜单中选择书号。

上面的过程已经把库中所有的图书号都列出来了

2)在ComboBox1中输入需要修改的书号。

当ComboBox1编辑框中的书号发生变化时,即触发ComboBox1的OnChange事件,在这个事件中,将该书号的图书信息在窗口所列的DBEdit组件中显示出来:

procedureTBookForm.ComboBox1Change(Sender:

ifLength(ComboBox1.Text)=10then

withDataModuleADO.ADOTable1do

TableName:

='

book'

在窗口的DBEdit组件中分别列出各字段信息

DBOutDate.DataField:

DBName.DataField:

DBAuthor.DataField:

DBPress.DataField:

DBCost.DataField:

DBMemo.DataField:

Active:

=True;

//激活book数据表

Locate('

code'

ComboBox1.Text,[]);

在数据库中查找ComboBox1中所列出的书号“Code”

Edit;

except

数据操作出错'

采用手工输入书号的方法

如果用户在ComboBox1的编辑框中输入需要修改的图书的书号,输入完后,按下回车键,则实现ComboBox1的Change事件,实现上面那段程序的功能。

代码如下:

procedureTBookForm.ComboBox1KeyDown(Sender:

TObject;

varKey:

Word;

Shift:

TShiftState);

13是ASCII码.(键盘编码)

表示的意义:

回车符.

光标回到最左边的位置.

另:

ASCII码中的10是换行符.

ifKey=13then

ComboBox1Change(Sender);

保存数据:

修改完数据后按下“保存”按钮,把数据保存下来。

“保存”按钮

procedureTBookForm.Button3Click(Sender:

确认对“Book”数据表的修改

实现“保存”。

DataModuleADO.ADOTable1.Post;

DataModuleADO.ADOTable1.Active:

=False;

保存出错'

Book数据表不再被激活

ComboBox1.SetFocus;

3.2.7读者管理模块

读者管理模块要实现2个功能:

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

当前位置:首页 > 初中教育

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

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