VF
设计报告图书馆借阅
系统目录
一、设计目的 2
二、系统设计总体结构框图 2
1)数据项 3
2)数据流 3
3)处理过程 3
三、系统实现,
源代码清单 4
建立借书表单(xk.sck) 6
建立学生表单 15
建立书籍表单 18
建立主表单(main.scx) 21
四、操作方法简介 23
五、设计总结 23
一、设计目的
设计图书馆借阅系统,实现书籍录入,学生查找,学生借书,退书等要求。
二、系统设计总体结构框图
学生借书的数据流图如下所示:
图学生借书数据流
1)数据项
数据项名 含义 数据类型 长度 小数位数
学生 字符 10
学生 字符 8
学生年龄 数值 2 0
学生性别 字符 2
学生系别 字符 20
书籍号 字符 2
书籍名 字符 20
书籍所在楼层 数值 4 1
书籍余量 数值 1 0
2)数据流
数据流名 说明 数据流来源 数据流去向 组成
f1 学生数据流 学生 借书(处理)
f2 借书数据流 借书(处理 ) 借书 +书籍编号+借书本数
f3 书籍数据流 书籍 借书(处理) 书籍编号
3)处理过程
处理过程名 说明 输入 输出 处理
借书 学生的借书处理 f1+f3 f2 输入学生的,输出书籍的书籍
号,进行借书
三、系统实现,源代码清单
建立借书表单(xk.sck)
借书表单的属性:CAPTION:学生借书情况表
AUTOCENTER:.T.
CLOSABLE: .F.
MAXBUTTON: .F.
MINBUTTON: .F.
Showwindow:1-在顶层表单中
借书表单的过程:Activate event()
( thisform.grid3.linkmaster=" "
thisform.grid3.recordsource=""
thisform.grid3.recordsourcetype=1
thisform.grid3.relationalexpr=" "
thisform.grid3.childorder=" "
thisform.refresh )
load event()
(select 1
if used('s')
select s
use s exclusive
endif
select 2
if used('sc')
select sc
use sc exclusive
endif
select 3
if used('course')
select course
use course exclusive
endif)
表格控件GRID1:此表格显示学生的详细信息
表格控件GRID2:显示书籍的详细信息
表格控件GRID3:显示借书的详细信息,grid3.recordsource=sc,grid3.readonly=.t.
文本框TEXT1:用来输入或单击学生信息表中某一个来完成输入;文本框TEXT2:用来输入学生的书籍号或单击书籍表中某一个书籍号来完成输入。学生信息表和书籍信息表的代码如下:
学生信息表:属性:grid1.controlsource=s
grid1.readonly=.t.
thisform.grid1.afterRowColChange Event()代码如下:
thisform.text1.value=thisform.grid1.column1.text1.value
书籍信息表:grid2.controlsource=course
grid2.readonly=.t.
thisform.grid2. afterRowColChange Event()代码如下:
thisform.text2.value=thisform.grid2.column1.text1.value
有五个命令按钮:
查询、借书、退书、关闭、清除按钮
查询按钮:用户在文本框TEXT1 输入,或在文本框在TEXT2 输入书籍号,可查询相关借书信息,查询结果在GRID3 中显示。其click()代码如下:
num1=alltrim(thisform.text1.value)
num2=alltrim(thisform.text2.value)
if num1=="".and.num2==""
messagebox("请输入查询条件")
else
if num2=="".and..not.num1<>""
thisform.grid3.linkmaster='s'
thisform.grid3.recordsource="sc"
thisform.grid3.relationalexpr=""
thisform.grid3.childorder="scxhindex"
select s
locate for s.=num1
if .not.found()
messagebox("无此学生")
else
thisform.refresh
thisform.grid1.setfocus
endif
endif
if num1=="" .and..not.num2<>""
thisform.grid3.linkmaster='course'
thisform.grid3.recordsource="sc"
thisform.grid3.relationalexpr="书籍编号"
thisform.grid3.childorder="scchindex"
select course
locate for 书籍编号=num2
if .not. found()
messagebox("没有此书籍")
else
thisform.refresh
thisform