《最新vfp课程设计报告DOC.doc》由会员分享,可在线阅读,更多相关《最新vfp课程设计报告DOC.doc(82页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-datevfp课程设计报告DOC封面:书店管理系统课程名称:空间数据库基础专 业:测绘工程班 级:0614122设 计 组:第13组设 计 者:卢仁志 郑佳 胡远汕 张育恺指导教师:苗东利、牛磊、宋自影、邢晓娜设计时间:2014年1月河南城建学院测绘工程学院目录一、课题及任务21、课题简介22、任务分派2二、系统需求分析调查31、系统需求分析32、系统功能简介4三、系统设计5
2、1、系统的总体设计52、系统详细设计63、数据库设计7四、系统实施101、数据资源102、主程序设计123、主要工作窗口124、菜单设计23五、设计体会25六、参考文献26一、 课题及任务1、课题简介本系统利用VB处理数据库的功能,实现对网上书店信息的管理。主要功能为管理有关顾客、出版社、书籍、订单、库存和管理者的信息等。本系统的结构分为顾客信息管理模块、出版社信息管理模块、书籍信息管理模块、订单信息管理模块、库存信息管理模块、管理者管理信息模块、报表显示模块和查询处理模块 2、任务分派 本组共有卢仁志、郑佳、胡远汕、张育恺四位成员。经过四人对本系统的简单讨论,均同意如下的任务分派:由卢仁志负
3、责启动、登录、主界面、查询等多个表单的建立,郑佳负责数据维护表单和菜单的建立,胡远汕负责数据浏览表单和报表的建立,张育恺负责本系统所需要的数据库和数据表的设计工作,最后,由卢仁志负责系统的连编和课程设计报告的编写。二、 系统需求分析调查1、系统需求分析需求分析的基本任务是准确的回答“系统必须做什么?”这个问题。虽然在上一个阶段已经粗略的了解了用户的需求,但还是会遗漏一些细节方面的问题。所以需求分析这一阶段的研究必不可少,而且,它在整个系统开发过程中占有非常重要的地位。(1)、分析系统的数据要求 分析系统的数据要求分析系统的数据要求分析系统的数据要求分析系统的数据要求 任何一个系统本质上都是信息
4、处理系统,系统必须处理的信息和系统应该产生的信息在很大程度上决定了系统的面貌,对软件设计有深远的影响。因此,必须分析系统的数据需求,这是软件需求分析的一个重要任务。 复杂的数据由许多基本的数据元素组成,数据结构表示数据元素之间的关系。利用数据字典何以全面准确的定义数据,但是数据字典的缺点是不够形象直观。因此,数据流程图能够很方便的表明整个系统的功能,数据在系统中传输的路径。需求分析阶段的一个重要而困难的任务是收集将来应用所涉及的数据,所以要在此阶段就要充分考虑到可能的扩充和改变,使设计易于更改,系统易于扩充。另外,在数据分析阶段,必须强调用户的参与,要与用户保持密切的联系,任何调查研究没有用户
5、的积极参加是寸步难行的。 在此阶段,我主要是做了一些了解书店销售方面的数据的查阅和设计工作,积极参与到实际的销售过程当中,不断与小组成员交流意见。(2)、功能需求分析根据当前的书店管理体制,一般书店的销售管理系统,总是根据掌握的书籍类别,相应分成几个科室来进行的销售,进货,核销托收,验收入库,并随时按期进行库存盘点,作台帐,根据书店自身管理的需要按月,季,年进行统计分析,产生相应的报表。但是这样的人工操作管理既浪费人力,财力,又浪费时间,严重影响了图书管理的效率。本章根据当前的书店机制,把书店销售管理系统划分为如下几个功能:交易管理,包括进货登记管理,销售登记管理,退货登记管理;进货统计管理,
6、其中包括有关进货的各种统计数据表,如今日进货统计,本月进货统计,本极度进货统计,本年度进货统计等;销售统计管理,其中包括有关销售的各种统计数据表,如今日销售统计,本月销售统计,本极度销售统计,本年度销售统计等:员工销售业绩的考核,可以很方便的查看各员工的销售情况,以便对各员工的业绩进行考核比较同时,为了能够更好的了解书店各方面情况,以便于经营管理。还需要几个信息表来显示诸如库存,出版商,员工信息等内容的功能。基于安全性的考虑,本系统还将登陆的情况下,各个功能是不可用的。2、系统功能简介(1).信息管理,包括图书信息管理,出版商信息管理,管理员信息管理。(2).销售管理,其中包括有关书籍的各种统
7、计数据表,如书籍的销售情况,销售日期,管理员,书籍市场分析,书籍的订货情况等。 (3).为了满足一些特殊的要求,本系统还添加了一些报表打印功能,例如书籍信息单,管理员信息单,销售信息单等。 (4).为了让使用本系统的人员对本系统有一个比较粗略的认识,我们在系统中还添加一个“关于”的表单,用于介绍本系统的基本情况。(5).为了能够更好的应用本系统,方便销售人员或其它相关工作者进行操作,同时,为了系统的大方美观,本系统设置一个顶层表单,以承载菜单。 (6).基于安全性的考虑,本系统还提供一个管理员登录的功能。 三、系统设计 1、系统的总体设计 为了便于观察清晰,方便查看,现用系统设计流程图对系统总
8、体设计进行说明,系统设计流程图如下: 登录书店管理系统主界面报表打印系统图 书 信 息 单管理员信息单销 售 信 息 单退 出 系 统关 于 系 统 信息管理销售管理查询浏览维护 2、系统详细设计 本系统共分为四个功能模块,分别为查询功能模块、浏览功能模块、维护功能模块、报表打印功能模块。另外还有登录、主界面、关于三个表单,同时,在书店管理系统主界面调用自制的菜单,其中菜单共分为四个一级菜单、十个二级菜单、十五个三级菜单。其中,查询功能模块包括书本信息查询、出版商信息查询、管理员信息查询和销售查询,浏览功能模块包括书本信息浏览、出版商信息浏览、管理员信息浏览、销售情况浏览,维护功能模块包括出版
9、商信息维护、管理员信息维护、市场信息维护、订单情况维护和销售情况维护。除此之外,系统中的关于表单用来简单介绍本系统的一些基本情况,如开发团队、系统的开发目的、系统的完成日期、一些界面的特点介绍等等,旨在为使用本系统的人员提供一个认识平台。登录表单用来设置用户权限的,当用户名和密码有一个出现错误,就不能进入本系统,更不能使用本系统。欢迎界面只是系统的一个封面而已,吸引别人的关注和点击,除此之外没有其他的任何实用功能 3、数据库设计要想完整开发出本系统,需要建立一个数据库,并包含系统所需要的数据表。经过我们小组成员的整体讨论,我们决定建立一个“书店管理系统数据库”,其中共包含7个数据表,分别为用户
10、登录表、书本信息表、出版商信息表、管理员信息表、销售情况表。先将各个数据表的一些基本属性用表格阐述,表格如下:用户登录表字段名字段类型字段宽度小数位姓名字符型6无密码字符型6无书本信息表字段名字段类型字段宽度小数位书本编号字符型10名称字符型20出版单位字符型30出版日期日期型8进价数值型102销售价数值型102 管理员信息表字段名字段类型字段宽度小数位姓名字符型6性别字符型6民族字符型6年龄数值型4籍贯字符型30学历字符型6家庭地址字符型30联系电话字符型15 销售情况表字段名字段类型字段宽度小数位票号字符型10图书名称字符型20客户全称数值型4销售价格数值型102数量数值型6销售日期日期型
11、8 以上均为书店管理系统数据库中数据表的部分属性。另外,我们将图书信息表中的图书编号字段建立主索引,出版商信息表中的图书编号建立普通索引,然后将两表建立一对多关联,同理,在销售情况表中将图书编号建立主索引,然后也将他们连在一起,建立一对多关联。四、系统实施1、数据资源 至于本系统的数据资源,现用数据表截图表示,各数据表截图如下: 管理员信息表:进货表:客户信息表:库存表:权限表:图书信息表:销售表: 2、主程序设计主程序代码如下:Do form 登录.scxRead eventsReturn 3主要工作窗口本系统的工作窗口共有十九个,其中包括登录、主界面、查询、浏览、维护、关于等多个表单。每个
12、工作窗口都添加了一些控件并设置了一些属性,同时在工作窗口中或控件中添加一些代码,用以实现预想的功能。为了让方便查看和阅读,现将主要工作窗口截图,用表格对控件及其重要属性进行总结归纳。3.1登录界面:登录界面的控件及其重要属性如表格所示:对象名属性属性值事件Form1Caption登录InitLabel1Caption书店管理系统无Label2Caption姓名:无Label3Caption密码:无Command1Caption登录ClickCommand2Caption退出ClickCombo1RowsourceRowsourcetype略3无Text1Passwordcharvalue*无无
13、Image1Stretchpicture2-变比填充略无Image2Stretchpicture2-变比填充略无Form1的init事件代码如下:i=i+1 locat all for alltrim(管理员姓名)=alltrim(thisform.Combo1.value) if found () and alltrim(管理员密码)=alltrim(thisform.Text1.value ) do form 主表单.scxrelease thisform else if i3 then =messagebox (操作人或密码错误,请重试!,5+48,警告!) else =messageb
14、ox(对不起,您是非法用户,系统将自动退出!,48,严重警告) quit endif endif退出控件的程序代码:release thisform3.2书店管理系统主界面:主界面中控件及重要属性如下:对象名属性属性值事件Form1showwindow2-作为顶层表单InitLabel2Caption书店售管理系统无Label3Caption略无客户进入控件的程序代码:do form 客户登录表单.scxrelease thisform管理员进入控件的程序代码:do form 登录表单.scxrelease thisform退出控件的程序代码:rele thisform3.3关于界面:关于界面
15、只是介绍本系统的一些简单内容,没有其他的任何功能,至于表单中添加的一些控件,均是标签控件和图像控件,他们的一些属性只是字体,字体颜色等等这样的属性,没有什么特殊的功能,在此就不再一一累述。也没有事件代码。3.4查询模块的截图如下:客户信息查询控件的程序代码:if this.value=1thisform.label1.caption=请输入编号thisform.text1.value=thisform.text1.setfocuselsethisform.label1.caption=请输入姓名thisform.text1.value=thisform.text1.setfocusendif查
16、询控件的程序代码:public P_StrSql if thisform.optiongroup1.option1.value=1 thenP_StrSql=select * from 客户信息表 where alltrim(客户编号)=+thisform.text1.value+into cursor queendifif thisform.optiongroup1.option2.value =1 thenP_StrSql=select * from 客户信息表 where 客户全称=+thisform.text1.text+into cursor queendif进货查询控件的程序代码:
17、sele 库存表 locate for allt(thisform.Combo1.value)=allt(图书名称) if found() messagebox(查找成功,0+48,提示) go top sele * from 库存表 where allt(thisform.Combo1.value)=allt(图书名称) into cursor temp thisform.refresh thisform.init else messagebox(对不起,没有相关内容,0+48,提示) endif 由于查询模块的设计思路相同,模式也一样,控件及其属性也是大同小异,代码只是有小的变动,下面只以
18、查询模块的第一个查询表单对其中的控件及其重要属性和代码进行阐述,其他查询表单在此就不一一进行累述。进货信息查询的控件及属性如下表所示:对象名属性属性值事件Form1Caption进货信息查询InitLabel1Caption查询-按编号无接上图Command1Caption查询ClickCommand2Caption退出ClickCombol1Rowsourscerowsourcetype图书信息表:名称6-字段无Gird1Recordsourcerecordsourcetype图书信息表0表无3.5浏览模块如下:本系统所使用的浏览表单大同小异,现以订单情况浏览表单为例,对其中添加的控件及其重
19、要属性进行说明,如下:对象名属性属性值事件Form1Caption客户信息浏览无Label1Caption客户信息浏览无Girdl1RecordsourceRecordsourcetype客户信息表0表无3.6维护模块:修改控件的程序代码:sele 用户名if allt(bo1.value)=bo1.setfocusmessagebox(请选择或输入正确的用户名,64,提示)elselocate for allt(用户名)=allt(bo1.value)if eof()messagebox(此用户不存在,请重新输入!,64,提示)bo1.value=bo1.setfocus()elseif !
20、allt(密码)=allt(thisform.text2.value)messagebox(密码错误,请重新输入!,64,提示)thisform.text2.value=thisform.text2.setfocus()elseif allt(thisform.text3.value)=messagebox(请输入新密码!,64,提示)thisform.text3.setfocuselseif !allt(thisform.text3.value)=allt(thisform.text4.value)messagebox(确认密码错误,请重新输入!,64,提示)thisform.text4.v
21、alue=thisform.text4.setfocuselserepl 密码 with allt(thisform.text4.value)messagebox(您已修改成功!,64)thisform.releaseendifendifendifendifendif取消控件的程序代码:rele thisform注册控件的程序代码:Set safety offsele 客户信息表if alltrim(thisform.text1.value)=messagebox(用户名不能为空! ,0+48,警告)thisform.text1.setfocuselselocate for 客户全称=allt
22、rim(thisform.text1.value)if(.not. eof()messagebox(此用户已存在,请重新输入!,64,警告)thisform.text1.value=thisform.text1.setfocuselseif alltrim(thisform.text2.value)=messagebox(密码不能为空! ,0+48,警告)thisform.text2.setfocuselseif (thisform.text2.value)=(thisform.text3.value)append blankrepl 客户全称 with alltrim(thisform.te
23、xt1.value),;密码 with alltrim(thisform.text2.value)*!*if thisform.check1.value=1*!*repl 标识 with .T.*!*else*!*repl 标识 with .F.*!*endifmessagebox(您已注册成功!)thisform.text1.value=thisform.text2.value=thisform.text3.value=thisform.text1.setfocusthisform.text3.enabled=.f.thisform.label4.enabled=.f.*!*thisform
24、.list1.clear*!*thisform.list1.initelsett=messagebox(确认密码错误,请重新输入!,0+48,警告)if tt=1thisform.text3.enabled=.t.thisform.label4.enabled=.t.thisform.text3.value=thisform.text3.setfocusendifendifendifendifendif删除控件的程序代码:if allt(thisform.text1.value)=messagebox(请选择或输入用户名,64,提示)thisform.text1.setfocuselseuse
25、 客户信息表locate for 客户全称=allt(thisform.text1.value);.and.密码=allt(thisform.text2.value)if eof()messagebox(请选择或输入正确的用户名,64,提示)thisform.text1.value=thisform.text2.value=thisform.text1.setfocuselsett=messagebox(一定要删除吗?,4+48,删除确认)if tt=6deletepackendif*!*thisform.list1.clear*!*thisform.list1.init*!*thisform
26、.list1.clickmessagebox(删除成功!)endifendif返回控件的程序代码:release thisform同理,系统维护模块的表单设计理念相同,现只以出版商信息维护表单为代表,对其中所添加的控件及重要属性用表格来进行说明,每种控件只用其中的部分作为代表,表格如下:对象名属性属性值事件Form1Caption出版商信息维护无Label1Caption出版商信息维护无Text1Controlsource出版商信息表无Line1Borderwidth5无Command1Caption首个ClickCommand2Caption上一个ClickCommand3Caption下一
27、个ClickCommand4Caption末个ClickCommand5Caption添加ClickCommand6Caption删除ClickCommand7Caption退出ClickCommand1的click事件代码如下:Go top Thisform.refreshCommand2的click事件代码如下:Skip-1Thisform.refreshCommand3的click事件代码如下:Skip+1Thisform.refreshCommand4的click事件代码如下:Go bottomThisform.refreshCommand5的click事件代码如下:Go bottom
28、 Append blankThisform.refreshCommand6的click事件代码如下:DeletePackThisform.refreshCommand7的click事件代码如下:Release thisform 4、菜单设计本系统共采用四个一级菜单,九个二级菜单,十多个三级菜单。一级菜单分别为:信息管理、图书管理、报表打印、系统。二级菜单分别为信息查询、信息浏览、信息维护、图书信息查询、图书信息维护、图书信息浏览、书本信息单、管理员信息单、销售情况单、关于、退出。三级菜单分别为:图书信息查询/维护/浏览、出版商信息查询/浏览/维护、管理员信息浏览/维护/查询、销售查询、销售情况
29、浏览/维护。现在用表格将各级菜单及其中的代码活命令表现出来。一级菜单设计如下:菜单名称结果选项信息管理子菜单图书管理子菜单报表打印子菜单关于子菜单一级菜单信息管理的二、三级菜单如下:二级菜单三级菜单选项信息查询图书信息查询Do form scx出版商信息查询Do form scx管理员信息查询Do form scx信息浏览图书信息浏览Do form scx出版商信息浏览Do form scx管理员信息浏览Do form scx信息维护用户信息维护Do form scx管理员信息维护Do form scx 一级菜单报表打印和系统的二级菜单如下:一级菜单二级菜单选项报表打印图书信息单Report
30、formfrx管理员信息单Report formfrx销售情况单Report formfrx系统关于Do form scx退出quit 另外,在此特别申明,本系统的设计思路是将自制菜单挂在顶层表单上,故在对“书店管理系统主界面”进行属性设置时将他的showwindow属性值设置为2作为顶层表单。其他表单出了登陆界面外,都要将属性desktep的属性值设置为T,showwindow的属性值设置为1显示在顶层表单中。报表就不用设置了,特此申明。五、设计体会 历时三周,我完成了我的课程设计工作,时至今日,实习论文基本完成。从最初的茫然,到慢慢的进入状态,再到对思路逐渐的清晰。历经了三个星期的努力,紧
31、张而又充实的课程设计终于落下了帷幕。回想这段日子的经历和感受,我感慨万千,在这次课程设计的过程中,我深刻的体会到了团体合作的力量。再同小组成员讨论的过程中,我从中吸收了一些很好的设计思路。同时,在搜集资料的过程中,我认真准备了一个笔记本,将自己的设计思路写了下来。我在学校图书馆,还在网上查找各类相关资料,将这些宝贵的资料全部记在笔记本上,尽量使我组的课程设计能够达到理想状态。这次课程设计过程是我的一次再学习,再提高的过程。在设计中我充分地运用了本学期所学到的知识。我从资料的收集过程中,掌握了很多的原先不知道的知识,让我对我所学过的知识有所巩固和提高,并且让我对数据库技术有所了解。在整个过程中,
32、我学到了新知识,增长了见识。在今后的日子里,我仍然要不断地充实自己,争取将所学的数据库技术应用到自己所学专业当中。在这次课程设计中也使我们的同学关系更进一步了,同学之间互相帮助,有什么不懂的大家在一起商量,听听不同的看法和不同的设计思路。在此更要感谢我的任课老师,是你的细心指导,使我能够顺利的完成此次的课程设计。 更重要的是,老师的严谨治学态度、渊博的知识、无私的奉献精神使我深受启迪。从尊敬的老师身上,我不仅学到了扎实、宽广的专业知识,也学到了做人的道理。六、参考文献 1、 visual foxpro 应用基础与面向对象程序设计教程高等教育出版社 2、visual foxpro应用系统开发教程清华大学出版社 3、visual foxpro实例全解教程南方出版社 4、网络资源百度文库 -