📄 driver.java
字号:
package fangsoft.testcenter.driver;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import fangsoft.testcenter.model.CertTest;
import fangsoft.testcenter.model.Constants;
import fangsoft.testcenter.model.PracticeTest;
import fangsoft.testcenter.model.Question;
import fangsoft.testcenter.model.Test;
import fangsoft.testcenter.model.Testable;
public class Driver {
/**
* @param args
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
Test myTest = null;
// if (args.length != 1) {
/*
* System.out .println("Please pass the test type on the command line:
* "); System.out.println("1.practice "); System.out.println("2.
* certification"); String type = "", arg = ""; BufferedReader buf = new
* BufferedReader(new InputStreamReader( System.in)); type =
* buf.readLine(); if (type.equals("1")) arg = "practice"; else if
* (type.equals("2")) arg = "certification"; else System.exit(0);
*/
// }
System.out.println(Constants.APPNAME + " " + Constants.APPVERSION);
/*
* if (args[0].equalsIgnoreCase("certification")) { myTest = new
* CertTest(); } else if (args[0].equalsIgnoreCase("practice")) { myTest =
* new PracticeTest(); } else { System.out.println("Invalid test type
* entered. " + "Only PRACTICE or CERTIFICATION allowed as types");
* return; }
*/
String gd;
gd = getDate();
System.out.println("欢迎你,参加fangsoft考试中心的考试!");
System.out.println("今天是" + gd);
String strings = System.getProperty("os.name");
System.out.println("你的操作系统是" + strings);
System.out.println("参加考试前请先登录,输入完成后按Enter确认:");
System.out.println("输入用户名称:");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String name = br.readLine();
System.out.println("输入用户密码");
// if()
String code = br.readLine();
System.out.println("确认参加考试吗?");
System.out.println("1. 是: y");
System.out.println("2. 否,退出: n");
BufferedReader br1 = new BufferedReader(
new InputStreamReader(System.in));
String theRead = br1.readLine();
if (theRead.equals("n")) {
System.out.println("系统退出!");
System.exit(0);
}
else
{
System.out.println("选择参加的考试: ");
System.out.println("1.fangsoft Java practice 知识测试选择1");
System.out.println("2. fangsoft Java certification知识测试选择2");
String type = "", arg = "";
BufferedReader buf = new BufferedReader(
new InputStreamReader(System.in));
type = buf.readLine();
if (type.equals("1"))
arg = "practice";
else if (type.equals("2"))
arg = "certification";
else
System.exit(0);
if (arg.equalsIgnoreCase("certification")) {
myTest = new CertTest();
} else if (arg.equalsIgnoreCase("practice")) {
myTest = new PracticeTest();
} else {
System.out.println("输入的是不合法的考试类型. "
+ "只有 PRACTICE 和 CERTIFICATION 类考试!");
return;
}
boolean generated = myTest.generate();
if (!generated) {
System.out.println("试卷无法输出, " + "请检查其它细节问题,退出试卷系统!");
return;
}
System.out.println("==========开始考试==========");
System.out.println("考试名称: fangsoft Java "+arg+" 知识测试");
System.out.println("考试简述: www.fangsoft.org的java "+arg+" 知识测试");
System.out.println("考试问题: 3");
System.out.println("考试时间: 10分钟");
System.out.println("现在参加考试吗?");
System.out.println("1. 是: y");
System.out.println("2. 否,退出: n");
}
BufferedReader br2 = new BufferedReader(new InputStreamReader(
System.in));
String theRead2 = br2.readLine();
if (theRead2.equals("y")) {
;
} else {
System.out.println("系统退出!");
System.exit(0);
}
displayTestProperties(myTest);
presentTest(myTest);
}
/*
* else { System.out.println("系统退出!"); System.exit(0); }
*/
/*
* Properties props = System.getProperties(); props.list(System.out);
* Test test = new Test("DEDS Version 1.0 Java Certification Test");
* presentTest(test); System.out.println("Test is over!"); test = null;
* System.gc(); System.out.println("Requested gc");
*/
public static String getDate() {
SimpleDateFormat ft = null;
java.util.Date date = null;
Calendar cl = Calendar.getInstance();
cl.setTime(new java.util.Date());
date = cl.getTime();
// 格式可以自己根据需要修改
ft = new SimpleDateFormat("yyyy-MM-dd HH:mm");
String dateTime = ft.format(date);
return dateTime;
}
public static void presentTest(Testable test) {
int counter = 1;
List answer1 = new ArrayList();
// String []answer1=new String[test.getQuestionCount()];
char[] label = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j' };
for (int qnum = 0; qnum < test.getQuestionCount(); qnum++) {
Question question = test.getQuestion(qnum);
System.out
.println("\n" + counter + "." + question.getText() + "\n");
counter++;
for (int cnum = 0; cnum < question.getCount(); cnum++) {
fangsoft.testcenter.model.Choice choice = question.getChoice(cnum);
System.out.println("\t(" + label[cnum] + ") "
+ choice.getText());
}
System.out.print("输入答案:");
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
String reads = "";
try {
reads = reader.readLine();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
answer1.add(reads);
}
summary(test, answer1);
}
public static void displayTestProperties(Testable test) {
System.out.println("Number of questions: " + test.getQuestionCount());
System.out.println("\nBegin\n");
}
public static void summary(Testable test, List answer1) {
int counter = 1, qnum = 0, right = 0, wrong = 0;
String judge = "wrong";
List answer = new ArrayList();
// String []answer=new String[test.getQuestionCount()];
String[] label = { "a", "b", "c", "d", "e", "f", "g", "h", "i", "j" };
// char []a =new char[test.getQuestionCount()];
System.out.println("*********考试结束**********");
System.out.println("---------考试报告----------");
System.out.println("题号\t你的答案\t正确答案\t判断");
for (qnum = 0; qnum < test.getQuestionCount(); qnum++) {
System.out.print(counter);
counter++;
judge = "错误";
Question question = test.getQuestion(qnum);
// answer[qnum]="";
for (int cnum = 0; cnum < question.getCount(); cnum++) {
fangsoft.testcenter.model.Choice choice = question.getChoice(cnum);
if (choice.isCorrect()) {
// answer[qnum]=answer[qnum].concat(label[cnum]);
answer.add(label[cnum]);
}
}
if (((String) answer.get(qnum)).equalsIgnoreCase((String) answer1.get(qnum))) {
right++;
judge = "正确";
} else
wrong++;
System.out.println("\t" + answer1.get(qnum) + "\t"
+ answer.get(qnum) + "\t" + judge);
}
System.out.println("你答对了 " + right + " 个,答错了" + wrong + "个!");
if (right<wrong)
System.out.println("很遗憾,你没有通过考试!");
else
System.out.println("恭喜你,你通过了考试!");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -