近期在做一个计算机等级考试的软件,现在只有VF的上机评分还没有做出来,现在是一点思路都没有,求高手给指点一下:)这个上机评分的主要功能就是通过读取考生生成的VFor的文件,来确定做得是否正确。请大家注意,我不是想考这个破试,请回答的大哥,给点专业精神好不好,都是什么乱78糟的啊~~不管怎么说,先谢谢吧具体要实现的功能有这些,检验索引是否正确,表结构是否正确,库结构是否正确,约束是否正确,代码是否包含某些关键字等等,不知道“量子葡萄”先生能否实现,可以加QQ细说:155160863,我可以将我所有的积分送上:)
二级(Visual FoxPro数据库程序设计)考试大纲公共基础知识基本要求 1. 掌握算法的基本概念。2. 掌握基本数据结构及其操作。3. 掌握基本排序和查找算法。4. 掌握逐步求精的结构化程序设计方法。5. 掌握软件工程的基本方法,具有初步应用相关技术进行软件开发的能力。6. 掌握数据库的基本知识,了解关系数据库的设计。 考试内容1. 具有数据库系统的基础知识。2. 基本了解面向对象的概念。3. 掌握关系数据库的基本原理。4. 掌握数据库程序设计方法。5. 能够使用Visual FoxPro建立一个小型数据库应用系统。 考试内容一、Visual Foxpro基础知识1. 基本概念:数据库,数据模型,数据库管理系统,类和对象,事件,方法。2. 关系数据库:(1) 关系数据库:关系模型,关系模式,关系,元组,属性,域,主关键字和外部关键字。(2) 关系运算:选择、投影、连接。(3) 数据库的一致性和完整性:实体完整性、域完整性、参照完整性。3. Visual FoxPro系统特点与工作方式:(1) Windows版本数据库的特点。(2) 数据类型和主要文件类型。(3) 各种设计器和向导。(4) 工作方式:交互方式(命令方式、可视化操作)和程序运行方式。4. Visual Foxpro的基本数据元素:(1) 常量,变量,表达式。(2) 常用函数:字符处理函数,数值计算函数,日期时间函数,数据类型转换函数,测试函数。二、Visual FoxPro数据库的基本操作 1. 数据库和表的建立、修改与有效性检验:(1) 表结构的建立与修改。(2) 表记录的浏览、增加、删除与修改。(3) 创建数据库,向数据库添加或移出表。(4) 设定字段级规则和记录级规则。(5) 表的索引:主索引,候选索引,普通索引,唯一索引。2. 多表操作:(1) 选择工作区。(2) 建立表之间的关联,一对一的关联,一对多的关联。(3) 设置参照完整性。(4) 建立表间临时关联。3. 建立视图与数据查询:(1) 查询文件的建立、执行与修改。(2) 视图文件的建立、查看与修改。(3) 建立多表查询。(4) 建立多表视图。三、关系数据库标准语言SQL1. SQL的数据定义功能:(1) CREATE TABLE-SQL。(2) ALTER TABLE-SQL。2. SQL的数据修改功能: (1) DELETE-SQL。(2) INSERT-SQL。(3) UPDATE-SQL。3. SQL的数据查询功能:(1) 简单查询。(2) 嵌套查询。 (3) 连接查询。内连接外连接:左连接,右连接,完全连接(4)分组与计算查询。(5) 集合的并运算。四、项目管理器、设计器和向导的使用1. 使用项目管理器:(1) 使用“数据”选项卡。(2) 使用“文档”选项卡。2. 使用表单设计器:(1) 在表单中加入和修改控件对象。(2) 设定数据环境。3. 使用菜单设计器:(1) 建立主选项。(2) 设计子菜单。(3) 设定菜单选项程序代码。4. 使用报表设计器:(1) 生成快速报表。(2) 修改报表布局。(3) 设计分组报表。(4) 设计多栏报表。5. 使用应用程序向导。6. 应用程序生成器与连编应用程序。五、Visual FoxPro程序设计 1. 命令文件的建立与运行:(1) 程序文件的建立。(2) 简单的交互式输入、输出命令。(3) 应用程序的调试与执行。2. 结构化程序设计:(1) 顺序结构程序设计。(2) 选择结构程序设计。(3) 循环结构程序设计。3. 过程与过程调用: (1) 子程序设计与调用。(2) 过程与过程文件。(3) 局部变量和全局变量,过程调用中的参数传递。4. 用户定义对话框(MESSAGEBOX)的使用。 考试方式1. 笔试:90分钟,满分100分,其中含公共基础知识部分的30分。2. 上机考试:90分钟,满分100分。(1) 基本操作。(2) 简单应用。(3) 综合应用。 ----------------------------------------如何应考二级FoxBASE+语言 1998年,根据我国计算机应用水平的实际情况,教育部考试中心颁布了新的考试大纲。新大纲中关于二级FoxBASE语言考试部分变化不大。今后,适应我国计算机应用水平的发展,教育部考试中心将会不断更新考试大纲,可能在近几年内会以二级FoxPro考试取代目前的二级FoxBASE考试。 在全国计算机等级考试的各个级别的各种类别、语言的考试中,二级FoxBASE考试逐渐成为应试人员最多的一门考试,发展趋势之快是其它门考试所不能及的。但应试人数的增多并不代表这门考试较其它容易过关,尤其上机考试部分的编程题,对于非计算机专业的考生来说是有一定的难度的。因此,在进行考前复习时,要有重点、有针对性。至于什么是重点、要针对什么复习,我们通过对近几年来二级FoxBASE考试的试卷作的一些分析研究,又参考新大纲中有关二级FoxBASE的考纲和模拟考题,提出下面一些分析结果供大家参考。 首先,分析笔试试卷。笔试考试时间两小时,考题分单项选择题和填空题,其中单项选择题有50题,前40题每题1分,后10题每题2分;而填空题共有20个空(不是20题),每空2分。考试内容涉及了两大部分: 第一部分是计算机的基础知识与基本操作。 在以往几次笔试中这一部分共占30分(选择题第1-20题,填空题第1-5空),新大纲颁布后,如果仅根据大纲中提供的模拟试题,这一部分可能会减至25分(选择题减少5题)。其主要由以下几个方面内容组成: DOS的基本操作,占10分以上。需要注意的是,这一方面题大部分题型灵活多变,要求我们熟练掌握文件、目录、路径的使用和常用命令的基本格式及其参数(注意命令格式中重定向符>和>>的使用和区别)。 计算机的常用数制及其转换;数据基本单位,包括位、字、节以及汉字编码的概念和有关运算,例如点阵汉字所占字节数的运算,占5分以上。这一方面题要求我们熟练掌握这些转换和运算的公式,不妨在复习时列一个公式表出来以便重点记忆。 特别提一下,①、②两方面的内容通常是有关这一部分的填空题5个空所涉及的内容。 多媒体技术、计算机网络的一般知识;WINDOWS的基本操作。这三部分是新大纲中新增内容,每部分至少会有1-2分的题,因为是首次考,我想暂时主要考的是它们的基本概念和一些基本组成、特点等等。 其它内容。例如计算机的基本构成、计算机的使用注意、病毒的常识等等。 ③、④两方面对应的考题多为基本概念和基本常识题,复习时通常只要针对书中有关内容进行多次仔细阅读,使我们能留下较深刻的印象,不必死记硬背。 第二部分是数据库语言程序设计。 这一部分考题中选择题与填空题相比难易度和题型都区别较大,因此我分开来分析。 一、选择题。 它主要含有以下三个方面: 数据库系统及FoxBASE+的基础知识。这一方面题所涉及的都是一些固定不变的概念,包括:数据库、数据库管理系统、数据库系统、数据库模型的概念及其相互关系;关系数据库中的关系术语和关系运算,特别是几种关系运算在FoxBASE+中的体现;FoxBASE+的系统性能与工作方式等。 表达式和函数的单独应用以及它们的组合应用。对于表达式,应掌握各类型表达式的组成以及它们所涉及的运算符、运算符的优先级别、运算规则等;对于函数,要仔细阅读每个常用函数的有关组成,包括:函数名、函数的自变量的个数、每个自变量的类型、函数值的运算、函数值的类型等,其中应特别注意以下三类:一些比较难于理解的函数,如宏替换函数&;一些容易出错的函数,如求余数函数MOD();一些很少使用的函数,如文件测试函数FILE()。只有熟练掌握了以上这些基础,仔细理解书中有关这些表达式和函数的例题,才能对这一方面的题应付自如。 命令的简单应用。这里的命令是广义的,还包含有与程序有关的命令和语句、SET命令等。如同上面所说的函数一样,在熟练掌握常用命令的格式和功能之余,也要求我们了解那些不常用命令,另外就是许多命令的格式中含有的可选项的使用。 与填空题比较起来,选择题较简单,但涉及的知识面相当广,许多我们平常学习时容易忽略的知识点都有可能在它之中出现。 二、填空题。 它主要有两种类型的题:命令序列的填空题和程序填空题,每种题型又分三种方式:补充填空,即命令序列或程序中缺失的整条命令语句填空;完整填空,即序列或程序中某条命令语句不完整,对缺失部分填空;结果填空,即对序列或程序的运行结果进行填空。 就我认为,做填空题中最大的难点是阅读量大,虽说与数据库有关的空只有15个,但往往会有10组(个)左右的命令序列和程序需要阅读, 这中间还包括理解题意和浏览有关的数据库文件等。与选择题相反,它所涉及的知识点与面较小,都是一些常用命令和与程序有关的常用命令语句,这中间难一点的是多重数据库操作,其次就是与子程序和过程文件有关的内容,还有用SET命令进行开关状态的设置和环境参数的设置,比如说颜色的设置等,偶尔也会出现一些较偏一点的函数和命令填空,例如函数FILE()、汇总命令TOTAL等等。阅读程序和命令序列没有什么窍门,只有能熟练掌握数据库的命令,并进行大量的习题练习,培养出进行快速、准确阅读的能力,考试才能作出正确的思考和判断,填写正确的结果。 以上是我对笔试考试的分析,应考时要注意时间的分配,不要在某一小题、某一空上浪费过多时间。 接下来,分析上机考试的试卷。上机考试时间一小时,由考试系统自动计时,考题共三大题: 第一大题:操作系统考试题。分数30分,含五或六小题,涉及的DOS命令以DOS 5.0为基准,理论上包括所有的内部和外部命令,当然,一些具有进攻性的命令除外,例如磁盘格式化命令FORMAT、硬盘分区命令FDISK等能导致软件系统被破坏的命令。在以往几次考试中,只考过以下六个命令:建目录命令MD、删目录命令RD、删文件命令DEL、文件复制(或文件顺序连接)命令COPY、文件更名命令REN、设置文件属性命令ATTRIB,现在依旧不排除会考其它命令的可能。这一大题考的是对DOS命令及其命令参数的使用,因此在考试时要依题意做出正确的命令及命令参数,以期得到正确的结果;如果做某一题时确实发现与这一题相关的源文件或目录不存在(这种情况很少存在),只要命令和参数输入正确,即使得不到正确结果,同样给分。 通过我对近几次考试的观察,现提出应考时的几点窍门: 对于上面六个命令,除了复制命令外,其它五个命令输入完后回车,若操作系统没有任何提示出现,往往就表示这一答案正确。对于复制命令,根据题目要求,若系统提示中有“x file(s) copied”(翻译为:x个文件被复制),多数时候可以认为答案正确。 对于删除X子目录下的Y子目录的考题时,应首先检查Y子目录下是否有下一级文件,如没有,可以直接用RD命令,若出错,应首先检查目录名是否输错。 另外还有几点注意: 假若这一题要求产生新的文件或目录,而你将新文件名或目录名输错,那只好看你发现没有,系统是不会提示的。 考题中除非有特别提示,做题时能用上面六个命令做到的,就不要使用其它命令,例如说使用DELTREE命令来删除目录或文件、使用XCOPY命令来复制文件等,否则可能这一题无分。最为重要的是考试时不可脱离考生目录,切记。 第二大题:程序修改考试题。分数30分,仅一道题,需修改的源程序存放在MODI1.PRG文件中。二级各语言考试的程序修改题中共有三种题型:填空、填写语句和改错,但在以往二级FoxBASE+语言的几次考试中只使用了改错这一种题型,其余两种考试中出现的较少。 在做程序修改题时,首先要找出程序的修改点。这一点不难做到,因为在源程序中提供了几行这样的注释行:“***found***”或“***FOUND***”,称为标识行,用来标识修改点所在,指出修改点就是它下面几行语句中的某一行,而且就我注意往往是它下面的第一行。有几个标识行就有几个修改点,一般来说源程序中有三处。找到修改点后,知道了哪一行语句需修改,再根据题意以及上下关系来修改就容易多了。如果是属于改错语句,大多数时候它所给出的命令动词都是对的,需要修改的只是该命令根据上下文所应有的范围、表达式以及条件不正确;少数时候正好反过来,仅需修改命令动词。 最后当程序修改完毕以后,必须要运行该程序,判断其运行结果是否符合题意:若正确,即可认为修改题满分;若不正确,返回去再修改,直至正确。实在做不出来,考试评分系统也会检测修改点,评估有几个修改点正确,并按比例给分。 做程序修改题中有几个注意点: 一般不允许增或删行数(包括空行),修改点所在行只能修改或填写一个或几个地方。 不能删除或移动标识行,否则将会直接影响考生这部分的成绩。 对于运行结果,它可能在屏幕上直接有显示,也可能没有显示,而是直接存放在结果输出文件中,这时需要去打开该文件来检查运行结果。 第三大题:程序设计考试题。分数40分,也是仅一道题,其部分源程序存放在文件PROG1.PRG中,不过多数时候这个所谓“部分”可以说没有。程序设计题只有一种题型:编写部分程序、过程或函数。 考试时,考生必须首先要理解试题,分析出试题要求做什么,然后进行编程,最后必须运行程序以得到运行结果并存放到指定的结果输出文件中,编程题的评分规则是判定最终的运行结果,按正确结果的多少按比例进行给分。 在近几次的考试中,编程题都是对数据库的操作题,而且越来越接近实际应用,不过非常简单化。这些编程题中,总要要求有一个库文件用来存放最终的结果,称之为结果输出文件。需要注意的是这个结果输出文件有时在考题中已经提供,有时要求在程序中通过已有的库文件产生,有时又要在编程前用CREATE命令建立。后两种情况对于考生是很有利的,当你的程序无法得到最终的正确结果时,只要你产生了这个结果输出文件就会得到一定的分数。 编程前,首先要做三件事:阅读并分析试题、仔细浏览试题中所涉及的数据库文件的库结构和看一下库记录。其实由于上机考试是无纸无笔操作,光考记忆一下子是记不了这全部内容,因此这三件事是在编程过程中常常要做的。 接下来就是进行编程及调试。观察近几次考试的编程题,编出来的程序其主体多涉及到多重数据库操作以及循环嵌套和分支嵌套,尤其是它们的混合使用,由于题目中往往是要求对库记录的数据进行修改,因而在程序中最常使用的命令是字段替换命令REPLACE。 能独立编写程序非一日之功,虽有各种窍门,要想化为己用,还的靠大量的练习。 上机考试时要注意心理状态和时间分配。心理上,即使做不到当作一次普通的上机练习,也起码应把它当作一次普通的笔试类考试,只不过这个试卷是一台计算机罢了;时间上,前两大题花20多分钟足以,剩下时间用于编程题,如果直到最后10分钟编程题还未编完,甚或还没有头绪,最好先返回去仔细检查前两大题,确保这两题没有错误,以便得到或接近60分,再回头来编写程序并运行使自己能够得到部分的最终正确结果,例如就产生一个上文所说的结果输出文件(无结果数据)也行,而不要去强求编完全部程序后再来产生一个有结果数据的结果输出文件,正确与否还不得而知。 以上所有就是我分析几年来全国计算机等级考试二级FoxBASE语言考试得到的一点心得,希望能给广大考生应考提供有益的帮助。
老实地说,你这个很难实现。你这个问题,一般地讲,就是给出一段程序,要求自动判断这个程序是否满足某种性质。这个问题是世界性的难题,所以要做的很通用的你就不要想了,实现一些简单的功能即可,比如搜索是否有某个命令等等就可以了。【回复楼主】抱歉,VF我不太熟悉,我只是一般性地说一下这个问题。但要实现你这个功能,首先必须把学生写的VFor文件解析出来,这里要实现一个编译器的前端,你需要参考一下编译原理,用自动机实现词法分析,用由顶向下分析法实现语法分析。编译原理非常的难,好像是本科3年级的课程,要实现词法和语法分析器也比较费时。所以你要考虑一下开发成本,是否有必要加入这个功能。另外看你的题目可能是另一个意思,就是说学生写的脚本文件执行完了以后,你来查看数据库的状态是否达到要求。这个就相对简单的多了,你只要执行玩脚本以后,检查数据库中是否有那个表,是否有那些约束啦,等等等。。这个应该不难做到吧。