I. Functions
1. Customize the directory, difficulty level, question type, and knowledge base of the test database management system.
2. Enter questions.
3. Powerful question editing functions, which are common to common application editing tools.
4. Flexible exam construction function. You can customize exam title, exam category, question quantity, total score, and question Difficulty coefficient.
5. The format of manually generated and automatically generated exam documents is standard and common. It can be properly used, effectively edited, and saved for convenient browsing and output.
6. Question Bank management, which allows you to distribute and centrally manage question bank data at any time.
Ii. menu functions
1. Basic data maintenance: Question classification settings; question type settings; difficulty levels; Knowledge Point Library settings
2. Question Bank Management: Question entry
3. Exam management: manual exam generation; automatic exam generation; exam Database Management
Logon interface:
Main Interface:
Exam subject settings:
Question type settings:
.
Exam level settings:
Knowledge Point settings:
Question input:
Manually generated exam:
Automatic exam generation:
Automatic exam generation:
Test Database Management:
Generate exam preview generate exam preview code:
/// <Summary> // generate exam preview /// </Summary> private void previewpapaer () {tabcontrol1.selectedtabindex = 1; // adjust to the preview tab richtextbox3.clear (); richtextbox4.clear (); try {// 1. exam name and title string sjtm = txtsjname. text. trim (); richtextbox3.appendtext (sjtm + "\ r \ n"); // The exam name richtextbox3.select (0, sjtm. length); // The selected range is richtextbox3.selectionalignment = horizontalalignment. center; // center changefontsize (14, RichTextBox 3); // set the font changefont (" ont", richtextbox3); // set the font size string sjtitle = txtsjtitle. text. trim (); richtextbox3.appendtext (sjtitle + "\ r \ n"); // The exam title richtextbox3.select (sjtm. length, sjtitle. length); // The selected range is richtextbox3.selectionalignment = horizontalalignment. center; // center changefontsize (12, richtextbox3); // set the font changefont ("", richtextbox3); // set the font size string answername = sjtm + "reference answer "; richtextbox4.appendte XT (answername + "\ r \ n"); // Answer exam name richtextbox4.select (0, answername. length); // The selected range is richtextbox4.selectionalignment = horizontalalignment. center; // center changefontsize (14, richtextbox4); // set the font changefont ("", richtextbox4); // set the font size // 2. write question type (1. Multiple answer questions ......) int XH = 0; datatable dt = databaseaccess. getdatatable ("select * From base_tx order by sort"); For (INT I = 0; I <DT. rows. count; I ++) {int txi D = convert. toint32 (DT. rows [I] ["ID"]); // question type ID // data in the able table is sorted by sort. datarow [] rows = dtxz. select ("xztxid =" + txid, "xzsort ASC"); datatable dttemp = dtxz. clone (); dttemp. clear (); foreach (datarow DR2 in rows) {dttemp. rows. add (dr2.itemarray);} If (dttemp. rows. count! = 0) // determines whether the question {XH = XH + 1 is selected for this type; richtextbox3.selectionstart = richtextbox3.rtf. length; // select the line starting with changefontsize (13, richtextbox3) after the line break of richtextbox3; // set the font changefont ("", richtextbox3 ); // set the font size to string txmc = publicstaticfun. numbertochinese (XH ). tostring () + "," + dt. rows [I] ["name"]. tostring (); richtextbox3.appendtext (txmc + dt. rows [I] ["contents"] + "\ r \ n"); // Add question model (uppercase) richtextbox4.appendtext (txm C + "\ r \ n"); // Add the Answer Model (uppercase) // read the question content and answer for (int K = 0; k <dttemp. rows. count; k ++) {// 3. write question number (1 ,...) richtextbox3.appendtext (k + 1) + ","); // question richtextbox4.appendtext (k + 1) + ","); // Answer string sqlstr = @ "select * From base_st where id =" + dttemp. rows [k] ["xzstid"] + ""; datatable dtst = databaseaccess. getdatatable (sqlstr); // 4. obtain the content of each Question and Answer // obtain the content of the question if (dtst. rows [0] ["contents"]. tostring ()! = "") {Byte [] bwrite = (byte []) dtst. rows [0] ["contents"]; // read data from the database // memorystream mstream = new memorystream (bwrite, false ); // convert the array to stream string contents = system. text. encoding. utf8.getstring (bwrite, 0, bwrite. length); richtextbox3.selectedrtf = contents; // The question content in the key database (RTF Format)} // obtain the answer content if (dtst. rows [0] ["Answer"]. tostring ()! = "") {Byte [] bwrite2 = (byte []) dtst. rows [0] ["Answer"]; // read data from the database string Anwer = system. text. encoding. utf8.getstring (bwrite2, 0, bwrite2.length); richtextbox4.selectedrtf = Anwer ;}}// for another type of question, a blank line of richtextbox3.appendtext ("\ r \ n "); richtextbox4.appendtext ("\ r \ n") ;}} catch (exception ex) {messageboxex. show (ex. message, "prompt", messageboxbuttons. OK, messageboxicon. error);} // createwordfile (@ "F: \ 1.doc ");}
Complete source code download: http://www.51aspx.com/Code/StarkSoftExam