vfp课程设计.docx
- 文档编号:4057874
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:37
- 大小:1.88MB
vfp课程设计.docx
《vfp课程设计.docx》由会员分享,可在线阅读,更多相关《vfp课程设计.docx(37页珍藏版)》请在冰豆网上搜索。
vfp课程设计
南京工业大学
课程设计报告
题目:
图书租借管理系统
课程名称:
课程设计专业年级浦工管1306
学号:
P2*******19姓名:
时超
评定成绩:
审阅教师:
韩志刚
2014年6月21日
图书租借管理系统
●需求分析
图书租借活动中涉及的图书信息,用户信息和租金结算等最能发挥计算机管理的优势,利用一套“图书租借管理系统”可以使经营者方便管理自己的租借的活动,提高图书的使用率,提高管理水平。
●
租借信息
客户信息
租借信息
图书信息
数据流图
图书信息
客户信息
图书信息
客户信息
租借信息
●软件设计
●图表结构
❶Book.dbf(图书表)
字段名
字段类型
宽度
图书流水号
Character
6
ISBN
Character
13
图书名称
Character
50
图书分类
Character
10
出版社
Character
30
单价
Numeric
8
(2)
复本数量
Numeric
2
押金
Numeric
8
(2)
日租金
Numeric
5
(2)
日罚金
Numeric
5
(2)
❹Person.dbf(客户表)
字段名
字段类型
宽度
客户编号
Character
6
客户姓名
Character
8
身份证号
Character
18
宅电
Character
8
手机
Character
11
住址
Character
30
租金累计
Numeric
10
(2)
❸租借表.dbf(租借表)
字段名
字段类型
宽度
客户编号
Character
6
ISBN
Character
13
预付金额
Numeric
8
(2)
租借日期
Date
8
归还日期
Date
8
预借天数
Numeric
2
正常租金
Numeric
10
(2)
过期租金
Numeric
10
(2)
退还
Numeric
10
(2)
补交
Numeric
10
(2)
❹Password.dbf(口令表)
字段名
字段类型
宽度
用户
Character
10
密码
Character
6
❺图书分类表.dbf(图书分类表)
字段名
字段类型
宽度
类名
Character
20
●软件实现
❶Begin.scx表单的控件及属性(相关代码)
●表单Timer-init过程代码
publici
i=600&&开始时标题处于表单的最右侧
●控件Timer-Timer过程代码
Ifi>0
thisform.image1.left=i
i=i-1
else
i=600
endif
●控件Command1(进入)—单机事件(Click)过程代码
doformforms\password.scx
●控件Command2(退出)—单击事件(Click)过程代码
thisform.release
clearevents
quit
❹Password.scx表单的控件及属性
●表单—init过程代码
publicusername&&变量username用来存放”用户名”。
username=”“
bo1.setfocus
●控件Combo1—InteractiveChange过程代码
username=bo1.value
thisform.text1.setfocus
●控件Command1(进入)—单击事件(Click)过程代码
iflen(allt(thisform.combo1.value))<>0.and.len(allt(thisform.text1.value))<>0
selepassword
locateforallt(password.用户)==allt(bo1.value)
ifallt(password.密码)==allt(thisform.text1.value)
thisform.release
doformforms\mainform.scx
else
messagebox(“密码不正确,请重新输入”,0,”提示!
”)
thisform.text1.value=””
thisform.text1.setfocus
endif
else
messagebox(“密码或用户名不能为空,请重新输入”,0,”提示!
”)
thisform.text1.setfocus
endif
●控件Command2(退出)—单击事件(Click)过程代码
thisform.release
doformforms\begin.scx
❸Mainform.scx表单的控件及属性
●表单—init过程代码
thisform.label2.caption=username
&&显示用户名,变量username在权限认证时定义并已经获得值。
ifusername=’一般用户’&&一般用户不能使用数据维护和租借功能。
thisform.Cmand1.enabled=.f.
thisform.Cmand3.enabled=.f.
endif
ifusername=’租借操作员’&&不能使用数据维护功能。
thisform.Cmand1.enabled=.f.
endif
●控件Commandgroup1的command1(数据维护)—单击事件(Click)过程代码
doformforms\sjwh.scx
●控件Commandgroup1的command2(数据浏览查询)—单击事件(Click)过程代码
doformforms\llcx.scx
●控件Commandgroup1的command3(租借及查询)—单击事件(Click)过程代码
thisform.release
doformforms\zjgl.scx
●控件Commandgroup1的command1(打印催还单)—单击事件(Click)过程代码
doformforms\dycsd.scx
●控件Command1(返回)—单击事件(Click)过程代码
thisform.release
doformforms\password.scx
❹数据维护页面1(图书表维护)所包含的控件及属性
●控件Page1—init过程代码
setsafeoff
selebook
●控件Page1—Activate过程代码
thisform.pageframe1.page1.text1.setfocus
●控件Command1(添加)—单击事件(Click)过程代码
注意:
以下代码(text1:
图书流水号,text2:
isbn,text3:
图书名称,text4:
出版社,text5:
单价,text6:
押金,text7:
复本数量,text8:
日租金,text9:
日罚金)
this.caption=”继续”
begintransaction&&开启一个事务。
selebook
appendblank
*使表单中控件可用。
thisform.pageframe1.page1.text1.enabled=.t.
thisform.pageframe1.page1.text2.enabled=.t.
bo1.enabled=.t.
thisform.pageframe1.page1.text3.enabled=.t.
thisform.pageframe1.page1.text4.enabled=.t.
thisform.pageframe1.page1.text5.enabled=.t.
thisform.pageframe1.page1.text6.enabled=.t.
thisform.pageframe1.page1.text7.enabled=.t.
thisform.pageframe1.page1.text8.enabled=.t.
thisform.pageframe1.page1.text9.enabled=.t.
*除”提交”、”撤销”按钮外,其他按钮都置为不可用。
this.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.f.
mand7.enabled=.f.
mand8.enabled=.f.
*显示删除标记。
ifdeleted()
thisform.pageframe1.page1.text1.value=’*’
else
thisform.pageframe1.page1.text1.value=’’
endif
thisform.refresh
●控件Command2(删除)—单击事件(Click)过程代码
begintransaction
dele
*除”提交”、”撤销”按钮外,其他按钮都置为不可用。
mand1.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.f.
mand7.enabled=.f.
mand8.enabled=.f.
●控件Command3(编辑)—单击事件(Click)过程代码
begintransaction
selebook
thisform.pageframe1.page1.text1.enabled=.t.
thisform.pageframe1.page1.text2.enabled=.t.
bo1.enabled=.t.
thisform.pageframe1.page1.text3.enabled=.t.
thisform.pageframe1.page1.text4.enabled=.t.
thisform.pageframe1.page1.text5.enabled=.t.
thisform.pageframe1.page1.text6.enabled=.t.
thisform.pageframe1.page1.text7.enabled=.t.
thisform.pageframe1.page1.text8.enabled=.t.
thisform.pageframe1.page1.text9.enabled=.t.
thisform.pageframe1.page1.text1.setfocus
thisform.pageframe1.page1.refresh
mand1.enabled=.f.
mand2.enabled=.f.
mand3.enabled=.f.
mand4.enabled=.t.
mand5.enabled=.t.
mand6.enabled=.f.
mand7.enabled=.f.
mand8.enabled=.f.
ifdeleted()
thisform.pageframe1.page1.text1.value=’*’
else
thisform.pageframe1.page1.text1.value=’’
endif
thisform.refresh
●控件Command4(提交)—单击事件(Click)过程代码
selebook
deleforlen(allt(book.图书流水号))=0.or.;
len(allt(book.isbn))=0&&删除没有图书流水号或isbn号的记录。
**保证图书流水号不重复。
i=0&&用来存放符合条件的记录个数。
locaforallt(book.图书流水号)==;
allt(thisform.pageframe1.page1.text1.value)
r=recno()&&第一个符合条件的记录号。
**这个循环负责累计符合条件的记录个数。
dowhile.not.eof()
i=i+1
continue
enddo
**locate语句查到的符合条件的记录包括当前正在编辑的记录,
**有超过1个的记录时,第一个记录才会被删除。
ifi>1
messagebox(“这个图书流水号已经出现过,刚刚输入的信息已被删除”,0,”提示!
”)
skip-1&&指针回到当前记录
dele
endif
=tableupdate(.t.)&&实施对表的修改。
前提是表必须设置了行缓冲或表缓冲。
endtransaction&&结束任务提示:
在调试中,如果没有结束任务而非正常退出表单,
*可以在命令窗口中输入命令行:
endtransaction.以便继续你的工作。
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text2.enabled=.f.
bo1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
thisform.pageframe1.page1.text4.enabled=.f.
thisform.pageframe1.page1.text5.enabled=.f.
thisform.pageframe1.page1.text6.enabled=.f.
thisform.pageframe1.page1.text7.enabled=.f.
thisform.pageframe1.page1.text8.enabled=.f.
thisform.pageframe1.page1.text9.enabled=.f.
mand1.enabled=.t.
mand2.enabled=.t.
mand3.enabled=.t.
this.enabled=.f.
mand5.enabled=.f.
mand6.enabled=.t.
mand7.enabled=.t.
mand8.enabled=.t.
ifdeleted()
thisform.pageframe1.page1.text1.value=’*’
else
thisform.pageframe1.page1.text1.value=’’
endif
thisform.refresh
●控件Command5(撤销)—单击事件(Click)过程代码
?
?
chr(7)&&计算机喇叭响一下。
result=messagebox(“是否放弃修改?
”,4+48+256,”信息窗口”)
ifresult=6
rollback
thisform.pageframe1.page1.text1.enabled=.f.
thisform.pageframe1.page1.text2.enabled=.f.
bo1.enabled=.f.
thisform.pageframe1.page1.text3.enabled=.f.
thisform.pageframe1.page1.text4.enabled=.f.
thisform.pageframe1.page1.text5.enabled=.f.
thisform.pageframe1.page1.text6.enabled=.f.
thisform.pageframe1.page1.text7.enabled=.f.
thisform.pageframe1.page1.text8.enabled=.f.
thisform.pageframe1.page1.text9.enabled=.f.
mand1.enabled=.t.
mand2.enabled=.t.
mand3.enabled=.t.
mand4.enabled=.f.
this.enabled=.f.
mand6.enabled=.t.
mand7.enabled=.t.
mand8.enabled=.t.
endif
thisform.refresh
●控件Command6(前一条)—单击事件(Click)过程代码
selebook
mand7.enabled=.t.
if.not.bof()
skip-1
thisform.refresh
else
messagebox(“已经是第一条记录”,0,”记录情况”)
this.enabled=.f.
endif
ifdeleted()
thisform.pageframe1.page1.text1.value=’*’
else
thisform.pageframe1.page1.text1.value=’’
endif
thisform.refresh
●控件Command7(后一条)—单击事件(Click)过程代码
selebook
mand6.enabled=.t.
if.not.eof()
skip
thisform.refresh
else
messagebox(“已经是最后一条记录!
”,0,”记录情况”)
this.enabled=.f.
endif
ifdeleted()
thisform.pageframe1.page1.text1.value=’*’
else
thisform.pageframe1.page1.text1.value=’’
endif
thisform.refresh
●控件Command8(退出)—单击事件(Click)过程代码
?
?
CHR(7)
result=messagebox("是否退出?
",4+48+256,"信息窗口")
ifresult=6
selebook
=tablerevert(.t.)
=cursorsetprop('buffering',1)
use
usedata\personexcl
setexclon
pack
setexcloff
use
thisform.release
endif
❺数据维护页面2(客户表维护)的控件及属性
注意:
各控件代码与页面1相似,这里只给出“提交”按钮的代码。
以下代码(text1:
客户编号,text2:
客户姓名,text3:
身份证号,text4:
宅电,text5:
手机,text6:
住址,text7:
租金累计)
●控件Command4(提交)—单击事件(Click)过程代码
seleperson
deleforlen(allt(person.客户编号))=0.or.;
len(allt(person.客户姓名))=0&&删除没有客户编号或没有客户姓名的记录。
i=0&&用来存放符合条件的记录个数。
locaforallt(person.客户编号)==;
allt(thisform.pageframe1.page2.text1.value)
r=recno()&&第一个符合条件的记录号。
**这个循环负责累计符合条件的记录个数。
dowhile.not.eof()
i=i+1
continue
enddo
**locate语句查到的符合条件的记录包括当前正在编辑的记录,
**有超过1个的记录时,第一个记录才会被删除。
ifi>1
messagebox(“这个客户编号已经出现过,刚刚输入的信息已被删除”,0,”提示!
”)
skip-1
dele
endif
=tableupdate(.t.)&&实施对表的修改。
前提是表必须设置
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfp 课程设计