你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 编程语言
C++Builder下基于CppWebBrowser的“考试系统”设计与实现(二)
 

2.2  数据结构设计

“专业技术理论考试系统”采用试卷管理类实现了试题题型、单题数据、大题数据、用户输入信息等内容的统一管理,系统结构清晰,层次分明。

1) 试题类型结构

struct  TQuestionType

{

    int type_id;            //题型ID

    AnsiString type_name;   //题型名称

};

2) 试题类型管理类

class TQuestionTypeManager

{

    public:

        TList * QuestionTypes;  //试题类型列表

        int     GetTypesNum()

        {

            return QuestionTypes->Count;

        };

 //加入新题型

        void    AddQuestionType(AnsiString type_name,int type_id)

        {

            TQuestionType * curType = new TQuestionType();

            curType->type_id = type_id;

            curType->type_name = type_name;

            QuestionTypes->Add(curType);

        };

 

        TQuestionTypeManager() { QuestionTypes = new TList();};

            //析构时释放题型对象实例

        ~TQuestionTypeManager()

        {

            for(int i=QuestionTypes->Count-1;i>=0;i--)

                delete (TQuestionType *)QuestionTypes->Items[i];

            delete QuestionTypes;

        };

};

3) 试题对象类

试题对象类用来描述试卷上的每一道试题对象,包括试题的题干、答案、选项等内容。

//试题对象描述类

class TQuestion                   

{

    public:

    AnsiString    Body;         //题干内容

    TStringList*  SelectItems;      //试题选项

    TStringList*  UserAnswerItems;  //用户填空题输入内容

    AnsiString    Answers;          //试题原答案

    AnsiString    UserAnswers;      //用户选择、判断题输入内容

 

    TQuestion()

    {

        SelectItems = new TStringList();

        UserAnswerItems = new TStringList();

        UserAnswerCheck = new TStringList();

    };

    ~TQuestion()

    {

        delete SelectItems;

        delete UserAnswerCheck;

        delete UserAnswerItems;

    };

 

};

4) 试题集合类

试题集合类用来管理一个大题内的所有试题,同时存储本类大题的题型和每题分值信息。

class TQuestionUnits  //试题集合类

{

    public:

        TQuestionType* questionType;    //题型

        float          questionScore;   //每题分值

       

        TList*        Questions;

        TQuestionUnits()

        {

           Questions = new TList();

        };

        ~TQuestionUnits()

        {

           for(int i=Questions->Count-1;i>=0;i--)

               delete (TQuestion *)Questions->Items[i];

           delete Questions;

        };

};

 

5 HTML试卷管理类

HTML试卷管理类用来实现对一次考试的全部信息进行管理,包括设定的考试时间、用户姓名和单位、HTML试卷题头以及试卷包含的大题等内容。

//HTML试卷管理类

class THTMLPaper

{

    public:

        TList*     QuestionUnits;   //试题集合列表(试卷大题列表)

        int        ExamTimes;       //考试时长

        long long  ExamStartTime;   //考试开始时间

        long long  ExamEndTime;     //考试结束时间

        float      UserScores;      //用户成绩

        float      PaperTotalScore;     //卷面总分

        AnsiString  UserName;  //用户名

        AnsiString  UserCompany;    //用户单位

        bool        AllowMakePaper;     //允许生成试卷标志

        AnsiString  PaperTitle;    //试卷标题题头

        float       SimilitudeValue; //答案相似度

                                         //当相似度大于该值时得分

        //清空试卷数据

        void Clear()

        {

            UserScores - 0;

            PaperTotalScore = 0;

            for(int i=QuestionUnits->Count-1;i>=0;i--)

                delete (TQuestionUnits *)QuestionUnits->Items[i];

            QuestionUnits->Clear();

        };

        THTMLPaper()

        {

            QuestionUnits = new TList();

        };

        ~THTMLPaper()

        {

            for(int i=QuestionUnits->Count-1;i>=0;i--)

                delete (TQuestionUnits *)QuestionUnits->Items[i];

            delete QuestionUnits;

        };

};

 

2.3  系统流程设计


  推荐精品文章

·“物链网”的正确打开姿势:区块链如何拯…
·Facebook利用人工智能的六种方式,有些你…
·微软推出Visual Studio Kubernetes工具包…
·Facebook 正在重构 React Native,将重写…
·Facebook 正在重构 React Native,将重写…
·GitLab发布Web IDE 在Web端为你提供集成开…
·5G第一阶段标准发布 中国厂商标准占三成
·微软Windows 10的上下文菜单引入Fluent D…
·蚂蚁金服完成新一轮100亿美元融资 估值15…
·搭搭云发布3.0平台上线暨品牌升级 让SaaS…
·京东推出京点智慧办公方案 一体化服务平台…
·Java 流(Stream)、文件(File)和IO
·Java 异常处理
·Java 基础语法

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089