├── res ├── 图标.png ├── 图标.psd ├── lview.bmp ├── qview.bmp ├── store.bmp ├── Toolbar.bmp ├── QuickQuiz.aps ├── QuickQuiz.ico ├── QuickQuiz.rc ├── QuickQuiz.rc2 └── default1.bin ├── src ├── AES.h ├── Doc.h ├── Item.h ├── List.h ├── Text.h ├── View.h ├── AES.cpp ├── Base64.h ├── Blank.cpp ├── Blank.h ├── Choise.h ├── Doc.cpp ├── EditDlg.h ├── Item.cpp ├── Judge.cpp ├── Judge.h ├── List.cpp ├── Paper.cpp ├── Paper.h ├── QEdit.cpp ├── QError.h ├── QList.cpp ├── QList.h ├── StdAfx.h ├── Test.cpp ├── TestBar.h ├── Text.cpp ├── View.cpp ├── ViewDlg.h ├── XmlTags.h ├── define.h ├── Base64.cpp ├── Choise.cpp ├── DataList.h ├── EditDlg.cpp ├── EditFrame.h ├── ItemGroup.h ├── ListFrame.h ├── MainFrm.cpp ├── QButton.cpp ├── StdAfx.cpp ├── TempList.h ├── TestFrame.h ├── TestMaker.h ├── TestPara.h ├── ViewDlg.cpp ├── ClrCommon.cpp ├── ClrDialog.cpp ├── DataList.cpp ├── EditFrame.cpp ├── FindText.cpp ├── ImageFrame.cpp ├── ImageFrame.h ├── ImageManager.h ├── ItemGroup.cpp ├── ItemGroupDlg.h ├── ItemShowWnd.h ├── LeftView.cpp ├── ListFrame.cpp ├── PaperMaker.cpp ├── PaperMaker.h ├── PaperSave.cpp ├── PaperUndo.cpp ├── QComboBox.cpp ├── QGroupBox.cpp ├── QTabCtrl.cpp ├── QuickQuiz.cpp ├── ShowManager.h ├── StopWatch.cpp ├── TempList.cpp ├── TestFrame.cpp ├── TestMaker.cpp ├── TextManager.h ├── TxtOutDlg.cpp ├── WordByWord.cpp ├── AllBuildDlg.cpp ├── ImageManager.cpp ├── ItemGroupDlg.cpp ├── ItemShowWnd.cpp ├── JpegCoverDlg.cpp ├── PasswordDlg.cpp ├── ShowManager.cpp ├── TMessageBox.cpp ├── TextManager.cpp ├── BlkTxtCheckDlg.cpp ├── ChildBlankDlg.cpp ├── ChildMChoiseDlg.cpp ├── ChildSChoiseDlg.cpp ├── FixedSharedFile.h ├── TestSetCommDlg.cpp ├── TextSimilarity.cpp ├── TestCompetitiveDlg.h ├── TypePropertiesDlg.cpp ├── FixedRecentFileList.cpp ├── TestCompetitiveDlg.cpp ├── MD5.h ├── ClrCommon.h ├── QError.cpp ├── AnsiCEx.h ├── FixedRecentFileList.h ├── StopWatch.h ├── TextSimilarity.h ├── ItemPtr.h ├── MemBmp.h ├── FindText.h ├── CopyExDlg.cpp ├── QComboBox.h ├── AddTypeDlg.h ├── TabPage.h ├── CodeDlg.h ├── CopyExDlg.h ├── SummaryLenDlg.h ├── ClrDialog.h ├── QColorSetter.h ├── AddTypeDlg.cpp ├── CodeDlg.cpp ├── QButton.h ├── BatchSetDlg.h ├── TabPage.cpp ├── QuickQuiz.h ├── SummaryLenDlg.cpp ├── QColorSetter.cpp ├── ChooseTypeDlg.h ├── TMessageBox.h ├── WordByWord.h ├── QTabCtrl.h ├── TxtOutDlg.h ├── ImageBar.h ├── BlkTxtCheckDlg.h ├── XmlTags.cpp ├── JpegCoverDlg.h ├── MainFrm.h ├── ChildJudgeDlg.cpp ├── QEdit.h ├── BatchSetDlg.cpp ├── ChildTextDlg.cpp ├── AnsiCEx.cpp ├── QGroupBox.h ├── TestSetDlg.cpp ├── PasswordDlg.h ├── PaperPropertiesDlg.cpp └── TestSetBlkTxtDlg.cpp ├── docs ├── images │ ├── bg.png │ ├── info.png │ ├── lock.png │ ├── save.png │ ├── text.png │ ├── view.png │ ├── blank.png │ ├── compok.png │ ├── copyex.png │ ├── demo.jpeg │ ├── error.png │ ├── itemp.png │ ├── judge.png │ ├── maketxt.png │ ├── mchoise.png │ ├── netspy.png │ ├── nettest.png │ ├── netview.png │ ├── newitem.png │ ├── newtool.png │ ├── paperc.png │ ├── papero.png │ ├── paperp.png │ ├── parse.png │ ├── schoise.png │ ├── score.png │ ├── setpass.png │ ├── storec.png │ ├── storeo.png │ ├── testgo.png │ ├── testgo2.png │ ├── testset.png │ ├── title.png │ ├── typec.png │ ├── typeg.png │ ├── typep.png │ ├── types.png │ ├── viewset.png │ ├── win95.png │ ├── addcustom.png │ ├── batchset.png │ ├── compshow.png │ ├── copycover.png │ ├── darkview.png │ ├── duplicate.png │ ├── editframe.png │ ├── edititem.png │ ├── editmenu.png │ ├── filemenu.png │ ├── greenview.png │ ├── groupshow.png │ ├── interface.png │ ├── itemimage.png │ ├── makehtml1.png │ ├── makehtml2.png │ ├── makelist.png │ ├── newgroup.png │ ├── papermenu.png │ ├── setcover.png │ ├── setcustom.png │ ├── showimage.png │ ├── storeicon.png │ ├── storeitem.png │ ├── testmenu.png │ ├── testshow.png │ ├── txtcheck.png │ ├── viewmenu.png │ ├── background.jpg │ ├── competitive.png │ ├── custommenu.png │ ├── makeanswerin.png │ ├── makeformat.png │ ├── netinterface.png │ ├── nettestset.png │ ├── nettestview.png │ ├── testtxtset.png │ ├── makeansweronly.png │ ├── testchoiseset.png │ └── competitiveshow.gif ├── 4.0.3_spy.html ├── 1.1.0_toolbar.html ├── 0.0.2_whatsnew.html ├── 0.0.4_index.html ├── 2.1.2_extern.html ├── 1.2.3_itemimage.html ├── 2.1.1_check.html ├── 1.0.5_testmenu.html ├── 2.0.0_develop.html ├── 1.2.1_storeitem.html ├── 0.0.1_about.html ├── 0.0.3_inold.html ├── 2.0.5_saveformat.html ├── 1.3.1_view.html ├── 4.0.1_view.html ├── index.html ├── 1.2.2_edititem.html ├── 4.0.0_net.html ├── 1.2.7_customtype.html ├── 4.0.2_test.html ├── 2.0.1_code.html ├── 1.0.6_viewmenu.html ├── 1.0.0_content.html ├── 1.3.3_competitive.html ├── css │ └── style.css ├── 1.2.5_batchset.html ├── 2.0.2_binformat.html ├── 1.2.4_setcover.html └── 1.0.1_interface.html ├── lib ├── libjpeg │ ├── jpeg.dsw │ ├── jversion.h │ └── jconfig.h ├── original_package │ ├── 库使用说明.txt │ ├── jpegsr9d.zip │ ├── lpng1422.zip │ ├── lpng1637.zip │ ├── zlib-1.2.11.tar.gz │ ├── zlib-1.2.5.2.tar.gz │ └── tinyxml_2_6_2.tar.gz ├── zlib │ ├── inffast.h │ ├── project │ │ └── visualc6 │ │ │ └── zlib.dsw │ ├── gzclose.c │ ├── win32 │ │ ├── zlib1.rc │ │ └── zlib.def │ ├── compress.c │ └── inftrees.h ├── libpng │ └── projects │ │ └── visualc6 │ │ └── libpng.dsw └── tinyxml │ ├── tinyxmlerror.cpp │ └── tinystr.cpp ├── Bin ├── 2.0.0.0 │ ├── 学习强国500题.qux │ ├── 2021高考全国I语文.qux │ ├── MBCS │ │ └── QuickQuiz.exe │ ├── Unicode │ │ └── QuickQuiz.exe │ ├── MBCS_Debug │ │ └── QuickQuiz.exe │ └── Unicode_Debug │ │ └── QuickQuiz.exe └── 1.2.4_52发布版 │ ├── MBCS │ └── QuickQuiz.exe │ └── Unicode │ └── QuickQuiz.exe ├── README.md └── QuickQuiz.dsw /res/图标.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/图标.png -------------------------------------------------------------------------------- /res/图标.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/图标.psd -------------------------------------------------------------------------------- /src/AES.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AES.h -------------------------------------------------------------------------------- /src/Doc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Doc.h -------------------------------------------------------------------------------- /src/Item.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Item.h -------------------------------------------------------------------------------- /src/List.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/List.h -------------------------------------------------------------------------------- /src/Text.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Text.h -------------------------------------------------------------------------------- /src/View.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/View.h -------------------------------------------------------------------------------- /res/lview.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/lview.bmp -------------------------------------------------------------------------------- /res/qview.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/qview.bmp -------------------------------------------------------------------------------- /res/store.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/store.bmp -------------------------------------------------------------------------------- /src/AES.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AES.cpp -------------------------------------------------------------------------------- /src/Base64.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Base64.h -------------------------------------------------------------------------------- /src/Blank.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Blank.cpp -------------------------------------------------------------------------------- /src/Blank.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Blank.h -------------------------------------------------------------------------------- /src/Choise.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Choise.h -------------------------------------------------------------------------------- /src/Doc.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Doc.cpp -------------------------------------------------------------------------------- /src/EditDlg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditDlg.h -------------------------------------------------------------------------------- /src/Item.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Item.cpp -------------------------------------------------------------------------------- /src/Judge.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Judge.cpp -------------------------------------------------------------------------------- /src/Judge.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Judge.h -------------------------------------------------------------------------------- /src/List.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/List.cpp -------------------------------------------------------------------------------- /src/Paper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Paper.cpp -------------------------------------------------------------------------------- /src/Paper.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Paper.h -------------------------------------------------------------------------------- /src/QEdit.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QEdit.cpp -------------------------------------------------------------------------------- /src/QError.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QError.h -------------------------------------------------------------------------------- /src/QList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QList.cpp -------------------------------------------------------------------------------- /src/QList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QList.h -------------------------------------------------------------------------------- /src/StdAfx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StdAfx.h -------------------------------------------------------------------------------- /src/Test.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Test.cpp -------------------------------------------------------------------------------- /src/TestBar.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestBar.h -------------------------------------------------------------------------------- /src/Text.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Text.cpp -------------------------------------------------------------------------------- /src/View.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/View.cpp -------------------------------------------------------------------------------- /src/ViewDlg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ViewDlg.h -------------------------------------------------------------------------------- /src/XmlTags.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/XmlTags.h -------------------------------------------------------------------------------- /src/define.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/define.h -------------------------------------------------------------------------------- /res/Toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/Toolbar.bmp -------------------------------------------------------------------------------- /src/Base64.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Base64.cpp -------------------------------------------------------------------------------- /src/Choise.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/Choise.cpp -------------------------------------------------------------------------------- /src/DataList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/DataList.h -------------------------------------------------------------------------------- /src/EditDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditDlg.cpp -------------------------------------------------------------------------------- /src/EditFrame.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditFrame.h -------------------------------------------------------------------------------- /src/ItemGroup.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroup.h -------------------------------------------------------------------------------- /src/ListFrame.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ListFrame.h -------------------------------------------------------------------------------- /src/MainFrm.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/MainFrm.cpp -------------------------------------------------------------------------------- /src/QButton.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QButton.cpp -------------------------------------------------------------------------------- /src/StdAfx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StdAfx.cpp -------------------------------------------------------------------------------- /src/TempList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TempList.h -------------------------------------------------------------------------------- /src/TestFrame.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestFrame.h -------------------------------------------------------------------------------- /src/TestMaker.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestMaker.h -------------------------------------------------------------------------------- /src/TestPara.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestPara.h -------------------------------------------------------------------------------- /src/ViewDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ViewDlg.cpp -------------------------------------------------------------------------------- /docs/images/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/bg.png -------------------------------------------------------------------------------- /res/QuickQuiz.aps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.aps -------------------------------------------------------------------------------- /res/QuickQuiz.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.ico -------------------------------------------------------------------------------- /res/QuickQuiz.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/res/QuickQuiz.rc -------------------------------------------------------------------------------- /src/ClrCommon.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ClrCommon.cpp -------------------------------------------------------------------------------- /src/ClrDialog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ClrDialog.cpp -------------------------------------------------------------------------------- /src/DataList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/DataList.cpp -------------------------------------------------------------------------------- /src/EditFrame.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/EditFrame.cpp -------------------------------------------------------------------------------- /src/FindText.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FindText.cpp -------------------------------------------------------------------------------- /src/ImageFrame.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageFrame.cpp -------------------------------------------------------------------------------- /src/ImageFrame.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageFrame.h -------------------------------------------------------------------------------- /src/ImageManager.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageManager.h -------------------------------------------------------------------------------- /src/ItemGroup.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroup.cpp -------------------------------------------------------------------------------- /src/ItemGroupDlg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroupDlg.h -------------------------------------------------------------------------------- /src/ItemShowWnd.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemShowWnd.h -------------------------------------------------------------------------------- /src/LeftView.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/LeftView.cpp -------------------------------------------------------------------------------- /src/ListFrame.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ListFrame.cpp -------------------------------------------------------------------------------- /src/PaperMaker.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperMaker.cpp -------------------------------------------------------------------------------- /src/PaperMaker.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperMaker.h -------------------------------------------------------------------------------- /src/PaperSave.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperSave.cpp -------------------------------------------------------------------------------- /src/PaperUndo.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PaperUndo.cpp -------------------------------------------------------------------------------- /src/QComboBox.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QComboBox.cpp -------------------------------------------------------------------------------- /src/QGroupBox.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QGroupBox.cpp -------------------------------------------------------------------------------- /src/QTabCtrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QTabCtrl.cpp -------------------------------------------------------------------------------- /src/QuickQuiz.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/QuickQuiz.cpp -------------------------------------------------------------------------------- /src/ShowManager.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ShowManager.h -------------------------------------------------------------------------------- /src/StopWatch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/StopWatch.cpp -------------------------------------------------------------------------------- /src/TempList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TempList.cpp -------------------------------------------------------------------------------- /src/TestFrame.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestFrame.cpp -------------------------------------------------------------------------------- /src/TestMaker.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestMaker.cpp -------------------------------------------------------------------------------- /src/TextManager.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextManager.h -------------------------------------------------------------------------------- /src/TxtOutDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TxtOutDlg.cpp -------------------------------------------------------------------------------- /src/WordByWord.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/WordByWord.cpp -------------------------------------------------------------------------------- /docs/images/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/info.png -------------------------------------------------------------------------------- /docs/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/lock.png -------------------------------------------------------------------------------- /docs/images/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/save.png -------------------------------------------------------------------------------- /docs/images/text.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/text.png -------------------------------------------------------------------------------- /docs/images/view.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/view.png -------------------------------------------------------------------------------- /lib/libjpeg/jpeg.dsw: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/libjpeg/jpeg.dsw -------------------------------------------------------------------------------- /src/AllBuildDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/AllBuildDlg.cpp -------------------------------------------------------------------------------- /src/ImageManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ImageManager.cpp -------------------------------------------------------------------------------- /src/ItemGroupDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemGroupDlg.cpp -------------------------------------------------------------------------------- /src/ItemShowWnd.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ItemShowWnd.cpp -------------------------------------------------------------------------------- /src/JpegCoverDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/JpegCoverDlg.cpp -------------------------------------------------------------------------------- /src/PasswordDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/PasswordDlg.cpp -------------------------------------------------------------------------------- /src/ShowManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ShowManager.cpp -------------------------------------------------------------------------------- /src/TMessageBox.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TMessageBox.cpp -------------------------------------------------------------------------------- /src/TextManager.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextManager.cpp -------------------------------------------------------------------------------- /docs/images/blank.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/blank.png -------------------------------------------------------------------------------- /docs/images/compok.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/compok.png -------------------------------------------------------------------------------- /docs/images/copyex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/copyex.png -------------------------------------------------------------------------------- /docs/images/demo.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/demo.jpeg -------------------------------------------------------------------------------- /docs/images/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/error.png -------------------------------------------------------------------------------- /docs/images/itemp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/itemp.png -------------------------------------------------------------------------------- /docs/images/judge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/judge.png -------------------------------------------------------------------------------- /docs/images/maketxt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/maketxt.png -------------------------------------------------------------------------------- /docs/images/mchoise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/mchoise.png -------------------------------------------------------------------------------- /docs/images/netspy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netspy.png -------------------------------------------------------------------------------- /docs/images/nettest.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettest.png -------------------------------------------------------------------------------- /docs/images/netview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netview.png -------------------------------------------------------------------------------- /docs/images/newitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newitem.png -------------------------------------------------------------------------------- /docs/images/newtool.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newtool.png -------------------------------------------------------------------------------- /docs/images/paperc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/paperc.png -------------------------------------------------------------------------------- /docs/images/papero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/papero.png -------------------------------------------------------------------------------- /docs/images/paperp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/paperp.png -------------------------------------------------------------------------------- /docs/images/parse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/parse.png -------------------------------------------------------------------------------- /docs/images/schoise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/schoise.png -------------------------------------------------------------------------------- /docs/images/score.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/score.png -------------------------------------------------------------------------------- /docs/images/setpass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setpass.png -------------------------------------------------------------------------------- /docs/images/storec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storec.png -------------------------------------------------------------------------------- /docs/images/storeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeo.png -------------------------------------------------------------------------------- /docs/images/testgo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testgo.png -------------------------------------------------------------------------------- /docs/images/testgo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testgo2.png -------------------------------------------------------------------------------- /docs/images/testset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testset.png -------------------------------------------------------------------------------- /docs/images/title.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/title.png -------------------------------------------------------------------------------- /docs/images/typec.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typec.png -------------------------------------------------------------------------------- /docs/images/typeg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typeg.png -------------------------------------------------------------------------------- /docs/images/typep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/typep.png -------------------------------------------------------------------------------- /docs/images/types.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/types.png -------------------------------------------------------------------------------- /docs/images/viewset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/viewset.png -------------------------------------------------------------------------------- /docs/images/win95.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/win95.png -------------------------------------------------------------------------------- /src/BlkTxtCheckDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/BlkTxtCheckDlg.cpp -------------------------------------------------------------------------------- /src/ChildBlankDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildBlankDlg.cpp -------------------------------------------------------------------------------- /src/ChildMChoiseDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildMChoiseDlg.cpp -------------------------------------------------------------------------------- /src/ChildSChoiseDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/ChildSChoiseDlg.cpp -------------------------------------------------------------------------------- /src/FixedSharedFile.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FixedSharedFile.h -------------------------------------------------------------------------------- /src/TestSetCommDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestSetCommDlg.cpp -------------------------------------------------------------------------------- /src/TextSimilarity.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TextSimilarity.cpp -------------------------------------------------------------------------------- /Bin/2.0.0.0/学习强国500题.qux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/学习强国500题.qux -------------------------------------------------------------------------------- /docs/images/addcustom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/addcustom.png -------------------------------------------------------------------------------- /docs/images/batchset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/batchset.png -------------------------------------------------------------------------------- /docs/images/compshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/compshow.png -------------------------------------------------------------------------------- /docs/images/copycover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/copycover.png -------------------------------------------------------------------------------- /docs/images/darkview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/darkview.png -------------------------------------------------------------------------------- /docs/images/duplicate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/duplicate.png -------------------------------------------------------------------------------- /docs/images/editframe.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/editframe.png -------------------------------------------------------------------------------- /docs/images/edititem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/edititem.png -------------------------------------------------------------------------------- /docs/images/editmenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/editmenu.png -------------------------------------------------------------------------------- /docs/images/filemenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/filemenu.png -------------------------------------------------------------------------------- /docs/images/greenview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/greenview.png -------------------------------------------------------------------------------- /docs/images/groupshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/groupshow.png -------------------------------------------------------------------------------- /docs/images/interface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/interface.png -------------------------------------------------------------------------------- /docs/images/itemimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/itemimage.png -------------------------------------------------------------------------------- /docs/images/makehtml1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makehtml1.png -------------------------------------------------------------------------------- /docs/images/makehtml2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makehtml2.png -------------------------------------------------------------------------------- /docs/images/makelist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makelist.png -------------------------------------------------------------------------------- /docs/images/newgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/newgroup.png -------------------------------------------------------------------------------- /docs/images/papermenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/papermenu.png -------------------------------------------------------------------------------- /docs/images/setcover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setcover.png -------------------------------------------------------------------------------- /docs/images/setcustom.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/setcustom.png -------------------------------------------------------------------------------- /docs/images/showimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/showimage.png -------------------------------------------------------------------------------- /docs/images/storeicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeicon.png -------------------------------------------------------------------------------- /docs/images/storeitem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/storeitem.png -------------------------------------------------------------------------------- /docs/images/testmenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testmenu.png -------------------------------------------------------------------------------- /docs/images/testshow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testshow.png -------------------------------------------------------------------------------- /docs/images/txtcheck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/txtcheck.png -------------------------------------------------------------------------------- /docs/images/viewmenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/viewmenu.png -------------------------------------------------------------------------------- /src/TestCompetitiveDlg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestCompetitiveDlg.h -------------------------------------------------------------------------------- /src/TypePropertiesDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TypePropertiesDlg.cpp -------------------------------------------------------------------------------- /Bin/2.0.0.0/2021高考全国I语文.qux: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/2021高考全国I语文.qux -------------------------------------------------------------------------------- /docs/images/background.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/background.jpg -------------------------------------------------------------------------------- /docs/images/competitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/competitive.png -------------------------------------------------------------------------------- /docs/images/custommenu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/custommenu.png -------------------------------------------------------------------------------- /docs/images/makeanswerin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeanswerin.png -------------------------------------------------------------------------------- /docs/images/makeformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeformat.png -------------------------------------------------------------------------------- /docs/images/netinterface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/netinterface.png -------------------------------------------------------------------------------- /docs/images/nettestset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettestset.png -------------------------------------------------------------------------------- /docs/images/nettestview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/nettestview.png -------------------------------------------------------------------------------- /docs/images/testtxtset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testtxtset.png -------------------------------------------------------------------------------- /src/FixedRecentFileList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/FixedRecentFileList.cpp -------------------------------------------------------------------------------- /src/TestCompetitiveDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/src/TestCompetitiveDlg.cpp -------------------------------------------------------------------------------- /Bin/2.0.0.0/MBCS/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/MBCS/QuickQuiz.exe -------------------------------------------------------------------------------- /docs/images/makeansweronly.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/makeansweronly.png -------------------------------------------------------------------------------- /docs/images/testchoiseset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/testchoiseset.png -------------------------------------------------------------------------------- /lib/original_package/库使用说明.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/库使用说明.txt -------------------------------------------------------------------------------- /Bin/2.0.0.0/Unicode/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/Unicode/QuickQuiz.exe -------------------------------------------------------------------------------- /docs/images/competitiveshow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/docs/images/competitiveshow.gif -------------------------------------------------------------------------------- /lib/original_package/jpegsr9d.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/jpegsr9d.zip -------------------------------------------------------------------------------- /lib/original_package/lpng1422.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/lpng1422.zip -------------------------------------------------------------------------------- /lib/original_package/lpng1637.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/lpng1637.zip -------------------------------------------------------------------------------- /Bin/1.2.4_52发布版/MBCS/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/1.2.4_52发布版/MBCS/QuickQuiz.exe -------------------------------------------------------------------------------- /Bin/1.2.4_52发布版/Unicode/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/1.2.4_52发布版/Unicode/QuickQuiz.exe -------------------------------------------------------------------------------- /Bin/2.0.0.0/MBCS_Debug/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/MBCS_Debug/QuickQuiz.exe -------------------------------------------------------------------------------- /Bin/2.0.0.0/Unicode_Debug/QuickQuiz.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/Bin/2.0.0.0/Unicode_Debug/QuickQuiz.exe -------------------------------------------------------------------------------- /lib/original_package/zlib-1.2.11.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/zlib-1.2.11.tar.gz -------------------------------------------------------------------------------- /lib/original_package/zlib-1.2.5.2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/zlib-1.2.5.2.tar.gz -------------------------------------------------------------------------------- /lib/original_package/tinyxml_2_6_2.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/GX-Software/QuickQuiz/HEAD/lib/original_package/tinyxml_2_6_2.tar.gz -------------------------------------------------------------------------------- /src/MD5.h: -------------------------------------------------------------------------------- 1 | #ifndef MD5_H 2 | #define MD5_H 3 | 4 | #define MD5FUNC __stdcall 5 | 6 | void MD5FUNC MakeMD5(unsigned char* inputBytes, int byteLen, unsigned char digest[16]); 7 | void MD5FUNC MakeMD5Hex(unsigned char digest[16], char* hexStr); 8 | 9 | #endif -------------------------------------------------------------------------------- /res/QuickQuiz.rc2: -------------------------------------------------------------------------------- 1 | // 2 | // QUICKQUIZ.RC2 - resources Microsoft Visual C++ does not edit directly 3 | // 4 | 5 | #ifdef APSTUDIO_INVOKED 6 | #error this file is not editable by Microsoft Visual C++ 7 | #endif //APSTUDIO_INVOKED 8 | 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // Add manually edited resources here... 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | -------------------------------------------------------------------------------- /lib/libjpeg/jversion.h: -------------------------------------------------------------------------------- 1 | /* 2 | * jversion.h 3 | * 4 | * Copyright (C) 1991-2020, Thomas G. Lane, Guido Vollbeding. 5 | * This file is part of the Independent JPEG Group's software. 6 | * For conditions of distribution and use, see the accompanying README file. 7 | * 8 | * This file contains software version identification. 9 | */ 10 | 11 | 12 | #define JVERSION "9d 12-Jan-2020" 13 | 14 | #define JCOPYRIGHT "Copyright (C) 2020, Thomas G. Lane, Guido Vollbeding" 15 | -------------------------------------------------------------------------------- /lib/zlib/inffast.h: -------------------------------------------------------------------------------- 1 | /* inffast.h -- header to use inffast.c 2 | * Copyright (C) 1995-2003, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | void ZLIB_INTERNAL inflate_fast OF((z_streamp strm, unsigned start)); 12 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # QuickQuiz 2 | 答题软件 3 | 4 | ## 更新日志 5 | #### 2021/8/20提交最初版本V2.0 6 | 1. 取消了智能识别功能中,选项号后有空格也识别为新的选项(避免在识别全英文题目时错误识别) 7 | 2. 修正了批量生成中答案可能探测不到的问题(题干中有多个括号时) 8 | 3. 删除了不适合公开的内容 9 | 10 | #### 2021/8/22提交修改V2.0 11 | 感谢52网友swagger的测试 12 | 修正以下问题: 13 | 1. 新建题目时无法批量删除的问题 14 | 2. 去掉了编辑题目时不允许新增和删除题目的限制 15 | 3. 修正了新建选择题不输入选项而新建时导致假死的问题 16 | 4. 新建题目时切换单选题和多选题自动拷贝选项内容 17 | 18 | #### 2021/8/26提交修改V2.0 19 | 感谢52网友sky9131986的测试 20 | 修正以下问题: 21 | 1. 修正了对类似“12.345”题目去题号时,会将点号后面的数字一起去掉的问题 22 | 2. 修正了新建题库后收藏题目,不保存题库仍会生成收藏夹文件的问题 23 | 3. 复制题目将复制收藏信息 24 | 25 | #### 2021/9/13提交修改V2.0 26 | 感谢网友ahit976的测试 27 | 修正以下问题: 28 | 1. 添加自定义类型题目会导致闪退的问题。 29 | -------------------------------------------------------------------------------- /lib/zlib/project/visualc6/zlib.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "zlib"=".\zlib.dsp" - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | }}} 15 | 16 | ############################################################################### 17 | 18 | Global: 19 | 20 | Package=<5> 21 | {{{ 22 | }}} 23 | 24 | Package=<3> 25 | {{{ 26 | }}} 27 | 28 | ############################################################################### 29 | 30 | -------------------------------------------------------------------------------- /src/ClrCommon.h: -------------------------------------------------------------------------------- 1 | #ifndef _CLRCOMMON_H_ 2 | #define _CLRCOMMON_H_ 3 | 4 | #define CLRTYPE_DEFAULT 0 5 | #define CLRTYPE_GREEN 1 6 | #define CLRTYPE_DARK 2 7 | 8 | enum QColor { 9 | QCOLOR_FACE = 0, 10 | QCOLOR_EDITFACE, 11 | QCOLOR_SHADOW, 12 | QCOLOR_HIGHLIGHT, 13 | QCOLOR_BORDER, 14 | QCOLOR_TEXT, 15 | QCOLOR_TEXTDISABLE, 16 | QCOLOR_TEXTHIGHLIGHT, 17 | QCOLOR_TEXTFOCUS, 18 | QCOLOR_TEXTSELECTBACK 19 | }; 20 | 21 | extern int g_nColorType; 22 | extern HBRUSH g_hGreenBrush; 23 | extern HBRUSH g_hDarkBrush; 24 | 25 | void FUNCCALL AfxInitGlobalBrush(); 26 | void FUNCCALL AfxDestroyGlobalBrush(); 27 | 28 | COLORREF FUNCCALL AfxGetQColor(UINT uColorIndex); 29 | HBRUSH FUNCCALL AfxGetQBrush(); 30 | 31 | #endif // #define _CLRCOMMON_H_ -------------------------------------------------------------------------------- /res/default1.bin: -------------------------------------------------------------------------------- 1 | 2 | 4 | 10 | YourApplication 11 | 12 | 13 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /src/QError.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "StdAfx.h" 3 | #include "QError.h" 4 | 5 | typedef struct _tagError 6 | { 7 | long lErrorCode; 8 | BOOL bFatal; 9 | }QERROR; 10 | 11 | static QERROR error = {ERROR_NO_ERROR, FALSE}; 12 | 13 | BOOL FUNCCALL ClearError() 14 | { 15 | error.lErrorCode = ERROR_NO_ERROR; 16 | error.bFatal = FALSE; 17 | return TRUE; 18 | } 19 | 20 | BOOL FUNCCALL SetError(long lCode, BOOL bFatal) 21 | { 22 | if (error.lErrorCode != ERROR_NO_ERROR) 23 | { 24 | if (!bFatal || error.bFatal) 25 | { 26 | return FALSE; 27 | } 28 | } 29 | 30 | error.lErrorCode = lCode; 31 | error.bFatal = bFatal; 32 | return FALSE; 33 | } 34 | 35 | long FUNCCALL GetError() 36 | { 37 | return error.lErrorCode; 38 | } 39 | 40 | BOOL FUNCCALL IsFatal() 41 | { 42 | return error.bFatal; 43 | } -------------------------------------------------------------------------------- /lib/zlib/gzclose.c: -------------------------------------------------------------------------------- 1 | /* gzclose.c -- zlib gzclose() function 2 | * Copyright (C) 2004, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | #include "gzguts.h" 7 | 8 | /* gzclose() is in a separate file so that it is linked in only if it is used. 9 | That way the other gzclose functions can be used instead to avoid linking in 10 | unneeded compression or decompression routines. */ 11 | int ZEXPORT gzclose(file) 12 | gzFile file; 13 | { 14 | #ifndef NO_GZCOMPRESS 15 | gz_statep state; 16 | 17 | if (file == NULL) 18 | return Z_STREAM_ERROR; 19 | state = (gz_statep)file; 20 | 21 | return state->mode == GZ_READ ? gzclose_r(file) : gzclose_w(file); 22 | #else 23 | return gzclose_r(file); 24 | #endif 25 | } 26 | -------------------------------------------------------------------------------- /src/AnsiCEx.h: -------------------------------------------------------------------------------- 1 | #ifndef _ANSI_C_EX_H_ 2 | #define _ANSI_C_EX_H_ 3 | 4 | wchar_t* __cdecl wcsrchr_e(const wchar_t *string, const wchar_t *end, int c); 5 | wchar_t* __cdecl wcscpyn(wchar_t *strDest, const wchar_t *strSource, int iMaxLength); 6 | wchar_t* __cdecl wcsstri(const wchar_t *string, const wchar_t *search); 7 | 8 | char* __cdecl strrchr_e(const char *string, const char *end, int c); 9 | char* __cdecl strstri(const char *string, const char *search); 10 | char* __cdecl strcpyn(char *strDest, const char *strSource, int iMaxLength); 11 | 12 | #ifdef _UNICODE 13 | 14 | #define _tcsrchr_e wcsrchr_e 15 | #define _tcsstri wcsstri 16 | #define _tcscpyn wcscpyn 17 | 18 | #else // #ifndef _UNICODE 19 | 20 | #define _tcsrchr_e strrchr_e 21 | #define _tcsstri strstri 22 | #define _tcscpyn strcpyn 23 | 24 | #endif // #ifdef _UNICODE 25 | 26 | #endif // #ifndef _ANSI_C_EX_H_ -------------------------------------------------------------------------------- /src/FixedRecentFileList.h: -------------------------------------------------------------------------------- 1 | // FixedRecentFileList.h: interface for the CFixedRecentFileList class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_) 6 | #define AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CFixedRecentFileList : public CRecentFileList 13 | { 14 | public: 15 | CFixedRecentFileList(UINT nStart, LPCTSTR lpszSection, 16 | LPCTSTR lpszEntryFormat, int nSize, 17 | int nMaxDispLen = AFX_ABBREV_FILENAME_LEN); 18 | virtual ~CFixedRecentFileList(); 19 | 20 | virtual void UpdateMenu(CCmdUI* pCmdUI); 21 | void ClearList(); 22 | }; 23 | 24 | #endif // !defined(AFX_FIXEDRECENTFILELIST_H__19A79829_C769_4C48_B824_0E1AC10DE3B6__INCLUDED_) 25 | -------------------------------------------------------------------------------- /src/StopWatch.h: -------------------------------------------------------------------------------- 1 | // StopWatch.h: interface for the CStopWatch class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_) 6 | #define AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CStopWatch 13 | { 14 | public: 15 | CStopWatch(); 16 | virtual ~CStopWatch(); 17 | 18 | void Start(); 19 | void End(); 20 | 21 | double GetDur() { return m_lfDur; } 22 | 23 | protected: 24 | double m_lfDur; 25 | 26 | BOOL m_bHighResolution; 27 | 28 | LARGE_INTEGER m_lnFreq; 29 | LARGE_INTEGER m_lnStart; 30 | LARGE_INTEGER m_lnEnd; 31 | 32 | clock_t m_clkStart; 33 | clock_t m_clkEnd; 34 | 35 | long GetTimeDur(PSYSTEMTIME pTime1, PSYSTEMTIME pTime2); 36 | }; 37 | 38 | #endif // !defined(AFX_STOPWATCH_H__1F8FCC79_1865_4750_BC33_DD77207E56CF__INCLUDED_) 39 | -------------------------------------------------------------------------------- /lib/libpng/projects/visualc6/libpng.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "libpng"=.\libpng.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | Begin Project Dependency 15 | Project_Dep_Name zlib 16 | End Project Dependency 17 | }}} 18 | 19 | ############################################################################### 20 | 21 | Project: "zlib"=..\..\..\zlib\project\visualc6\zlib.dsp - Package Owner=<4> 22 | 23 | Package=<5> 24 | {{{ 25 | }}} 26 | 27 | Package=<4> 28 | {{{ 29 | }}} 30 | 31 | ############################################################################### 32 | 33 | Global: 34 | 35 | Package=<5> 36 | {{{ 37 | }}} 38 | 39 | Package=<3> 40 | {{{ 41 | }}} 42 | 43 | ############################################################################### 44 | 45 | -------------------------------------------------------------------------------- /src/TextSimilarity.h: -------------------------------------------------------------------------------- 1 | // TextSimilarity.h: interface for the CTextSimilarity class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_) 6 | #define AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CTextSimilarity 13 | { 14 | public: 15 | CTextSimilarity(); 16 | virtual ~CTextSimilarity(); 17 | 18 | BOOL Compare(LPCTSTR szStr1, LPCTSTR szStr2); 19 | void ClearInfo() { m_nNum = m_nDenom = 0; } 20 | float GetInfo() { return (1 - (float)m_nNum / m_nDenom); } 21 | 22 | protected: 23 | BOOL CheckBuffSize(int nNewSize); 24 | int Min3(int a, int b, int c) { return (min(min(a, b), c)); } 25 | 26 | int *m_pRight; 27 | int m_nSize; 28 | 29 | int m_nNum; 30 | int m_nDenom; 31 | }; 32 | 33 | #endif // !defined(AFX_TEXTSIMILARITY_H__C0473336_4885_4626_A4CD_1B37AF52DCFF__INCLUDED_) 34 | -------------------------------------------------------------------------------- /src/ItemPtr.h: -------------------------------------------------------------------------------- 1 | // ItemPtr.h: interface for the CItemPtr class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_) 6 | #define AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CItemPtr : public CItem 13 | { 14 | public: 15 | CItemPtr() : m_pItem(NULL) {} 16 | virtual ~CItemPtr() {} 17 | 18 | virtual BOOL IsItemPtr() { return TRUE; } 19 | 20 | virtual void SetType(int nType) 21 | { 22 | m_nType = nType; 23 | } 24 | virtual void SetItemState(UINT nState, UINT nMark) 25 | { 26 | if (m_pItem) 27 | { 28 | m_pItem->SetItemState(nState, nMark); 29 | } 30 | } 31 | virtual UINT GetItemState(UINT nMark) 32 | { 33 | if (m_pItem) 34 | { 35 | return m_pItem->GetItemState(nMark); 36 | } 37 | 38 | return ITEMMARK_NULL; 39 | } 40 | virtual CItem* GetItemFrom() 41 | { 42 | return m_pItem->GetItemFrom(); 43 | } 44 | 45 | CItem *m_pItem; 46 | }; 47 | 48 | #endif // !defined(AFX_ITEMPTR_H__D281B8A9_DAA7_4D5E_80EB_C9C2D1B290BD__INCLUDED_) 49 | -------------------------------------------------------------------------------- /docs/4.0.3_spy.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon速查模式 16 |

17 |
18 | 19 |

快速查找题库中包含关键字的题目,并显示其题干与答案。

20 | 21 |
22 | 测试设置 23 |
24 | 25 | 26 | 27 |
警告题目组的题干不作查找、题干中的图片标题不作查找,题目类型名称不作查找。
28 | 29 | 30 | 31 |
上一篇目录
32 | 33 |
34 | GX Software 2020-2021
35 | V2.0 36 | 37 | 38 | 39 | -------------------------------------------------------------------------------- /src/MemBmp.h: -------------------------------------------------------------------------------- 1 | // MemBmp.h: interface for the CMemBmp class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_MEMBMP_H__4DDBBF35_0442_486A_87CF_00AB5C59B68B__INCLUDED_) 6 | #define AFX_MEMBMP_H__4DDBBF35_0442_486A_87CF_00AB5C59B68B__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CMemBmp 13 | { 14 | public: 15 | CMemBmp(); 16 | virtual ~CMemBmp(); 17 | 18 | RETURN_E HDC CreateBmp(HDC hDC, LPRECT Rect, BOOL bInitClr = FALSE, COLORREF clr = 0); 19 | RETURN_E HDC CreateBmp(HDC hDC, int nWidth, int nHeight, BOOL bInitClr = FALSE, COLORREF clr = 0); 20 | RETURN_E HDC CreateBmp(HDC hDC, HBITMAP hBmp); 21 | void FillSolidRect(COLORREF clr); 22 | BOOL Draw(HDC hPaintDC, int x, int y); 23 | 24 | HDC CopyBmp(CMemBmp *pBmp); 25 | void ClearBmp(); 26 | 27 | int GetWidth() { return m_rcClient.Width(); } 28 | int GetHeight() { return m_rcClient.Height(); } 29 | HDC GetDC() { return m_hDC; } 30 | HBITMAP GetBmp() { return m_hBitmap; } 31 | 32 | protected: 33 | HDC m_hDC; 34 | HBITMAP m_hBitmap; 35 | HBITMAP m_hOldBitmap; 36 | 37 | CRect m_rcClient; 38 | }; 39 | 40 | #endif // !defined(AFX_MEMBMP_H__4DDBBF35_0442_486A_87CF_00AB5C59B68B__INCLUDED_) 41 | -------------------------------------------------------------------------------- /src/FindText.h: -------------------------------------------------------------------------------- 1 | // Find.h: interface for the FindWhat class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_FIND_H__41C554B8_0F00_4735_A3C3_BCF419AFCE77__INCLUDED_) 6 | #define AFX_FIND_H__41C554B8_0F00_4735_A3C3_BCF419AFCE77__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | class CFindText 13 | { 14 | public: 15 | CFindText(); 16 | virtual ~CFindText(); 17 | 18 | BOOL SetPara(LPCTSTR pPatt, int nLen, BOOL bDown, BOOL bMachCase); 19 | BOOL FindNext(LPCTSTR pSource, int nStart, int &nOutStart, int &nOutEnd); 20 | 21 | protected: 22 | BOOL Default_SetPara(LPCTSTR pPatt, int nLen, BOOL bDown, BOOL bMachCase); 23 | BOOL Default_FindNext(LPCTSTR pSource, int nStart, int &nOutStart, int &nOutEnd); 24 | LPTSTR StrStrIR(LPCTSTR lpFirst, int nStart, LPCTSTR lpSrch); 25 | 26 | BOOL Sunday_SetPara(LPCTSTR pPatt, int nLen, BOOL bDown, BOOL bMachCase); 27 | BOOL Sunday_FindNext(LPCTSTR pSource, int nStart, int &nOutStart, int &nOutEnd); 28 | 29 | protected: 30 | BOOL m_bDown; 31 | BOOL m_bMachCase; 32 | 33 | LPTSTR m_pPatt; 34 | int m_nPattLen; 35 | int m_nAlphabet[256]; 36 | }; 37 | 38 | #endif // !defined(AFX_FIND_H__41C554B8_0F00_4735_A3C3_BCF419AFCE77__INCLUDED_) -------------------------------------------------------------------------------- /src/CopyExDlg.cpp: -------------------------------------------------------------------------------- 1 | // CopyExDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "CopyExDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CCopyExDlg dialog 16 | 17 | 18 | CCopyExDlg::CCopyExDlg(CWnd* pParent /*=NULL*/) 19 | : CClrDialog(CCopyExDlg::IDD, pParent) 20 | { 21 | //{{AFX_DATA_INIT(CCopyExDlg) 22 | m_nSel = 0; 23 | //}}AFX_DATA_INIT 24 | } 25 | 26 | 27 | void CCopyExDlg::DoDataExchange(CDataExchange* pDX) 28 | { 29 | CClrDialog::DoDataExchange(pDX); 30 | //{{AFX_DATA_MAP(CCopyExDlg) 31 | DDX_Control(pDX, IDC_RADIO_WITHASW, m_cRadioAsw); 32 | DDX_Control(pDX, IDC_RADIO_ONLYQ, m_cRadioQ); 33 | DDX_Control(pDX, IDC_RADIO_ALL, m_cRadioAll); 34 | DDX_Control(pDX, IDOK, m_cBtnOK); 35 | DDX_Radio(pDX, IDC_RADIO_ONLYQ, m_nSel); 36 | //}}AFX_DATA_MAP 37 | } 38 | 39 | 40 | BEGIN_MESSAGE_MAP(CCopyExDlg, CClrDialog) 41 | //{{AFX_MSG_MAP(CCopyExDlg) 42 | // NOTE: the ClassWizard will add message map macros here 43 | //}}AFX_MSG_MAP 44 | END_MESSAGE_MAP() 45 | 46 | ///////////////////////////////////////////////////////////////////////////// 47 | // CCopyExDlg message handlers 48 | -------------------------------------------------------------------------------- /lib/zlib/win32/zlib1.rc: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../zlib.h" 3 | 4 | #ifdef GCC_WINDRES 5 | VS_VERSION_INFO VERSIONINFO 6 | #else 7 | VS_VERSION_INFO VERSIONINFO MOVEABLE IMPURE LOADONCALL DISCARDABLE 8 | #endif 9 | FILEVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 10 | PRODUCTVERSION ZLIB_VER_MAJOR,ZLIB_VER_MINOR,ZLIB_VER_REVISION,0 11 | FILEFLAGSMASK VS_FFI_FILEFLAGSMASK 12 | #ifdef _DEBUG 13 | FILEFLAGS 1 14 | #else 15 | FILEFLAGS 0 16 | #endif 17 | FILEOS VOS__WINDOWS32 18 | FILETYPE VFT_DLL 19 | FILESUBTYPE 0 // not used 20 | BEGIN 21 | BLOCK "StringFileInfo" 22 | BEGIN 23 | BLOCK "040904E4" 24 | //language ID = U.S. English, char set = Windows, Multilingual 25 | BEGIN 26 | VALUE "FileDescription", "zlib data compression library\0" 27 | VALUE "FileVersion", ZLIB_VERSION "\0" 28 | VALUE "InternalName", "zlib1.dll\0" 29 | VALUE "LegalCopyright", "(C) 1995-2017 Jean-loup Gailly & Mark Adler\0" 30 | VALUE "OriginalFilename", "zlib1.dll\0" 31 | VALUE "ProductName", "zlib\0" 32 | VALUE "ProductVersion", ZLIB_VERSION "\0" 33 | VALUE "Comments", "For more information visit http://www.zlib.net/\0" 34 | END 35 | END 36 | BLOCK "VarFileInfo" 37 | BEGIN 38 | VALUE "Translation", 0x0409, 1252 39 | END 40 | END 41 | -------------------------------------------------------------------------------- /docs/1.1.0_toolbar.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon工具栏、状态栏、右键菜单 16 |

17 |
18 | 19 |
20 |
21 | 工具栏的各项功能在各菜单说明中已有详细描述,请参考状态栏左侧的说明进行探索。 22 |
23 | 24 |
25 |
26 | 状态栏的最右侧显示当前主界面右侧窗格的题目数量。 27 |
28 | 29 |
30 |
31 | 各右键菜单在各菜单说明中已有详细描述,请参考状态栏左侧的说明自行探索。 32 |
33 | 34 | 35 | 36 |
上一篇目录下一篇
37 | 38 |
39 | GX Software 2020-2021
40 | V2.0 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /src/QComboBox.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_) 2 | #define AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // QComboBox.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CQComboBox window 12 | 13 | class CQComboBox : public CComboBox 14 | { 15 | // Construction 16 | public: 17 | CQComboBox(); 18 | 19 | // Attributes 20 | public: 21 | 22 | // Operations 23 | public: 24 | 25 | // Overrides 26 | // ClassWizard generated virtual function overrides 27 | //{{AFX_VIRTUAL(CQComboBox) 28 | //}}AFX_VIRTUAL 29 | 30 | // Implementation 31 | public: 32 | virtual ~CQComboBox(); 33 | 34 | // Generated message map functions 35 | protected: 36 | //{{AFX_MSG(CQComboBox) 37 | afx_msg void OnPaint(); 38 | afx_msg BOOL OnEraseBkgnd(CDC* pDC); 39 | //}}AFX_MSG 40 | void GetPoints(LPRECT rc, LPPOINT pt); 41 | 42 | DECLARE_MESSAGE_MAP() 43 | }; 44 | 45 | ///////////////////////////////////////////////////////////////////////////// 46 | 47 | //{{AFX_INSERT_LOCATION}} 48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 49 | 50 | #endif // !defined(AFX_QCOMBOBOX_H__CBB3F044_76F0_4B72_BED6_9F6762B8CC88__INCLUDED_) 51 | -------------------------------------------------------------------------------- /src/AddTypeDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_) 2 | #define AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // AddTypeDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CAddTypeDlg dialog 12 | 13 | class CAddTypeDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CAddTypeDlg(CWnd* pParent = NULL); // standard constructor 18 | 19 | // Dialog Data 20 | //{{AFX_DATA(CAddTypeDlg) 21 | enum { IDD = IDD_ADDTYPE_DLG }; 22 | CQButton m_cBtnOK; 23 | CQComboBox m_cCombo; 24 | //}}AFX_DATA 25 | 26 | 27 | // Overrides 28 | // ClassWizard generated virtual function overrides 29 | //{{AFX_VIRTUAL(CAddTypeDlg) 30 | protected: 31 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 32 | //}}AFX_VIRTUAL 33 | 34 | // Implementation 35 | protected: 36 | 37 | // Generated message map functions 38 | //{{AFX_MSG(CAddTypeDlg) 39 | virtual void OnOK(); 40 | virtual void OnCancel(); 41 | virtual BOOL OnInitDialog(); 42 | //}}AFX_MSG 43 | DECLARE_MESSAGE_MAP() 44 | }; 45 | 46 | //{{AFX_INSERT_LOCATION}} 47 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 48 | 49 | #endif // !defined(AFX_ADDTYPEDLG_H__6E558DB1_48D3_40D7_B652_7B2746600FA2__INCLUDED_) 50 | -------------------------------------------------------------------------------- /src/TabPage.h: -------------------------------------------------------------------------------- 1 | // TabPage.h: interface for the CTabPage class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_) 6 | #define AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | #include "ClrDialog.h" 13 | 14 | class CTabPage : public CClrDialog 15 | { 16 | public: 17 | CTabPage(UINT nIDTemplate, CWnd* pParentWnd = NULL); 18 | virtual ~CTabPage(); 19 | 20 | BOOL Create(UINT nIDTemplate, CWnd* pParentWnd = NULL); 21 | 22 | virtual void OnSetActive() {} 23 | virtual BOOL OnKillActive(BOOL bIsDestroy) { return TRUE; } 24 | virtual void SetShow(const CItem *pItem) { ASSERT(FALSE); } 25 | 26 | virtual BOOL IsModify() { return (m_bModify); } 27 | virtual int CheckSaveable() { ASSERT(FALSE); return 0; } 28 | 29 | protected: 30 | // Generated message map functions 31 | //{{AFX_MSG(CTabPage) 32 | virtual void OnOK() {} 33 | virtual void OnCancel() {} 34 | //}}AFX_MSG 35 | DECLARE_MESSAGE_MAP() 36 | 37 | virtual BOOL OnInitDialog(); 38 | HRESULT EnableDialogTexture(); 39 | 40 | BOOL m_bModify; 41 | }; 42 | 43 | //{{AFX_INSERT_LOCATION}} 44 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 45 | 46 | #endif // !defined(AFX_TABPAGE_H__EAEDC1DC_F8D9_43ED_9E2F_83CDDB460BB7__INCLUDED_) 47 | -------------------------------------------------------------------------------- /docs/0.0.2_whatsnew.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon2.0版本的新特性 16 |

17 |
18 | 19 |
    20 |
  1. 更高兼容性的新版标准题库文件(*.qux),且仍可管理1.x旧版应用程序生成的题库文件;
  2. 21 |
  3. 题库文件更小巧;
  4. 22 |
  5. 支持在题目中插入图片;
  6. 23 |
  7. 全新的答题界面与学习界面,支持调整显示文字的大小;
  8. 24 |
  9. 更实用的批量操作功能;
  10. 25 |
  11. 可为题库设置封面,设置后,题库被封装在jpeg图片中,便于管理和传输至移动设备;
  12. 26 |
  13. 题库内容可高强度加密,保障您的权利;
  14. 27 |
  15. 支持生成标准HTML格式试卷;
  16. 28 |
  17. 删除了与Microsoft Office有关的功能,降低了应用程序对运行环境的依赖性;
  18. 29 |
30 | 31 | 32 | 33 |
上一篇回到开始下一篇
34 | 35 |
36 | GX Software 2020-2021
37 | V2.0 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /src/CodeDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_) 2 | #define AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // CodeDlg.h : header file 8 | // 9 | 10 | #include "ClrDialog.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | // CCodeDlg dialog 14 | 15 | class CCodeDlg : public CClrDialog 16 | { 17 | // Construction 18 | public: 19 | CCodeDlg(CWnd* pParent = NULL); // standard constructor 20 | 21 | // Dialog Data 22 | //{{AFX_DATA(CCodeDlg) 23 | enum { IDD = IDD_CODE_DLG }; 24 | CQButton m_cBtnOK; 25 | CQComboBox m_cCombo; 26 | //}}AFX_DATA 27 | 28 | inline int GetCS() { return m_nCS; } 29 | 30 | // Overrides 31 | // ClassWizard generated virtual function overrides 32 | //{{AFX_VIRTUAL(CCodeDlg) 33 | protected: 34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 35 | //}}AFX_VIRTUAL 36 | 37 | // Implementation 38 | protected: 39 | int m_nCS; 40 | 41 | // Generated message map functions 42 | //{{AFX_MSG(CCodeDlg) 43 | virtual BOOL OnInitDialog(); 44 | virtual void OnOK(); 45 | //}}AFX_MSG 46 | DECLARE_MESSAGE_MAP() 47 | }; 48 | 49 | //{{AFX_INSERT_LOCATION}} 50 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 51 | 52 | #endif // !defined(AFX_CODEDLG_H__F192A421_7A3C_4ECC_8C53_CD15E4A0167E__INCLUDED_) 53 | -------------------------------------------------------------------------------- /src/CopyExDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_) 2 | #define AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // CopyExDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CCopyExDlg dialog 12 | 13 | class CCopyExDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CCopyExDlg(CWnd* pParent = NULL); // standard constructor 18 | 19 | // Dialog Data 20 | //{{AFX_DATA(CCopyExDlg) 21 | enum { IDD = IDD_COPYEX_DLG }; 22 | CQButton m_cRadioAsw; 23 | CQButton m_cRadioQ; 24 | CQButton m_cRadioAll; 25 | CQButton m_cBtnOK; 26 | int m_nSel; 27 | //}}AFX_DATA 28 | 29 | 30 | // Overrides 31 | // ClassWizard generated virtual function overrides 32 | //{{AFX_VIRTUAL(CCopyExDlg) 33 | protected: 34 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 35 | //}}AFX_VIRTUAL 36 | 37 | // Implementation 38 | protected: 39 | 40 | // Generated message map functions 41 | //{{AFX_MSG(CCopyExDlg) 42 | // NOTE: the ClassWizard will add member functions here 43 | //}}AFX_MSG 44 | DECLARE_MESSAGE_MAP() 45 | }; 46 | 47 | //{{AFX_INSERT_LOCATION}} 48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 49 | 50 | #endif // !defined(AFX_COPYEXDLG_H__7D594A0F_EB6A_40B6_B9A8_DA9869D769B4__INCLUDED_) 51 | -------------------------------------------------------------------------------- /src/SummaryLenDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_) 2 | #define AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // SummaryLenDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CSummaryLenDlg dialog 12 | 13 | class CSummaryLenDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CSummaryLenDlg(int nLen, CWnd* pParent = NULL); // standard constructor 18 | 19 | int m_nLen; 20 | 21 | // Dialog Data 22 | //{{AFX_DATA(CSummaryLenDlg) 23 | enum { IDD = IDD_SUMMARYLEN_DLG }; 24 | CQButton m_cBtnOK; 25 | CQEdit m_cEditLen; 26 | //}}AFX_DATA 27 | 28 | 29 | // Overrides 30 | // ClassWizard generated virtual function overrides 31 | //{{AFX_VIRTUAL(CSummaryLenDlg) 32 | protected: 33 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 34 | //}}AFX_VIRTUAL 35 | 36 | // Implementation 37 | protected: 38 | 39 | // Generated message map functions 40 | //{{AFX_MSG(CSummaryLenDlg) 41 | virtual void OnOK(); 42 | virtual BOOL OnInitDialog(); 43 | //}}AFX_MSG 44 | DECLARE_MESSAGE_MAP() 45 | }; 46 | 47 | //{{AFX_INSERT_LOCATION}} 48 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 49 | 50 | #endif // !defined(AFX_SUMMARYLENDLG_H__2EC0764D_AE48_48C9_8F05_F2990C3E9B4C__INCLUDED_) 51 | -------------------------------------------------------------------------------- /docs/0.0.4_index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon快速索引 16 |

17 |
18 | 19 | 37 | 38 | 39 | 40 |
上一篇回到开始下一篇
41 | 42 |
43 | GX Software 2020-2021
44 | V2.0 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /docs/2.1.2_extern.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon外部库 16 |

17 |
18 | 19 |
题库压缩
20 |
21 | 采用zlib,版本号1.2.11,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。 22 |
23 | 24 |
XML解析
25 |
26 | 采用tinyxml,版本号2.6.2,代码直接嵌入工程。 27 |
28 | 29 |
JPEG图像读写
30 |
31 | 采用libjpeg,版本号9d,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。 32 |
33 | 34 |
PNG图像显示
35 |
36 | 采用libpng,版本号1.6.37,静态链接方式,编译环境Microsoft Visual C++ 6.0 Professional Edition。 37 |
38 | 39 | 40 | 41 |
上一篇目录下一篇
42 | 43 |
44 | GX Software 2020-2021
45 | V2.0 46 | 47 | 48 | 49 | -------------------------------------------------------------------------------- /src/ClrDialog.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_) 2 | #define AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // ClrDialog.h : header file 8 | // 9 | 10 | #include "QButton.h" 11 | #include "QEdit.h" 12 | #include "QGroupBox.h" 13 | #include "QTabCtrl.h" 14 | #include "QComboBox.h" 15 | #include "QColorSetter.h" 16 | 17 | ///////////////////////////////////////////////////////////////////////////// 18 | // CClrDialog dialog 19 | 20 | class CClrDialog : public CDialog 21 | { 22 | // Construction 23 | public: 24 | CClrDialog(UINT nIDTemplate, CWnd* pParent = NULL); 25 | 26 | // Dialog Data 27 | //{{AFX_DATA(CClrDialog) 28 | // NOTE: the ClassWizard will add data members here 29 | //}}AFX_DATA 30 | 31 | 32 | // Overrides 33 | // ClassWizard generated virtual function overrides 34 | //{{AFX_VIRTUAL(CClrDialog) 35 | protected: 36 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 37 | //}}AFX_VIRTUAL 38 | 39 | // Implementation 40 | protected: 41 | 42 | // Generated message map functions 43 | //{{AFX_MSG(CClrDialog) 44 | afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 45 | virtual BOOL OnInitDialog(); 46 | //}}AFX_MSG 47 | DECLARE_MESSAGE_MAP() 48 | }; 49 | 50 | //{{AFX_INSERT_LOCATION}} 51 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 52 | 53 | #endif // !defined(AFX_CLRDIALOG_H__5C025795_F6AB_417F_BEF7_579AF050D5D0__INCLUDED_) 54 | -------------------------------------------------------------------------------- /src/QColorSetter.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_) 2 | #define AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // QColorSetter.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CQColorSetter window 12 | 13 | class CQColorSetter : public CWnd 14 | { 15 | // Construction 16 | public: 17 | CQColorSetter(); 18 | 19 | // Attributes 20 | public: 21 | 22 | // Operations 23 | public: 24 | void SetColor(COLORREF clr); 25 | void SetReadOnly(BOOL bReadOnly) { m_bReadOnly = bReadOnly; } 26 | 27 | // Overrides 28 | // ClassWizard generated virtual function overrides 29 | //{{AFX_VIRTUAL(CQColorSetter) 30 | protected: 31 | virtual void PreSubclassWindow(); 32 | //}}AFX_VIRTUAL 33 | 34 | // Implementation 35 | public: 36 | virtual ~CQColorSetter(); 37 | 38 | CRect m_rcClient; 39 | COLORREF m_clr; 40 | BOOL m_bReadOnly; 41 | 42 | // Generated message map functions 43 | protected: 44 | //{{AFX_MSG(CQColorSetter) 45 | afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); 46 | afx_msg void OnPaint(); 47 | //}}AFX_MSG 48 | 49 | DECLARE_MESSAGE_MAP() 50 | }; 51 | 52 | ///////////////////////////////////////////////////////////////////////////// 53 | 54 | //{{AFX_INSERT_LOCATION}} 55 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 56 | 57 | #endif // !defined(AFX_QCOLORSETTER_H__DBE098D6_BBC0_4715_A99C_EDF21379C0D8__INCLUDED_) 58 | -------------------------------------------------------------------------------- /docs/1.2.3_itemimage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon题目图片 16 |

17 |
18 | 19 |
20 | 题目中题干、解析中的图片将通过以下窗口进行管理。 21 |
22 |
23 | 题目图片 24 |
25 | 26 |
27 | 点击“添加图片”可新增一张图片,支持添加bmp、jpeg、png格式图片,像素值不超过640×640,文件大小不限;点击“重设图片”可将当前图片修改为其他图片;点击“删除图片”可将当前显示图片删除;当添加了多张图片时,可利用“上一张”“下一张”翻动查看。 28 |
29 | 30 |
31 | 您可以为每张图片设置一个标题,最多支持32个字符,标题设置后立即生效。 32 |
33 | 34 | 35 | 36 |
警告在显示带有图片的题目时,图片将在题干之后依次显示,并显示图片序号及标题。
显示带图片题目
37 | 38 | 39 | 40 |
上一篇目录下一篇
41 | 42 |
43 | GX Software 2020-2021
44 | V2.0 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/AddTypeDlg.cpp: -------------------------------------------------------------------------------- 1 | // AddTypeDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "AddTypeDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CAddTypeDlg dialog 16 | 17 | 18 | CAddTypeDlg::CAddTypeDlg(CWnd* pParent /*=NULL*/) : 19 | CClrDialog(CAddTypeDlg::IDD, pParent) 20 | { 21 | //{{AFX_DATA_INIT(CAddTypeDlg) 22 | // NOTE: the ClassWizard will add member initialization here 23 | //}}AFX_DATA_INIT 24 | } 25 | 26 | 27 | void CAddTypeDlg::DoDataExchange(CDataExchange* pDX) 28 | { 29 | CDialog::DoDataExchange(pDX); 30 | //{{AFX_DATA_MAP(CAddTypeDlg) 31 | DDX_Control(pDX, IDOK, m_cBtnOK); 32 | DDX_Control(pDX, IDC_COMBO_TYPE, m_cCombo); 33 | //}}AFX_DATA_MAP 34 | } 35 | 36 | 37 | BEGIN_MESSAGE_MAP(CAddTypeDlg, CClrDialog) 38 | //{{AFX_MSG_MAP(CAddTypeDlg) 39 | //}}AFX_MSG_MAP 40 | END_MESSAGE_MAP() 41 | 42 | ///////////////////////////////////////////////////////////////////////////// 43 | // CAddTypeDlg message handlers 44 | 45 | void CAddTypeDlg::OnOK() 46 | { 47 | EndDialog(m_cCombo.GetCurSel() + TYPE_SCHOISE); 48 | } 49 | 50 | void CAddTypeDlg::OnCancel() 51 | { 52 | EndDialog(TYPE_DEFAULT); 53 | } 54 | 55 | BOOL CAddTypeDlg::OnInitDialog() 56 | { 57 | CClrDialog::OnInitDialog(); 58 | 59 | m_cCombo.SetCurSel(0); 60 | 61 | return TRUE; // return TRUE unless you set the focus to a control 62 | // EXCEPTION: OCX Property Pages should return FALSE 63 | } 64 | -------------------------------------------------------------------------------- /src/CodeDlg.cpp: -------------------------------------------------------------------------------- 1 | // CodeDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "CodeDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CCodeDlg dialog 16 | 17 | 18 | CCodeDlg::CCodeDlg(CWnd* pParent /*=NULL*/) : 19 | CClrDialog(CCodeDlg::IDD, pParent) 20 | { 21 | //{{AFX_DATA_INIT(CCodeDlg) 22 | // NOTE: the ClassWizard will add member initialization here 23 | //}}AFX_DATA_INIT 24 | 25 | #ifdef _UNICODE 26 | m_nCS = CS_UTF16; 27 | #else 28 | m_nCS = CS_ANSI; 29 | #endif 30 | } 31 | 32 | 33 | void CCodeDlg::DoDataExchange(CDataExchange* pDX) 34 | { 35 | CDialog::DoDataExchange(pDX); 36 | //{{AFX_DATA_MAP(CCodeDlg) 37 | DDX_Control(pDX, IDOK, m_cBtnOK); 38 | DDX_Control(pDX, IDC_COMBO_CODE, m_cCombo); 39 | //}}AFX_DATA_MAP 40 | } 41 | 42 | 43 | BEGIN_MESSAGE_MAP(CCodeDlg, CClrDialog) 44 | //{{AFX_MSG_MAP(CCodeDlg) 45 | //}}AFX_MSG_MAP 46 | END_MESSAGE_MAP() 47 | 48 | ///////////////////////////////////////////////////////////////////////////// 49 | // CCodeDlg message handlers 50 | 51 | BOOL CCodeDlg::OnInitDialog() 52 | { 53 | CClrDialog::OnInitDialog(); 54 | 55 | ((CComboBox*)GetDlgItem(IDC_COMBO_CODE))->SetCurSel(0); 56 | 57 | return TRUE; // return TRUE unless you set the focus to a control 58 | // EXCEPTION: OCX Property Pages should return FALSE 59 | } 60 | 61 | 62 | void CCodeDlg::OnOK() 63 | { 64 | m_nCS = ((CComboBox*)GetDlgItem(IDC_COMBO_CODE))->GetCurSel(); 65 | 66 | CDialog::OnOK(); 67 | } 68 | 69 | -------------------------------------------------------------------------------- /src/QButton.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_) 2 | #define AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // QButton.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CQButton window 12 | 13 | class CQButton : public CButton 14 | { 15 | // Construction 16 | public: 17 | CQButton(); 18 | 19 | // Attributes 20 | public: 21 | 22 | // Operations 23 | public: 24 | static void FUNCCALL DrawButton(HWND hWnd, HDC hWndDC, BOOL bDown); 25 | 26 | // Overrides 27 | // ClassWizard generated virtual function overrides 28 | //{{AFX_VIRTUAL(CQButton) 29 | public: 30 | virtual BOOL PreTranslateMessage(MSG* pMsg); 31 | //}}AFX_VIRTUAL 32 | 33 | // Implementation 34 | public: 35 | virtual ~CQButton(); 36 | 37 | // Generated message map functions 38 | protected: 39 | //{{AFX_MSG(CQButton) 40 | afx_msg UINT OnGetDlgCode(); 41 | afx_msg void OnPaint(); 42 | afx_msg void OnMouseMove(UINT nFlags, CPoint point); 43 | afx_msg void OnEnable(BOOL bEnable); 44 | afx_msg BOOL OnEraseBkgnd(CDC* pDC); 45 | //}}AFX_MSG 46 | afx_msg LRESULT OnSetText(WPARAM wParam, LPARAM lParam); 47 | 48 | DECLARE_MESSAGE_MAP() 49 | 50 | protected: 51 | BOOL m_bDown; 52 | }; 53 | 54 | ///////////////////////////////////////////////////////////////////////////// 55 | 56 | //{{AFX_INSERT_LOCATION}} 57 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 58 | 59 | #endif // !defined(AFX_QBUTTON_H__2A1AD1FD_A49D_4A91_AC40_E31C8FC5FAA9__INCLUDED_) 60 | -------------------------------------------------------------------------------- /src/BatchSetDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_) 2 | #define AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // BatchSetDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CBatchSetDlg dialog 12 | 13 | class CBatchSetDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CBatchSetDlg(BOOL bEditFlag, CWnd* pParent = NULL); // standard constructor 18 | 19 | // Dialog Data 20 | //{{AFX_DATA(CBatchSetDlg) 21 | enum { IDD = IDD_BATCHSET_DLG }; 22 | CQButton m_cBtnOK; 23 | CQButton m_cRadioMToS; 24 | CQButton m_cRadioSToM; 25 | CQButton m_cRadioSelDuplicate; 26 | CQEdit m_cEditSimilar; 27 | CQButton m_cRadioCToJ; 28 | int m_nIndex; 29 | int m_nSimilar; 30 | //}}AFX_DATA 31 | 32 | // Overrides 33 | // ClassWizard generated virtual function overrides 34 | //{{AFX_VIRTUAL(CBatchSetDlg) 35 | protected: 36 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 37 | virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam); 38 | //}}AFX_VIRTUAL 39 | 40 | // Implementation 41 | protected: 42 | BOOL m_bEditFlag; 43 | 44 | BOOL CheckInput(UINT nID = 0); 45 | 46 | // Generated message map functions 47 | //{{AFX_MSG(CBatchSetDlg) 48 | virtual BOOL OnInitDialog(); 49 | //}}AFX_MSG 50 | DECLARE_MESSAGE_MAP() 51 | }; 52 | 53 | //{{AFX_INSERT_LOCATION}} 54 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 55 | 56 | #endif // !defined(AFX_BATCHSETDLG_H__BE06B25B_B3D3_47B8_8C64_068B17793538__INCLUDED_) 57 | -------------------------------------------------------------------------------- /docs/2.1.1_check.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon题目校验算法 16 |

17 |
18 | 19 |
20 | 题目的校验算法采用16位累加校验算法,即计算题目内容的累加和,超出16位的部分自动舍弃,最终得出校验码。 21 |
22 | 23 |
单选题/多选题的校验
24 |
25 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个选项中每字UTF-16编码的累加和。 26 |
27 | 28 |
判断题的校验
29 |
30 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和。 31 |
32 | 33 |
填空题的校验
34 |
35 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个空白的起始位置偏移量+每个空白的结束位置偏移量+每个空白答案中每字UTF-16编码的累加和。 36 |
37 | 38 |
简答题的校验
39 |
40 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+答案中每字UTF-16编码的累加和。 41 |
42 | 43 |
题目组的校验
44 |
45 | 校验码=题目类型编码+题干中每字UTF-16编码的累加和+每个子题目的校验码。 46 |
47 | 48 | 49 | 50 |
上一篇目录下一篇
51 | 52 |
53 | GX Software 2020-2021
54 | V2.0 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /docs/1.0.5_testmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon“测试”菜单 16 |

17 |
18 | 19 |
20 | 测试菜单 21 |
22 | 23 |
24 | “测试”菜单的相关说明如下: 25 |
26 | 27 |
28 |
29 | 启动一次自我测试,详见开始考试。 30 |
31 | 32 |
33 |
34 | 学习当前题库,详见开始学习。 35 |
36 | 37 |
38 |
39 | 根据设定,生成一份可以用于打印的试卷,详见生成试卷。 40 |
41 | 42 |
43 |
44 | 启动一次当前题库的抢答练习,详见抢答练习。 45 |
46 | 47 | 48 | 49 |
上一篇目录下一篇
50 | 51 |
52 | GX Software 2020-2021
53 | V2.0 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /src/TabPage.cpp: -------------------------------------------------------------------------------- 1 | // TabPage.cpp: implementation of the CTabPage class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #include "stdafx.h" 6 | #include "TabPage.h" 7 | 8 | #ifdef _DEBUG 9 | #undef THIS_FILE 10 | static char THIS_FILE[]=__FILE__; 11 | #define new DEBUG_NEW 12 | #endif 13 | 14 | ////////////////////////////////////////////////////////////////////// 15 | // Construction/Destruction 16 | ////////////////////////////////////////////////////////////////////// 17 | 18 | CTabPage::CTabPage(UINT nIDTemplate, CWnd* pParentWnd /* = NULL */) : 19 | CClrDialog(nIDTemplate, pParentWnd), 20 | m_bModify(FALSE) 21 | { 22 | 23 | } 24 | 25 | CTabPage::~CTabPage() 26 | { 27 | 28 | } 29 | 30 | BEGIN_MESSAGE_MAP(CTabPage, CClrDialog) 31 | //{{AFX_MSG_MAP(CTabPage) 32 | //}}AFX_MSG_MAP 33 | END_MESSAGE_MAP() 34 | 35 | BOOL CTabPage::Create(UINT nIDTemplate, CWnd* pParentWnd /* = NULL */) 36 | { 37 | if (!CDialog::Create(nIDTemplate, pParentWnd)) 38 | { 39 | return FALSE; 40 | } 41 | 42 | return TRUE; 43 | } 44 | 45 | BOOL CTabPage::OnInitDialog() 46 | { 47 | CClrDialog::OnInitDialog(); 48 | 49 | EnableDialogTexture(); 50 | 51 | return TRUE; 52 | } 53 | 54 | typedef HRESULT (WINAPI *PFNETDT)(HWND, DWORD); 55 | #define ETDT_USETABTEXTURE 0x00000004 56 | LRESULT CTabPage::EnableDialogTexture() 57 | { 58 | PFNETDT pfn; 59 | HMODULE hModule; 60 | hModule = LoadLibrary(TEXT("uxtheme.dll")); 61 | if (hModule != NULL) 62 | { 63 | pfn = (PFNETDT)GetProcAddress(hModule, "EnableThemeDialogTexture"); 64 | FreeLibrary(hModule); 65 | if (pfn != NULL) 66 | { 67 | return (*pfn)(GetSafeHwnd(), ETDT_USETABTEXTURE); 68 | } 69 | } 70 | return E_FAIL; 71 | } 72 | -------------------------------------------------------------------------------- /src/QuickQuiz.h: -------------------------------------------------------------------------------- 1 | // QuickQuiz.h : main header file for the QUICKQUIZ application 2 | // 3 | 4 | #if !defined(AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_) 5 | #define AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_ 6 | 7 | #if _MSC_VER > 1000 8 | #pragma once 9 | #endif // _MSC_VER > 1000 10 | 11 | #ifndef __AFXWIN_H__ 12 | #error include 'stdafx.h' before including this file for PCH 13 | #endif 14 | 15 | #include "resource.h" 16 | #include "FixedRecentFileList.h" 17 | 18 | class CDoc; 19 | 20 | ///////////////////////////////////////////////////////////////////////////// 21 | // CApp: 22 | // See QuickQuiz.cpp for the implementation of this class 23 | // 24 | 25 | class CApp : public CWinApp 26 | { 27 | public: 28 | CApp(); 29 | 30 | void OnUpdateMRUFile(CCmdUI *pCmdUI); 31 | BOOL OpenRecentFile(CDoc *pDoc, UINT nID); 32 | BOOL IsAnyRecentFile(); 33 | 34 | // Overrides 35 | // ClassWizard generated virtual function overrides 36 | //{{AFX_VIRTUAL(CApp) 37 | public: 38 | virtual BOOL InitInstance(); 39 | virtual int ExitInstance(); 40 | //}}AFX_VIRTUAL 41 | 42 | // Implementation 43 | //{{AFX_MSG(CApp) 44 | afx_msg void OnAppAbout(); 45 | afx_msg void OnClearMRU(); 46 | //}}AFX_MSG 47 | DECLARE_MESSAGE_MAP() 48 | 49 | protected: 50 | void LoadStdProfileSettings(UINT nMaxMRU = _AFX_MRU_COUNT); 51 | void ResetRegisterKey(); 52 | 53 | BOOL CheckSimple(); 54 | }; 55 | 56 | 57 | ///////////////////////////////////////////////////////////////////////////// 58 | 59 | //{{AFX_INSERT_LOCATION}} 60 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 61 | 62 | #endif // !defined(AFX_QUICKQUIZ_H__FA1CD5BC_C553_4600_94ED_11F1F68500BD__INCLUDED_) 63 | -------------------------------------------------------------------------------- /src/SummaryLenDlg.cpp: -------------------------------------------------------------------------------- 1 | // SummaryLenDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "SummaryLenDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CSummaryLenDlg dialog 16 | 17 | 18 | CSummaryLenDlg::CSummaryLenDlg(int nLen, CWnd* pParent /*=NULL*/) : 19 | CClrDialog(CSummaryLenDlg::IDD, pParent), 20 | m_nLen(nLen) 21 | { 22 | //{{AFX_DATA_INIT(CSummaryLenDlg) 23 | // NOTE: the ClassWizard will add member initialization here 24 | //}}AFX_DATA_INIT 25 | } 26 | 27 | 28 | void CSummaryLenDlg::DoDataExchange(CDataExchange* pDX) 29 | { 30 | CClrDialog::DoDataExchange(pDX); 31 | //{{AFX_DATA_MAP(CSummaryLenDlg) 32 | DDX_Control(pDX, IDOK, m_cBtnOK); 33 | DDX_Control(pDX, IDC_EDIT_SUMMARYLEN, m_cEditLen); 34 | //}}AFX_DATA_MAP 35 | } 36 | 37 | 38 | BEGIN_MESSAGE_MAP(CSummaryLenDlg, CClrDialog) 39 | //{{AFX_MSG_MAP(CSummaryLenDlg) 40 | //}}AFX_MSG_MAP 41 | END_MESSAGE_MAP() 42 | 43 | ///////////////////////////////////////////////////////////////////////////// 44 | // CSummaryLenDlg message handlers 45 | 46 | void CSummaryLenDlg::OnOK() 47 | { 48 | m_nLen = GetDlgItemInt(IDC_EDIT_SUMMARYLEN); 49 | m_nLen = max(20, min(120, m_nLen)); 50 | 51 | CClrDialog::OnOK(); 52 | } 53 | 54 | BOOL CSummaryLenDlg::OnInitDialog() 55 | { 56 | CClrDialog::OnInitDialog(); 57 | 58 | m_cEditLen.SetLimitText(3); 59 | SetDlgItemInt(IDC_EDIT_SUMMARYLEN, m_nLen); 60 | 61 | return TRUE; // return TRUE unless you set the focus to a control 62 | // EXCEPTION: OCX Property Pages should return FALSE 63 | } 64 | -------------------------------------------------------------------------------- /src/QColorSetter.cpp: -------------------------------------------------------------------------------- 1 | // QColorSetter.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "QColorSetter.h" 6 | 7 | #ifdef _DEBUG 8 | #define new DEBUG_NEW 9 | #undef THIS_FILE 10 | static char THIS_FILE[] = __FILE__; 11 | #endif 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | // CQColorSetter 15 | 16 | CQColorSetter::CQColorSetter() : 17 | m_bReadOnly(FALSE) 18 | { 19 | } 20 | 21 | CQColorSetter::~CQColorSetter() 22 | { 23 | } 24 | 25 | 26 | BEGIN_MESSAGE_MAP(CQColorSetter, CWnd) 27 | //{{AFX_MSG_MAP(CQColorSetter) 28 | ON_WM_SETCURSOR() 29 | ON_WM_PAINT() 30 | //}}AFX_MSG_MAP 31 | END_MESSAGE_MAP() 32 | 33 | ///////////////////////////////////////////////////////////////////////////// 34 | // CQColorSetter message handlers 35 | 36 | void CQColorSetter::PreSubclassWindow() 37 | { 38 | GetClientRect(m_rcClient); 39 | ModifyStyle(NULL, SS_NOTIFY); 40 | 41 | CWnd::PreSubclassWindow(); 42 | } 43 | 44 | BOOL CQColorSetter::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 45 | { 46 | if (m_bReadOnly) 47 | { 48 | return 0; 49 | } 50 | else 51 | { 52 | ::SetCursor(LoadCursor(NULL, IDC_HAND)); 53 | return 1; 54 | } 55 | } 56 | 57 | void CQColorSetter::OnPaint() 58 | { 59 | CPaintDC dc(this); // device context for painting 60 | HPEN pen = ::CreatePen(PS_SOLID, 1, 0); 61 | 62 | dc.SelectObject(pen); 63 | dc.SelectObject(GetStockObject(NULL_BRUSH)); 64 | 65 | dc.FillSolidRect(0, 0, m_rcClient.Width(), m_rcClient.Height(), m_clr); 66 | dc.Rectangle(m_rcClient); 67 | 68 | DeleteObject(pen); 69 | 70 | // Do not call CWnd::OnPaint() for painting messages 71 | } 72 | 73 | void CQColorSetter::SetColor(COLORREF clr) 74 | { 75 | m_clr = clr; 76 | Invalidate(TRUE); 77 | } -------------------------------------------------------------------------------- /QuickQuiz.dsw: -------------------------------------------------------------------------------- 1 | Microsoft Developer Studio Workspace File, Format Version 6.00 2 | # WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! 3 | 4 | ############################################################################### 5 | 6 | Project: "QuickQuiz"=.\QuickQuiz.dsp - Package Owner=<4> 7 | 8 | Package=<5> 9 | {{{ 10 | }}} 11 | 12 | Package=<4> 13 | {{{ 14 | Begin Project Dependency 15 | Project_Dep_Name jpeg 16 | End Project Dependency 17 | Begin Project Dependency 18 | Project_Dep_Name libpng 19 | End Project Dependency 20 | Begin Project Dependency 21 | Project_Dep_Name zlib 22 | End Project Dependency 23 | }}} 24 | 25 | ############################################################################### 26 | 27 | Project: "jpeg"=.\lib\libjpeg\jpeg.dsp - Package Owner=<4> 28 | 29 | Package=<5> 30 | {{{ 31 | }}} 32 | 33 | Package=<4> 34 | {{{ 35 | }}} 36 | 37 | ############################################################################### 38 | 39 | Project: "libpng"=.\lib\libpng\projects\visualc6\libpng.dsp - Package Owner=<4> 40 | 41 | Package=<5> 42 | {{{ 43 | }}} 44 | 45 | Package=<4> 46 | {{{ 47 | Begin Project Dependency 48 | Project_Dep_Name zlib 49 | End Project Dependency 50 | }}} 51 | 52 | ############################################################################### 53 | 54 | Project: "zlib"=.\lib\zlib\project\visualc6\zlib.dsp - Package Owner=<4> 55 | 56 | Package=<5> 57 | {{{ 58 | }}} 59 | 60 | Package=<4> 61 | {{{ 62 | }}} 63 | 64 | ############################################################################### 65 | 66 | Global: 67 | 68 | Package=<5> 69 | {{{ 70 | }}} 71 | 72 | Package=<3> 73 | {{{ 74 | }}} 75 | 76 | ############################################################################### 77 | 78 | -------------------------------------------------------------------------------- /lib/libjpeg/jconfig.h: -------------------------------------------------------------------------------- 1 | /* jconfig.vc --- jconfig.h for Microsoft Visual C++ on Windows 9x or NT. */ 2 | /* This file also works for Borland C++ 32-bit (bcc32) on Windows 9x or NT. */ 3 | /* see jconfig.txt for explanations */ 4 | 5 | #define HAVE_PROTOTYPES 6 | #define HAVE_UNSIGNED_CHAR 7 | #define HAVE_UNSIGNED_SHORT 8 | /* #define void char */ 9 | /* #define const */ 10 | #undef CHAR_IS_UNSIGNED 11 | #define HAVE_STDDEF_H 12 | #define HAVE_STDLIB_H 13 | #undef NEED_BSD_STRINGS 14 | #undef NEED_SYS_TYPES_H 15 | #undef NEED_FAR_POINTERS /* we presume a 32-bit flat memory model */ 16 | #undef NEED_SHORT_EXTERNAL_NAMES 17 | #undef INCOMPLETE_TYPES_BROKEN 18 | 19 | /* Define "boolean" as unsigned char, not enum, per Windows custom */ 20 | #ifndef __RPCNDR_H__ /* don't conflict if rpcndr.h already read */ 21 | typedef unsigned char boolean; 22 | #endif 23 | #ifndef FALSE /* in case these macros already exist */ 24 | #define FALSE 0 /* values of boolean */ 25 | #endif 26 | #ifndef TRUE 27 | #define TRUE 1 28 | #endif 29 | #define HAVE_BOOLEAN /* prevent jmorecfg.h from redefining it */ 30 | 31 | 32 | #ifdef JPEG_INTERNALS 33 | 34 | #undef RIGHT_SHIFT_IS_UNSIGNED 35 | 36 | #endif /* JPEG_INTERNALS */ 37 | 38 | #ifdef JPEG_CJPEG_DJPEG 39 | 40 | #define BMP_SUPPORTED /* BMP image file format */ 41 | #define GIF_SUPPORTED /* GIF image file format */ 42 | #define PPM_SUPPORTED /* PBMPLUS PPM/PGM image file format */ 43 | #undef RLE_SUPPORTED /* Utah RLE image file format */ 44 | #define TARGA_SUPPORTED /* Targa image file format */ 45 | 46 | #define TWO_FILE_COMMANDLINE /* optional */ 47 | #define USE_SETMODE /* Microsoft has setmode() */ 48 | #undef NEED_SIGNAL_CATCHER 49 | #undef DONT_USE_B_MODE 50 | #undef PROGRESS_REPORT /* optional */ 51 | 52 | #endif /* JPEG_CJPEG_DJPEG */ 53 | -------------------------------------------------------------------------------- /src/ChooseTypeDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_) 2 | #define AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // ChooseTypeDlg.h : header file 8 | // 9 | #include "ClrDialog.h" 10 | 11 | #define LASTVIEWLISTSIZE 10 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | // CChooseTypeDlg dialog 15 | 16 | class CChooseTypeDlg : public CClrDialog 17 | { 18 | // Construction 19 | public: 20 | CChooseTypeDlg(PTYPEPARA pPara, CPaper *pPaper, 21 | CWnd* pParent = NULL); // standard constructor 22 | 23 | // Dialog Data 24 | //{{AFX_DATA(CChooseTypeDlg) 25 | enum { IDD = IDD_CHOOSETYPE_DLG }; 26 | CListCtrl m_cList; 27 | CQButton m_cBtnOK; 28 | CQGroupBox m_cGroup1; 29 | CQButton m_cCheckRandom; 30 | BOOL m_bRandom; 31 | //}}AFX_DATA 32 | 33 | 34 | // Overrides 35 | // ClassWizard generated virtual function overrides 36 | //{{AFX_VIRTUAL(CChooseTypeDlg) 37 | protected: 38 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 39 | //}}AFX_VIRTUAL 40 | 41 | // Implementation 42 | protected: 43 | 44 | // Generated message map functions 45 | //{{AFX_MSG(CChooseTypeDlg) 46 | virtual void OnOK(); 47 | virtual BOOL OnInitDialog(); 48 | afx_msg void OnClickType(NMHDR* pNMHDR, LRESULT* pResult); 49 | //}}AFX_MSG 50 | DECLARE_MESSAGE_MAP() 51 | 52 | void InitShow(); 53 | 54 | protected: 55 | PTYPEPARA m_pPara; 56 | CPaper *m_pPaper; 57 | }; 58 | 59 | //{{AFX_INSERT_LOCATION}} 60 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 61 | 62 | #endif // !defined(AFX_CHOOSETYPEDLG_H__323A5A94_9E0A_48AC_8AF7_8FC324AEB100__INCLUDED_) 63 | -------------------------------------------------------------------------------- /docs/2.0.0_develop.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon开发资料 16 |

17 |
18 | 19 | 20 | 21 |
警告本部分供本程序源码的维护者及兼容程序的开发者参考,如果您为应用程序的使用者,不需要关注此部分。
22 | 23 |
24 | 本开发资料包含以下内容: 25 |
26 | 27 | 37 | 38 |
39 | 本开发资料假设维护者及开发者对程序设计语言、文件系统及相关算法已有足够了解,同时受限于篇幅及个人精力,恕不对本应用程序的源码进行解读,也不对算法做原理性解释。 40 |
41 | 42 | 43 | 44 |
上一篇回到索引下一篇
45 | 46 |
47 | GX Software 2020-2021
48 | V2.0 49 | 50 | 51 | 52 | -------------------------------------------------------------------------------- /docs/1.2.1_storeitem.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon收藏题目 16 |

17 |
18 | 19 |
20 | 收藏题目 21 |
22 | 23 |
24 | 被收藏的题目将在主界面右侧窗格的左端显示一个收藏记号收藏记号,可以在每个题库内的“收藏夹”中查看全部被收藏的题目。 25 |
26 | 27 | 28 |
警告题目组也可被收藏,视为收藏题目组中全部题目。
在“收藏夹”列表中,仅可以查看题目或取消收藏,不可对题目进行任何编辑操作。
29 | 30 |
31 | 收藏信息保存在收藏夹文件中。收藏夹文件名和题库文件名相同,扩展名*.sav,和题库文件在同一路径时可以自动载入。删除收藏夹文件不会影响题库的正常载入,但会丢失收藏信息。 32 |
33 |
34 | 关闭题库时,应用程序将自动保存收藏夹文件,保存路径和题库相同(不支持修改路径),若没有收藏题目,将不会生成收藏夹文件(若之前创建过收藏夹文件,之后又取消了全部收藏,则收藏夹文件会被删除)。 35 |
36 | 37 | 38 |
警告每个题库的收藏夹仅能保存本题库的题目。
39 | 40 | 41 | 42 |
上一篇目录下一篇
43 | 44 |
45 | GX Software 2020-2021
46 | V2.0 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /lib/zlib/win32/zlib.def: -------------------------------------------------------------------------------- 1 | ; zlib data compression library 2 | EXPORTS 3 | ; basic functions 4 | zlibVersion 5 | deflate 6 | deflateEnd 7 | inflate 8 | inflateEnd 9 | ; advanced functions 10 | deflateSetDictionary 11 | deflateGetDictionary 12 | deflateCopy 13 | deflateReset 14 | deflateParams 15 | deflateTune 16 | deflateBound 17 | deflatePending 18 | deflatePrime 19 | deflateSetHeader 20 | inflateSetDictionary 21 | inflateGetDictionary 22 | inflateSync 23 | inflateCopy 24 | inflateReset 25 | inflateReset2 26 | inflatePrime 27 | inflateMark 28 | inflateGetHeader 29 | inflateBack 30 | inflateBackEnd 31 | zlibCompileFlags 32 | ; utility functions 33 | compress 34 | compress2 35 | compressBound 36 | uncompress 37 | uncompress2 38 | gzopen 39 | gzdopen 40 | gzbuffer 41 | gzsetparams 42 | gzread 43 | gzfread 44 | gzwrite 45 | gzfwrite 46 | gzprintf 47 | gzvprintf 48 | gzputs 49 | gzgets 50 | gzputc 51 | gzgetc 52 | gzungetc 53 | gzflush 54 | gzseek 55 | gzrewind 56 | gztell 57 | gzoffset 58 | gzeof 59 | gzdirect 60 | gzclose 61 | gzclose_r 62 | gzclose_w 63 | gzerror 64 | gzclearerr 65 | ; large file functions 66 | gzopen64 67 | gzseek64 68 | gztell64 69 | gzoffset64 70 | adler32_combine64 71 | crc32_combine64 72 | ; checksum functions 73 | adler32 74 | adler32_z 75 | crc32 76 | crc32_z 77 | adler32_combine 78 | crc32_combine 79 | ; various hacks, don't look :) 80 | deflateInit_ 81 | deflateInit2_ 82 | inflateInit_ 83 | inflateInit2_ 84 | inflateBackInit_ 85 | gzgetc_ 86 | zError 87 | inflateSyncPoint 88 | get_crc_table 89 | inflateUndermine 90 | inflateValidate 91 | inflateCodesUsed 92 | inflateResetKeep 93 | deflateResetKeep 94 | gzopen_w 95 | -------------------------------------------------------------------------------- /src/TMessageBox.h: -------------------------------------------------------------------------------- 1 | // TMessageBox.h: interface for the CTMessageBox class. 2 | // 3 | ////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_) 6 | #define AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | #include "ClrDialog.h" 13 | 14 | #define MESSAGE_MAXLEN 255 15 | 16 | #define MB_CANCELTRYCONTINUE 0x00000006L 17 | #define IDTRYAGAIN 10 18 | #define IDCONTINUE 11 19 | 20 | class CTMessageBox 21 | { 22 | public: 23 | CTMessageBox(); 24 | virtual ~CTMessageBox(); 25 | 26 | int SuperMessageBox(HWND hWnd, 27 | UINT nFormatID, 28 | UINT nCaptionID, 29 | UINT uType, 30 | UINT uDefaultType, 31 | UINT dwSecond, ...); 32 | int SuperMessageBox(HWND hWnd, 33 | LPCTSTR lpText, 34 | UINT nCaptionID, 35 | UINT uType, 36 | UINT uDefaultType, 37 | UINT dwSecond); 38 | 39 | protected: 40 | int SuperMessageBox(HWND hWnd, LPCTSTR lpText, LPCTSTR lpCaption, UINT uType, UINT uDefaultType, UINT dwSecond); 41 | 42 | static LRESULT CALLBACK CBTProc(int nCode, WPARAM wParam, LPARAM lParam); 43 | static LRESULT WINAPI BoxProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 44 | static LRESULT WINAPI BtnProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam); 45 | static void CALLBACK TimerProc(HWND hwnd,UINT uMsg,UINT idEvent, DWORD dwTime); 46 | 47 | static int HandleResult(int nResult, LPARAM hCtrl); 48 | 49 | static TCHAR m_strMessage[MESSAGE_MAXLEN + 1]; 50 | static TCHAR m_strCaption[MESSAGE_MAXLEN + 1]; 51 | static UINT m_uType; 52 | 53 | static HHOOK m_hWndHook; 54 | static HWND m_hWnd; 55 | static HWND m_hTxtWnd; 56 | 57 | static int m_nTime; 58 | static UINT m_uDefault; 59 | }; 60 | 61 | #endif // !defined(AFX_TMESSAGEBOX_H__AC2090E6_92B4_4C09_BDE7_FACF6CD71268__INCLUDED_) 62 | -------------------------------------------------------------------------------- /docs/0.0.1_about.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon基本参数 16 |

17 |
18 | 19 |
表1  应用程序基本参数
20 | 21 | 22 | 23 | 28 | 29 | 30 | 31 |
程序名称QuickQuiz(中文名“快考”)
程序类型Windows 32位应用程序
运行环境Windows 95及更新版本操作系统,不需另外安装其他运行库; 24 | 25 | 26 |
警告当运行在Windows 95操作系统上时,Unicode版程序无法运行,仅可使用MBCS版程序,详情请参照在旧版本系统上使用本程序
在Windows 2000及更新版本系统上,建议您使用Unicode版程序,以获得最高的执行效率
27 |
默认语言简体中文
支持的题目类型
  • 单项选择题(每题最多8个选项)
  • 多项选择题(每题最多8个选项)
  • 判断题
  • 填空题(每题最多32个空白)
  • 简答题
  • 基于以上各类型的自定义类型
  • 题目组(每组最多200道子题目)
单题库题目数量限制5000
32 | 33 | 34 | 35 |
上一篇回到开始下一篇
36 | 37 |
38 | GX Software 2020-2021
39 | V2.0 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /docs/0.0.3_inold.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon在旧版本系统上使用本程序 16 |

17 |
18 | 19 |
20 | 尽管您很可能正在使用Windows XP或者更新版本的操作系统,但QuickQuiz在某些旧操作系统(Windows 95/98)上仍然可以运行,但在使用中,您需要注意以下几个问题: 21 |
22 | 23 | 28 |
29 | 兼容Windows 95 30 |
31 | 32 | 33 |
警告当勾选“兼容Windows 95”时,保存的题库将失去最大的兼容性,很可能无法在使用其它语言的操作系统上读取或正确显示,若非必要,请勿勾选此选项;
关于“最大兼容”选项,参见保存题库
34 | 37 | 38 | 39 | 40 |
上一篇回到开始下一篇
41 | 42 |
43 | GX Software 2020-2021
44 | V2.0 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /src/WordByWord.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_) 2 | #define AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // WordByWord.h : header file 8 | // 9 | 10 | #define WWN_SHOWEND 0 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | // CWordByWord window 14 | 15 | class CWordByWord : public CWnd 16 | { 17 | // Construction 18 | public: 19 | CWordByWord(); 20 | 21 | // Attributes 22 | public: 23 | 24 | // Operations 25 | public: 26 | void SetText(LPCTSTR string); 27 | void Show(int nInter, int nMaxLineCount = 0); 28 | void Stop(); 29 | inline BOOL IsEnd() { return m_bIsEnd; } 30 | 31 | // Overrides 32 | // ClassWizard generated virtual function overrides 33 | //{{AFX_VIRTUAL(CWordByWord) 34 | protected: 35 | virtual void PreSubclassWindow(); 36 | //}}AFX_VIRTUAL 37 | 38 | // Implementation 39 | public: 40 | virtual ~CWordByWord(); 41 | 42 | // Generated message map functions 43 | protected: 44 | //{{AFX_MSG(CWordByWord) 45 | afx_msg void OnPaint(); 46 | afx_msg void OnTimer(UINT nIDEvent); 47 | //}}AFX_MSG 48 | 49 | DECLARE_MESSAGE_MAP() 50 | 51 | void DisplayText(HDC dc); 52 | void InCreateReturnList(int nNeedLen); 53 | BOOL SetNextWord(); 54 | 55 | protected: 56 | LPTSTR m_strText; 57 | 58 | CRect m_rcClient; 59 | int m_nHeight; 60 | int *m_ReturnIndex; 61 | int m_nReturnListCount; 62 | int m_nLineCount; 63 | 64 | int m_nMaxLineCount; 65 | int m_nFirstShowIndex; 66 | int m_nCurLine; 67 | int m_nCurIndex; 68 | int m_nCurLineFirst; 69 | 70 | BOOL m_bIsShowing; 71 | BOOL m_bIsEnd; 72 | }; 73 | 74 | ///////////////////////////////////////////////////////////////////////////// 75 | 76 | //{{AFX_INSERT_LOCATION}} 77 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 78 | 79 | #endif // !defined(AFX_WORDBYWORD_H__71C23541_FA74_47BF_96E1_98DE16A1CBD6__INCLUDED_) 80 | -------------------------------------------------------------------------------- /lib/tinyxml/tinyxmlerror.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | www.sourceforge.net/projects/tinyxml 3 | Original code (2.0 and earlier )copyright (c) 2000-2006 Lee Thomason (www.grinninglizard.com) 4 | 5 | This software is provided 'as-is', without any express or implied 6 | warranty. In no event will the authors be held liable for any 7 | damages arising from the use of this software. 8 | 9 | Permission is granted to anyone to use this software for any 10 | purpose, including commercial applications, and to alter it and 11 | redistribute it freely, subject to the following restrictions: 12 | 13 | 1. The origin of this software must not be misrepresented; you must 14 | not claim that you wrote the original software. If you use this 15 | software in a product, an acknowledgment in the product documentation 16 | would be appreciated but is not required. 17 | 18 | 2. Altered source versions must be plainly marked as such, and 19 | must not be misrepresented as being the original software. 20 | 21 | 3. This notice may not be removed or altered from any source 22 | distribution. 23 | */ 24 | 25 | #include "StdAfx.h" 26 | #include "tinyxml.h" 27 | 28 | // The goal of the seperate error file is to make the first 29 | // step towards localization. tinyxml (currently) only supports 30 | // english error messages, but the could now be translated. 31 | // 32 | // It also cleans up the code a bit. 33 | // 34 | 35 | const char* TiXmlBase::errorString[ TiXmlBase::TIXML_ERROR_STRING_COUNT ] = 36 | { 37 | "No error", 38 | "Error", 39 | "Failed to open file", 40 | "Error parsing Element.", 41 | "Failed to read Element name", 42 | "Error reading Element value.", 43 | "Error reading Attributes.", 44 | "Error: empty tag.", 45 | "Error reading end tag.", 46 | "Error parsing Unknown.", 47 | "Error parsing Comment.", 48 | "Error parsing Declaration.", 49 | "Error document empty.", 50 | "Error null (0) or unexpected EOF found in input stream.", 51 | "Error parsing CDATA.", 52 | "Error when TiXmlDocument added to document, because TiXmlDocument can only be at the root.", 53 | }; 54 | -------------------------------------------------------------------------------- /src/QTabCtrl.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_) 2 | #define AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // QTabCtrl.h : header file 8 | // 9 | 10 | class CTabPage; 11 | 12 | #define MAXPAGENUM 6 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CQTabCtrl window 16 | 17 | class CQTabCtrl : public CTabCtrl 18 | { 19 | // Construction 20 | public: 21 | CQTabCtrl(); 22 | 23 | // Attributes 24 | public: 25 | 26 | // Operations 27 | public: 28 | BOOL AddPage(UINT nIDTemplate, CTabPage *pPage, LPCTSTR szTitle); 29 | 30 | CTabPage* GetPage(int nIndex); 31 | int GetPageCount() { return m_nPageCount; } 32 | 33 | void SwitchPage(int nIndex); 34 | void SetChangeable(BOOL bIsChangeable) { m_bCanChangeType = bIsChangeable; } 35 | 36 | // Overrides 37 | // ClassWizard generated virtual function overrides 38 | //{{AFX_VIRTUAL(CQTabCtrl) 39 | protected: 40 | virtual void PreSubclassWindow(); 41 | //}}AFX_VIRTUAL 42 | 43 | // Implementation 44 | public: 45 | virtual ~CQTabCtrl(); 46 | 47 | // Generated message map functions 48 | protected: 49 | //{{AFX_MSG(CQTabCtrl) 50 | afx_msg void OnSelChange(NMHDR* pNMHDR, LRESULT* pResult); 51 | afx_msg BOOL OnEraseBkgnd(CDC* pDC); 52 | afx_msg void OnDestroy(); 53 | afx_msg void OnPaint(); 54 | //}}AFX_MSG 55 | DECLARE_MESSAGE_MAP() 56 | 57 | void SetChildPos(CTabPage *pPage); 58 | BOOL SwitchShow(int nIndex); 59 | 60 | void Paint(HDC hDC); 61 | 62 | protected: 63 | int m_nPageCount; 64 | int m_nShowingPage; 65 | 66 | CTabPage *m_pPageList[MAXPAGENUM]; 67 | 68 | BOOL m_bCanChangeType; 69 | }; 70 | 71 | ///////////////////////////////////////////////////////////////////////////// 72 | 73 | //{{AFX_INSERT_LOCATION}} 74 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 75 | 76 | #endif // !defined(AFX_QTABCTRL_H__67849A40_66AF_4A80_9932_B24E59CC1F33__INCLUDED_) 77 | -------------------------------------------------------------------------------- /docs/2.0.5_saveformat.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon收藏夹文件格式 16 |

17 |
18 | 19 |
20 | 用于记录题库收藏信息的文件,扩展名*.sav,此文件丢失也不应影响题库的正常读取。 21 |
22 | 23 |
表16  收藏夹文件格式
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
段序号段描述长度说明
1收藏夹开始标记14BytesASCII编码方式的“QuickQuiz_Save”字串,区分大小写。
收藏信息段开始,此段的个数为题库中题目总数量(题目组中每个子题目均各占一段)
2题目是否收藏1Byte0为未收藏,1为收藏。
题目校验码2Bytes用于校验题目,计算方法详见题目校验算法
收藏信息段结束
42 | 43 |
44 | 收藏夹文件中各收藏信息的顺序与题库中题目的顺序完全一致,读完全部题目内容后才读取收藏信息;读取时将判断题目的校验码是否正确,如果某题的校验码错误,将立即停止读取。 45 |
46 | 47 | 48 | 49 |
上一篇目录下一篇
50 | 51 |
52 | GX Software 2020-2021
53 | V2.0 54 | 55 | 56 | 57 | -------------------------------------------------------------------------------- /docs/1.3.1_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon开始学习 16 |

17 |
18 | 19 |
20 | 学习当前被选中题库的题目。 21 |
22 |
23 | 学习模式 24 |
25 | 26 |
27 | “学习模式”采用“默想+浏览”的学习方法,即首先查看题目并在心中默想答案,然后浏览正确答案进行自我验证。 28 |
29 |
30 | 双击右侧题目列表中的题目可以快速跳转。 31 |
32 | 33 |
34 |
35 | 逐步显示答案。以下说明的初始状态为:“题目”窗格中显示题目文本,“答案”与“题目解析”窗格中没有显示。 36 |
37 | 42 |
43 | 浏览完最后一道题目后,将重新定位至第一道题目。 44 |
45 | 46 |
47 |
48 | 仅针对填空题和简答题,勾选后,点击一次“下一步”即显示完整的答案,不再每次只显示一部分答案。 49 |
50 | 51 |
52 |
53 | 学习设置 54 |
55 |
56 | 勾选希望学习的题目类型。勾选“随机看题”后,会将题目打乱顺序,且每次浏览完最后一道题目后均会再次打乱。 57 |
58 | 59 | 60 | 61 |
上一篇目录下一篇
62 | 63 |
64 | GX Software 2020-2021
65 | V2.0 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /docs/4.0.1_view.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon学习模式 16 |

17 |
18 | 19 |
20 | 学习模式 21 |
22 | 23 |
24 |

滚动显示各题目。

25 | 26 |
27 |

切换显示答案与隐藏答案。

28 | 29 |
30 |

将当前题目收藏或取消收藏。

31 | 32 | 33 |
警告收藏的题目保存在当前设备的缓存中,清理缓存后收藏信息将丢失。
本收藏与桌面版应用程序的收藏夹没有任何关系。
34 | 35 |
36 |

输入题目序号,快速跳转至指定题目。

37 | 38 |
39 |

勾选您希望浏览的题目类型,自定义类型题目及题目组中的题目也将按照其基本类型显示(自定义类型名称及题目组类型名称将在顶部显示)。

40 | 41 |
42 |

打乱题目显示的顺序,“随机范围”用于设置打乱顺序的题目范围。

43 | 44 |
45 |

一段任意字串,用来控制题目的显示顺序,输入相同的随机Key将获得相同顺序的题目。

46 | 47 |
48 |

选择希望浏览的题目类型与乱序后,点击“更新题目”使设置生效。

49 | 50 |
51 |

查找包含有关键字的题目,多次点击“查找”可以依次浏览符合条件的题目。

52 | 53 | 54 | 55 |
上一篇目录下一篇
56 | 57 |
58 | GX Software 2020-2021
59 | V2.0 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | iconQuickQuiz帮助文档 16 |

17 |
18 | 19 |
20 | 欢迎您使用QuickQuiz! 21 |
22 | 23 |
24 | QuickQuiz(中文名称“快考”)是一部用于自学、备考、备赛的应用程序,包含题库制作、题目管理、题库浏览、自我测验、试卷生成等诸多功能,请参考使用说明获取更多信息。 25 |
26 | 27 |
28 | 本应用程序没有任何版权限制(本声明仅包含应用程序本身、源码以及本帮助文档),您可以免费使用与无限制传播,您也可以访问作者的Git库获取源码,并对其进行修正、任意修改与二次开发若您将本应用程序用于商业用途,造成的一切后果与作者无关。 29 |
30 | 31 |
32 | 本应用程序仅提供Windows系统(Win32)支持,若您有兴趣和能力在其它系统开发兼容版本,请参考开发资料获取更多开发信息, 33 |
34 | 35 |
36 | 本应用程序不收取任何费用,不会以任何形式联网,不会以任何形式推送广告,不会触发任何杀毒软件报警,若您在使用中发现联网或报毒现象,则证明本软件已被篡改,请立即删除并重新下载。 37 |
38 | 39 |
40 | 作者同时提供了基于HTML/Javascript的简易网页版QuickQuiz-M,可实现题目浏览与简单自我测验,您可通过任意支持HTML访问的联网设备访问https://gxsoftware.gitee.io/quickquiz-m使用,但需事先使用QuickQuiz Desktop制作题库,相关说明详见题库制作。本工具同样欢迎您自行获取源码和作任意修改。 41 |
42 | 43 | 44 | 45 |
快速索引下一篇
46 | 47 |
48 | (本帮助文档基于QuickQuiz Desktop 2.0Beta版本编写,如后续版本有功能上的更新,恕不另行通知)
49 | GX Software 2020-2021
50 | V2.0 51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /src/TxtOutDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_) 2 | #define AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // TxtOutDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CTxtOutDlg dialog 12 | 13 | class CTxtOutDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CTxtOutDlg(CPaper *pPaper, CWnd* pParent = NULL); // standard constructor 18 | 19 | CString m_sAnsiFont; 20 | CString m_sMainFont; 21 | CString m_sPreFont; 22 | 23 | // Dialog Data 24 | //{{AFX_DATA(CTxtOutDlg) 25 | enum { IDD = IDD_TXTOUT_DLG }; 26 | CQButton m_cCheckRes; 27 | CQButton m_cRadioWithQ; 28 | CQButton m_cRadioOnly; 29 | CQComboBox m_cComboPre; 30 | CQComboBox m_cComboMain; 31 | CQComboBox m_cComboAnsi; 32 | CQEdit m_cEditPath; 33 | CQButton m_cBtnPath; 34 | CListBox m_cList; 35 | CQButton m_cBtnOK; 36 | int m_nSel; 37 | CString m_sFileFullPath; 38 | int m_nAswStyle; 39 | BOOL m_bWithRes; 40 | //}}AFX_DATA 41 | 42 | 43 | // Overrides 44 | // ClassWizard generated virtual function overrides 45 | //{{AFX_VIRTUAL(CTxtOutDlg) 46 | protected: 47 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 48 | //}}AFX_VIRTUAL 49 | 50 | // Implementation 51 | protected: 52 | CPaper *m_pPaper; 53 | CString m_sFilePath; 54 | CString m_sFileTitle; 55 | 56 | void SaveSettings(); 57 | 58 | void FillFileInfo(LPCTSTR pPath); 59 | void FillFontList(); 60 | 61 | static int CALLBACK EnumFontFamExProc( 62 | ENUMLOGFONTEX *lpelfe, 63 | NEWTEXTMETRICEX *lpntme, 64 | DWORD FontType, 65 | LPARAM lParam 66 | ); 67 | 68 | 69 | // Generated message map functions 70 | //{{AFX_MSG(CTxtOutDlg) 71 | virtual BOOL OnInitDialog(); 72 | virtual void OnOK(); 73 | afx_msg void OnDblClkList(); 74 | afx_msg void OnFilePath(); 75 | afx_msg void OnSelChange(); 76 | //}}AFX_MSG 77 | DECLARE_MESSAGE_MAP() 78 | }; 79 | 80 | //{{AFX_INSERT_LOCATION}} 81 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 82 | 83 | #endif // !defined(AFX_TXTOUTDLG_H__9F181BA5_0FBE_49DF_9C50_0D861870C716__INCLUDED_) 84 | -------------------------------------------------------------------------------- /docs/1.2.2_edititem.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon编辑题目 16 |

17 |
18 | 19 |
20 | 编辑题目界面与新建题目类似,功能大体相同。 21 |
22 |
23 | 编辑题目 24 |
25 | 26 |
27 | 在主界面右侧窗格中选中若干个需要编辑的题目,然后进行编辑。在编辑状态下,“新建题目”“删除题目”“批量生成”功能均为禁用状态。 28 |
29 | 30 | 31 |
警告选中的题目组不会进入编辑状态。
32 | 33 |
34 | 若在题库页面选取题目并进行编辑,允许对题目的类型进行修改;若在类型页面选取题目并进行编辑,不允许对题目的类型进行修改 35 |
36 | 37 | 38 |
警告若需要编辑自定义类型题目,必须在各自定义类型对应的类型窗格中进行选取;若在题库窗格中选取了若干自定义类型题目,则编辑功能不可用。
编辑后题目的收藏状态不变。
39 | 40 |
41 | 在编辑状态下,“新建题目”“批量生成”均为无效状态。 42 |
43 | 44 |
45 |
编辑结束后,点击“确认”保存所有修改,退出界面,并将所有修改在题库中生效。
46 | 47 |
警告若部分题目编辑后不符合有效题目的要求,视为未编辑过这些题目。 48 |
49 | 50 |
51 |
不点击“确认”而退出视为未编辑任何题目。
52 | 53 | 54 | 55 |
上一篇目录下一篇
56 | 57 |
58 | GX Software 2020-2021
59 | V2.0 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /docs/4.0.0_net.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon简易网页版 16 |

17 |
18 | 19 |

简易网页版旨在方便于移动设备上进行学习自测,请访问:https://gxsoftware.gitee.io/quickquiz-m

20 | 21 |
22 | 主界面 23 |
24 | 25 |
26 |

将页面主题颜色切换为深色/浅色模式。

27 | 28 | 29 |
警告您对主题颜色的选择将被记录。
每日23时至次日7时,夜间模式默认开启。
30 | 31 |
32 |

本工具支持打开本地的兼容题库文件带封面的兼容题库文件(不支持兼容Windows 95格式),打开后,将在主界面显示被打开的题库名称,后述功能在打开题库后才能使用。

33 | 34 | 35 |
警告如果您在移动设备上使用本工具,推荐使用带封面的兼容题库文件,可以将题库保存在相册中,管理方便。
将图片题库传输至移动设备时,必须传输原图,保存时也必须为原图,不可对图片进行压缩或编辑,否则极易损坏题库文件。
36 | 37 |
38 |

全部类型题目的“默想+浏览”方式自学,详见学习模式

39 | 40 |
41 |

单选题、多选题、判断题的自我测试及评分,详见测试模式

42 | 43 |
44 |

快速查找题库中含有关键字的题目及答案,详见速查模式

45 | 46 | 47 | 48 |
上一篇回到索引下一篇
49 | 50 |
51 | GX Software 2020-2021
52 | V2.0 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /docs/1.2.7_customtype.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon自定义类型 16 |

17 |
18 | 19 |
20 | 自定义类型指的是给某个默认题目类型设定一个新的名称,并添加一个新的类型列表保存题目。例如,基于“多选题”类型的“不定项选择”类型,用来区分两者。 21 |
22 |
23 | 可以为自定义类型设置题号,参见题号。 24 |
25 | 26 |
27 |
    28 |
  1. 点击菜单“题库——添加自定义类型”,或在主界面左侧窗格的题库节点上右键选择“添加自定义类型”;
  2. 29 |
    30 | 添加类型 31 |
    32 |
  3. 选择基础类型,即设置当前自定义类型是属于哪种默认类型的。
  4. 33 |
    34 | 设置基础类型 35 |
    36 |
  5. 设置自定义类型的名称,然后就可以向类型列表中添加题目了。
  6. 37 |
    38 | 设置名称 39 |
    40 |
41 | 42 | 43 |
警告自定义类型一旦建立,便不可修改其基础类型,在类型列表中添加的题目也不可修改类型;
自定义类型的名称可以修改。
44 | 45 |
46 |
47 | 删除自定义类型时,将会删除自定义类型下全部题目。 48 |
49 | 50 |
51 | 56 | 57 | 58 | 59 |
上一篇目录下一篇
60 | 61 |
62 | GX Software 2020-2021
63 | V2.0 64 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /docs/4.0.2_test.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon测试模式 16 |

17 |
18 | 19 |

进入测试模式后,首先进行设置:

20 | 21 |
22 | 测试设置 23 |
24 | 25 |

测试模式支持测试单选题、多选题、判断题(包括基本类型为单选题、多选题、判断题的自定义类型题目,但不包括任何类型的题目组题目)。

26 | 27 |
28 |

输入考试时间,输入0或不输入为不限时。

29 | 30 |
31 |

与“随机Key”功能相同,用来控制题目生成内容及顺序,相同的姓名将产生完全相同的测试题目。若不输入,则题目将完全随机。

32 | 33 |
34 |

设置完成后点击“开始答题”进入答题界面如下:

35 |
36 | 测试界面 37 |
38 | 39 |
40 |

滚动显示各题目。

41 | 42 |
43 |

跳转至下一道未作答的题目。

44 | 45 |
46 |

给不确定答案的题目作上标记,点击“下个标记”可以依次显示被标记的题目。

47 | 48 |
49 |

隐藏答题界面,并暂停计时。

50 | 51 |
52 |

自动评分,弹窗显示正确率和用时,并进入答案浏览界面如下:

53 |
54 | 答案浏览 55 |
56 | 57 |
58 |

只显示做错的题目。

59 | 60 |
61 |

回到测试设置界面,准备开始下一次测试。

62 | 63 | 64 | 65 |
上一篇目录下一篇
66 | 67 |
68 | GX Software 2020-2021
69 | V2.0 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /docs/2.0.1_code.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon源码概述 16 |

17 |
18 | 19 |
20 |
21 | IDE为Microsoft Visual C++ 6.0 Professional Edition,在Windows7 Ultimate x64系统下完美编译。 22 |
23 | 24 |
25 |
26 | 基于C++开发框架,但几乎全部以“C风格”写就。 27 |
28 | 29 |
30 |
31 | Platform SDK for Windows User Interface、MFC4.2。 32 |
33 | 34 |
35 |
36 | 使用“_UNICODE”或“_MBCS”宏,可编译为宽字符版或多字节版(不论何版本,生成题库文件均完全兼容)。 37 |
38 | 39 |
40 |
41 | .\Bin
42 | 已归档的可执行文件
43 | 
44 | .\help
45 | html帮助文档
46 | 
47 | .\lib
48 | 依赖的第三方库,包含:
49 | .\lib\libjpeg            jpeg图像库
50 | .\lib\libpng             png图像库
51 | .\lib\original_package   各库的原始压缩包
52 | .\lib\tinyxml            xml读写库
53 | .\lib\zlib               压缩库
54 | 
55 | .\res
56 | 主程序所使用的资源文件
57 | 
58 | .\src
59 | 主程序的全部源码
60 | 
61 | QuickQuiz.dsp
62 | 适用于Visual C++ 6.0的工程文件
63 | 
64 | QuickQuiz.dsw
65 | 适用于Visual C++ 6.0的工作空间文件,包含全部工程
66 | 
67 | 68 | 69 | 70 |
上一篇目录下一篇
71 | 72 |
73 | GX Software 2020-2021
74 | V2.0 75 | 76 | 77 | 78 | -------------------------------------------------------------------------------- /src/ImageBar.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_) 2 | #define AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // ImageBar.h : header file 8 | // 9 | 10 | #define WM_IMAGEBARNOTIFY (WM_USER + 1) 11 | 12 | enum ImageBarNodify { 13 | IMAGEBARNOTIFY_PRE = 0, 14 | IMAGEBARNOTIFY_NEXT, 15 | IMAGEBARNOTIFY_NEW, 16 | IMAGEBARNOTIFY_SET, 17 | IMAGEBARNOTIFY_DELETE 18 | }; 19 | 20 | ///////////////////////////////////////////////////////////////////////////// 21 | // CImageBar dialog 22 | 23 | class CImageBar : public CDialogBar 24 | { 25 | // Construction 26 | public: 27 | CImageBar(CWnd* pParent = NULL); // standard constructor 28 | ~CImageBar(); 29 | 30 | BOOL CreateBar(CWnd* pParentWnd, UINT uID); 31 | 32 | int GetDefaultWidth() { return m_nWidth; } 33 | int GetDefaultHeight() { return m_nHeight; } 34 | void SetStatus(size_t ulCount, size_t ulCur, size_t ulMax, LPCTSTR lpTitle); 35 | 36 | void GetImageTitle(CString &string); 37 | BOOL IsModified(); 38 | 39 | // Dialog Data 40 | //{{AFX_DATA(CImageBar) 41 | enum { IDD = IDD_IMAGESET_BAR }; 42 | CQEdit m_cEditTitle; 43 | CQButton m_cBtnDelete; 44 | CQButton m_cBtnSet; 45 | CQButton m_cBtnNew; 46 | CQButton m_cBtnPre; 47 | CQButton m_cBtnNext; 48 | //}}AFX_DATA 49 | 50 | 51 | // Overrides 52 | // ClassWizard generated virtual function overrides 53 | //{{AFX_VIRTUAL(CImageBar) 54 | protected: 55 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 56 | //}}AFX_VIRTUAL 57 | 58 | // Implementation 59 | protected: 60 | int m_nWidth; 61 | int m_nHeight; 62 | 63 | BOOL m_bTitleModify; 64 | 65 | // Generated message map functions 66 | //{{AFX_MSG(CImageBar) 67 | virtual void OnOK() {} 68 | virtual void OnCancel() {} 69 | virtual BOOL OnInitDialog(UINT wParam, LONG lParam); 70 | afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor); 71 | afx_msg void OnPre(); 72 | afx_msg void OnNext(); 73 | afx_msg void OnNew(); 74 | afx_msg void OnSet(); 75 | afx_msg void OnDelete(); 76 | //}}AFX_MSG 77 | DECLARE_MESSAGE_MAP() 78 | }; 79 | 80 | //{{AFX_INSERT_LOCATION}} 81 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 82 | 83 | #endif // !defined(AFX_IMAGEBAR_H__B98CB020_4558_4F16_95F9_0FD7647EF97D__INCLUDED_) 84 | -------------------------------------------------------------------------------- /src/BlkTxtCheckDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_) 2 | #define AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // BlkTxtCheckDlg.h : header file 8 | // 9 | 10 | #include "ItemShowWnd.h" 11 | 12 | ///////////////////////////////////////////////////////////////////////////// 13 | // CBlkTxtCheckDlg dialog 14 | 15 | typedef struct _tagBlkTxtScore 16 | { 17 | int nScore; 18 | BOOL bUser; 19 | }SCOREINFO; 20 | 21 | class CBlkTxtCheckDlg : public CClrDialog 22 | { 23 | // Construction 24 | public: 25 | CBlkTxtCheckDlg(CList *pList, CTestPara *pPara, CWnd* pParent = NULL); // standard constructor 26 | ~CBlkTxtCheckDlg(); 27 | 28 | // Dialog Data 29 | //{{AFX_DATA(CBlkTxtCheckDlg) 30 | enum { IDD = IDD_BLKTXTCHECK_DLG }; 31 | CQComboBox m_cComboFont; 32 | CQButton m_cBtnCancel; 33 | CQGroupBox m_cGroup2; 34 | CQGroupBox m_cGroup1; 35 | CQEdit m_cEditTxtScore; 36 | CQButton m_cBtnPre; 37 | CQButton m_cBtnNext; 38 | CItemShowWnd m_cUser; 39 | CItemShowWnd m_cReal; 40 | //}}AFX_DATA 41 | 42 | 43 | // Overrides 44 | // ClassWizard generated virtual function overrides 45 | //{{AFX_VIRTUAL(CBlkTxtCheckDlg) 46 | public: 47 | virtual int DoModal(); 48 | protected: 49 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 50 | //}}AFX_VIRTUAL 51 | 52 | void InitTmpList(); 53 | void SetShow(); 54 | void SaveCurrent(); 55 | float GetSimilarity(CItem *pItem); 56 | int GetMaxPoint(); 57 | 58 | // Implementation 59 | protected: 60 | CTestPara *m_pPara; 61 | CList *m_pList; 62 | 63 | CTempList m_TmpList; 64 | int m_nCurShow; 65 | BOOL *m_pUserSet; 66 | 67 | CTextSimilarity m_cSimilarity; 68 | 69 | // Generated message map functions 70 | //{{AFX_MSG(CBlkTxtCheckDlg) 71 | virtual BOOL OnInitDialog(); 72 | afx_msg void OnButtonPre(); 73 | afx_msg void OnButtonNext(); 74 | virtual void OnCancel(); 75 | afx_msg void OnKillFocus(); 76 | afx_msg void OnSelChangeFontSize(); 77 | //}}AFX_MSG 78 | afx_msg LRESULT OnItemShowWndNotify(WPARAM wParam, LPARAM lParam); 79 | DECLARE_MESSAGE_MAP() 80 | }; 81 | 82 | //{{AFX_INSERT_LOCATION}} 83 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 84 | 85 | #endif // !defined(AFX_BLKTXTCHECKDLG_H__2615CBD0_AACC_4257_AFCD_2DE6B072CC28__INCLUDED_) 86 | -------------------------------------------------------------------------------- /docs/1.0.6_viewmenu.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon“界面”菜单 16 |

17 |
18 | 19 |
20 | 界面菜单 21 |
22 | 23 |
24 | “界面”菜单的相关说明如下: 25 |
26 | 27 |
28 |
29 | 显示或隐藏工具栏。 30 |
31 | 32 |
33 |
34 | 显示或隐藏状态栏。 35 |
36 | 37 |
38 |
39 | 设定应用程序的主题颜色,可设置为默认(跟随系统主题)、护眼绿、夜间三种模式。 40 |
41 |
可被更改的颜色区域包括: 42 |
43 | 49 |
50 | 以下分别为护眼绿和夜间模式的示例。 51 |
52 |
护眼绿夜间
53 | 54 | 55 |
警告打开题库、保存题库、查找、替换等系统对话框不受界面颜色的限制。
56 | 57 |
58 |
59 | 设定主界面右侧窗格摘要的显示最大长度,可选20~120字符。 60 |
61 | 62 |
63 |
64 | 应用程序在关闭后,将自动在Windows注册表中保存窗口大小、界面颜色、测试设定、最近打开文件等用户信息。若您不再需要这些信息,勾选本项后,应用程序将在下一次退出后清理这些信息。 65 |
66 | 67 | 68 |
警告在退出应用程序前,您可以随时取消本项的勾选。
69 | 70 | 71 | 72 |
上一篇目录下一篇
73 | 74 |
75 | GX Software 2020-2021
76 | V2.0 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /src/XmlTags.cpp: -------------------------------------------------------------------------------- 1 | #include "StdAfx.h" 2 | 3 | LPCSTR xml_lpszDeclar_Encoding = "UTF-8"; 4 | LPCSTR xml_lpszDeclar_Encoding95 = "GBK"; 5 | 6 | LPCSTR xml_lpszNode_Library = "library"; 7 | LPCSTR xml_lpszNode_Version = "version"; 8 | LPCSTR xml_lpszNode_Key = "key"; 9 | LPCSTR xml_lpszNode_Title = "title"; 10 | LPCSTR xml_lpszNode_Pswd = "pswd"; 11 | LPCSTR xml_lpszNode_Custom = "cust"; 12 | LPCSTR xml_lpszNode_Type = "type"; 13 | 14 | LPCSTR xml_lpszNode_Cover = "cover"; 15 | 16 | LPCSTR xml_lpszNode_Question = "qstn"; 17 | LPCSTR xml_lpszNode_Description = "desc"; 18 | LPCSTR xml_lpszNode_Resolve = "res"; 19 | LPCSTR xml_lpszNode_Image = "img"; 20 | LPCSTR xml_lpszNode_Option = "opt"; 21 | LPCSTR xml_lpszNode_Answer = "ans"; 22 | LPCSTR xml_lpszNode_Blank = "blk"; 23 | LPCSTR xml_lpszNode_Group = "grp"; 24 | 25 | LPCSTR xml_lpszAttribute_Type = "type"; 26 | LPCSTR xml_lpszAttribute_Index = "index"; 27 | LPCSTR xml_lpszAttribute_QNum = "qnum"; 28 | LPCSTR xml_lpszAttribute_Custom = "cust"; 29 | LPCSTR xml_lpszAttribute_Answer = "ans"; 30 | LPCSTR xml_lpszAttribute_Begin = "beg"; 31 | LPCSTR xml_lpszAttribute_End = "end"; 32 | LPCSTR xml_lpszAttribute_Title = "title"; 33 | LPCSTR xml_lpszAttribute_Loc = "loc"; 34 | 35 | LPCSTR xml_lpszAttribute_Width = "width"; 36 | LPCSTR xml_lpszAttribute_Height = "height"; 37 | LPCSTR xml_lpszAttribute_ColorBk = "clrbk"; 38 | LPCSTR xml_lpszAttribute_ColorText = "clrtxt"; 39 | LPCSTR xml_lpszAttribute_Quality = "quality"; 40 | 41 | LPCSTR xml_lpszText_ImageHead = "data:image/"; 42 | LPCSTR xml_lpszText_ImageBmp = "bmp;base64,"; 43 | LPCSTR xml_lpszText_ImageJpeg = "jpeg;base64,"; 44 | LPCSTR xml_lpszText_ImageJpg = "jpg;base64,"; 45 | LPCSTR xml_lpszText_ImagePng = "png;base64,"; 46 | 47 | LPCSTR xml_lpszType[TYPE_DEFAULTCOUNT + 1] = 48 | { 49 | "unknown", 50 | "s-choise", 51 | "m-choise", 52 | "judge", 53 | "blank", 54 | "text", 55 | "group" 56 | }; 57 | 58 | LPCSTR xml_lpszCommon_True = "t"; 59 | LPCSTR xml_lpszCommon_False = "f"; 60 | 61 | LPCSTR XMLGetTypeAttribute(int nType) 62 | { 63 | if (nType > TYPE_DEFAULTCOUNT) 64 | { 65 | return NULL; 66 | } 67 | 68 | return xml_lpszType[nType]; 69 | } 70 | 71 | int XMLGetTypeIndex(LPCSTR lpszType) 72 | { 73 | int i; 74 | for (i = TYPE_SCHOISE; i <= TYPE_DEFAULTCOUNT; i++) 75 | { 76 | if (!strcmp(lpszType, xml_lpszType[i])) 77 | { 78 | return i; 79 | } 80 | } 81 | 82 | return TYPE_DEFAULT; 83 | } -------------------------------------------------------------------------------- /src/JpegCoverDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_JPEGCOVERDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_) 2 | #define AFX_JPEGCOVERDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // JpegCoverDlg.h : header file 8 | // 9 | 10 | #include "MemBmp.h" 11 | 12 | class CImageFrame; 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CJpegCoverDlg dialog 16 | 17 | class CJpegCoverDlg : public CClrDialog 18 | { 19 | // Construction 20 | public: 21 | CJpegCoverDlg(CPaper *pPaper, CWnd* pParent = NULL); // standard constructor 22 | ~CJpegCoverDlg(); 23 | 24 | inline BOOL IsModify() { return m_bModify; } 25 | LPPAPERCOVERINFO GetCoverInfo(); 26 | 27 | // Dialog Data 28 | //{{AFX_DATA(CJpegCoverDlg) 29 | enum { IDD = IDD_JPEGCOVER_DLG }; 30 | CQEdit m_cEditQuality; 31 | CQButton m_cBtnView; 32 | CQColorSetter m_cTxtColor; 33 | CQColorSetter m_cBkColor; 34 | CQButton m_cRadioNo; 35 | CQButton m_cBtnOK; 36 | CQButton m_cBtnCancel; 37 | CQButton m_cRadioDefault; 38 | CQButton m_cRadioUser; 39 | CQEdit m_cEditWidth; 40 | CQEdit m_cEditTitle; 41 | CQEdit m_cEditJpegChoose; 42 | CQEdit m_cEditHeight; 43 | CQButton m_cBtnOpen; 44 | int m_nRadioType; 45 | //}}AFX_DATA 46 | 47 | 48 | // Overrides 49 | // ClassWizard generated virtual function overrides 50 | //{{AFX_VIRTUAL(CJpegCoverDlg) 51 | public: 52 | virtual int DoModal(); 53 | protected: 54 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 55 | //}}AFX_VIRTUAL 56 | 57 | // Implementation 58 | protected: 59 | CString m_strTitle; 60 | int m_nWidth; 61 | int m_nHeight; 62 | COLORREF m_clrBk; 63 | COLORREF m_clrTxt; 64 | int m_nQuatlity; 65 | CString m_strJpegPath; 66 | 67 | CPaper *m_pPaper; 68 | BOOL m_bModify; 69 | PAPERCOVERINFO m_inf; 70 | 71 | CImageFrame *m_pImgFrame; 72 | CMemBmp m_Bmp; 73 | 74 | // Generated message map functions 75 | //{{AFX_MSG(CJpegCoverDlg) 76 | virtual BOOL OnInitDialog(); 77 | virtual void OnOK(); 78 | afx_msg void OnOpen(); 79 | afx_msg void OnView(); 80 | afx_msg void OnSetBkColor(); 81 | afx_msg void OnSetTxtColor(); 82 | afx_msg void OnRadio(); 83 | afx_msg void OnChangeEdit(); 84 | //}}AFX_MSG 85 | DECLARE_MESSAGE_MAP() 86 | }; 87 | 88 | //{{AFX_INSERT_LOCATION}} 89 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 90 | 91 | #endif // !defined(AFX_JPEGLIBDLG_H__57419B05_14EA_4BCA_AE78_F50E9D656A5D__INCLUDED_) 92 | -------------------------------------------------------------------------------- /docs/1.0.0_content.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon使用说明 16 |

17 |
18 | 19 |
20 | 本使用说明包含以下内容: 21 |
22 | 23 | 24 | 35 | 48 | 56 | 61 |
25 | 34 | 36 | 47 | 49 | 55 | 57 | 60 |
62 | 63 | 64 | 65 |
上一篇回到索引下一篇
66 | 67 |
68 | GX Software 2020-2021
69 | V2.0 70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /src/MainFrm.h: -------------------------------------------------------------------------------- 1 | // MainFrm.h : interface of the CMain class 2 | // 3 | ///////////////////////////////////////////////////////////////////////////// 4 | 5 | #if !defined(AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_) 6 | #define AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_ 7 | 8 | #if _MSC_VER > 1000 9 | #pragma once 10 | #endif // _MSC_VER > 1000 11 | 12 | #include "EditFrame.h" 13 | 14 | class CLView; 15 | class CQView; 16 | 17 | class CMain : public CFrameWnd 18 | { 19 | 20 | protected: // create from serialization only 21 | CMain(); 22 | DECLARE_DYNCREATE(CMain) 23 | 24 | // Attributes 25 | protected: 26 | CSplitterWnd m_wndSplitter; 27 | public: 28 | 29 | // Operations 30 | public: 31 | void SetItemCount(int nCount); 32 | 33 | void SetShow(LPCTSTR strShow, UINT uTitle); 34 | 35 | // Overrides 36 | // ClassWizard generated virtual function overrides 37 | //{{AFX_VIRTUAL(CMain) 38 | public: 39 | virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext); 40 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 41 | virtual void ActivateFrame(int nCmdShow = -1); 42 | virtual BOOL OnCmdMsg(UINT nID, int nCode, void* pExtra, AFX_CMDHANDLERINFO* pHandlerInfo); 43 | //}}AFX_VIRTUAL 44 | 45 | // Implementation 46 | public: 47 | virtual ~CMain(); 48 | CQView* GetRightPane(); 49 | #ifdef _DEBUG 50 | virtual void AssertValid() const; 51 | virtual void Dump(CDumpContext& dc) const; 52 | #endif 53 | 54 | protected: // control bar embedded members 55 | CStatusBar m_wndStatusBar; 56 | CToolBar m_wndToolBar; 57 | 58 | CEditFrame *m_pEditWnd; 59 | 60 | // Generated message map functions 61 | protected: 62 | //{{AFX_MSG(CMain) 63 | afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct); 64 | afx_msg void OnClose(); 65 | afx_msg void OnUpdateCmdUI(CCmdUI* pCmdUI); 66 | afx_msg void OnColorNormal(); 67 | afx_msg void OnColorGreen(); 68 | afx_msg void OnColorDark(); 69 | afx_msg void OnReset(); 70 | //}}AFX_MSG 71 | DECLARE_MESSAGE_MAP() 72 | 73 | void LoadSettings(); 74 | void SaveSettings(); 75 | 76 | CLView* GetPaperView() { return (CLView*)m_wndSplitter.GetPane(0, 0); } 77 | CQView* GetItemView() { return (CQView*)m_wndSplitter.GetPane(0, 1); } 78 | 79 | private: 80 | BOOL m_bLoaded; 81 | }; 82 | 83 | ///////////////////////////////////////////////////////////////////////////// 84 | 85 | //{{AFX_INSERT_LOCATION}} 86 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 87 | 88 | #endif // !defined(AFX_MAINFRM_H__3631607F_09CE_49E2_8DBF_AD034D07DA63__INCLUDED_) 89 | -------------------------------------------------------------------------------- /src/ChildJudgeDlg.cpp: -------------------------------------------------------------------------------- 1 | // ChildJudgeDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "EditDlg.h" 7 | 8 | #include "Judge.h" 9 | 10 | #ifdef _DEBUG 11 | #define new DEBUG_NEW 12 | #undef THIS_FILE 13 | static char THIS_FILE[] = __FILE__; 14 | #endif 15 | 16 | ///////////////////////////////////////////////////////////////////////////// 17 | // CChildJudgeDlg dialog 18 | 19 | 20 | CChildJudgeDlg::CChildJudgeDlg(CWnd* pParent /*=NULL*/) : 21 | CTabPage(CChildJudgeDlg::IDD, pParent) 22 | { 23 | //{{AFX_DATA_INIT(CChildJudgeDlg) 24 | m_nAnswer = -1; 25 | //}}AFX_DATA_INIT 26 | } 27 | 28 | 29 | void CChildJudgeDlg::DoDataExchange(CDataExchange* pDX) 30 | { 31 | CDialog::DoDataExchange(pDX); 32 | //{{AFX_DATA_MAP(CChildJudgeDlg) 33 | DDX_Control(pDX, IDC_RADIO_TRUE, m_cRadioTrue); 34 | DDX_Control(pDX, IDC_RADIO_FALSE, m_cRadioFalse); 35 | DDX_Radio(pDX, IDC_RADIO_TRUE, m_nAnswer); 36 | //}}AFX_DATA_MAP 37 | } 38 | 39 | 40 | BEGIN_MESSAGE_MAP(CChildJudgeDlg, CTabPage) 41 | //{{AFX_MSG_MAP(CChildJudgeDlg) 42 | ON_BN_CLICKED(IDC_RADIO_TRUE, OnRadio) 43 | ON_BN_CLICKED(IDC_RADIO_FALSE, OnRadio) 44 | //}}AFX_MSG_MAP 45 | END_MESSAGE_MAP() 46 | 47 | ///////////////////////////////////////////////////////////////////////////// 48 | // CChildJudgeDlg message handlers 49 | 50 | BOOL CChildJudgeDlg::OnInitDialog() 51 | { 52 | CTabPage::OnInitDialog(); 53 | 54 | return TRUE; // return TRUE unless you set the focus to a control 55 | // EXCEPTION: OCX Property Pages should return FALSE 56 | } 57 | 58 | void CChildJudgeDlg::SetShow(const CItem *pJudge) 59 | { 60 | if (!pJudge) 61 | { 62 | m_nAnswer = -1; 63 | } 64 | else 65 | { 66 | CJudge *ptr = (CJudge*)pJudge; 67 | 68 | switch(((CJudge*)pJudge)->GetAnswer()) 69 | { 70 | case -1: 71 | m_nAnswer = -1; 72 | break; 73 | 74 | case FALSE: 75 | m_nAnswer = 1; 76 | break; 77 | 78 | case TRUE: 79 | m_nAnswer = 0; 80 | break; 81 | } 82 | } 83 | 84 | UpdateData(FALSE); 85 | m_bModify = FALSE; 86 | } 87 | 88 | void CChildJudgeDlg::GetInfo(CJudge *pJudge) 89 | { 90 | if (!pJudge) 91 | { 92 | return; 93 | } 94 | 95 | UpdateData(); 96 | 97 | switch(m_nAnswer) 98 | { 99 | case -1: 100 | pJudge->SetAnswer(-1); 101 | break; 102 | 103 | case 0: 104 | pJudge->SetAnswer(TRUE); 105 | break; 106 | 107 | case 1: 108 | pJudge->SetAnswer(FALSE); 109 | break; 110 | } 111 | } 112 | 113 | void CChildJudgeDlg::OnRadio() 114 | { 115 | m_bModify = TRUE; 116 | } 117 | -------------------------------------------------------------------------------- /src/QEdit.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_) 2 | #define AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // QEdit.h : header file 8 | // 9 | 10 | #define WM_QEDITNOTIFY (WM_USER + 4) 11 | #define QEN_ESCAPE 0 12 | #define QEN_NEXT 1 13 | #define QEN_PREV 2 14 | 15 | ///////////////////////////////////////////////////////////////////////////// 16 | // CQEdit window 17 | 18 | class CQEdit : public CEdit 19 | { 20 | // Construction 21 | public: 22 | CQEdit(); 23 | 24 | // Attributes 25 | public: 26 | 27 | // Operations 28 | public: 29 | void SetTextColor(COLORREF clrTxt); 30 | COLORREF GetTextColor() { return m_clrTxt; } 31 | 32 | long GetText(int nStart, int nEnd, LPTSTR lpBuf); 33 | long GetSelText(LPTSTR lpBuf); 34 | 35 | void EnableCopy(BOOL bEnable) { m_bEnableCopy = bEnable; } 36 | 37 | void CheckSelChange(BOOL bCheck) { m_bCheckSelChange = bCheck; } 38 | 39 | // Overrides 40 | // ClassWizard generated virtual function overrides 41 | //{{AFX_VIRTUAL(CQEdit) 42 | protected: 43 | virtual void PreSubclassWindow(); 44 | //}}AFX_VIRTUAL 45 | 46 | // Implementation 47 | public: 48 | virtual ~CQEdit(); 49 | 50 | // Generated message map functions 51 | protected: 52 | //{{AFX_MSG(CQEdit) 53 | afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor); 54 | afx_msg void OnNcPaint(); 55 | afx_msg void OnSetFocus(CWnd* pOldWnd); 56 | afx_msg void OnKillFocus(CWnd* pNewWnd); 57 | afx_msg void OnDropFiles(HDROP hDropInfo); 58 | afx_msg void OnLButtonDown(UINT nFlags, CPoint point); 59 | afx_msg void OnLButtonUp(UINT nFlags, CPoint point); 60 | afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags); 61 | afx_msg void OnContextMenu(CWnd* pWnd, CPoint point); 62 | //}}AFX_MSG 63 | afx_msg LRESULT OnMouseHover(WPARAM wParam, LPARAM lParam); 64 | afx_msg LRESULT OnMouseLeave(WPARAM wParam, LPARAM lParam); 65 | afx_msg LRESULT OnCopy(WPARAM wParam, LPARAM lParam); 66 | void DrawBorder(); 67 | 68 | COLORREF GetClientEdgeClr(); 69 | LRESULT NotifySelChange(); 70 | 71 | protected: 72 | COLORREF m_clrTxt; 73 | 74 | HBRUSH m_hbrReadOnly; 75 | BOOL m_bFocus; 76 | 77 | BOOL m_bEnableCopy; 78 | 79 | BOOL m_bCheckSelChange; 80 | int m_nStart; 81 | int m_nEnd; 82 | 83 | DECLARE_MESSAGE_MAP() 84 | }; 85 | 86 | ///////////////////////////////////////////////////////////////////////////// 87 | 88 | //{{AFX_INSERT_LOCATION}} 89 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 90 | 91 | #endif // !defined(AFX_QEDIT_H__ED5DB8E6_FEBF_483F_8615_4C5718DA9F68__INCLUDED_) 92 | -------------------------------------------------------------------------------- /docs/1.3.3_competitive.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon抢答练习 16 |

17 |
18 | 19 |
20 | 练习抢答,适用于知识竞赛等活动抢答环节的训练,界面如下。 21 |
22 |
23 | 抢答练习 24 |
25 | 26 |
27 |
28 | 上图所示为每道题目的初始状态。 29 |
30 |
    31 |
  1. 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,开始抢答,显示区开始按照预设的速度逐字显示题目内容;
  2. 32 |
  3. 当显示的内容已经足以确认题目内容及答案了,鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,抢答题目;
    抢答练习支持多人抢答,当多人抢答时,可安排每个练习者按不同的数字键或字母键,最终显示结果时将显示按下哪个按键的抢答者抢答成功了;
    抢答完成后,将显示抢答成功者及抢答用时。
  4. 33 |
    34 | 抢答成功 35 |
    36 |
  5. 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,显示完整题目、答案及题目类型。
  6. 37 |
    38 | 显示答案 39 |
    40 |
  7. 鼠标点击“抢答区”,或按下键盘上的数字键、字母键或空格键,开始下一题。
  8. 41 |
42 | 43 |
44 |
45 | 抢答演示 46 |
47 | 48 |
49 |
50 | 勾选后,开始抢答前即显示当前题目的类型;若不勾选,则直到最后显示正确答案时才显示。 51 |
52 | 53 |
54 |
55 | 抢答练习的进程将被记录,执行“练新题”可直接跳至未练习过的题目。 56 |
57 | 58 |
59 |
60 | 设置抢答练习的题目类型及其他选项,与学习模式完全相同。 61 |
62 | 63 |
64 |
65 | 设置抢答时显示区每个字间的显示时间间隔,可设置0.1~2秒,默认0.2秒。 66 |
67 | 68 | 69 | 70 |
警告在抢答练习中,题目图片将不能显示。
71 | 72 | 73 | 74 |
上一篇目录下一篇
75 | 76 |
77 | GX Software 2020-2021
78 | V2.0 79 | 80 | 81 | 82 | -------------------------------------------------------------------------------- /src/BatchSetDlg.cpp: -------------------------------------------------------------------------------- 1 | // BatchSetDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "BatchSetDlg.h" 6 | 7 | #ifdef _DEBUG 8 | #define new DEBUG_NEW 9 | #undef THIS_FILE 10 | static char THIS_FILE[] = __FILE__; 11 | #endif 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | // CBatchSetDlg dialog 15 | 16 | 17 | CBatchSetDlg::CBatchSetDlg(BOOL bEditFlag, CWnd* pParent /*=NULL*/) : 18 | CClrDialog(CBatchSetDlg::IDD, pParent), 19 | m_bEditFlag(bEditFlag) 20 | { 21 | //{{AFX_DATA_INIT(CBatchSetDlg) 22 | m_nIndex = -1; 23 | m_nSimilar = 90; 24 | //}}AFX_DATA_INIT 25 | } 26 | 27 | 28 | void CBatchSetDlg::DoDataExchange(CDataExchange* pDX) 29 | { 30 | CClrDialog::DoDataExchange(pDX); 31 | //{{AFX_DATA_MAP(CBatchSetDlg) 32 | DDX_Control(pDX, IDOK, m_cBtnOK); 33 | DDX_Control(pDX, IDC_RADIO_MTOS, m_cRadioMToS); 34 | DDX_Control(pDX, IDC_RADIO_STOM, m_cRadioSToM); 35 | DDX_Control(pDX, IDC_RADIO_SELDUPLICATE, m_cRadioSelDuplicate); 36 | DDX_Radio(pDX, IDC_RADIO_STOM, m_nIndex); 37 | DDX_Text(pDX, IDC_EDIT_SIMILAR, m_nSimilar); 38 | DDX_Control(pDX, IDC_EDIT_SIMILAR, m_cEditSimilar); 39 | DDX_Control(pDX, IDC_RADIO_CTOJ, m_cRadioCToJ); 40 | //}}AFX_DATA_MAP 41 | } 42 | 43 | 44 | BEGIN_MESSAGE_MAP(CBatchSetDlg, CClrDialog) 45 | //{{AFX_MSG_MAP(CBatchSetDlg) 46 | //}}AFX_MSG_MAP 47 | END_MESSAGE_MAP() 48 | 49 | ///////////////////////////////////////////////////////////////////////////// 50 | // CBatchSetDlg message handlers 51 | 52 | BOOL CBatchSetDlg::OnInitDialog() 53 | { 54 | CClrDialog::OnInitDialog(); 55 | 56 | m_cRadioSToM.EnableWindow(m_bEditFlag); 57 | m_cRadioMToS.EnableWindow(m_bEditFlag); 58 | m_cRadioCToJ.EnableWindow(m_bEditFlag); 59 | 60 | m_cEditSimilar.SetLimitText(3); 61 | SetDlgItemInt(IDC_EDIT_SIMILAR, 99, FALSE); 62 | 63 | return TRUE; // return TRUE unless you set the focus to a control 64 | // EXCEPTION: OCX Property Pages should return FALSE 65 | } 66 | 67 | BOOL CBatchSetDlg::OnCommand(WPARAM wParam, LPARAM lParam) 68 | { 69 | WORD wCode = HIWORD(wParam); 70 | WORD wID = LOWORD(wParam); 71 | 72 | if (EN_KILLFOCUS == wCode) 73 | { 74 | return CheckInput(wID); 75 | } 76 | 77 | return CClrDialog::OnCommand(wParam, lParam); 78 | } 79 | 80 | BOOL CBatchSetDlg::CheckInput(UINT nID /* = 0 */) 81 | { 82 | if (nID) 83 | { 84 | int nNum = GetDlgItemInt(nID); 85 | 86 | switch(nID) 87 | { 88 | case IDC_EDIT_SIMILAR: 89 | nNum = max(80, min(nNum, 100)); 90 | break; 91 | 92 | default: 93 | return !0; 94 | } 95 | 96 | SetDlgItemInt(nID, nNum); 97 | } 98 | 99 | return 0; 100 | } 101 | -------------------------------------------------------------------------------- /src/ChildTextDlg.cpp: -------------------------------------------------------------------------------- 1 | // ChildTextDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "EditDlg.h" 7 | 8 | #include "Text.h" 9 | 10 | #ifdef _DEBUG 11 | #define new DEBUG_NEW 12 | #undef THIS_FILE 13 | static char THIS_FILE[] = __FILE__; 14 | #endif 15 | 16 | ///////////////////////////////////////////////////////////////////////////// 17 | // CChildTextDlg dialog 18 | 19 | 20 | CChildTextDlg::CChildTextDlg(CWnd* pParent /*=NULL*/) : 21 | CTabPage(CChildTextDlg::IDD, pParent) 22 | { 23 | //{{AFX_DATA_INIT(CChildTextDlg) 24 | // NOTE: the ClassWizard will add member initialization here 25 | //}}AFX_DATA_INIT 26 | } 27 | 28 | 29 | void CChildTextDlg::DoDataExchange(CDataExchange* pDX) 30 | { 31 | CDialog::DoDataExchange(pDX); 32 | //{{AFX_DATA_MAP(CChildTextDlg) 33 | DDX_Control(pDX, IDC_BUTTON_ANSWER, m_cBtnAsw); 34 | DDX_Control(pDX, IDC_EDIT_ANSWER, m_cEditAnswer); 35 | DDX_Control(pDX, IDC_STATIC_GROUP1, m_cGroup1); 36 | //}}AFX_DATA_MAP 37 | } 38 | 39 | 40 | BEGIN_MESSAGE_MAP(CChildTextDlg, CTabPage) 41 | //{{AFX_MSG_MAP(CChildTextDlg) 42 | ON_EN_CHANGE(IDC_EDIT_ANSWER, OnChange) 43 | ON_BN_CLICKED(IDC_BUTTON_ANSWER, OnButtonAnswer) 44 | //}}AFX_MSG_MAP 45 | END_MESSAGE_MAP() 46 | 47 | ///////////////////////////////////////////////////////////////////////////// 48 | // CChildTextDlg message handlers 49 | 50 | void CChildTextDlg::SetShow(const CItem *pItem) 51 | { 52 | if (!pItem) 53 | { 54 | SetDlgItemText(IDC_EDIT_ANSWER, _T("")); 55 | } 56 | else 57 | { 58 | SetDlgItemText(IDC_EDIT_ANSWER, ((CText*)pItem)->GetAnswer()); 59 | } 60 | 61 | m_bModify = FALSE; 62 | } 63 | 64 | int CChildTextDlg::CheckSaveable() 65 | { 66 | if (!GetDlgItem(IDC_EDIT_ANSWER)->GetWindowTextLength()) 67 | { 68 | CTMessageBox Box; 69 | switch(Box.SuperMessageBox(m_hWnd, IDS_EDITDLGT_NOASW, IDS_MSGCAPTION_ASK, 70 | MB_YESNO | MB_ICONQUESTION, 0, 0)) 71 | { 72 | case IDYES: 73 | break; 74 | 75 | case IDNO: 76 | return SAVEABLE_DENY; 77 | 78 | default: 79 | ASSERT(FALSE); 80 | } 81 | } 82 | 83 | return SAVEABLE_OK; 84 | } 85 | 86 | void CChildTextDlg::GetInfo(CText *pText) 87 | { 88 | if (!pText || !m_bModify) 89 | { 90 | return; 91 | } 92 | 93 | CString string; 94 | GetDlgItemText(IDC_EDIT_ANSWER, string); 95 | pText->SetAnswer(string, -1); 96 | } 97 | 98 | void CChildTextDlg::OnChange() 99 | { 100 | m_bModify = TRUE; 101 | } 102 | 103 | void CChildTextDlg::OnButtonAnswer() 104 | { 105 | LPTSTR ptr = ((CEditDlg*)(GetParent()->GetParent()))->GetEditFrmSel(); 106 | if (ptr) 107 | { 108 | SetDlgItemText(IDC_EDIT_ANSWER, ptr); 109 | free(ptr); 110 | } 111 | 112 | m_bModify = TRUE; 113 | } 114 | -------------------------------------------------------------------------------- /docs/css/style.css: -------------------------------------------------------------------------------- 1 | 2 | /* 默认全局 */ 3 | body { 4 | font-family: Helvetica, Arial, Microsoft Yahei, sans-serif; 5 | background-image: url("../images/bg.png"); 6 | } 7 | 8 | p { 9 | text-indent: 2em; 10 | line-height: 1.6em; 11 | } 12 | 13 | div.p { 14 | text-indent: 2em; 15 | line-height: 1.6em; 16 | padding: 8px 0; 17 | } 18 | div.np { 19 | line-height: 1.6em; 20 | margin-top: 12px; 21 | } 22 | div.h4 { 23 | font-weight: bold; 24 | margin: 12px 0 5px 0; 25 | } 26 | 27 | ul, ol { 28 | margin: 0; 29 | padding: 0 20px; 30 | 31 | line-height: 1.6em; 32 | } 33 | li { 34 | margin-bottom: 6px; 35 | } 36 | 37 | .codefont { 38 | font-family: Courier; 39 | } 40 | 41 | img.info { 42 | height: 50px; 43 | } 44 | 45 | pre { 46 | font-family: Courier; 47 | font-size: 1em; 48 | margin-left: 2em; 49 | } 50 | 51 | /* 默认表格 */ 52 | table { 53 | margin-left: 2em; 54 | 55 | border-spacing:0px; 56 | border-style: solid; 57 | border-color: #777777; 58 | border-width: 1px; 59 | border-collapse:collapse; 60 | 61 | line-height: 1.6em; 62 | } 63 | 64 | /* 表头默认左对齐 */ 65 | th { 66 | border-style: solid; 67 | border-color: #777777; 68 | border-width: 1px; 69 | 70 | padding: 4px 8px; 71 | background: #cccccc; 72 | text-align: left; 73 | vertical-align: top; 74 | white-space: nowrap; 75 | } 76 | 77 | td { 78 | border-style: solid; 79 | border-color: #777777; 80 | border-width: 1px; 81 | 82 | padding: 4px 8px; 83 | background: #ffffff; 84 | vertical-align: top; 85 | } 86 | 87 | /* 警告框 */ 88 | table.info { 89 | border-style: none; 90 | width: auto; 91 | 92 | margin: 5px 0 5px 40px; 93 | line-height: 1.6em; 94 | } 95 | table.info th { 96 | border-style: none; 97 | 98 | background-color: transparent; 99 | padding: 3px 15px 3px 0; 100 | 101 | vertical-align: top; 102 | } 103 | table.info td { 104 | border-style: none; 105 | 106 | font-weight: bold; 107 | background-color: transparent; 108 | padding: 3px 0px; 109 | 110 | vertical-align: top; 111 | } 112 | 113 | /* 底部导航 */ 114 | table.guide { 115 | margin-left: 0; 116 | 117 | border-style: none; 118 | width: 100%; 119 | 120 | margin-top: 12px; 121 | } 122 | table.guide td { 123 | border-style: none; 124 | 125 | background-color: transparent; 126 | padding: 3px 15px; 127 | } 128 | 129 | /* 目录 */ 130 | table.content { 131 | margin-left: 2em; 132 | 133 | border-style: none; 134 | width: 75%; 135 | 136 | margin-top: 16px; 137 | } 138 | table.content td { 139 | border-style: none; 140 | 141 | background-color: transparent; 142 | padding: 3px 15px; 143 | } 144 | 145 | /* 表格中交替显示灰色 */ 146 | table.blank th { 147 | background: #FFFFFF; 148 | } 149 | tr.alt th, tr.alt td { 150 | background: #EAF2D3; 151 | } 152 | -------------------------------------------------------------------------------- /src/AnsiCEx.cpp: -------------------------------------------------------------------------------- 1 | #include "StdAfx.h" 2 | 3 | wchar_t* __cdecl wcscpyn(wchar_t *strDest, const wchar_t *strSource, int iMaxLength) 4 | { 5 | if (!strDest || !strSource || !iMaxLength) 6 | { 7 | return NULL; 8 | } 9 | 10 | wchar_t *ret = wcsncpy(strDest, strSource, iMaxLength); 11 | strDest[iMaxLength - 1] = 0; 12 | 13 | return ret; 14 | } 15 | 16 | #ifdef _UNICODE 17 | wchar_t* __cdecl wcsrchr_e(const wchar_t *string, const wchar_t *end, int c) 18 | { 19 | register wchar_t *p = NULL; 20 | 21 | if (!string || !string[0]) 22 | { 23 | return NULL; 24 | } 25 | 26 | if (end) 27 | { 28 | p = (wchar_t*)end; 29 | } 30 | else 31 | { 32 | p = (wchar_t*)string + wcslen(string) - 1; 33 | } 34 | 35 | while(p != string) 36 | { 37 | if (*p == c) 38 | { 39 | return p; 40 | } 41 | p--; 42 | } 43 | 44 | return NULL; 45 | } 46 | 47 | wchar_t* __cdecl wcsstri(const wchar_t *string, const wchar_t *search) 48 | { 49 | wchar_t *p = (wchar_t*)string; 50 | wchar_t *s1, *s2; 51 | 52 | if (!search || !*search) 53 | { 54 | return p; 55 | } 56 | 57 | while(*p) 58 | { 59 | s1 = p; 60 | s2 = (wchar_t*)search; 61 | 62 | while (*s1 && *s2 && (towlower(*s1) == towlower(*s2))) 63 | { 64 | s1++, s2++; 65 | } 66 | 67 | if (!*s2) 68 | { 69 | return p; 70 | } 71 | 72 | p++; 73 | } 74 | 75 | return NULL; 76 | } 77 | 78 | #else // #ifndef _UNICODE 79 | char* __cdecl strrchr_e(const char *string, const char *end, int c) 80 | { 81 | register char *p = NULL; 82 | 83 | if (!string || !string[0]) 84 | { 85 | return NULL; 86 | } 87 | 88 | if (end) 89 | { 90 | p = (char*)end; 91 | } 92 | else 93 | { 94 | p = (char*)string + strlen(string) - 1; 95 | } 96 | 97 | while(p != string) 98 | { 99 | if (*p == c) 100 | { 101 | return p; 102 | } 103 | p--; 104 | } 105 | 106 | return NULL; 107 | } 108 | 109 | char* __cdecl strstri(const char *string, const char *search) 110 | { 111 | char *p = (char*)string; 112 | char *s1, *s2; 113 | 114 | if (!search || !*search) 115 | { 116 | return p; 117 | } 118 | 119 | while(*p) 120 | { 121 | s1 = p; 122 | s2 = (char*)search; 123 | 124 | while (*s1 && *s2 && (tolower(*s1) == tolower(*s2))) 125 | { 126 | s1++, s2++; 127 | } 128 | 129 | if (!*s2) 130 | { 131 | return p; 132 | } 133 | 134 | p++; 135 | } 136 | 137 | return NULL; 138 | } 139 | 140 | char* __cdecl strcpyn(char *strDest, const char *strSource, int iMaxLength) 141 | { 142 | if (!strDest || !strSource || !iMaxLength) 143 | { 144 | return NULL; 145 | } 146 | 147 | char *ret = _tcsncpy(strDest, strSource, iMaxLength); 148 | strDest[iMaxLength - 1] = 0; 149 | 150 | return ret; 151 | } 152 | 153 | #endif // #ifdef _UNICODE -------------------------------------------------------------------------------- /src/QGroupBox.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_) 2 | #define AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // XPGroupBox.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CQGroupBox window 12 | 13 | class CQGroupBox : public CButton 14 | { 15 | DECLARE_DYNAMIC(CQGroupBox); 16 | 17 | // Construction 18 | public: 19 | CQGroupBox(); 20 | 21 | enum QGroupBoxStyle 22 | { XPGB_FRAME, 23 | XPGB_WINDOW}; 24 | 25 | // Attributes 26 | public: 27 | 28 | // Operations 29 | public: 30 | virtual CQGroupBox& SetBorderColor(COLORREF clrBorder); 31 | virtual CQGroupBox& SetCatptionTextColor(COLORREF clrText); 32 | virtual CQGroupBox& SetBackgroundColor(COLORREF clrBKClient); 33 | virtual CQGroupBox& SetBackgroundColor(COLORREF clrBKTilte, COLORREF clrBKClient); 34 | virtual CQGroupBox& SetQGroupStyle(QGroupBoxStyle eStyle); 35 | 36 | virtual CQGroupBox& SetText(LPCTSTR lpszTitle); 37 | virtual CQGroupBox& SetFontBold(BOOL bBold); 38 | virtual CQGroupBox& SetFontName(const CString& strFont, BYTE byCharSet = ANSI_CHARSET); 39 | virtual CQGroupBox& SetFontUnderline(BOOL bSet); 40 | virtual CQGroupBox& SetFontItalic(BOOL bSet); 41 | virtual CQGroupBox& SetFontSize(int nSize); 42 | virtual CQGroupBox& SetFont(LOGFONT lf); 43 | 44 | virtual CQGroupBox& SetAlignment(DWORD dwType); 45 | 46 | 47 | // Overrides 48 | // ClassWizard generated virtual function overrides 49 | //{{AFX_VIRTUAL(CQGroupBox) 50 | public: 51 | virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext = NULL); 52 | protected: 53 | virtual BOOL PreCreateWindow(CREATESTRUCT& cs); 54 | virtual void PreSubclassWindow(); 55 | //}}AFX_VIRTUAL 56 | 57 | // Implementation 58 | public: 59 | virtual ~CQGroupBox(); 60 | 61 | // Generated message map functions 62 | protected: 63 | void UpdateSurface(); 64 | void ReconstructFont(); 65 | //{{AFX_MSG(CQGroupBox) 66 | afx_msg void OnPaint(); 67 | //}}AFX_MSG 68 | 69 | DECLARE_MESSAGE_MAP() 70 | 71 | private: 72 | CString m_strTitle; 73 | 74 | COLORREF m_clrBorder; 75 | COLORREF m_clrTitleBackground; 76 | COLORREF m_clrClientBackground; 77 | COLORREF m_clrTitleText; 78 | 79 | QGroupBoxStyle m_nType; 80 | DWORD m_dwAlignment; 81 | 82 | LOGFONT m_lf; 83 | CFont m_font; 84 | 85 | }; 86 | 87 | ///////////////////////////////////////////////////////////////////////////// 88 | 89 | //{{AFX_INSERT_LOCATION}} 90 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 91 | 92 | #endif // !defined(AFX_XPGROUPBOX_H__F70D755B_9C4B_4F4A_A1FB_AFF720C29717__INCLUDED_) 93 | -------------------------------------------------------------------------------- /src/TestSetDlg.cpp: -------------------------------------------------------------------------------- 1 | // TestSetDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "TestSetDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | static LPCTSTR lpszTestDlg = _T("Test Dialog"); 15 | static LPCTSTR lpszTestPara = _T("Test Parameter"); 16 | 17 | ///////////////////////////////////////////////////////////////////////////// 18 | // CTestSetDlg 19 | 20 | CTestSetDlg::CTestSetDlg(UINT nIDCaption, CList *pPaperList, CPaper *pCurSelPaper, CWnd* pParent /*=NULL*/) : 21 | CClrDialog(CTestSetDlg::IDD, pParent), 22 | m_CommDlg(pPaperList, pCurSelPaper), 23 | m_nIDCaption(nIDCaption) 24 | { 25 | } 26 | 27 | CTestSetDlg::~CTestSetDlg() 28 | { 29 | } 30 | 31 | void CTestSetDlg::DoDataExchange(CDataExchange* pDX) 32 | { 33 | CDialog::DoDataExchange(pDX); 34 | //{{AFX_DATA_MAP(CTestSetDlg) 35 | DDX_Control(pDX, IDOK, m_cBtnOK); 36 | DDX_Control(pDX, IDCANCEL, m_cBtnCancel); 37 | DDX_Control(pDX, IDC_TAB, m_cTab); 38 | //}}AFX_DATA_MAP 39 | } 40 | 41 | 42 | BEGIN_MESSAGE_MAP(CTestSetDlg, CClrDialog) 43 | //{{AFX_MSG_MAP(CTestSetDlg) 44 | //}}AFX_MSG_MAP 45 | ON_COMMAND(IDOK, OnOK) 46 | END_MESSAGE_MAP() 47 | 48 | ///////////////////////////////////////////////////////////////////////////// 49 | // CTestSetDlg message handlers 50 | 51 | void CTestSetDlg::OnOK() 52 | { 53 | if (m_CommDlg.CheckCanExit()) 54 | { 55 | m_ChsDlg.UpdateData(); 56 | 57 | CDialog::OnOK(); 58 | } 59 | } 60 | 61 | int CTestSetDlg::DoModal() 62 | { 63 | m_CommDlg.SetChsDlg(&m_ChsDlg); 64 | LoadSetPara(); 65 | 66 | int nRet = CDialog::DoModal(); 67 | if (IDOK == nRet) 68 | { 69 | m_CommDlg.FillTestPara(&m_TestPara); 70 | m_ChsDlg.FillTestPara(&m_TestPara); 71 | m_BlkTxtDlg.FillTestPara(&m_TestPara); 72 | 73 | SaveSetPara(); 74 | } 75 | 76 | return nRet; 77 | } 78 | 79 | BOOL CTestSetDlg::OnInitDialog() 80 | { 81 | CClrDialog::OnInitDialog(); 82 | 83 | CString string; 84 | string.LoadString(IDS_TEST_TESTSET); 85 | SetWindowText(string); 86 | 87 | string.LoadString(IDS_TESTSET_COMMSET); 88 | m_cTab.AddPage(IDD_TESTSET_COMMDLG, &m_CommDlg, string); 89 | 90 | string.LoadString(IDS_TESTSET_CHSSET); 91 | m_cTab.AddPage(IDD_TESTSET_CHSDLG, &m_ChsDlg, string); 92 | 93 | string.LoadString(IDS_TESTSET_BLKTXTSET); 94 | m_cTab.AddPage(IDD_TESTSET_BLKTXTDLG, &m_BlkTxtDlg, string); 95 | 96 | return FALSE; 97 | } 98 | 99 | void CTestSetDlg::LoadSetPara() 100 | { 101 | if (m_TestPara.LoadTestPara()) 102 | { 103 | m_CommDlg.InitTestPara(&m_TestPara); 104 | m_ChsDlg.InitTestPara(&m_TestPara); 105 | m_BlkTxtDlg.InitTestPara(&m_TestPara); 106 | } 107 | } 108 | 109 | void CTestSetDlg::SaveSetPara() 110 | { 111 | m_TestPara.SaveTestPara(); 112 | } -------------------------------------------------------------------------------- /docs/1.2.5_batchset.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon批量操作 16 |

17 |
18 | 19 |
20 | 批量操作界面如下: 21 |
22 |
23 | 批量操作 24 |
25 | 26 |
27 |
28 | 检测选中题目中的单选题,并将其转换为单个选项的多选题;若选中的题目中包含非单选题,跳过这些题目。 29 |
30 | 31 |
32 |
33 | 检测选中题目中单个答案的多选题,并将其转换为单选题;若选中的题目中包含非多选题或答案超过一个的多选题,跳过这些题目。 34 |
35 | 36 |
37 |
38 | 首先自动按照类型顺序对主界面右侧窗格中的所有题目进行排序,然后进行检测,若有多个题目相似度大于设定值(可设定为80%~100%),则选中相似题目中除排在最前的题目之外的所有相似题目。 39 |
40 |
41 | 例如,选中下图题库中相似度超过80%的重复题目,结果如下,即认为4道单选题相似度较高,为重复题目,并选中了后3道。 42 |
43 |
44 | 批量操作 45 |
46 |
47 | 又例:选中上图题库中相似度超过99%的重复题目,结果未选中任何一道题目,即认为均不相似。 48 |
49 |
50 | 本功能可用于剔除题库中的重复题目。 51 |
52 | 53 | 54 |
警告相似度仅供参考,若利用此方法剔除重复题目,剔除前一定要重复确认,以免误删。
55 |
56 | 重复题目的定义如下: 57 |
58 | 64 | 65 | 66 |
警告对于选择题而言,若进行比较的两道题目答案不同,则不认为是重复题目;若选项内容相似,但选项顺序不同,也不认为是重复题目;
题目解析不参与相似度检查。
67 | 68 |
69 |
70 | 检测选中题目中的单选题和单个答案的多选题,并将其转换为判断题。有如下规则: 71 |
72 | 76 | 77 | 78 | 79 |
上一篇目录下一篇
80 | 81 |
82 | GX Software 2020-2021
83 | V2.0 84 | 85 | 86 | 87 | -------------------------------------------------------------------------------- /src/PasswordDlg.h: -------------------------------------------------------------------------------- 1 | #if !defined(AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_) 2 | #define AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_ 3 | 4 | #if _MSC_VER > 1000 5 | #pragma once 6 | #endif // _MSC_VER > 1000 7 | // PasswordDlg.h : header file 8 | // 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // CPasswordDlg dialog 12 | 13 | class CPasswordDlg : public CClrDialog 14 | { 15 | // Construction 16 | public: 17 | CPasswordDlg(CWnd* pParent = NULL); // standard constructor 18 | 19 | void SetPara(BOOL bIsLocked, LPBYTE pOldPswd); 20 | LPBYTE GetPassword() { return m_uNewPswd; } 21 | LPCSTR GetPasswordText() { return m_sPswd; } 22 | 23 | // Dialog Data 24 | //{{AFX_DATA(CPasswordDlg) 25 | enum { IDD = IDD_PASSWORD_DLG }; 26 | CQEdit m_cEditCheckPswd; 27 | CQEdit m_cEditNewPswd; 28 | CQEdit m_cEditOldPswd; 29 | CQButton m_cBtnOK; 30 | //}}AFX_DATA 31 | 32 | 33 | // Overrides 34 | // ClassWizard generated virtual function overrides 35 | //{{AFX_VIRTUAL(CPasswordDlg) 36 | protected: 37 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 38 | //}}AFX_VIRTUAL 39 | 40 | BOOL CheckInput(); 41 | 42 | // Implementation 43 | protected: 44 | BOOL m_bIsLocked; 45 | 46 | BYTE m_uOldPswd[16]; 47 | BYTE m_uNewPswd[16]; 48 | char m_sPswd[MAX_PASSWORD_LEN + 1]; 49 | 50 | // Generated message map functions 51 | //{{AFX_MSG(CPasswordDlg) 52 | virtual void OnOK(); 53 | virtual BOOL OnInitDialog(); 54 | //}}AFX_MSG 55 | DECLARE_MESSAGE_MAP() 56 | }; 57 | 58 | ///////////////////////////////////////////////////////////////////////////// 59 | // CUnlockDlg dialog 60 | 61 | class CUnlockDlg : public CClrDialog 62 | { 63 | // Construction 64 | public: 65 | CUnlockDlg(LPBYTE pPswd, CWnd* pParent = NULL); // standard constructor 66 | 67 | LPCSTR GetPasswordText() { return m_sPswd; } 68 | 69 | // Dialog Data 70 | //{{AFX_DATA(CUnlockDlg) 71 | enum { IDD = IDD_UNLOCK_DLG }; 72 | CQButton m_cBtnOK; 73 | CQEdit m_cEditPswd; 74 | //}}AFX_DATA 75 | 76 | 77 | // Overrides 78 | // ClassWizard generated virtual function overrides 79 | //{{AFX_VIRTUAL(CUnlockDlg) 80 | protected: 81 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 82 | //}}AFX_VIRTUAL 83 | BOOL CheckInput(); 84 | 85 | // Implementation 86 | protected: 87 | BYTE m_uTrue[16]; 88 | char m_sPswd[MAX_PASSWORD_LEN + 1]; 89 | 90 | // Generated message map functions 91 | //{{AFX_MSG(CUnlockDlg) 92 | virtual void OnOK(); 93 | virtual BOOL OnInitDialog(); 94 | //}}AFX_MSG 95 | DECLARE_MESSAGE_MAP() 96 | }; 97 | 98 | //{{AFX_INSERT_LOCATION}} 99 | // Microsoft Visual C++ will insert additional declarations immediately before the previous line. 100 | 101 | #endif // !defined(AFX_PASSWORDDLG_H__C8E8754A_A523_451E_B21A_6BE18A6E05B3__INCLUDED_) 102 | -------------------------------------------------------------------------------- /lib/zlib/compress.c: -------------------------------------------------------------------------------- 1 | /* compress.c -- compress a memory buffer 2 | * Copyright (C) 1995-2005, 2014, 2016 Jean-loup Gailly, Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* @(#) $Id$ */ 7 | 8 | #define ZLIB_INTERNAL 9 | #include "zlib.h" 10 | 11 | /* =========================================================================== 12 | Compresses the source buffer into the destination buffer. The level 13 | parameter has the same meaning as in deflateInit. sourceLen is the byte 14 | length of the source buffer. Upon entry, destLen is the total size of the 15 | destination buffer, which must be at least 0.1% larger than sourceLen plus 16 | 12 bytes. Upon exit, destLen is the actual size of the compressed buffer. 17 | 18 | compress2 returns Z_OK if success, Z_MEM_ERROR if there was not enough 19 | memory, Z_BUF_ERROR if there was not enough room in the output buffer, 20 | Z_STREAM_ERROR if the level parameter is invalid. 21 | */ 22 | int ZEXPORT compress2 (dest, destLen, source, sourceLen, level) 23 | Bytef *dest; 24 | uLongf *destLen; 25 | const Bytef *source; 26 | uLong sourceLen; 27 | int level; 28 | { 29 | z_stream stream; 30 | int err; 31 | const uInt max = (uInt)-1; 32 | uLong left; 33 | 34 | left = *destLen; 35 | *destLen = 0; 36 | 37 | stream.zalloc = (alloc_func)0; 38 | stream.zfree = (free_func)0; 39 | stream.opaque = (voidpf)0; 40 | 41 | err = deflateInit(&stream, level); 42 | if (err != Z_OK) return err; 43 | 44 | stream.next_out = dest; 45 | stream.avail_out = 0; 46 | stream.next_in = (z_const Bytef *)source; 47 | stream.avail_in = 0; 48 | 49 | do { 50 | if (stream.avail_out == 0) { 51 | stream.avail_out = left > (uLong)max ? max : (uInt)left; 52 | left -= stream.avail_out; 53 | } 54 | if (stream.avail_in == 0) { 55 | stream.avail_in = sourceLen > (uLong)max ? max : (uInt)sourceLen; 56 | sourceLen -= stream.avail_in; 57 | } 58 | err = deflate(&stream, sourceLen ? Z_NO_FLUSH : Z_FINISH); 59 | } while (err == Z_OK); 60 | 61 | *destLen = stream.total_out; 62 | deflateEnd(&stream); 63 | return err == Z_STREAM_END ? Z_OK : err; 64 | } 65 | 66 | /* =========================================================================== 67 | */ 68 | int ZEXPORT compress (dest, destLen, source, sourceLen) 69 | Bytef *dest; 70 | uLongf *destLen; 71 | const Bytef *source; 72 | uLong sourceLen; 73 | { 74 | return compress2(dest, destLen, source, sourceLen, Z_DEFAULT_COMPRESSION); 75 | } 76 | 77 | /* =========================================================================== 78 | If the default memLevel or windowBits for deflateInit() is changed, then 79 | this function needs to be updated. 80 | */ 81 | uLong ZEXPORT compressBound (sourceLen) 82 | uLong sourceLen; 83 | { 84 | return sourceLen + (sourceLen >> 12) + (sourceLen >> 14) + 85 | (sourceLen >> 25) + 13; 86 | } 87 | -------------------------------------------------------------------------------- /src/PaperPropertiesDlg.cpp: -------------------------------------------------------------------------------- 1 | // PaperPropertiesDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "PropertiesDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CPaperPropertiesDlg dialog 16 | 17 | 18 | CPaperPropertiesDlg::CPaperPropertiesDlg(CWnd* pParent /*=NULL*/) : 19 | CClrDialog(CPaperPropertiesDlg::IDD, pParent), 20 | m_pPaper(NULL), m_bShowStoreList(FALSE) 21 | { 22 | //{{AFX_DATA_INIT(CPaperPropertiesDlg) 23 | // NOTE: the ClassWizard will add member initialization here 24 | //}}AFX_DATA_INIT 25 | } 26 | 27 | 28 | void CPaperPropertiesDlg::DoDataExchange(CDataExchange* pDX) 29 | { 30 | CDialog::DoDataExchange(pDX); 31 | //{{AFX_DATA_MAP(CPaperPropertiesDlg) 32 | DDX_Control(pDX, IDC_STATIC_INFO, m_cGroup); 33 | DDX_Control(pDX, IDOK, m_cBtnOK); 34 | //}}AFX_DATA_MAP 35 | } 36 | 37 | 38 | BEGIN_MESSAGE_MAP(CPaperPropertiesDlg, CClrDialog) 39 | //{{AFX_MSG_MAP(CPaperPropertiesDlg) 40 | //}}AFX_MSG_MAP 41 | END_MESSAGE_MAP() 42 | 43 | ///////////////////////////////////////////////////////////////////////////// 44 | // CPaperPropertiesDlg message handlers 45 | 46 | BOOL CPaperPropertiesDlg::OnInitDialog() 47 | { 48 | CClrDialog::OnInitDialog(); 49 | 50 | if (m_pPaper) 51 | { 52 | SetDlgItemText(IDC_EDIT_PAPERNAME, m_pPaper->GetDescription()); 53 | 54 | CString string1, string2; 55 | LPCTSTR ptr = m_pPaper->GetFilePath(); 56 | if (ptr) 57 | { 58 | SetDlgItemText(IDC_EDIT_PAPERPATH, ptr); 59 | } 60 | else 61 | { 62 | string1.LoadString(IDS_PAPER_NOPATH); 63 | SetDlgItemText(IDC_EDIT_PAPERPATH, string1); 64 | } 65 | 66 | string1.LoadString(IDS_ITEM_YES); 67 | string2.LoadString(IDS_ITEM_NO); 68 | SetDlgItemText(IDC_EDIT_CANEDIT, m_pPaper->CanEdit() ? string2 : string1); 69 | 70 | switch(m_pPaper->GetDefSaveStyle()) 71 | { 72 | case PAPER_FILETYPE_BIN: 73 | case PAPER_FILETYPE_JPEGBIN: 74 | string1.LoadString(IDS_PAPER_BIN); 75 | break; 76 | 77 | case PAPER_FILETYPE_OLDBIN: 78 | string1.LoadString(IDS_PAPER_OLDBIN); 79 | break; 80 | 81 | case PAPER_FILETYPE_XML: 82 | case PAPER_FILETYPE_JPEGXML: 83 | string1.LoadString(IDS_PAPER_XML); 84 | break; 85 | 86 | default: 87 | string1.LoadString(IDS_PAPER_UNKNOWN); 88 | } 89 | SetDlgItemText(IDC_EDIT_FILETYPE, string1); 90 | 91 | CString str; 92 | if (m_bShowStoreList) 93 | { 94 | m_pPaper->GetSaveList()->GetListInfo(str); 95 | 96 | string1.LoadString(IDS_PROPS_STORE); 97 | SetDlgItemText(IDC_STATIC_INFO, string1); 98 | } 99 | else 100 | { 101 | m_pPaper->GetPaperInfo(str); 102 | } 103 | SetDlgItemText(IDC_EDIT_PAPERINFO, str); 104 | } 105 | 106 | return TRUE; // return TRUE unless you set the focus to a control 107 | // EXCEPTION: OCX Property Pages should return FALSE 108 | } 109 | -------------------------------------------------------------------------------- /docs/2.0.2_binformat.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon标准题库文件格式 16 |

17 |
18 | 19 |
20 | 标准题库文件是被V2.0及更新版QuickQuiz支持的题库文件,扩展名为*.qux,为序列化的二进制文件,推荐使用此格式。 21 |
22 | 23 |
表13  标准题库文件格式
24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 51 | 52 | 53 | 54 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 69 | 70 |
段序号段描述段长度是否必需说明
1题库开始标记9Bytes必需UTF-8编码方式的“QuickQuiz”字串,区分大小写。
2题库版本信息4Bytes必需用于识别quiz题库文件的格式信息,在qux题库文件中,此段可为不低于4的任意值,建议为4。
3加密方式1Byte必需
    37 |
  • 0:不加密
  • 38 |
  • 1:CBC模式的128位密钥AES加密
  • 39 |
4密码的MD5校验值4Bytes可选,若段3不为0,则有此段若题库被加密,计算密码的MD5校验值并保存于此;若题库未加密,无此段。
5压缩方式1Byte必需
    48 |
  • 0:不压缩
  • 49 |
  • 1:zlib压缩
  • 50 |
6数据块大小4Bytes必需 55 |
后续存储数据长度。若题库未压缩,此段为原始数据长度;若题库被压缩,此段为压缩后的数据长度。
56 |
若题库采用方式1加密,需要做128位补全,此长度仍为压缩后数据长度(未补全的长度),补全后的实际长度需要在读取时计算得出。
57 |
7解压后数据长度4Bytes可选,若段5不为0,则有此段若题库采用方式1压缩,此段为压缩前数据长度;若题库不压缩,无此段。
8数据块内容视内容而定必需 66 |
实际的题库内容。
67 |
题库内容的原始数据格式与兼容题库文件格式基本相同,实际为XML字串,无BOM头,字串末尾必须包含1字节的“\0”,且此“\0”也计算在原始数据长度中。
68 |
71 | 72 |
73 | 题库文件的开头和末尾允许添加无关数据,且不应影响题库内容的解析。 74 |
75 | 76 |
77 | 在读取文件时,凡不符合表13格式的文件,均视为损坏文件,不予读取。 78 |
79 | 80 | 81 | 82 |
上一篇目录下一篇
83 | 84 |
85 | GX Software 2020-2021
86 | V2.0 87 | 88 | 89 | 90 | -------------------------------------------------------------------------------- /lib/tinyxml/tinystr.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | www.sourceforge.net/projects/tinyxml 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any 6 | damages arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any 9 | purpose, including commercial applications, and to alter it and 10 | redistribute it freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must 13 | not claim that you wrote the original software. If you use this 14 | software in a product, an acknowledgment in the product documentation 15 | would be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and 18 | must not be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | */ 23 | 24 | 25 | #include "StdAfx.h" 26 | #include "tinystr.h" 27 | 28 | #ifndef TIXML_USE_STL 29 | 30 | // Error value for find primitive 31 | const TiXmlString::size_type TiXmlString::npos = static_cast< TiXmlString::size_type >(-1); 32 | 33 | 34 | // Null rep. 35 | TiXmlString::Rep TiXmlString::nullrep_ = { 0, 0, { '\0' } }; 36 | 37 | 38 | void TiXmlString::reserve (size_type cap) 39 | { 40 | if (cap > capacity()) 41 | { 42 | TiXmlString tmp; 43 | tmp.init(length(), cap); 44 | memcpy(tmp.start(), data(), length()); 45 | swap(tmp); 46 | } 47 | } 48 | 49 | 50 | TiXmlString& TiXmlString::assign(const char* str, size_type len) 51 | { 52 | size_type cap = capacity(); 53 | if (len > cap || cap > 3*(len + 8)) 54 | { 55 | TiXmlString tmp; 56 | tmp.init(len); 57 | memcpy(tmp.start(), str, len); 58 | swap(tmp); 59 | } 60 | else 61 | { 62 | memmove(start(), str, len); 63 | set_size(len); 64 | } 65 | return *this; 66 | } 67 | 68 | 69 | TiXmlString& TiXmlString::append(const char* str, size_type len) 70 | { 71 | size_type newsize = length() + len; 72 | if (newsize > capacity()) 73 | { 74 | reserve (newsize + capacity()); 75 | } 76 | memmove(finish(), str, len); 77 | set_size(newsize); 78 | return *this; 79 | } 80 | 81 | 82 | TiXmlString operator + (const TiXmlString & a, const TiXmlString & b) 83 | { 84 | TiXmlString tmp; 85 | tmp.reserve(a.length() + b.length()); 86 | tmp += a; 87 | tmp += b; 88 | return tmp; 89 | } 90 | 91 | TiXmlString operator + (const TiXmlString & a, const char* b) 92 | { 93 | TiXmlString tmp; 94 | TiXmlString::size_type b_len = static_cast( strlen(b) ); 95 | tmp.reserve(a.length() + b_len); 96 | tmp += a; 97 | tmp.append(b, b_len); 98 | return tmp; 99 | } 100 | 101 | TiXmlString operator + (const char* a, const TiXmlString & b) 102 | { 103 | TiXmlString tmp; 104 | TiXmlString::size_type a_len = static_cast( strlen(a) ); 105 | tmp.reserve(a_len + b.length()); 106 | tmp.append(a, a_len); 107 | tmp += b; 108 | return tmp; 109 | } 110 | 111 | 112 | #endif // TIXML_USE_STL 113 | -------------------------------------------------------------------------------- /docs/1.2.4_setcover.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon题库封面 16 |

17 |
18 | 19 |
20 | 设置题库封面后,可以将题库封装在jpeg图片中。 21 |
22 |
23 | 编辑题目 24 |
25 | 26 | 27 | 28 |
警告切勿使用任何图像编辑软件对封装好的题库进行编辑或压缩,否则极易丢失题库信息!!!
29 | 30 |
  • 无封面
31 |
32 | 删除所有的封面信息,且题库不可保存为带封面的题库文件。 33 |
34 | 35 |
  • 自动封面
36 |
37 | 生成默认格式的封面,可设定的内容包括: 38 |
39 |
    40 |
  • 41 | 封面文字:用于标识题库名称,长度不限,但可能受限于区域大小而无法全部显示,一般最多可显示20个汉字。 42 |
  • 43 |
  • 44 | 封面大小:jpeg图的像素值。(建议长宽均大于50像素,否则可能字迹不清)。 45 |
  • 46 |
  • 47 | 背景颜色/字体颜色:支持24位真彩色。 48 |
  • 49 |
50 |
51 | 生成的封面样例如下(下图实际为题库,下载后可在QuickQuiz中打开): 52 |
53 |
54 | 样例 55 |
56 | 57 | 58 |
警告将带有自动封面题库保存为不带封面题库时,自动封面信息仍然保留。
59 | 60 |
  • 自定义封面
61 |
62 | 导入您喜欢的jpeg图片作为题库封面。 63 |
64 | 65 | 66 |
警告将带有自定义封面题库保存为不带封面题库时,自定义封面图将丢失。
67 | 68 |
  • 手动制作封面
69 |
70 | 您也可以不借助本应用程序,手动将现有的无封面标准题库文件或无封面兼容题库文件加上封面。 71 |
72 |
    73 |
  1. 将需要添加封面的题库文件(例如1.qux,必须不带封面)与封面图片(例如1.jpg,必须为jpeg/jpg格式)放在同一路径下(例如D:\a);
  2. 74 |
  3. 打开命令提示符,并进入D:\a路径;
  4. 75 |
  5. 执行命令“copy /b 1.qux+1.jpg 新建题库.jpg”(注意顺序不能错,否则将看不到封面);
  6. 76 |
  7. 最终在D:\a路径下获取添加封面的题库“新建题库.jpg”,可在QuickQuiz中打开。
  8. 77 |
78 |
79 | 手动制作 80 |
81 | 82 | 83 | 84 |
警告如非必要,仍建议使用QuickQuiz对题库封面进行管理。
即使在执行上述命令时将jpg封面和qux文件的顺序弄反,最终生成的题库仍然可以读取。
85 | 86 | 87 | 88 |
上一篇目录下一篇
89 | 90 |
91 | GX Software 2020-2021
92 | V2.0 93 | 94 | 95 | 96 | -------------------------------------------------------------------------------- /lib/zlib/inftrees.h: -------------------------------------------------------------------------------- 1 | /* inftrees.h -- header to use inftrees.c 2 | * Copyright (C) 1995-2005, 2010 Mark Adler 3 | * For conditions of distribution and use, see copyright notice in zlib.h 4 | */ 5 | 6 | /* WARNING: this file should *not* be used by applications. It is 7 | part of the implementation of the compression library and is 8 | subject to change. Applications should only use zlib.h. 9 | */ 10 | 11 | /* Structure for decoding tables. Each entry provides either the 12 | information needed to do the operation requested by the code that 13 | indexed that table entry, or it provides a pointer to another 14 | table that indexes more bits of the code. op indicates whether 15 | the entry is a pointer to another table, a literal, a length or 16 | distance, an end-of-block, or an invalid code. For a table 17 | pointer, the low four bits of op is the number of index bits of 18 | that table. For a length or distance, the low four bits of op 19 | is the number of extra bits to get after the code. bits is 20 | the number of bits in this code or part of the code to drop off 21 | of the bit buffer. val is the actual byte to output in the case 22 | of a literal, the base length or distance, or the offset from 23 | the current table to the next table. Each entry is four bytes. */ 24 | typedef struct { 25 | unsigned char op; /* operation, extra bits, table bits */ 26 | unsigned char bits; /* bits in this part of the code */ 27 | unsigned short val; /* offset in table or code value */ 28 | } code; 29 | 30 | /* op values as set by inflate_table(): 31 | 00000000 - literal 32 | 0000tttt - table link, tttt != 0 is the number of table index bits 33 | 0001eeee - length or distance, eeee is the number of extra bits 34 | 01100000 - end of block 35 | 01000000 - invalid code 36 | */ 37 | 38 | /* Maximum size of the dynamic table. The maximum number of code structures is 39 | 1444, which is the sum of 852 for literal/length codes and 592 for distance 40 | codes. These values were found by exhaustive searches using the program 41 | examples/enough.c found in the zlib distribtution. The arguments to that 42 | program are the number of symbols, the initial root table size, and the 43 | maximum bit length of a code. "enough 286 9 15" for literal/length codes 44 | returns returns 852, and "enough 30 6 15" for distance codes returns 592. 45 | The initial root table size (9 or 6) is found in the fifth argument of the 46 | inflate_table() calls in inflate.c and infback.c. If the root table size is 47 | changed, then these maximum sizes would be need to be recalculated and 48 | updated. */ 49 | #define ENOUGH_LENS 852 50 | #define ENOUGH_DISTS 592 51 | #define ENOUGH (ENOUGH_LENS+ENOUGH_DISTS) 52 | 53 | /* Type of code to build for inflate_table() */ 54 | typedef enum { 55 | CODES, 56 | LENS, 57 | DISTS 58 | } codetype; 59 | 60 | int ZLIB_INTERNAL inflate_table OF((codetype type, unsigned short FAR *lens, 61 | unsigned codes, code FAR * FAR *table, 62 | unsigned FAR *bits, unsigned short FAR *work)); 63 | -------------------------------------------------------------------------------- /docs/1.0.1_interface.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | QuickQuiz帮助文档 8 | 9 | 10 | 11 | 12 | 13 | 14 |

15 | icon主界面 16 |

17 |
18 | 19 |
20 | 在Windows7系统下运行的效果如下图。 21 |
22 | 23 |
24 | 界面 25 |
26 | 27 | 28 | 29 |
警告本帮助文档中的所有演示界面均为Windows7 Ultimate x64系统风格,不同版本系统下界面可能有轻微差异,不再另行说明。
30 | 31 |
32 | 主界面分为左右两个窗格,左侧窗格显示当前打开的全部题库,右侧窗格显示选中题库的题目。 33 |
34 | 35 |
36 | 左侧窗格支持拖拽打开文件功能,当未打开任何题库时,双击左侧窗格可弹出打开题库对话框。QuickQuiz支持的题库文件类型详见表1。 37 |
38 | 39 |
40 | 当在左侧窗格中选中题库节点(闭合态图标为收起题库,展开态图标为展开题库)时,右侧窗格将显示选中题库内的全部题目;当将题库节点展开,并选中各类型节点(默认类型图标为默认类型,自定义类型图标为自定义类型,题目组类型图标为题目组)时,右侧窗格显示选中题库内选中类型的全部题目;当选中收藏夹(未选中图标为收藏夹,选中图标为收藏夹)时,右侧窗格显示选中题库中被收藏的全部题目。 41 |
42 |
43 | 为便于说明,我们做如下约定: 44 |
45 |
    46 |
  • 当在左侧窗格中选中题库节点时,称右侧窗格为“题库窗格”;
  • 47 |
  • 当在左侧窗格中选中类型/题目组节点时,称右侧窗格为“类型窗格”。
  • 48 |
49 | 50 |
51 | 在左侧窗格中,若题库在保存前有改动,则将会在题库名称右侧显示“*”符号;若题库为只读,则将会在题库名称右侧显示“[只读]”字样;若题库被加密,则题库节点图标的右下角将显示一锁形(锁定)图案。 52 |
53 | 54 |
55 | 在右侧窗格点击标头,可按照不同的规则对题目进行排序: 56 |
57 |
    58 |
  • 点击“序号”标头可按照题目的加入顺序进行排序;
  • 59 |
  • 点击“摘要”标头可按照题目内容进行排序;
  • 60 |
  • 点击“题目类型”标头可按照题目类型分类排序(同类型的题目则按题目内容进行排序)
  • 61 |
62 |
63 | 标头文字右侧上三角表示升序排列,下三角表示降序排列,可通过多次点击同一标头切换排序规则。 64 |
65 | 66 | 67 | 68 |
警告排序功能仅改变显示顺序,方便对题目进行查看管理,不会对题库文件造成改动。
69 | 70 | 71 | 72 |
上一篇目录下一篇
73 | 74 |
75 | GX Software 2020-2021
76 | V2.0 77 | 78 | 79 | 80 | -------------------------------------------------------------------------------- /src/TestSetBlkTxtDlg.cpp: -------------------------------------------------------------------------------- 1 | // TestSetBlkTxtDlg.cpp : implementation file 2 | // 3 | 4 | #include "stdafx.h" 5 | #include "quickquiz.h" 6 | #include "TestSetDlg.h" 7 | 8 | #ifdef _DEBUG 9 | #define new DEBUG_NEW 10 | #undef THIS_FILE 11 | static char THIS_FILE[] = __FILE__; 12 | #endif 13 | 14 | ///////////////////////////////////////////////////////////////////////////// 15 | // CTestSetBlkTxtDlg dialog 16 | 17 | 18 | CTestSetBlkTxtDlg::CTestSetBlkTxtDlg(CWnd* pParent /*=NULL*/) : 19 | CTabPage(CTestSetBlkTxtDlg::IDD, pParent) 20 | { 21 | //{{AFX_DATA_INIT(CTestSetBlkTxtDlg) 22 | m_bBlkAllRight = FALSE; 23 | m_bOnlyBlk = FALSE; 24 | m_bRandomBlk = FALSE; 25 | m_bTxtAllRight = FALSE; 26 | //}}AFX_DATA_INIT 27 | } 28 | 29 | 30 | void CTestSetBlkTxtDlg::DoDataExchange(CDataExchange* pDX) 31 | { 32 | CDialog::DoDataExchange(pDX); 33 | //{{AFX_DATA_MAP(CTestSetBlkTxtDlg) 34 | DDX_Control(pDX, IDC_CHECK_TXTALLRIGHT, m_cCheckTxtAllRight); 35 | DDX_Control(pDX, IDC_CHECK_RANDOMBLK, m_cCheckRandomBlk); 36 | DDX_Control(pDX, IDC_CHECK_ONLYBLK, m_cCheckOnlyBlk); 37 | DDX_Control(pDX, IDC_CHECK_BLKALLRIGHT, m_cCheckBlkAllRight); 38 | DDX_Check(pDX, IDC_CHECK_BLKALLRIGHT, m_bBlkAllRight); 39 | DDX_Check(pDX, IDC_CHECK_ONLYBLK, m_bOnlyBlk); 40 | DDX_Check(pDX, IDC_CHECK_RANDOMBLK, m_bRandomBlk); 41 | DDX_Check(pDX, IDC_CHECK_TXTALLRIGHT, m_bTxtAllRight); 42 | //}}AFX_DATA_MAP 43 | } 44 | 45 | 46 | BEGIN_MESSAGE_MAP(CTestSetBlkTxtDlg, CTabPage) 47 | //{{AFX_MSG_MAP(CTestSetBlkTxtDlg) 48 | ON_BN_CLICKED(IDC_CHECK_ONLYBLK, OnCheckOnlyBlk) 49 | ON_BN_CLICKED(IDC_CHECK_RANDOMBLK, OnCheckRandomBlk) 50 | //}}AFX_MSG_MAP 51 | END_MESSAGE_MAP() 52 | 53 | ///////////////////////////////////////////////////////////////////////////// 54 | // CTestSetBlkTxtDlg message handlers 55 | 56 | void CTestSetBlkTxtDlg::OnCheckOnlyBlk() 57 | { 58 | ((CButton*)GetDlgItem(IDC_CHECK_RANDOMBLK))->SetCheck(FALSE); 59 | } 60 | 61 | void CTestSetBlkTxtDlg::OnCheckRandomBlk() 62 | { 63 | ((CButton*)GetDlgItem(IDC_CHECK_ONLYBLK))->SetCheck(FALSE); 64 | } 65 | 66 | BOOL CTestSetBlkTxtDlg::OnKillActive(BOOL bIsDestroy) 67 | { 68 | UpdateData(); 69 | 70 | return CTabPage::OnKillActive(bIsDestroy); 71 | } 72 | 73 | void CTestSetBlkTxtDlg::InitTestPara(CTestPara *pCPara) 74 | { 75 | if (!pCPara) 76 | { 77 | return; 78 | } 79 | PTESTPARA pPara = pCPara->GetTestPara(); 80 | 81 | m_bBlkAllRight = (pPara->dwBlkOptions & BLKOPTION_ALLRIGHT) ? TRUE : FALSE; 82 | m_bOnlyBlk = (pPara->dwBlkOptions & BLKOPTION_ONLYBLK) ? TRUE : FALSE; 83 | m_bRandomBlk = (pPara->dwBlkOptions & BLKOPTION_RANDOMBLK) ? TRUE : FALSE; 84 | m_bTxtAllRight = (pPara->dwBlkOptions & TXTOPTION_ALLRIGHT) ? TRUE : FALSE; 85 | } 86 | 87 | void CTestSetBlkTxtDlg::FillTestPara(CTestPara *pCPara) 88 | { 89 | if (!pCPara) 90 | { 91 | return; 92 | } 93 | PTESTPARA pPara = pCPara->GetTestPara(); 94 | 95 | pPara->dwBlkOptions = pPara->dwTxtOptions = 0; 96 | pPara->dwBlkOptions |= (m_bBlkAllRight ? BLKOPTION_ALLRIGHT : 0); 97 | pPara->dwBlkOptions |= (m_bOnlyBlk ? BLKOPTION_ONLYBLK: 0); 98 | pPara->dwBlkOptions |= (m_bRandomBlk ? BLKOPTION_RANDOMBLK: 0); 99 | pPara->dwTxtOptions |= (m_bTxtAllRight ? TXTOPTION_ALLRIGHT: 0); 100 | } 101 | --------------------------------------------------------------------------------