6 Star 3 Fork 0

甘才军 / CTestAutoJudge

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
mainformunit.~h 7.78 KB
一键复制 编辑 原始数据 按行查看 历史
甘才军 提交于 2022-01-12 10:16 . 添加了忽略文件列表
//---------------------------------------------------------------------------
#ifndef mainformunitH
#define mainformunitH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ExtCtrls.hpp>
#include <Dialogs.hpp>
#include <utilcls.h>
#include <Menus.hpp>
#include <ActnList.hpp>
#include <ComCtrls.hpp>
#include "judgeStandard.h"
#include "gcjexcelapp.h"
#include <msxmldom.hpp>
#include <XMLDoc.hpp>
#include <xmldom.hpp>
#include <XMLIntf.hpp>
#include "myconfig.h"
using namespace imagan;
//---------------------------------------------------------------------------
class TFormMain : public TForm
{
__published: // IDE-managed Components
TPanel *Panel1;
TPanel *Panel2;
TButton *BtnOpenExcelFile;
TEdit *EdtFileName;
TButton *BtnImportStu;
TListBox *lstStu;
TOpenDialog *dlgOpenExcel;
TGroupBox *grp1;
TPanel *Panel3;
TPanel *Panel4;
TPanel *Panel5;
TGroupBox *grp2;
TEdit *EdtStartRow;
TEdit *EdtEndRow;
TEdit *EdtColNum;
TMemo *MemoFileContent;
TPanel *Panel6;
TButton *BtnCompile;
TEdit *EdtFenShu;
TLabel *Lbl2;
TButton *BtnSave;
TEdit *EdtSheetIndex;
TListBox *lstCppFile;
TEdit *EdtAnswerDir;
TSplitter *spl1;
TPanel *Panel7;
TGroupBox *grp3;
TComboBox *CbbCurQuesIndex;
TComboBox *CbbQuesNum;
TLabel *Lbl1;
TButton *BtnSetKeyWord;
TListBox *LsbKeyWord;
TComboBox *CbbAB;
TCheckBox *ChkAB;
TMemo *MemoRunMsg;
TPanel *Panel8;
TSplitter *spl2;
TPopupMenu *PopMenu1;
TMenuItem *N1;
TActionList *actlst1;
TAction *Action1;
TAction *Action2;
TSplitter *spl3;
TAction *ActNextStudent;
TCheckBox *ChkNextStu;
TButton *Btn1;
TEdit *EdtMark;
TEdit *EdtLineNum;
TCheckBox *ChkSetVisible;
TProgressBar *pb1;
TComboBox *CbbABPaperSet;
TEdit *EdtTimeout;
TButton *BtnOpenTestExampleDir;
TButton *BtnOpenABFeatureFile;
TMenuItem *N5;
TAction *ActRunModified;
TMenuItem *N6;
TMenuItem *N7;
TAction *ActPlusFontSize;
TMenuItem *N8;
TMenuItem *N9;
TEdit *EdtFirstQuesCol;
TCheckBox *ChkSkipPass;
TEdit *EdtPassMark;
TCheckBox *ChkBestFontSize;
TAction *ActAddFontSize;
TAction *ActSetBestFontSize;
TMenuItem *N2;
TCheckBox *ChkIgnoreAB;
TPopupMenu *pm1;
TAction *ActOpenStuFolder;
TMenuItem *ActOpenStuFolder1;
TAction *ActRunWithouttestdata;
TMenuItem *N3;
TPopupMenu *PopMenuSourceFile;
TAction *ActIsFiltered;
TMenuItem *N4;
TAction *ActFind;
TMenuItem *N10;
TMainMenu *MainMenu1;
TAction *ActAbout;
TMenuItem *N11;
TMenuItem *N12;
TCheckBox *ChkSkipYiyue;
TXMLDocument *XmlDoc1;
TMenuItem *N13;
TMenuItem *N14;
TXMLDocument *XMLDocument1;
TLabel *LblAB;
TLabel *LblQuesId;
TPopupMenu *PpMemoHelp;
TMenuItem *N15;
void __fastcall BtnOpenExcelFileClick(TObject *Sender);
void __fastcall BtnImportStuClick(TObject *Sender);
void __fastcall lstStuClick(TObject *Sender);
void __fastcall EdtAnswerDirDblClick(TObject *Sender);
void __fastcall lstCppFileClick(TObject *Sender);
void __fastcall FormDestroy(TObject *Sender);
void __fastcall BtnSetKeyWordClick(TObject *Sender);
void __fastcall CbbQuesNumChange(TObject *Sender);
void __fastcall BtnSaveClick(TObject *Sender);
void __fastcall BtnCompileClick(TObject *Sender);
void __fastcall N2Click(TObject *Sender);
void __fastcall N3Click(TObject *Sender);
void __fastcall N4Click(TObject *Sender);
void __fastcall EdtFenShuChange(TObject *Sender);
void __fastcall Btn1Click(TObject *Sender);
void __fastcall ActNextStudentExecute(TObject *Sender);
void __fastcall ChkSetVisibleClick(TObject *Sender);
void __fastcall CbbCurQuesIndexChange(TObject *Sender);
void __fastcall BtnOpenTestExampleDirClick(TObject *Sender);
void __fastcall BtnOpenABFeatureFileClick(TObject *Sender);
void __fastcall ActRunModifiedExecute(TObject *Sender);
void __fastcall N6Click(TObject *Sender);
void __fastcall N7Click(TObject *Sender);
void __fastcall FormShow(TObject *Sender);
void __fastcall ActAddFontSizeExecute(TObject *Sender);
void __fastcall ActPlusFontSizeExecute(TObject *Sender);
void __fastcall ActSetBestFontSizeExecute(TObject *Sender);
void __fastcall ChkIgnoreABClick(TObject *Sender);
void __fastcall ActOpenStuFolderExecute(TObject *Sender);
void __fastcall ActRunWithouttestdataExecute(TObject *Sender);
void __fastcall ActIsFilteredExecute(TObject *Sender);
void __fastcall ActFindExecute(TObject *Sender);
void __fastcall ActAboutExecute(TObject *Sender);
void __fastcall EdtFileNameContextPopup(TObject *Sender, TPoint &MousePos,
bool &Handled);
void __fastcall EdtStartRowContextPopup(TObject *Sender, TPoint &MousePos,
bool &Handled);
void __fastcall N15Click(TObject *Sender);
private: // User declarations
AnsiString currentHelpFileName;
public:
TExcelApp* ExcelApp;
__fastcall TFormMain(TComponent* Owner);
//自动判断前设置检查,若设置不全,会抛出Exception异常
void CheckBeforeAutoJudge();
void ExtractKeywordsFromStr(TStringList* lstStr, AnsiString keywords);
protected:
//用来完成存取界面用户参数操作的类对象
TMyConfig* MyConfig;
//表示打开的Excel程序
Variant oExcelApp;
//当前打开的工作薄
Variant oWorkBook;
//表示当前工作表
Variant oSheet;
//获取当前单元格
TExcelRange GetCurrentCell();
//获取当前题目的判断标准
void GetCurrentJudgeStandard(TJudgeStandard& Js,int &paperId,int &QId);
//单击运行按钮前的检查,若不符合条件就抛出异常,否则,返回1
void CheckSetBeforeCompile(short&paperId,short&QId);
void LoadInputOutFile(TJudgeStandard & Js, short paperId, short qid);
void SaveParameters();
void LoadParameters();
void CreateTestExampleFile();
void CreateABPaperFeature();
AnsiString SaveCurrentModified();
void ShowMessageInMemo(TMemo* Memo1, TStringList* content,bool replaced=true);
/*-----------------------------------------
功能:
从指定excel文件中读取学号信息显示在lstStu控件上
参数说明:
fname:excel文件名(包含完整路径)
sheetindex:工作表索引,例如,1表示第1张工作表
startrow:学号其实行号
endrow:学号结束行号
col:学号所在列,例如,若col=1,表示学号在A列...
返回:无
创建时间:2012-12-30 9:48:59
修改历史:
注意事项:
该函数调用成功,将关闭已经打开的excel文件,打开指定的excel文件
------------------------------------------*/
void ReadStudentsInfo( AnsiString fname,
long sheetindex, long startrow, long endrow, long col);
//返回当前选中学号的总分
int GetCurrentTotal();
AnsiString GetKeyWords();
int CountSubstr(AnsiString subs);
void InsertStrTo(TMemo* Memo, AnsiString s,int n);
int FindYoukuohaoIndex(TMemo* Memo);
};
//---------------------------------------------------------------------------
//根据一组源程序文件路径判断是A卷还是B卷
//cppFiles,存放某学生的所有源程序文件路径
//返回值:
// 0 :不能确定
// 1 :A卷
// 2 :B卷
int isABPaper(TStringList*cppFiles);
//对一个源程序文件进行编译、运行
//path:源程序文件
//inputFile:测试输入文件路径
//返回值:未返回值为0,表示编译不通过,out将只有一个字符串,表示错误信息的第1条
// 返回值为1,表示链接不通过,out将只有一个字符串,表示链接信息的第1条
// 返回值为2,表示生成了可执行文件,out表示运行结果
int RunMyProg(TStringList*output,AnsiString path,AnsiString inputFile);
extern PACKAGE TFormMain *FormMain;
/*-----------------------------------------
功能:
将Memo控件中的字体大小设为最佳
创建时间:2013-1-3 12:52:31
------------------------------------------*/
void SetBestFontSize(TMemo* Memo);
//---------------------------------------------------------------------------
#endif
C++
1
https://gitee.com/gancaijun/CTestAutoJudge.git
git@gitee.com:gancaijun/CTestAutoJudge.git
gancaijun
CTestAutoJudge
CTestAutoJudge
develop

搜索帮助