• DrGraph®软件考试系统接口文档


     

     

     

    DrGraph®软件

    考试接口文档手册

     

    产品名称:

    图形博士(DrGraph®)

    用户单位:

    昆明XX行业

    编写人员:

    陈昊明

    时 间:

    2013年8月

     

     

     

     

     

     

     

     

     

    欢迎使用图形博士(DrGraph®)软件!

    本手册适用于指导用户安装DrGraph®及后续对DrGraph®软件的操作,它将是用户工作的指南。

    本手册目前由很多人持续地维护,其中的内容需要不断地更新。如果您有兴趣参加这项工作,请发邮件到 ChenBinWen@gmail.com 进行联系,也可以通过QQ:282397369 或msn: ChenBinWen@hotmail.com 在线联系。如果您希望得到一份印刷版本的手册,也请通过上述方式联系。

    热忱欢迎志同道合的朋友们,我们可以在技术、市场等领域全方位合作。

    本手册与软件将持续完善更新,您可以随时访问以下地址,以获取最新版本的文档与演示程序。

    http://www.DrGraph.com

     

     

     

    开发组

    2013年8月

    1.    概述    1

    1.1    结构    1

    1.2    准备工作    1

    1.3    使用流程    1

    1.4    与图形博士软件接口相关逻辑    1

    2.    接口说明    3

    2.1    概述    3

    2.2    参数说明    5

    2.2.1    文件名    5

    2.2.2    打开指定脚本    6

    2.2.3    指定屏幕    7

    2.2.4    全屏显示    8

    2.2.5    随机出题    9

    2.2.6    合并显示    9

     

     

    1. 概述

      1. 结构

      考试系统分两大部分:管理系统与图形博士软件

      硬件系统包括考试控制端、考生端、评委端、主持人端、投影大屏幕

      1. 准备工作

      1. 在目标计算机上安装DrGraph软件,并注册
      2. 在C盘根目录下创建1.sch文件
      3. 将考试题库中相应的库文件拷贝到安装目录
      4. 编辑安装目录下的cbw.graph.cfg,根据三屏投影大屏最左端屏幕的左端位置,确定UIConfig节点中的StartMonitorIndex的属性值,缺省为0,表示起始的屏幕号。

      1. 使用流程

      1. 用户提前出题,保持在服务端
      2. 考试时,控制端从服务端读取题目并展示
      3. 考生作答
      4. 评委评分
        1. 与图形博士软件接口相关逻辑

      5. 用户出题时,需按规范格式出题
      6. 控制端相关逻辑
        1. 解析判断:若解析判断为图形相关题目时,需解析出其中的文件名称FileName.sch及参数Params
        2. 文件拷贝:拷贝FileName.sch文件(若FileName.files目录存在,也一并拷贝)到目标地址
        3. 参数构造:根据逻辑(详见下章)构造出参数,通过ShellExecute调用图形博士

       

    2. 接口说明

      1. 概述

      1. 字符串接口

        字符串接口为一个字符串,其结构为两部分,即文件名 参数,文法表示为

        FileName.sch[ paramName=paramValue]*

        *表示包含[]中部分零个或多个

        []中部分表示参数,格式为参数名=参数值

        文件名,后缀固定为.sch

          文件名为Windows合法文件名称,可包含路径

          paramName与paramValue均为字母与/或数字组合

      1. 考试管理系统判断逻辑

        考试系统读取得到字符串接口时,需要判断一下该字符串中是否存在.sch,若存在,则表示为图形博士相应逻辑,需进行相应处理

        bool __fastcall IsDrGraphLogic(AnsiString interfaceString) {

        int pos = interfaceString.Pos(".sch");

        bool result = pos != 0;

        return result;

          }

      1. 考试系统从字符串接口中取得文件名称、参数列表逻辑

        考试系统读取得到字符串接口时,若判断为图形博士逻辑,则可取出图形文件名称及参数列表

        AnsiString __fastcall GetDrGraphFileName(AnsiString interfaceString) {

        AnsiString result = "";

        if(IsDrGraphLogic(interfaceString))

             result = interfaceString.SubString(1, interfaceString.Pos(".sch") + 3).Trim();

        return result;

        }

        AnsiString __fastcall GetDrGraphParams(AnsiString interfaceString) {

        AnsiString result = "";

        if(IsDrGraphLogic(interfaceString))

             result = interfaceString.SubString(interfaceString.Pos(".sch") + 3, interfaceString.Length()).Trim();

        return result;

        }

      2. 考试系统拷贝文件逻辑

        拷贝图形博士文件时,首先拷贝文件,若存在对应的.files目录,则将该目录下的文件相应拷贝

        void __fastcall DoCopyFile(AnsiString fileName, AnsiString destDirectory) {

                AnsiString destFileName = destDirectory + ExtractFileName(fileName);

             CopyFile(fileName, destFileName, true);

                AnsiString directoryName = ChangeFileExt(fileName, ".files");

                destDirectory += ExtractFileName(directoryName) + "\";

                if(DirectoryExists(directoryName)) {

                    TStrings * fileNames = new TStringList;

                    BrowDirectory(fileNames, directoryName, "*.*", true);

                    for(int i = 0; i < fileNames->Count; ++i) {

                        AnsiString fileName = fileNames->Strings[i];

                        DoCopyFile(fileName, destDirectory);

                    }

                }

        }

         

        void __fastcall BrowDirectory(TStrings * strings,

            AnsiString PathName, AnsiString extName,

            bool OnlyFileFlag) {

            TSearchRec sr;

            // 列举所有的目录

            if (FindFirst(PathName + "*.*", faAnyFile, sr) == 0) {

                do {

                    if ((sr.Attr & faDirectory) && sr.Name != "." && sr.Name != ".." &&

                        !OnlyFileFlag)

                        BrowDirectory(strings, PathName + sr.Name + "\", extName,

                        OnlyFileFlag);

                }

                while (FindNext(sr) == 0);

                FindClose(sr);

            }

            // 列举所有文件

            if (FindFirst(PathName + extName, faAnyFile, sr) == 0) {

                do {

                    if (SameText(sr.Name, "Thumbs.db"))

                        continue;

                    if (!(sr.Attr & faDirectory)) {

                        AnsiString n = sr.Name;

                        if (n.Length())

                            strings->Add(PathName + n);

                    }

                }

                while (FindNext(sr) == 0);

                FindClose(sr);

            }

        }

         

      3. 考试系统调用图形博士逻辑

        考试系统构造出接口字符串后,可按以下方式调用图形博士

        void __fastcall CallDrGraph(AnsiString interfaceString) {

                if(IsDrGraphLogic(interfaceString))

        {

                    char exeFileName[MAX_PATH];

                    FindExecutable( "C:\1.sch", NULL, exeFileName);

                    if (!FileExists(exeFileName))

                        return;

                    ShellExecute(NULL, "Open", exeFileName, interfaceString.c_str(), NULL, SW_SHOW);

                }

        }

        1. 参数说明

        见前述说明

        字符串接口为一个字符串,其结构为两部分,即文件名 参数,文法表示为

        FileName.sch[ paramName=paramValue]*

        *表示包含[]中部分零个或多个

        []中部分表示参数,格式为参数名=参数值

        文件名,后缀固定为.sch

          文件名为Windows合法文件名称,可包含路径

          paramName与paramValue均为字母与/或数字组合,本节就本参数进行说明。调用方式见前述说明,本节仅列出参数内容,即ShellExecute(NULL, "Open", exeFileName, interfaceString.c_str(), NULL, SW_SHOW)语句中的interfaceString的内容,[]中的内容表示在本段说明中不关注的内容

       

      1. 文件名

      文件名即FileName.sch,即字符串接口中第一个空格前的内容。DrGraph软件将打开该文件,即,只要DrGraph收到传入参数,则将会打开该文件,用户需要确保该文件存在。

      如,用户调用时传入interfaceString为:

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch [….]

      则运行后,DrGraph软件将打开该图形文件

      1. 打开指定脚本

      用户可以通过以下参数要求图形博士软件打开图形后,调用指定名称的脚本并运行之

      ScriptName=abcd

      注意:此处的流程必须存在,否则将没有动作,并提示出错。

      如,用户调用时传入interfaceString分别为:

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch scriptName=未命名流程!

      运行过程一个截图界面为:

      1. 指定屏幕

      用户可以通过以下参数指定待显示的屏幕:

      destMonitors=1/2/3/1,2/2,3/1,2,3…

      若用户参数未指定屏幕,则图形博士软件将以上次退出的尺寸位置进行显示。

      其中,序号表示监视器在Windows桌面中的显示序号,可通过显示属性查看各监视器的序号值。

      可以指定多个连续的监视器,则DrGraph将显示在该相应的多个屏幕上。

      如,以下三张图片表示用户调用时传入interfaceString为:

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=1,2 [….]

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=1 [….]

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=2 [….]

      其运行结果分别为:

       

       

      1. 全屏显示

      用户可以通过以下参数指定是否以全屏方式显示界面

      FullScreenFlag=true/false,若不指定,缺省将以非全屏方式显示

      如,用户调用时传入interfaceString为:

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=1 FullScreenFlag=true [….]

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=2 FullScreenFlag=true [….]

      D:WorkQianTechInstallScriptResourcesGeneralExample红石.sch destMonitors=1,2 FullScreenFlag=true [….]

      显示结果分别为:

       

       

      1. 随机出题

      用户可以通过以下参数要求图形博士软件打开图形(必须为流程图)后,调用指定名称的脚本进行随机出题:

      blankNumber=n1 faultNumber=n2 moveNumber=n3

      如,用户调用时传入interfaceString分别为:

      F:.sch destMonitors=1 blankNumber=5

      原始正确流程图为

       

      1. 合并显示

      AttachFile=A.sch

      A.sch为待合并显示的文件名称

  • 相关阅读:
    设计模式:组合模式
    对技术的认识及思考
    设计模式:策略模式
    java集合:常用集合的数据结构
    设计模式:代理模式
    java反射
    Spring事务管理
    在Spring使用junit注解进行单元测试
    tomcat限制ip访问
    获取openid回调两次
  • 原文地址:https://www.cnblogs.com/drgraph/p/3308777.html
Copyright © 2020-2023  润新知