《系统设计报告+图书管理系统.doc》由会员分享,可在线阅读,更多相关《系统设计报告+图书管理系统.doc(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数据库应用系统开发课程报告 专 业: 公共事业管理 班 级: 13公管 姓 名: 刘惜梅 傅旭儿 设计题目:音乐播放器管理系统指导教师: 赵辉 2014年11月JJ音乐播放器管理系统一 系统设计的目的和意义 本系统设计是在学习VFP相关课程后,通过实际的操作来熟悉相关软件的应用,培养独立的完成对相关课题或者项目的分析能力、设计能力和调试能力。音乐播放器管理系统借助计算机强大的处理系统,大大减轻了管理人员的工作量,并提高了处理的准确性。音乐管理系统的开发运用,实现了音乐管理的自动化,本系统根据实际情况开发,用于对音乐播放器信息的管理,来实现对用户的服务。本系统完成了对日常生活娱乐生活音乐播放的需
2、要满足。查询、增添、删除都变的非常简单,减少了管理的工作量。数据库的使用让数据的大量传输、备份更加高效,数据的安全性更高。二、系统需求分析2.1任务概述音乐管理系统是为广大用户更方便的使用本系统和方便管理员管理而设计的一个系统平台。音乐管理系统功能的模块图:音乐播放器管理系统 音乐用户功能模块管理员功能模块登录系统下载音乐播放音乐添加删除音乐登录系统查找用户查找音乐修改用户删除用户三、数据库系统设计1.所需表的建立歌曲基本信息表图书借阅信息表学生信息表四、系统设计与实现1系统登录功能实现 功能描述运用表单显示登录界面,并在登录时进行身份验证,只有身份满足并且密码正确时,才能进入。 用户登录界面
3、设计图(2) 系统代码实现“登录”按钮的click事件源代码:if thisform.optiongroup1.value=1 locate for alltrim(类别)=管理员 and alltrim(用户名)=alltrim(thisform.text1.value) and alltrim(密码)=alltrim(thisform.text2.value)else locate for alltrim(类别)=用户 and alltrim(用户名)=alltrim(thisform.text1.value) and alltrim(密码)=alltrim(thisform.text2.
4、value)endifif !found() messagebox(用户名或密码错误!) thisform.c=thisform.c+1 if thisform.c3 messagebox(用户名密码已连续三次错误,退出系统!) quit else thisform.text1.value= thisform.text2.value= thisform.text1.setfocus endifelse do 主菜单.mpr Endif“退出”按钮的click事件源代码:thisform.Release2.学生图书查询功能实现 功能描述学生可以根据自己的学号、密码,通过书名或作者,查询图书信息,
5、包括作者、书籍简介、库存数量等信息。按书名查询的界面设计图 按作者查询的界面设计图(2)系统代码实现按作者查询:Form的init事件源代码:THISFORM.TExt1.Value=5thisform.SetAll(visible,.F.)thisform.label1.Visible= .T.mand1.Visible= .T.thisform.COMBO1.Visible= .T.thisform.SetAll(readonly,.t.,textbox)THISFORM.RefreshCombo1的interactivechange事件源代码:THISFORM.TExt1.Value=5
6、SELECT 图书借阅信息表LOCATE FOR ALLTRIM(作者)=ALLTRIM(THISFORM.COMBO1.DisplayValue)SCAN FOR ALLTRIM(作者)=ALLTRIM(THISFORM.COmbo1.DisplayVALUE)THISFORM.TExt1.Value =THISFORM.TEXT1.Value-借阅册数ENDSCANthisform.SetAll(visible,.T.)thisform.SetAll(readonly,.t.,textbox)THISFORM.Refresh“退出”按钮的click事件源代码:THISFORM.Releas
7、e 按书名查询:Form的init事件源代码:Form的init事件源代码:THISFORM.TExt1.Value=5thisform.SetAll(visible,.F.)thisform.label1.Visible= .T.mand1.Visible= .T.thisform.COMBO1.Visible= .T.thisform.SetAll(readonly,.t.,textbox)THISFORM.Refreshlist1的interactivechange事件源代码:THISFORM.TExt1.Value =5SELECT 图书借阅信息表LOCATE FOR ALLTRIM(
8、书名)=ALLTRIM(THISFORM.LIST1.DisplayValue)SCAN FOR ALLTRIM(书名)=ALLTRIM(THISFORM.LIST1.DisplayValue)THISFORM.TExt1.Value =THISFORM.TEXT1.Value - 借阅册数ENDSCANthisform.SetAll(visible,.T.)THISFORM.Refresh“退出”按钮的click事件源代码:THISFORM.Release Combo1的interactivechange事件源代码:THISFORM.TExt1.Value=5SELECT 图书借阅信息表LO
9、CATE FOR ALLTRIM(作者)=ALLTRIM(THISFORM.COMBO1.DisplayValue)SCAN FOR ALLTRIM(作者)=ALLTRIM(THISFORM.COmbo1.DisplayVALUE)THISFORM.TExt1.Value =THISFORM.TEXT1.Value-借阅册数ENDSCANthisform.SetAll(visible,.T.)thisform.SetAll(readonly,.t.,textbox)THISFORM.Refresh“退出”按钮的click事件源代码:THISFORM.Release (3)运行结果按书名查询:按
10、作者查询:3. 用户的增加与删减3.1增加用户(1) 学生借阅查询表单的页面设计图 系统代码实现Form的init事件源代码:set exact onset talk offuse D:1学习数据库数据库应用管理用户名this.Text1.value=this.Text2.value=this.Text3.value=with this.grid1 .width=300 .height=121 .left=0 .top=0 .recordsource=用户名 .deletemark=.f. .visible=.t. .readonly=.t. .ColumnCount=3 .Column1.H
11、eader1.Caption=类型 .Column1.Header1.BackColor=RGB(255,255,190) .Column2.Header1.BackColor=RGB(255,255,190) .Column2.Header1.Caption=用户名 .Column3.Header1.BackColor=RGB(255,255,190) .Column3.Header1.Caption=密码 .Column1.width=100 .Column2.width=100 .Column3.width=100endwiththis.grid1.Setall(DynamicBackC
12、olor,RGB(224,225,255),Column)this.Text1.setfocus“添加”按钮的click事件源代码:a=alltrim(thisform.text1.value)b=alltrim(thisform.Text2.value)c=alltrim(thisform.Text3.value)if empty(b) messagebox(新用户名,16,系统提示) returnelse locate for 用户名=b if .not.eof() go top messagebox(不允许有重复的用户名,16,系统提示) return endifendifif empt
13、y(c) messagebox(请输入密码,16,系统提示) returnENDIFif empty(a) messagebox(请输入用户类型,16,系统提示) returnendifmsg=messagebox(确定要添加记录吗?,32+4,系统提示)if msg=6 INSERT INTO 用户名; (类型,用户名,密码) ; VALUES(alltrim(thisform.Text1.value),; alltrim(thisform.Text2.value),; alltrim(thisform.Text3.value) messagebox(保存记录成功!,64,系统提示) thi
14、sform.grid1.refresh thisform.Text1.value= thisform.Text2.value= thisform.Text3.value= thisform.Text1.setfocus thisform.refreshendif“取消”按钮的click事件源代码:thisform.release3运行结果3.2删除用户(1) 学生借阅查询表单的页面设计图 系统代码实现Form的init事件源代码:set exact onmand1.enabled=.t.mand2.enabled=.f.this.Text2.visible=.f.this.Text3.visi
15、ble=.f.this.Text4.visible=.f.this.Label3.visible=.f.this.label4.visible=.f.this.Label5.visible=.f.use D:1学习数据库数据库应用管理用户名this.Combo1.value=类型with thisform.grid1 .width=324 .height=132 .left=0 .top=0 .recordsource=用户名 .deletemark=.f.visible=.t.readonly=.t.ColumnCount=3 .Column1.Header1.Caption=类型 .Col
16、umn1.Header1.BackColor=RGB(255,255,190) .Column2.Header1.BackColor=RGB(255,255,190) .Column2.Header1.Caption=用户名 .Column3.Header1.BackColor=RGB(255,255,190) .Column3.Header1.Caption=密码 .Column1.width=75 .Column2.width=80 .Column3.width=150endwiththis.grid1.Setall(DynamicBackColor,RGB(224,225,255),Co
17、lumn)“查找”按钮的click事件源代码:if empty(thisform.Text1.value)=.f.go topa=thisform.Combo1.valueb=alltrim(thisform.Text1.value)c=.f. if a=类型 locate for 类型=b if eof() messagebox(不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if a=用户名 locate for 用户名=b if eof() messagebox(不存在您所要查询的记录,16,系统提示) go top r
18、eturn else c=.t. endif endif if a=密码 locate for 密码=b if eof() messagebox(不存在您所要查询的记录,16,系统提示) go top return else c=.t. endif endif if c thisform.Text1.enabled=.f. go recno() thisform.Text2.visible=.t. thisform.Text2.enabled=.f. thisform.Text3.visible=.t. thisform.Text4.visible=.t. thisform.Label3.vi
19、sible=.t. thisform.label4.visible=.t. thisform.Label5.visible=.t. thisform.Text2.value=用户名.类型 thisform.Text3.value=用户名.用户名 thisform.Text4.value=用户名.密码 thisform.grid1.setfocus this.enabled=.f. mand2.enabled=.t. endifelse messagebox(请输入要查找的内容!,16,系统提示) thisform.Text1.value= thisform.Text1.Setfocusendi
20、fThisform.refresh“删除”按钮的click事件源代码:msg=messagebox(您确定要删除这条记录吗?,32+4,系统提示)if msg=6 delete copy to temp.dbf for not deleted() zap Append from temp.dbf delete file temp.dbf messagebox(删除记录成功,16,系统提示) go top thisform.grid1.refresh mand1.caption=查找 this.enabled=.f. thisform.Text2.visible=.f. thisform.Tex
21、t3.visible=.f. thisform.Text4.visible=.f. thisform.Label3.visible=.f. thisform.label4.visible=.f. thisform.Label5.visible=.f. thisform.Text1.enabled=.t. thisform.Text1.value= thisform.Text1.setfocus thisform.refreshendif“取消”按钮的click事件源代码:thisform.release3运行结果3.2图书查询3.3借阅信息查询4信息输入及删除功能的实现(1) 功能描述在现实生
22、活中,图书馆定期会更新书籍,也淘汰一些书籍,这时就需要对信息进行更新,可以更好地进行书籍的管理。图书信息输入的界面设计图(2)系统代码实现“保存”按钮的click 事件代码如下:thisform.text7.Value=0 SELECT 图书基本信息表 LOCATE FOR ALLTRIM(图书编号)=ALLTRIM(THISFORM.TEXT6.Value ) IF FOUND() MESSAGEBOX(请确认图书编号,重新输入) ELSE LOCATE FOR ALLTRIM(书名)=ALLTRIM(thisform.text1.Value) IF FOUND() replace 库存量
23、WITH 库存量+ALLTRIM(thisform.text7.Value) ELSE APPEND BLANK REPLACE 书名 WITH thisform.text1.Value,作者 WITH thisform.text2.Value; 出版社 WITH thisform.text3.Value, 图书编号 WITH thisform.text5.Value,图书分类号 WITH thisform.text6.Value; 库存量 WITH (thisform.text7.Value+库存量) MESSAGEBOX(数据已保存) thisform.text1.Value= &准备输下
24、一条数据 thisform.text2.Value= thisform.text3.Value= thisform.text5.Value= thisform.text6.Value= thisform.text7.Value=0 thisform.text1.SetFocus ENDIF ENDIF THISFORM.Refresh “再输一条”按钮的click 事件代码如下:thisform.text1.Value=thisform.text2.Value=thisform.text3.Value=thisform.text5.Value=thisform.text7.Value=this
25、form.text6.Value=thisform.Refresh “退出”按钮的click 事件代码如下:THISFORM.Release (3)运行结果5信息浏览的功能(1) 功能描述有些时候,系统管理员可以通过此页面来观看同学书籍的借阅情况,并以此了解书籍,给学生提供借书需求。图书借阅信息浏览的页面设计图(2) 系统代码实现list1的interactivechange事件源代码:Thisform.refresh(3) 运行结果6.数据备份功能的实现(1)功能描述有些时候我们会碰到系统崩溃的情况,那么如果我们事先没有设计好这样的一个程序的话,那么我们无法很轻易得解决这一问题。所以我们需要
26、事先把建好的表格备份到指定的文件里,以备系统崩溃的时候还原,从而很容易解决系统奔溃的问题。数据备份的界面设计图(2)系统代码实现“浏览”按钮的click 事件代码如下:thisform.dir =GETDIR()“备份”按钮的click 事件代码如下:SET SAFETY OFFIF EMPTY(thisform.dir) MESSAGEBOX(请选择备份数据保存的文件夹!,64+0)ELSE k=LEN(thisform.dir) d=SUBSTR(thisform.dir,1,k-1) & 根据选择的数据备份文件夹,生成符合命令要求的目录 COPY FILE *.dbf TO &d & 将
27、当前目录下的所有数据表进行备份。 MESSAGEBOX(数据已备份完成!,64+0)ENDIF“退出”按钮的click 事件代码如下:thisform.Release(3)运行结果浏览7.打印预览功能的实现(1)功能描述 有些时候我们碰到特殊的情况需要打印有用的信息或表单,因此我们特意设置了这样一个打印预览功能来方便有需要的同学。 图书信息打印的界面设计图(2)系统代码的实现“打印预览”按钮的click 事件代码如下:?CHR(7)define window aaa from 1,1 to 40,150activate window aaa report form 图书信息报表.frx pre
28、view in window aaawait window 按任意键返回release window aaa &不使用的窗口要及 时清除,否则窗口一直存在“报表打印”按钮的click 事件代码如下:?chr(7)report form 图书信息报表.frx to printer“退出”按钮的click 事件代码如下:Thisform.release(3)运行结果打印预览图书信息报表的设计界面图8.菜单的功能的实现 菜单的意义我们都非常清楚,顾名思义,它是为用户提供一目了然的效果,用户可以很清楚地知道自己可以操作哪些选项和提供一个快速进入各个表单的途径。下面就是菜单的设计界面图:菜单主菜单界面设
29、计子菜单信息更新的设计界面图 信息更新学生信息输入的设计界面表单结合顶层菜单表单中的下拉式菜单9主程序功能描述:主程序是初始化系统运行环境,可以提供系统用户界面,同时建立与结束事件循环,通过主程序可以进行权限的设置,更有利于系统的管理。主程序的语句:SET TALK OFF CLEARPUBLIC sysqxsysqx=.f.CLEAR ALLCLEARSET TALK OFF SET SAFETY OFFSET STATUS OFFPUBLIC sysqx &设置权限控制变量sysqx=.f.DO FORM 登录页面.scx &启动用户登录表单,在用户登陆表单中验证用户名、密码,都正确后再用
30、一条命令DO 主菜单.MPR 调用主菜单READ eventsCLOSE ALLCLEAR ALLRETURN五、 总结这次对于图书馆管理系统的制作对我们来说是一次不同寻常的经历。这次的经历让我们体验到了一个程序员的艰辛与不易,在锻炼自己的耐心和毅力的同时,也体验了不一样的乐趣。在该图书馆管理系统的设计过程中,我们频频出现错误,过程总会因为一些细节原因而中断,导致程序无法运行,也让我们很烦恼。经过查阅各种资料,请教老师,在我们对程序的一再运行和修改下,最终我们克服了这些困难,即使系统中仍存在漏洞,也不够精细,或许也还不够完整,但是它体现了我们努力的成果。在一开始的时候,我们总是早抱怨做这个太麻烦了,不过当看到这个系统完整地出现在我们眼前时,我们内心还是充满了自豪感。这次的经历锻炼了我们的实践能力,是一种不同寻常的体验,这次的经历锻炼了我们的实践能力,同时我们一定会从中吸取经验和教训。