java 答案判题程序
7-1 答题判题程序-1前言
这些题目重要用到对象与类的处理:
对象是现实天下或抽象概念中的实体在计算机程序中的表现。
类则是具有相同属性和方法的对象的集合,是创建对象的模板。通过类,我们可以定义一类对象的共同特征和行为。
1.字符串处理:需要对输入的题目信息和答题信息进行字符串分割、提取和处理,以获取题目编号、题目内容、标准答案和答题结果等信息。
2.对象和类:需要设计题目类、试卷类和答卷类,使用面向对象的思想来封装题目信息、试卷信息和答卷信息,以便于管理和操纵。
3.集合类:需要使用集合类来保存题目列表、答案列表和判题结果列表,以便于对题目和答案进行管理和操纵。
4.输入输出:可以考虑从文件中读取题目信息和答题信息,并将判题结果输出到数组中,以实现数据的长期化和方便查看。
5.算法设计:需要设计判题的算法,即根据标准答案和用户答案来判定答题结果是否精确,可以使用字符串比力或其他方法来实现。
题量大难度高
题目1
https://img2024.cnblogs.com/blog/3432537/202404/3432537-20240421214408115-380529328.png
分数 50
作者 蔡轲
单位 南昌航空大学
设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判定答题的结果。
输入格式:
程序输入信息分三部门:
1、题目数目
格式:整数数值,若超过1位最高位不能为0,
样例:34
2、题目内容
一行为一道题,可以输入多行数据。
格式:"#N:"+题号+" "+"#Q:"+题目内容+" "#A:"+标准答案
格式约束:题目的输入顺序与题号不相关,不一定按题号顺序从小到大输入。
样例:
#N:1 #Q:1+1= #A:2
#N:2 #Q:2+2= #A:43、答题信息
答题信息按行输入,每一行为一组答案,每组答案包罗第2部门所有题目的解题答案,答案的顺序号与题目题号相对应。
格式
" #A:"+答案内容
格式约束:答案数目与第2部门题目的数目相同,答案之间以英文空格分隔。
样例:
#A:2 #A:78
2是题号为1的题目的答案
78是题号为2的题目的答案
答题信息以一行"end"标记结束,"end"之后的信息忽略。
输出格式:
1、题目数目
格式:整数数值,若超过1位最高位不能为0,
样例:34
2、答题信息
一行为一道题的答题信息,根据题目的数目输出多行数据。
格式:题目内容+" ~"+答案
样例:
1+1=~2
2+2= ~43、判题信息
判题信息为一行数据,一条答题记录每个答案的判定结果,答案的先后顺序与题目题号相对应。
格式:判题结果+" "+判题结果
格式约束:
1、判题结果输出只能是true或者false,
2、判题信息的顺序与输入答题信息中的顺序相同
样例: true false true
输入样例1:
单个题目。比方:
1#N:1 #Q:1+1= #A:2#A:2
end输出样例1:
在这里给出相应的输出。比方:
1+1=~2
true输入样例2:
单个题目。比方:
1#N:1#Q:1+1= #A:2
#A:4
end输出样例2:
在这里给出相应的输出。比方:
1+1=~4
false输入样例3:
多个题目。比方:
2
#N:1 #Q:1+1= #A:2
#N:2 #Q:2+2= #A:4
#A:2 #A:4
end输出样例3:
在这里给出相应的输出。比方:
1+1=~2
2+2=~4
true true输入样例4:
多个题目。比方:
2
#N:1 #Q:1+1= #A:2
#N:2 #Q:2+2= #A:4
#A:2 #A:2
end输出样例4:
在这里给出相应的输出。比方:
1+1=~2
2+2=~2
true false输入样例5:
多个题目,题号顺序与输入顺序不同。比方
2
#N:2 #Q:1+1= #A:2
#N:1 #Q:5+5= #A:10
#A:10 #A:2
end输出样例5:
在这里给出相应的输出。比方:
5+5=~10
1+1=~2
true true输入样例6:
含多余的空格符。比方:
1
#N:1 #Q: The starting point of the Long March is #A:ruijin
#A:ruijin
end输出样例6:
在这里给出相应的输出。比方:
The starting point of the Long March is~ruijin
true输入样例7:
含多余的空格符。比方:
1
#N: 1 #Q: 5 +5= #A:10
#A:10
end输出样例7:
在这里给出相应的输出。比方:
5 +5=~10
true设计建议:
以下是针对以上题目要求的设计建议,其中的属性、方法为最小集,实现代码中可根据情况添加所需的内容:
题目类(用于封装单个题目的信息):
属性:题目编号、题目内容、标准答案-standardAnswer
方法:数据读写set\get方法、判题方法(答案-answer):判定答案-answer是否符合标准答案-standardAnswer
试卷类(用于封装整套题目的信息)
属性:题目列表(题目类的对象集合)、题目数目
方法:判题方法(题号-num、答案-answer):判定答案-answer是否符合对应题号的题目标准答案-standardAnswer
保存题目(题号-num、题目-question):将题目保存到题目列表中,保存位置与num要能对应
答卷类(用于封装答题信息)
属性:试卷(试卷类的对象)、答案列表(保存每一题的答案)、判题列表(保存每一题的判题结果true/false)
方法:判题方法(题号-num):判定答案列表中第num题的结果是否符合试卷中对应题号的题目标准答案
输出方法(题号-num):按照题目的格式要求,输出题号为num的题目的内容和答题结果。
保存一个答案(题号-num,答案-answer):保存题号为num的题目的答题结果answer。
代码长度限制
16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB C (gcc) 1
分析题目1可知:
一共要设计出三个类:
题目类,试卷类,答卷类;
如以下代码://有些部门和题目要求不同可自行更改
//问题类public static class Question { private int questionNumber; private String questionContent; private String standardAnswer; public void setQuestionNumber(int questionNumber) { this.questionNumber = questionNumber; } public int getQuestionNumber() { return this.questionNumber; } public void setQuestionContent(String questionContent) { this.questionContent = questionContent.trim(); } public String getQuestionContent() { return this.questionContent; } public void setStandardAnswer(String standardAnswer) { this.standardAnswer = standardAnswer; } public String getStandardAnswer() { return this.standardAnswer; }}// 试卷类public static class ExamPaper { private int numQuestions; private Question e[];//用于存储题目 public void saveQuestion(int numQuestions, Question e[]) { this.numQuestions=numQuestions; this.e=new Question; for(int i=0;i
页:
[1]