南通大学计算机科学与技术学院
Visual FoxPro课程设计
报 告 书
设计题目 综合训练程序设计及管理系统
专业班级 国贸086
学生姓名 张圣颖
学 号 0804012153
指导教师 李跃华
日 期 2009.6.29~2009.7.3
目 录
1、课程设计题目. 1
2、课程设计目的. 1
3、课程设计要求. 1
4、课程设计报告内容. 1
4.1 系统主要功能. 1
4.2 系统功能结构图. 2
4.3 系统代码实现. 2
4.4 系统存在的主要问题及注意事项. 4
4.5 设计总结及体会. 6
综合训练程序设计及管理系统
(1)巩固VFP基本操作(表、数据库、查询、表单、菜单等的使用);
(2)进一步学习和巩固VFP程序设计的方法。
(1)熟练掌握 VFP 数据库管理系统的使用方法;
(2)正确理解程序设计的基本概念,掌握程序设计的一般方法;
(3)掌握用 VFP 开发数据库应用程序的基本技能。
设计并实现一个菜单文件,实现VFP上机试题的汇编。具体要求如下:
(1) 菜单文件中的各个菜单项,分别实现20##年(秋)每套上机试题中的设计查询、设计表单和程序改错题这三个部分的内容;
(2) 菜单文件中必须提供恢复系统主菜单的功能;
(3) 编译生成可直接在Windows中运行的应用程序(.exe文件)。
(要求:给出查询对应的SQL语句;给出设计菜单、设计表单部分对应的命令和事件代码;给出程序改错题错误的语句和对应的改正语句)
[VFP01]
(1)设计查询
SELECT Whcd.mc, COUNT(*) as RS,AVG(YEAR(DATE())-YEAR(Js.csrq)) as PJNL;
FROM jxsj!js INNER JOIN jxsj!whcd;
ON Js.whcd=Whcd.dm;
GROUP BY Whcd.mc;
ORDER BY 2 DESC,3
(2)设计菜单
“统计“菜单项的SELECT-SQL命令:select zc,count(*) as rs from js group by zc
(3)设计表单
命令按钮组的Click代码:n=this.value
thisform.xxx
(4)程序改错题
a.将第12行的c(k)=c(k+1)改为c(k)=c(k-1)
b.将第18行的ENDDO改为ENDFOR
[VFP02]
(1)设计查询
SELECT Whcd.mc, Js.xb, COUNT(*) AS 人数;
FROM jxsj!js INNER JOIN jxsj!whcd ;
ON Js.whcd=Whcd.dm;
WHERE YEAR(DATE())-YEAR(Js.csrq)<= 45;
GROUP BY Whcd.mc, Js.xb;
ORDER BY Whcd.mc, Js.xb
(2)设计菜单
“统计“菜单项的SELECT-SQL命令:select xb,count(*) as rs from js group by xb
(3)设计表单
命令按钮组的Click最后一行代码:
thisform.label1.caption=cj.xh
(4)程序改错题
a.将第9行的FOR j=n TO i+1 STEP 1 改为 FOR j=n TO i+1 STEP -1
b.将第14行的Lcontinue=.F.改为Lcontinue=.T.
[VFP03]
(1)设计查询
SELECT Yxzy.yxmc, COUNT(*) as rs, SUM(IIF(Js.zc="教授",1,0)) as jsrs;
FROM jxsj!js INNER JOIN jxsj!yxzy;
ON Js.yxzydm=Yxzy.yxzydm;
GROUP BY Yxzy.yxmc;
HAVING SUM(IIF(Js.zc="教授",1,0))/COUNT(*)>= 0.2;
ORDER BY 3 DESC
(2)设计菜单
“统计“菜单项的命令:do chaxun.qpr
(3)设计表单
a.设置表单对象F081B的以下属性值:AutoCenter属性:.T.
b.选项按钮组的Click代码:c=THIS.VALUE
THISFORM.GRID1.RECORDSOURCE=c
THISFORM.LABEL1.CAPTION=c+"表浏览"
(4)程序改错题
a.将第9行的IF CHR('Str1')>127 改为 IF ASC(Str1)>127
b.将第11行的ENDIF改为ELSE
[VFP04]
(1)设计查询
SELECT Yxzy.yxmc, COUNT(*) as rs, SUM(IIF(Js.xb="男",1,0)) as nanrs;
FROM jxsj!js INNER JOIN jxsj!yxzy ;
ON Js.yxzydm=Yxzy.yxzydm;
GROUP BY Yxzy.yxmc;
ORDER BY 3 DESC;
TO FILE temp.txt
(2)设计菜单
a.设置“导出”菜单项的跳过条件:Empty(alias())或!used(alias())
b. 设置“打印预览”菜单项命令:report form rtest preview
(3)设计表单
a.设置表单对象F081B的以下属性值:
AutoCenter属性:.T. Height属性: 120 Width属性: 280
b.设置标签Caption属性: 口令输入
c. 设置文本框PasswordChar属性: *
d.“确定”按钮的Click代码:IF ALLTRIM(THISFORM.TEXT1.VALUE)="ABC"
MESSAGEBOX("OK!")
ELSE
MESSAGEBOX("口令不正确!")
ENDIF
(4)程序改错题
a.将第14行的m2=m2+VAL(SUBSTR(c2,j,1))*2**(j)
改为 m2=m2+VAL(SUBSTR(c2,j,1))*2**(-j)
b.将第17行的?'二进制'+cstr+'十进制表示为:'+VAL(m,10,3)
改为?'二进制'+cstr+'十进制表示为:'+STR(m,10,3)
1.做题前要先设置默认路径
2.题目要求要看清,确定你要打开的是哪个表、哪个表单
3.当做设计查询时,出现无法访问此表,可以先清理项目,然后再添加该表;如果还是无法访问,可以先在项目管理器中先浏览该表,再设计查询
4.设置参照完整性时要先清理数据库
5.要时刻注意中英文输入状态,编写代码和命令时一定要在英文输入环境下
之前看教程书时,顺着文章的条理一条一条地看下去,并没觉得有什么难的。可当上机实践操作时,很多问题就暴露出来了,觉得这不懂那不会的,还不得不重新查阅教程,并向老师、同学请教。也多亏老师的耐心指导和同学的细心帮助,使我克服了大大小小的困难。在此,我还是要感谢他们!
从设计过程中遇到的一些问题可以看出,书本知识一定要熟练掌握,不能急功近利、自以为是。此外还需要些大胆的尝试和探索,要把理论与实践相结合,灵活运用书本知识,学以致用!
参考书目:《VFP教程》
目录
一、需求分析…………………………3
功能需求……………………………………………………3
数据需求……………………………………………………3
二、建库结果…………………………3
数据关系ER图………………………………………………4
数据表结构……………………………………………………4
三、系统开发设计……………………4
开发流程……………………………………………………4
功能介绍……………………………………………………6
四、关键和难点问题及其解决方案……8
关键…………………………………………………………9
难点…………………………………………………………9
解决方案……………………………………………………9
五、对课程设计的认识体会…………9
一、需求分析
1、功能需求
现在的工作者大多都有自己的名片,尤其是经常和各种人打交道的人。人们初次见面,都会礼貌性的交换名片。随着社会关系的增加,效率低下、容易出错的手工名片方式越来越不适应实际社交的需要,利用计算机技术和数据库技术设计开发名片管理系统,实现对名片的自动管理成为当代社会的的迫切需要。
名片管理系统是一个社会上人际交往不可缺少的部分,随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
使用计算机对名片信息进行管理,具有着手工名片所无法比拟的优点.例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。借助计算机,让计算机对名片进行自动管理。这样需要联系某个人时,不用再从厚厚的一大摞名片中找寻需要的那个人的那张名片,只需动动鼠标就可以马上查到,并且可以根据联系人的姓名查找其电话或者根据联系人的电话查找其姓名。操作十分方便。
2、数据需求
需要的数据表有名片表和操作员表。名片表记录名片的基本信息,包括编号、姓名、职务、单位名称、地址、邮编电话、传真、手机以及电子邮箱等字段。操作员表记录本系统的操作员信息,包括用户名和密码字段。两表的数据可以在制作完表后就立马输入,或者也可以等程序设计完以后利用追加方式再将数据录入,在表中海可以进行增加或者是删除数据,方便用户使用。
二、建库结果
1、系统功能结构图
6
2、数据表结构
分析对名片信息的管理情况,首先需要了解名片的基本内容,所以需要名片表。要对使用名片管理系统的用户进行管理,因此要有操作员表。
所以,需要的数据表有名片表和操作员表。名片表记录名片的基本信息,包括编号、姓名、职务、单位名称、地址、邮编电话、传真、手机以及电子邮箱等字段。操作员表记录本系统的操作员信息,包括用户名和密码字段。
三、系统开发设计
1、开发流程
设计思路:采用自底向上的设计方法,首先设计数据结构,然后设计表单、菜单和报表,最后设计主程序。
(1)建立项目
启动Visual FoxPro,在主界面新建项目
(2)建立数据库和表
新建数据库,打开数据库设计器,新建数据库。
在数据库设计器中,新建名片表和操作员表,分别在该表的表设计器中输入结构字段并选择索引,单击确定后分别录入名片和操作员的信息数据。
(3)登录表单设计
新建表单,在表单设计器的数据环境中添加操作员表。依次把数据环境中操作员表的用户名和密码字段拖到空表单的合适位置。表单上出现四个控件,调整其位置并更改其属性。
分别设计Load事件代码、Unload事件代码、按钮Click事件代码,保存表单并运行。
(4)密码修改表单设计
新建表单,在表单设计器的数据环境中添加操作员表。依次把数据环境中操作员表中的字段拖到空表单的合适位置。调整表单上出现的控件的位置并更改其属性。
分别设计各按钮事件代码,保存表单并运行。
(5)查询名片结果表单设计
新建表单,在表单设计器的数据环境中添加名片表。依次把数据环境中名片表的字段拖到空表单的合适位置。调整表单上出现的控件的位置并更改其属性。
分别设计表单的Int事件代码和Click事件代码,保存表单并运行。
(6)名片查询表单设计
名片查询分为按姓名查询、按单位查询和按电话查询三种方式。
这里介绍一个按姓名查询的表单设计,其他雷同。
新建表单,在表单设计器的数据环境中添加名片表。
在表单上分别添加标签按钮、组合框控件和命令按钮等,并更改其位置和相应属性。保存表单并运行。
(7)菜单设计
菜单布局设置
本系统中主要包括以下菜单:
文件:新建、打开、关闭、保存、另存为、页面设置以及退出
编辑:撤销、重做、剪切、复制、以及粘贴
名片查询:按姓名查询、按单位查询以及按电话查询
名片打印:报表设计、打印名片
系统维护:修改密码
退出系统
帮助:帮助主题和关于
创建自定义菜单,在子菜单中调用表单,在菜单中使用过程,预览菜单。
(8)报表设计
在项目管理器的文档选项卡中,选中报表,并新建。在报表设计器中运用报表控件工具栏、布局工具栏、调色板工具栏等对报表进行布局设置,设计完成后对报表进行保存和预览。
(9)主程序设计
建立主程序:在项目管理器的代码选项卡,选中程序,并新建。在弹出的窗口中编写程序代码。
设置初始化环境,再调用登录表单,最后回复主要的参数环境。
关闭程序窗口,在弹出的保存对话框中对其进行保存。
设置主文件:选择代码选项卡下的程序下的程序文件,单击菜单栏的项目里的设置主文件命令。
(10)系统连编和运行
选中主程序,单击连编按钮,在弹出的连编选项对话框中选择连编可执行文件。
完成连编后,在磁盘上找到本系统的可执行文件,双击运行。
2、功能介绍
此名片查询系统通过使用Visual FoxPro实现了用户登录、名片查找、名片打印以及密码修改等功能,基本达到了应用软件开发的要求。
本系统使用了向导设计和编程可以让用户快速的查询到需要的人员的名片信息,并且可以通过报表打印名片。进入系统获取数据之前还有用户密码认证。
总体来说,本系统包括了以下功能:
(1)密码管理功能:
该模块实现对用户密码进行管理的功能,主要是进行密码的修改。为了防止个人名片信息的泄露,不知道用户密码的人员不能进入本系统。出于安全的考虑,用户还可以定期修改自己的密码,以防止密码被盗用。
(2)名片查询功能:
该模块实现查询名片信息的功能。对名片的查询共有三种方式,分别是按姓名查询、按单位查询以及按电话查询。在查询名片信息时,可以利用只知道的某个名片信息的一部分内容进行查找。例如,只知道某个电话,需要知道该电话拥有者的信息。
按姓名查找:
按单位查询:
按电话查询:
(3)名片打印管理功能:
如果想打印出某些名片的信息,本系统也提供打印的功能。该模块实现打印名片信息的功能,主要包括对名片的格式进行设计和对设计好的名片进行打印两个子功能。
(4)退出系统功能:
完成对名片管理系统的操作后,可以安全的离开该系统。
四、关键和难点问题及其解决方案
1、关键
(1)建立表之间的关联:表和表之间通过索引建立关系,只有建立正确的索引关系才能将各个表之间的关系明确的表示出来,让使用系统的人一下就知道系统所体供给我们的好处和方便。
(2)代码的正确性:首先代码的输入一定要正确,要仔细检查,这是防止低级错误必须做的事情;其次,写路径调用时,代码要写全,要先确认好默认路径,避免在连编程序后发生找不到表单的情况。
2、难点
(1)路径设置:应该先建立默认路径,这样下次打开便不用重复设置了。
(2)调用表单:调用过程中最难的还是调用代码的书写,要明确调用表单所在位置,可以在表单的【属性】里找到,这是很重要的。
(3)主菜单:菜单编辑时命令,过程代码的书写
(4)主程序的建立:主要还是集中在代码书写的问题上!
3、遇到的问题
追加记录
美化界面的设计
4、解决方案
(1)追加记录的解决方案:先浏览需要添加记录的表,点击菜单栏的显示下的追加方式即可进行记录的增添删改。
(2)美化界面的设计:(1)对于各个表单都进行了背景图片的插入
(2)密码登陆和密码修改两个界面有小图标的插入。
(3)把字体和颜色改变到了最美观
(4)各个界面的主标题的backstyle都进行了透明处理,使其更加美观
(5)对密码修改界面进行了阴影效果字体的设计和体现
五、对课程设计的认识体会
一个系统的设计和实现是具有相当大的难度的,尤其在表单的运行时经常会出现问题,结果是表单无法正常运行。
过程中,我遇到了很多问题,通过自己在图书馆找了大量的资料以及询问同学和老师,这些问题都获得了一定程度的解决。期间,几次进行了重做和修改,从一次次的失败和成功中,我体会到了一种对问题进行深入探索的精神和逻辑思考的重要性,这些都让我更加坚定了要把程序作出来的决心。
本次课程设计中,通过一个小型简单的数据库系统的设计,我更加熟悉了数据库的开发流程,了解并掌握了数据库,数据表,视图,窗体,程序,报表等的使用。
江苏师范大学数据库原理及应用实验报告实验名称班级情况数据库班级姓名学号实验日期20xx年1月9日指导教师吴庆忠江苏师范大学测绘学院…
计算机等级考试成绩查询系统目录内容摘要2第1章概述311系统实现的目标312系统实现的方案313系统实现的环境314具体的开发方法…
VFP课程设计报告姓名闫美玲班级08404031学号0840403127正文1VFP课程设计目的VFP课程的学习不仅需要理论上的深…
VFP课程上机操作报告一目的关系数据库管理系统课程的学习不仅需要理论上的深入探讨而且需要通过实践上机自己开发一个数据库管理信息系统…
VF数据库技术课程设计一题目见附表2二任务要求每二个人一组一组一个题目二人合作或单独完成按期完成题目要求的数据库系统以软件形式提供…
姓名:赵叶锋班级:食品科学113学号:20xx013522大三的第二学期块结束了,这个学期操作了四个微生物实验,以及一个自主设计性…
根据区政府法制办沪奉府法办[20xx]3号《关于本区开展规范性文件廉洁性评估工作的通知》的精神,我镇对20xx年度以来印发的政府文…
20xx年x月x日,经党组织的批准,我成为一名光荣的中国中共预备党员。在组织的培养教育下,我认真按照党员的标准去做,加强政治思想学…
回顾20xx年,预结算部在总裁办的英明领导和相关部门的全力帮助下顺利完成全年的工作和既定任务。在新的一年开端之际对全年的工作进行回…
经营部工作总结各位领导、同事大家好:**经营部,是公司早期门市之一。公司领导比较重视,**搬家牵涉公司每个人的心。董事长亲临现场,…