Skip to content
Snippets Groups Projects
Commit 2e3646d5 authored by 1-211250088-shajianwei's avatar 1-211250088-shajianwei
Browse files

1.0

parent ef49455d
No related branches found
No related tags found
1 merge request!2Master
Showing with 308 additions and 0 deletions
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Palette2">
<group name="Swing">
<item class="com.intellij.uiDesigner.HSpacer" tooltip-text="Horizontal Spacer" icon="/com/intellij/uiDesigner/icons/hspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="1" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="com.intellij.uiDesigner.VSpacer" tooltip-text="Vertical Spacer" icon="/com/intellij/uiDesigner/icons/vspacer.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="1" anchor="0" fill="2" />
</item>
<item class="javax.swing.JPanel" icon="/com/intellij/uiDesigner/icons/panel.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3" />
</item>
<item class="javax.swing.JScrollPane" icon="/com/intellij/uiDesigner/icons/scrollPane.png" removable="false" auto-create-binding="false" can-attach-label="true">
<default-constraints vsize-policy="7" hsize-policy="7" anchor="0" fill="3" />
</item>
<item class="javax.swing.JButton" icon="/com/intellij/uiDesigner/icons/button.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="0" fill="1" />
<initial-values>
<property name="text" value="Button" />
</initial-values>
</item>
<item class="javax.swing.JRadioButton" icon="/com/intellij/uiDesigner/icons/radioButton.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="RadioButton" />
</initial-values>
</item>
<item class="javax.swing.JCheckBox" icon="/com/intellij/uiDesigner/icons/checkBox.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="3" anchor="8" fill="0" />
<initial-values>
<property name="text" value="CheckBox" />
</initial-values>
</item>
<item class="javax.swing.JLabel" icon="/com/intellij/uiDesigner/icons/label.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="8" fill="0" />
<initial-values>
<property name="text" value="Label" />
</initial-values>
</item>
<item class="javax.swing.JTextField" icon="/com/intellij/uiDesigner/icons/textField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JPasswordField" icon="/com/intellij/uiDesigner/icons/passwordField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JFormattedTextField" icon="/com/intellij/uiDesigner/icons/formattedTextField.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1">
<preferred-size width="150" height="-1" />
</default-constraints>
</item>
<item class="javax.swing.JTextArea" icon="/com/intellij/uiDesigner/icons/textArea.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTextPane" icon="/com/intellij/uiDesigner/icons/textPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JEditorPane" icon="/com/intellij/uiDesigner/icons/editorPane.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JComboBox" icon="/com/intellij/uiDesigner/icons/comboBox.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="2" anchor="8" fill="1" />
</item>
<item class="javax.swing.JTable" icon="/com/intellij/uiDesigner/icons/table.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JList" icon="/com/intellij/uiDesigner/icons/list.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="2" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTree" icon="/com/intellij/uiDesigner/icons/tree.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3">
<preferred-size width="150" height="50" />
</default-constraints>
</item>
<item class="javax.swing.JTabbedPane" icon="/com/intellij/uiDesigner/icons/tabbedPane.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSplitPane" icon="/com/intellij/uiDesigner/icons/splitPane.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="3" hsize-policy="3" anchor="0" fill="3">
<preferred-size width="200" height="200" />
</default-constraints>
</item>
<item class="javax.swing.JSpinner" icon="/com/intellij/uiDesigner/icons/spinner.png" removable="false" auto-create-binding="true" can-attach-label="true">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSlider" icon="/com/intellij/uiDesigner/icons/slider.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="8" fill="1" />
</item>
<item class="javax.swing.JSeparator" icon="/com/intellij/uiDesigner/icons/separator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="6" anchor="0" fill="3" />
</item>
<item class="javax.swing.JProgressBar" icon="/com/intellij/uiDesigner/icons/progressbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1" />
</item>
<item class="javax.swing.JToolBar" icon="/com/intellij/uiDesigner/icons/toolbar.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="6" anchor="0" fill="1">
<preferred-size width="-1" height="20" />
</default-constraints>
</item>
<item class="javax.swing.JToolBar$Separator" icon="/com/intellij/uiDesigner/icons/toolbarSeparator.png" removable="false" auto-create-binding="false" can-attach-label="false">
<default-constraints vsize-policy="0" hsize-policy="0" anchor="0" fill="1" />
</item>
<item class="javax.swing.JScrollBar" icon="/com/intellij/uiDesigner/icons/scrollbar.png" removable="false" auto-create-binding="true" can-attach-label="false">
<default-constraints vsize-policy="6" hsize-policy="0" anchor="0" fill="2" />
</item>
</group>
</component>
</project>
\ No newline at end of file
......@@ -29,6 +29,22 @@
<version>${junit.platform.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.8.0</version>
</dependency>
</dependencies>
</project>
\ No newline at end of file
package org.example;
import com.google.gson.JsonObject;
public class Main {
public static void main(String[] args) {
String casePath = args[0];
......
package org.example.exam;
import lombok.Data;
import org.example.question.Question;
import java.io.File;
@Data
public abstract class Exam {
protected int id;
protected String title;
protected Long startTime;
protected Long endTime;
protected Question[] questions;
public abstract Exam createExam(File file);
}
package org.example.exam;
import java.io.File;
public class ExamFactory {
public static Exam createExam(File file) {
}
}
package org.example.exam;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import lombok.Data;
import org.apache.commons.io.FileUtils;
import org.example.question.ProgrammingQuestion;
import org.example.question.Question;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
@Data
public class JsonExam extends Exam{
public Exam createExam(File file) {
try {
String content = FileUtils.readFileToString(file,"utf-8");
JsonParser jsonParser = new JsonParser();
JsonObject jsonExam = (JsonObject) jsonParser.parse(content);
JsonArray jsonQuestions = jsonExam.getAsJsonArray("questions");
List<Question> questions = new ArrayList<>();
} catch (IOException e) {
e.printStackTrace();
}
}
}
package org.example.question;
import lombok.Data;
@Data
public class MultipleChoiceQuestion extends Question {
private String[] options;
private int[] answer;
private String scoreMode;
private int fixScore;
private int[] partialScore;
public MultipleChoiceQuestion(int id, int type, String question, int points, String[] options, int[] answer,
String scoreMode, int fixScore, int[] partialScore) {
this.id = id;
this.type = type;
this.question = question;
this.points = points;
this.options = options;
this.answer = answer;
this.scoreMode = scoreMode;
this.fixScore = fixScore;
this.partialScore = partialScore;
}
public static Question createQuestion(int id, int type, String question, int points, Object... extraParameter) {
return new MultipleChoiceQuestion(id,type,question,points,(String[]) extraParameter[0],(int[]) extraParameter[1],
(String) extraParameter[2],(int) extraParameter[3], (int[]) extraParameter[4]);
}
}
package org.example.question;
import lombok.Data;
import org.example.question.sample.Sample;
@Data
public class ProgrammingQuestion extends Question {
private int timeLimit;
private Sample[] samples;
public ProgrammingQuestion(int id, int type, String question, int points, int timeLimit, Sample[] samples) {
this.id = id;
this.type = type;
this.question = question;
this.points = points;
this.timeLimit = timeLimit;
this.samples = samples;
}
public static Question createQuestion(int id, int type, String question, int points, Object... extraParameter) {
return new ProgrammingQuestion(id,type,question,points,(int) extraParameter[0],(Sample[]) extraParameter[1]);
}
}
package org.example.question;
import lombok.Data;
@Data
public abstract class Question {
protected int id;
protected int type;
protected String question;
protected int points;
}
package org.example.question;
public class QuestionFactory {
public static Question createQuestion(int id, int type, String question, int points, Object... extraParameter) {
switch (type) {
case 1:
return SingleChoiceQuestion.createQuestion(id,type,question,points,extraParameter);
case 2:
return MultipleChoiceQuestion.createQuestion(id,type,question,points,extraParameter);
case 3:
return ProgrammingQuestion.createQuestion(id,type,question,points,extraParameter);
default:
return null;
}
}
}
package org.example.question;
import lombok.Data;
@Data
public class SingleChoiceQuestion extends Question {
private String[] options;
private int answer;
public SingleChoiceQuestion(int id, int type, String question, int points, String[] options, int answer) {
this.id = id;
this.type = type;
this.question = question;
this.points = points;
this.options = options;
this.answer = answer;
}
public static Question createQuestion(int id, int type, String question, int points, Object... extraParameter) {
return new SingleChoiceQuestion(id,type,question,points,(String[]) extraParameter[0],(int) extraParameter[1]);
}
}
package org.example.question.sample;
import lombok.Data;
@Data
public class Sample {
private String input;
private String output;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment