第一篇:VFP程序设计教学反思
“VFP程序设计”教学案例与反思
开县职业教育中心 向生
我长期从事计算机专业班的VFP教学,针对VFP课程的特点,在教法上,以‚示例教学法‛、‚‘课机’结合式教学法‛、‚任务驱动教学法‛为主开展教学,其教学效果明显,但在‚程序设计‛这一章节的教学中,还是存在着两大误区:一是学生基础较差,加之不爱动脑、动手,导致时间花得多,效果不理想;二是只重视程序设计的结果,忽视了其算法的多样化,从而束缚了学生的思维创新。于是,解决突破这两大误区成了我的首要任务。通过向同事学习,查找相关资料,将多种教法结合起来,通过实践,逐步形成了一种‚精讲多练、小组互动、分层实施、机试为主‛教学模式,从而达到了预期的目的。
现以do while …… enddo循环控制命令的使用为例,将其教学片段简介如下:
【案例】:
探索循环结构的程序设计方法:
1.示例:用投影仪展示求1+2+3+4+…+100程序清单,让学生对照程序清单上机调试并思考。
附程序清单:clear sum=0 i=1 do while i<=100 sum=sum+i i=i+1 enddo ?‛1+2+3+…+100=‛,sum 师:同学们,你们能找出程序清单中有哪些变量?并说明它的作用吗? 学生思考,随后指名回答。教师板书:sum i
sum的作用是用于存储所求的和(中间结果及最终结果),i的作用是用来存储循环的值(即加数),同时控制循环执行的次数。
师:程序中的变量名可用其它的字母代替吗?你能找出在循环体(命令序列)中用于控制循环趋于结束的命令吗?
学生回答,教师板书:i=i+1 师:好,请同学们独立思考此程序的循环次数? 全班回答:100次。师:如何通过上机操作验证其执行过程呢?(学生开展讨论并上机操作验证)生1:只须将输出命令放到循环体中即可,即在‚i=i+1‛命令之后、‚enddo‛之前插入‚?sum,i‛命令。(学生操作验证)
生2:因为一屏显示不下,我们看到的仅仅是最后的几次执行过程,对于以前的执行过程还是看不到,可将该题分段实施,即先求1+2+3+…+20的和。
师:很好。(鼓掌、同学们再操作验证)
2.任务:四人一个小组开始活动,讨论以下任务的设计,并上机操作,教师参与到学生的活动中。任务一:求2+4+6+8+…+100的和 任务二:求1×2×3×4×5 不一会,各小组互动结束,请两个组进行了回答如下:
小组甲:任务一与例题之间的区别是循环变量的初值为2,每循环一次循环变量增2即i=i+2。
小组乙:任务二在例题的基础上将‚sum=0‛改为‚sum=1‛,循环变量的终值为5即条件改为i<=5,然后是循环体中的‛sum=sum+i‛改为‛sum=sum*i‛。
3.讨论:同学们,在刚才所做的程序中,你能找出其规律吗? 全班交流:
生1:循环变量从所赋的初值到终值按照一定的差进行变化,如求1+2+3+4+…时,其差为‚1‛进行的,求1+3+5+7+…时其差为‚2‛。
生2:(补充)循环变量在程序每执行一次时,就按照其连续相邻的两个值之间的差进行递增变化。
生3:用来存储结果的变量sum,也有一定的特点,如在求和时可以赋‚0‛,在求积时只能赋‚1‛。
……
师:你们说得很好,尤其是循环变量的特点,它是我们进行循环结构程序设计的关键,也是一个难点,其理解的程度直接影响到我们程序设计成败。但注意的是有时也可能发生递减变化哟。
4.拓展:做一做,求1+2+3+…+n;1×2×3×4×…×n;n从键盘输入。做完后并思考:与上述程序设计题有何区别?有何意义
过了一会儿,大多数学生做完了,但还有部分学生没有做完,就安排做完了的学生去指导未完成学生,帮助其操作,力争所有的学生有所获,有所得。
……
【反思】:
对VFP程序设计的教学,不再是重结果,轻过程,而是很好地驾驭教材内容,创造性地使用教材,巧妙组织、精心安排、灵活设计,给学生以耳目一新的感觉,教学效果非常明显,主要体现了以下几个方面:
1.程序设计关注的应该是程序设计的思维过程
本章节的教学,我跳出了认知技能的框框,不把程序设计的方法、操作技能的形成作为唯一的目标,而更关注学生的学习过程,让学生在自身实践探索的过程中实现发展性领域目标。如教学时围绕do while命令的使用为重点展开探索,通过相应的活动与任务提供自主学习的机会,给学生充分思考的空间和时间,允许并鼓励他们有不同思维方法,尊重他们的想法,哪怕是不合理的,甚至是错误的,让他们在相互交流、碰撞、讨论中,进一步明确程序设计的基本方法。通过互助探究后,他们在不同的层面上得到提高,并掌握了解决相应的实际问题的能力。在此基础上,教师组织学生对知识进一步拓展:如求‚1+2+3+…+n‛,达到程序设计的基本要求,那就是通用性、实用性。这样的教学,学生获得的不仅仅是程序设计的基本方法,更重要的是分析、处理问题的思维创新能力。
2.提倡思维方式、程序算法的多样化,促进学生个性发展。
思维方式、程序算法的多样化,是指尊重学生的独立思考,鼓励学生探索不同的方法,而不是让学生一定要去掌握多种操作方法。学生有着不同的专业基础、知识背景和思考角度,他们的差异是客观存在的,对同一个实际问题,由于学生的认知水平和认知风格的不同,常常会出现不同的设计方法,这正是学生具有不同个性的体现。通过分层实施,学生分别达到了应会、熟练等不同程度。在学生进行程序设计时,学生中出现了多种形式不同的程序清单。有的是变量的初值不同,有的是在循环体中命令的先后位臵略有变化,有的是把输出放在了循环体之中等等。在学生独立思考解决的基础上,再让学生发表自己的见解、观点,倾听同伴的解法,进行小组内交流、争论,从而达成一种共识。教师鼓励学生用已有的经验大胆思维,鼓励学生动手上机操作,寻求解决问题的有效途径,营造宽松活跃的课堂气氛。算法的多样化使学生变得聪明自信,在主动探索与合作交流中得到收获,并促进学生的个性发展。
3.营造民主的氛围,激发学生的创新思维 在程序设计过程中,不同的方法对同一个人也许有快慢之说,而对不同的人却不存在优劣之分。在整个探索的过程中,我只是通过投影展示了一个例题,然后组织学生不断地发表自己的想法,通过引导,鼓励他们敢于争论,完成对知识的构建,同时也要注意呵护每一位学生的学习激情,激发其创造力。
学生争论不休的时刻,也正是他们在积极地参与整个学习活动,这正是组织教学的精华所在,同时也挖掘了学生潜在的创造力,从而也带动了全班学生的积极参与,在‚do while命令‛使用的探索过程中,如验证体会循环的执行过程时,一学生提出只要验证‚1+2+3+…+20‛的和,又如求"1×2×3×4×5"时,一学生说它的sum初值不能为‚0‛,只能为‚1‛时,全班学生都给了他热烈的掌声。我想他这种的见解总是在经过认真分析思考后得出来的。
4.教学方法多样化,激发了学生学习的兴趣
VFP课的教学具有很强的实践操作性,教师在课堂中采取灵活多样的方法,可充分调动学生学习的激情。‚课机‛结合式教学法,在课堂中教师通过大屏幕液晶投影仪或网络教室讲解知识,然后学生在下面操作学习,学生很容易跟着教师的步骤进行学习,掌握教师教给的内容,而且印象也较为深刻。如上述的示例部分。‚任务驱动‛教学法可合理组织学生自主学习,激发他们的兴趣,让他们尽快地活动起来,并通过自己的自学和同学的帮助来解决问题,在愉快的教学过程中掌握知识,如上述互动中的任务
一、任务二等。
5.实践探索,进一步提高了学生的创造力
真理源于实践,实践出真知。在程序设计的教学中,通过边讲、边练,先从理论上分析讨论,找准理论依据,后通过上机操作验证其正确性,最后再讨论分析、交流程序设计的最佳方法,不仅训练了学生的操作技能,同时也培养学生的创造能力。
总之在程序设计中,鼓励积极思维、分层要求、反复操作验证、达到程序算法多样化是尊重学生的表现,体现了以学生为主体的教学原则,符合现代认知建构主义思想,是释放学生自信心和创新思维、培养创造能力的有效途径。
6.需进一步探索的问题
在程序设计教学时提倡‚精讲多练、小组互动、分层实施、机试为主‛的教学模式,保障了学生在不同的层面得到发展,得到提高,同时也培养了学生的创新思维,体现理论与技能的双丰收。但在对那些基础较差、不爱动脑、动手的学生帮扶上,在分层互动、层次把握上,对教师的组织能力、对教材的分析驾驭能力提出了新的要求,要能真正把握住哪些是全班学生掌握的,哪些是部分(即提高)学生掌握的,达到所有的学生在各自的水平上能‚吃饱‛。这些问题还需要我们在下一阶段的教学中进一步的探索。
第二篇:VFP程序设计课后反思(精选)
“VFP程序设计”课后反思
民勤职专
高海霞
我从事计算机专业班的VFP教学,针对VFP课程的特点,在教法上,以“案例教学法”、“课机结合式教学法”、“任务驱动教学法”为主开展教学,教学效果明显,达到了预期的目的。现以do while …… enddo循环控制命令的使用为例,将其教学片段简介如下:
【案例】: 探索循环结构的程序设计方法:
1.示例:用投影仪展示求1+2+3+4+…+100的程序,让学生对照程序清单上机调试并思考问题。
2.任务:四人一个小组开始活动,讨论以下任务的程序设计,并上机操作。
任务一:求2+4+6+8+…+100的和 任务二:求1×2×3×4×5
3.讨论:同学们,在刚才所做的程序中,你能找出其规律吗? 4.拓展:做一做,求1+2+3+…+n;1×2×3×4×…×n;n从键盘输入。【反思】:
对VFP程序设计的教学,不再是重结果,轻过程,而是很好地驾驭教材内容,创造性地使用教材,巧妙组织、精心安排、灵活设计,给学生以耳目一新的感觉,教学效果非常明显,主要体现了以下几个方面:
1.程序设计关注的应该是程序设计的思维过程
本章节的教学,我不再把程序设计的方法、操作技能的形成作为唯一的目标,而更关注学生的学习过程,让学生在自身实践探索的过程中发现问题解决问题。如教学时围绕do while命令的使用为重点展开探索,通过相应的活动与任务提供自主学习的机会,给学生充分思考的空间和时间,允许并鼓励他们有不同思维方法,尊重他们的想法,让他们在相互交流讨论中,进一步明确程序设计的基本方法。通过互助探究后,他们在不同的层面上得到提高,并掌握了解决相应的实际问题的能力。在此基础上,教师组织学生对知识进一步拓展:如求1+2+3+…+n,达到程序设计的基本要求,那就是通用性、实用性。这样的教学,学生获得的不仅仅是程序设计的基本方法,更重要的是分析、处理问题的思维创新能力。
2.提倡思维方式、程序算法的多样化,促进学生个性发展。
学生有着不同的专业基础、知识背景和思考角度,他们的差异是客观存在的,对同一个实际问题,由于学生的认知水平和认知风格的不同,常常会出现不同的设计方法,这正是学生具有不同个性的体现。在学生进行程序设计时,学生中出现了多种形式不同的程序清单。有的是变量的初值不同,有的是在循环体中命令的先后位臵略有变化,有的是把输出放在了循环体之中等等。在学生独立思考解决的基础上,再让学生发表自己的见解、观点,倾听同伴的解法,进行小组内交流、争论,从而达成一种共识。教师鼓励学生用已有的经验大胆思维,鼓励学生动手上机操作,寻求解决问题的有效途径,营造宽松活跃的课堂气氛。算法的多样化使学生变得聪明自信,在主动探索与合作交流中得到收获,并促进学生的个性发展。
3.营造民主的氛围,激发学生的创新思维
在程序设计过程中,我通过投影展示了一个例题,然后组织学生不断地发表自己的想法,通过引导,鼓励他们敢于争论,完成对知识的构建,同时也要注意呵护每一位学生的学习激情,激发其创造力。学生争论不休的时刻,也正是他们在积极地参与整个学习活动,这正是组织教学的精华所在,同时也挖掘了学生潜在的创造力,从而也带动了全班学生的积极参与,在do while命令使用的探索过程中,如验证体会循环的执行过程时,一学生提出只要验证1+2+3+…+20的和,又如求1×2×3×4×5时,一学生说它的sum初值不能为0,只能为1时,全班学生都给了他热烈的掌声。我想他这种的见解总是在经过认真分析思考后得出来的。
4.教学方法多样化,激发了生学习的兴趣
VFP课的教学具有很强的实践操作性,教师在课堂中采取灵活多样的方法,可充分调动学生学习的激情。课机结合式教学法,在课堂中教师通过大屏幕投影仪或网络教室讲解知识,然后学生在下面操作学习,学生很容易跟着教师的步骤进行学习,掌握教师教给的内容,而且印象也较为深刻。任务驱动教学法可合理组织学生自主学习,激发他们的兴趣,让他们尽快地活动起来,并通过自己的自学和同学的帮助来解决问题,在愉快的教学过程中掌握知识,如上述互动中的任务
一、任务二等。
5.实践探索,进一步提高了学生的创造力
真理源于实践,实践出真知。在程序设计的教学中,通过边讲、边练,先从理论上分析讨论,找准理论依据,后通过上机操作验证其正确性,最后再讨论分析、交流程序设计的最佳方法,不仅训练了学生的操作技能,同时也培养学生的创造能力。总之在程序设计中,鼓励积极思维、分层要求、反复操作验证、达到程序算法多样化是尊重学生的表现,体现了以学生为主体的教学原则,是释放学生自信心和创新思维、培养创造能力的有效途径。
6.需进一步探索的问题
在程序设计教学时提倡“精讲多练、小组互动、分层实施、机试为主”的教学模式,保障了学生在不同的层面得到发展,得到提高,同时也培养了学生的创新思维,体现理论与技能的双丰收。但在对那些基础较差、不爱动脑、动手的学生帮扶上,在分层互动、层次把握上,对教师的组织能力、对教材的分析驾驭能力提出了新的要求,要能真正把握住哪些是全班学生掌握的,哪些是部分学生掌握的,达到所有的学生在各自的水平上能吃饱。这些问题还需要我们在下一阶段的教学中进一步的探索。
第三篇:VFP程序设计总结
班级:电气2013-1 学号:20***9
VFP程序设计
——课设总结
为期几周的VFP数据库设计的课设就快过去了,在这做课设的这段时间,可以说是有苦有甜,令人难忘。因此,有必要写一篇总结,记录一下自己做课设的历程。
刚刚接到老师的课设要求的时候有点傻眼了,得优秀的要求是系统完善、写一篇系统总结、回答老师对于代码方面的提问。第一点似乎都还算能做到,但是对于我们这种连SQL语言的皮毛都没学,对于数据库的系统结构完全不了解的人,怎么能把三点要求都完成。
但是经过一段时间的摸索,我渐渐对vf的数据库系统有了大体的了解知道了什么是项目,数据库就是数据表的集合,搞清了基本表单的制作过程,知道如何用快速报表和报表向导做格式的报表,以及对报表的美化、求和、计算等处理,还有就是如何去制作菜单,以及用菜单调用各种数据文件,最后的主程序是直接复制老师的代码,但是凭着一点点C++和C语言基础,能够看懂代码的意思,这有助于我后期对整个系统进行查错和修改。下面就讲一下我对自己做的系统的总结。
1数据表(.dbf):数据表是整个系统的“原材料”,后期所有的制作处理,都是为了去处理和显示这些数据,去用这些数据,当然也可以说数据表依靠后期的表单等等呈现给用户。
2数据库(.dbc):数据库以我看来就是数据表的集合,可以将无联系的自由表集合到一个容器里,使他们可以产生联系。并且将这些表作为后面其他东西的数据环境。
3表单(.scx):表单就是最后呈现给用户的人机交互界面,并且带有一定的功能。表单的制作首先需要要给他设置数据环境,因为其上面的各种控件都是以数据环境里面的数据实现控件的意义。各种控件比如标签就是用来显示表单上需要显示的一些文字提示,文本框就是用来显示文本内容,组合框可以下拉显示一连串的内容,表格控件可以显示表格数据,可以用生成器做出自定义的表格,按钮控件可以通过某个过程比如单击执行用户需要的事件代码等等。最后表单生成以后,作为整个系统的优良的用户与系统的交互平台。
4菜单(.mnx):菜单就是整个系统调用文件的工具,通过点击菜单,可以调用任意用户想要调用的文件比如表单,数据表,程序等等。
5程序(.prg)程序就是一段代码,生成文件以后可以由其他文件调用并执行,如主程序就是在系统运行时的入口,当然得先设置好主文件;quit程序可以实现系统的退出。
除了以上几个以外,还有工具栏、自定义类等等在系统中都起着重要的作用,最后讲一下设置背景音乐所用的方法,用set bell to的方式定位到文件,用?chr(7)就能对WAV格式的音乐进行播放。
致谢:
整个课设过程收获很多,不仅仅是了解了利用Visual fox 制作系统的方法,而且还增进了同学们之间的友谊。在这里感谢同学们的互相学习以及交流分享,还有老师孜孜不倦的引导,总之,感谢老师,感谢同学,感谢大家!
XXX
第四篇:作业五:VFP高级程序设计
五、VFP高级程序设计(应用性实验)
1、本次实验的目的
Visual FoxPro不但提供了用于进行简单程序开发的简单语句,而且还提供了许多用于进行高级程序设计的语句(命令):如输入/输出格式设计语句、菜单设计语句、窗口设计语句等和面向对象的程序设计方法,为开发复杂的管理信息系统提供了强有力的支持。此次作业所要达到的主要目的就是想通过上机实验让同学们初步理解和掌握利用Visual FoxPro高级编程语句和面向对象的程序设计方法开发较复杂的管理信息系统的理论和方法。
2、实验的总体要求
2·1 严格按照下面“作业内容和操作步骤”的步骤进行操作; 2·2 必须如数完成作业内容; 2·3 独立完成作业;
2·4 上机后分组写出上机报告;报告内容包括:①上机时间、②上机过程、③作业内容及其完成情况、④心得体会、⑤建议或要求等等。
3、作业内容和操作步骤
3·1 Visual Foxpro高级程序设计的方法和步骤(1)打开VFP(操作方法为:单击“开始”、“程序”、“Microsoft Visual Foxpro6.0”或双击桌面快捷图标,如果正常会出现如下窗口);
(2)打开命令文件编辑器(操作方法为:在VFP窗口的“命令窗口”输入命令Modify Command和路径(例:Modify Command E:gzglxtpzsr),如果正常会出现如下命令文件编辑窗口);
(3)输入、编辑和修改程序(或者叫命令文件)源代码(见下面3·2“本次实验的主要内容”和3·3“本次实验所要达到的要求”);
(4)存盘退出(操作方法:按Ctrl+w或单击上编辑窗口的“关闭”按钮然后按照提示操作);
(5)程序运行(操作方法:在VFP窗口的“命令窗口”输入命令Do和路径(例:Do E:gzglxtpzsr),如果正常就会运行你的程序实现你想实现的结果,如果不正常它会自动返回步骤(2)要求你修改程序);(6)如果上面你自己编写的程序运行正常,便可得到下面的可以进行人机交互输入记帐凭证的屏幕界面;
(7)所有工作完成后关闭窗口(操作方法为:单击VFP窗口的“关闭”按钮)。
3·2 本次实验的主要内容(1)画程序流程图
已知烟台某公司开发会计信息系统的可行性分析、要求分析和系统设计已经完成,现在正在准备编写程序。假设分配你编写“记帐凭证输入程序”,请根据记帐凭证登记的业务特点和计算机数据输入的特点画出准备编写的记帐凭证输入程序的流程图。(2)编写程序
利用所学的Visual FoxPro相关命令(如分支语句、循环语句、输入/输出格式设计语句等等)编写出满足下面要求的程序。
3·3 本次实验所要达到的要求
(1)要求该程序利用交互方式进行凭证输入;
(2)要求该程序完成交互输入的屏幕样式如下图;
(3)通过实验深入了解管理信息系统与信息技术的关系;(4)通过实验深入了解Visual FoxPro的输入/输出格式设计语句的书写格式、功能、可选项及其应用。
4、注意事项
4·1上机前一定要认真阅读上机指导书,深入理解作业的要求和内容; 4·2爱护计算机及所有实验设备;
4·3遵守实验室的一切规章制度,尤其是不能大声说话和玩游戏。
5、参考文献
5·1 黄梯云主编,《管理信息系统》,高等教育出版社,2002第 7次印刷; 5·2 吕建忠等,《Office97(中文版)入门与提高》,清华大学出版社,2000 5·3 钱晓平等,《计算机文化基础》,高等教育出版社,1999; 5·4 李正凡等,《Visual FoxPro程序设计基础教程》,中国水利水电出版社,2000; 5·5 合力工作室编著,《中文Visual FoxPro 6·0编程基础》,清华大学出版社,2001; 5·6 周亦民等,《Visual FoxPro 6·0实用教程》,科学出版社,2000 5·7 其他同类参考书。附:程序原代码 set talk off set bell on set intensity on clear clear all set color to gr+/gb* @ 10,10 say “ ” defi wind ck_1 from 1,26 to 11,106 defi wind ck_2 from 12,8 to 28,128 none acti wind ck_1 set color to b+/gr* @ 1,14 say “凭证登记系统使用说明” font “Arial”,22 style “b” @ 4,20say “欢迎您使用我公司开发的凭证输入系统,本系统采用” @ 5,16 say “最先进的全屏幕编辑技术进行数据输入。按光标键进行输入” @ 6,16 say “位置选择,按Del进行数据删除,按Insert进行数据插入!” @ 7,22 say “现在进行凭证输入?(Y/N):” get xz defa “ ” read if xz=“Y”.or.xz=“y” use d:cai_glxxxtvfpcxpzb acti wind ck_2 append Blank else deac wind ck_1 release windows set color to w+/w* clear clear all cancel endif do while.t.set color to n+/gr*,n+/g* @ 2,10 to 15,116 pen 3 color r @ 3,24 say “
记
帐
凭
证 ” font “Arial”,18 style “b” @ 5,14 say “ 附单 张 年 月 日 凭证号 ” font “Arial”,12 @ 6,14 say “┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━┳━━━━━━┓” font “Arial”,12 @ 7,14 say “┃ 摘 要 ┃ 总 帐 科 目 ┃
明 细 科 目 ┃记向┃ 金 额 ┃” font “Arial”,12 @ 8,14 say “┣━━━━━━━╋━━━━━━━╋━━━━━━━━╋━━ ╋━━━━━━┫” font “Arial”,12 @ 9,14 say “┃
┃
┃
┃
┃
┃” font “Arial”,12 @ 10,14 say “┗━━━━━━━┻━━━━━━━┻━━━━━━━━┻━━┻━━━━━━┛” font “Arial”,12 @ 11,14 say “
主管:
审核: 制单: ” font “Arial”,12 year=“ ” store “ ” to m,d @ 5,25 get 附单 @ 5,42 get year @ 5,50 get m @ 5,55 get d @ 5,86 get 凭证号 @ 9,18 get 摘要 @ 9,40 get 总帐科目 @ 9,60 get 明细科目 @ 9,86 get 记向 @ 9,94 get 金额 @ 11,28 get 主管 @ 11,48 get 审核 @ 11,68 get 制单 read ymd=year+“.”+m+“.”+d replace 日期 with ymd @ 13,24 say “是否继续登记?(READ if xz1<>”Y“.or.xz1<>”y“ exit else clear append Blank loop endif enddo close data deac wind ck_1,ck_2 release windows set color to w+/w* clear clear all return
Y/N):” get xz1 defa “ ” 4
第五篇:VFP程序设计报告 计算器分析
VFP程序设计报告
专业:外国语学院英语专业
姓名:段莹婷 学号:9*** 题目:计算器 指导教师:薛春香
一、设计意图
在决定设计计算器程序之前,我有尝试过设计工资管理系统,结果发现工资管理系统比较繁琐有没什么用处,便改为设计程序较为简单,且实用性强的计算器,除了可以完成VFP任务,在平时生活中也可以使用。
二、系统主要功能
该计算器是一款小型的用于简单数学计算的程序,能完成基本算术运算并显示其结果,使用计算器可进行加(+)、减(-)、乘(×)、除(/)、开方(sqrt)、百分数(%)、倒数(1/x)等简单算术计算,但无法进行复杂的平方、求平均数等科学型的计算。
主要表单:欢迎界面(welcome.scx),计算器界面(calculator.scx)。
三、使用方法
1、键入数字时,按下相应的数字键,如果按错可用(CE)键消去一次数值,再重新输入正确的数字;
2、加(+)、减(-)、乘(×)、除(÷)键用于进行四则运算;
3、根号(sqrt)键是开二次方根; 4、1/x 键取倒数;
5、按下(+/-)键可改变数字的正负值;
6、按下等号(=)键显示运算结果;
7、MS键存储显示的数据,MR键读取已存储的数据,MC键清除存储数据,M+键将显示结果与已存储数据相加;
8、C(CLEAR)键表示清零,作用是将计算器恢复到开机状态,而CE(CLEAR ERROR)键仅表示当前数字清除,作用是将当前输入的数字清除回到0状态。
四、设计过程
(一)、准备工作
将F盘中的所有文件清除,放入制作计算器所需的图片。
Set default to F
&&将F盘设为默认目录。
(二)、欢迎界面的设计
文件—新建—项目,新建名为jsq的项目,在项目管理器中新建一表单form1,将form1的Caption属性设为“欢迎”,Picture属性中插入背景图片。在表单中绘制三个标签(Label),将其Caption属性分别设为“欢迎使用计算器”、“进入计算器”及“取消”,并修改相应属性以使界面符合理想要求。
Label 2控件的Click事件代码为: do form calculator thisform.release Label 3控件的Click事件代码为: Thisform.release 最后成品界面如下所示:
将这个表单设为主文件。
(三)、计算器的设计
1、添加控件
在项目管理器中新建第二个表单form2,将其Caption属性设为“计算器”。
首先为表单新建属性,系统菜单栏中选“表单”——“新建属性”——名称:ls ——“添加”。再新建属性mm。
添加27个命令按钮,其命令按钮的Caption属性和Click事件代码分别为:(1)[1] 按钮
Command1.Caption=’1’
Command1.Click事件代码为:thisform.text1.value=thisform.text1.value+'1'(2)[2] 按钮——[9] 按钮的设置同[1] 按钮相似。(3)[0] 按钮
Command10.Caption=’0’
Command10.Click事件代码为:
thisform.text1.value=thisform.text1.value+'0' if alltrim(thisform.text1.value)='00' thisform.text1.value='0' endif(4)[+] 按钮
Command11.Caption=’ +’
Command11.Click事件代码为:thisform.ls=val(thisform.text1.value)
thisform.tag='1'
thisform.text1.value=''(5)[-] 按钮
Command12.Caption=’ -’ Command12.Click事件代码为:thisform.ls=val(thisform.text1.value)
thisform.tag='2'
thisform.text1.value=''
(6)[×] 按钮
Command13.Caption=’ ×’
Command13.Click事件代码为:thisform.ls=val(thisform.text1.value)
thisform.tag='3'
thisform.text1.value=''(7)[÷] 按钮
Command14.Caption=’ ÷’
Command14.Click事件代码为:thisform.ls=val(thisform.text1.value)
thisform.tag='4'
thisform.text1.value=''(8)[=] 按钮
Command15.Caption=’ =’
Command15.Click事件代码为:do case
case thisform.tag='1'
thisform.text1.value=alltrim(str(thisform.ls+val(thisform.text1.value),20,4))
case thisform.tag='2'
thisform.text1.value=alltrim(str(thisform.ls-val(thisform.text1.value),20,4))
case thisform.tag='3'
thisform.text1.value=alltrim(str(thisform.ls*val(thisform.text1.value),20,4))
case thisform.tag='4'
thisform.text1.value=alltrim(str(thisform.ls/val(thisform.text1.value),20,4))
endcase
(9)[MC] 按钮
Command16.Caption=’MC ’
Command16.Click事件代码为:thisform.mm=0
(10)[MR] 按钮
Command17.Caption=’MR ’
Command17.Click事件代码为:thisform.text1.value=alltrim(str(thisform.mm))
(11)[M+] 按钮
Command18.Caption=’M+ ’
Command18.Click事件代码为:
thisform.mm=thisform.mm+val(alltrim(thisform.text1.value))
(12)[MS] 按钮
Command19.Caption=’MS ’
Command19.Click事件代码为:thisform.mm=val(alltrim(thisform.text1.value))
(13)[+/-] 按钮
Command20.Caption=’ +/- ’
Command20.Click事件代码为:if substr(alltrim(thisform.text1.value),1,1)='-'
thisform.text1.value=substr(alltrim(thisform.text1.value),2)
else
thisform.text1.value='-'+alltrim(thisform.text1.value)
endif
(14)[·] 按钮
Command21.Caption=’ · ’
Command21.Click事件代码为:if at('.',thisform.text1.value)=0
thisform.text1.value=thisform.text1.value+'.' endif
(15)[退出] 按钮
Command22.Caption=’ 退出 ’
Command22.Click事件代码为:thisform.release
(16)[1/x] 按钮
Command23.Caption=’ 1/x ’
Command23.Click事件代码为:
thisform.text1.value=alltrim(str(1/val(thisform.text1.value),20,4))
(17)[sqrt] 按钮
Command24.Caption=’ sqrt ’
Command24.Click事件代码为:
thisform.text1.value=alltrim(str(sqrt(val(thisform.text1.value)),20,4))
(18)[退格] 按钮
Command25.Caption=’ 退格’
Command25.Click事件代码为:
thisform.text1.value=substr(alltrim(thisform.text1.value),1,len(alltrim(thisform.text1.value))-1)
(19)[CE] 按钮
Command26.Caption=’CE’
Command26.Click事件代码为:thisform.text1.value=''
(20)[C] 按钮
Command27.Caption=’CE’
Command27.Click事件代码为:thisform.text1.value=''
thisform.ls=0 thisform.tag=''
完成之后修改它们的FontBold、FontName、ForeColor属性进行美化。
添加三个文本框,text1,text2,text3,Text3.ReadOnly=.T.text2.ReadOnly=.T.指定用户不能编辑此控件。
完成之后的界面:
2、创建菜单
3、为“编辑”菜单创建子菜单
4、为“查看”菜单添加子菜单
最后生成菜单。
5、设置菜单属性
设为顶层表单。
(四)、创建程序和配置文件
程序代码为:
do form calculator.scx read events
配置文件代码为: Screen=off
修改表单:
Form1.init=do calculator.mpr with this,.T.Form1.Destroy=thisform.release clear events
(五)、小结
刚开始得知要自己用VFP编写程序的时候,我觉得这几乎是不可能完成的任务,同时也很后悔自己上学期没有认真听讲。在毫无想法地度过了几天之后,我开始面对现实。最初的想法是编写一个工资管理系统,表做得很顺利,但之后做菜单时遇到了问题,绞尽脑汁无法解决后我便放弃了这个系统,转而设计程序简单却很实用的计算器。刚开始跟着书本亦步亦趋,但是越做越发现书上的代码好像有点问题,中间步骤也似乎不是很完整,我决定不按书上的套路来。在查阅了书本、浏览了几个程序设计网站之后,我制作了一个和书上代码不同的计算器程序,添加了一个菜单。计算器程序编写完成之后,我感到自己的程序过于单薄,便又添加了一个欢迎界面。最后连编时又遇到了大问题,无论怎么连编,最后生成的程序都无法运行,为解决这个问题,我用别人的电脑试过,还重装了VFP软件,还浏了许许多多网页,最后很凑巧地成功了。在制作过程中,我对表单的背景、字体等的设置都是经过深思熟虑的,虽然这个程序很简单,但毕竟是自己的劳动成果,我还是很满意的。
VFP程序设计的过程,不仅是完成必须任务的过程,这个过程还让我收获了除了学术知识方面的其他果实。
第一,我体会到了自主学习的重要性。VFP程序设计,不是只有我觉得困难,大家都很苦恼,在这种时候能够依靠的就只有自己,要学会自己搜取需要的资源。
第二,自主学习不代表各管各,只扫自家门前雪,不管他人瓦上霜。遇到实在无法解决的问题时,互帮互助是很重要的。自己不懂的,别人也许很擅长,帮他人解决问题时,自己也可能会学到新的技巧;
第三,耐性很重要。做完计算器程序之后其实我有点后悔,因为当我回过头去看被我放弃的工资管理系统时,我发现之前弄不明白的问题在编写计算器程序的过程中已经找到了答案,如果当初我能多查阅一些资料,也许就能成功完成工资管理系统了。但同时我又庆幸自己坚持做完了计算器。所以做任何事情,碰到任何困难,都不能立即判死刑,再多点耐心,再坚持一会儿,方能柳暗花明又一村;
第四,相信自己!我能编写出一个程序这就是最好的例证!