首页 > 编程语言 >对于前三次的pta题集练习,由于我的偷懒和迟钝,有许多部分没有完成,但在此我还是对题目集进行总结和感受。本次博客对应的是前三次pta的体验,考察的Java方面有代码的安全性或者说封装性,对类的了解和使

对于前三次的pta题集练习,由于我的偷懒和迟钝,有许多部分没有完成,但在此我还是对题目集进行总结和感受。本次博客对应的是前三次pta的体验,考察的Java方面有代码的安全性或者说封装性,对类的了解和使

时间:2024-04-21 23:46:28浏览次数:18  
标签:输出 题目 正则表达式 试卷 样例 pta 信息 使用 输入

第一道大题 题目信息
7-1 答题判题程序-1
分数 50
作者 蔡轲
单位 南昌航空大学
设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答题的结果。

输入格式:
程序输入信息分三部分:

1、题目数量

格式:整数数值,若超过1位最高位不能为0,

样例:34

2、题目内容

一行为一道题,可以输入多行数据。

格式:"#N:"+题号+" "+"#Q:"+题目内容+" "#A:"+标准答案

格式约束:题目的输入顺序与题号不相关,不一定按题号顺序从小到大输入。

样例:#N:1 #Q:1+1= #A:2

     #N:2 #Q:2+2= #A:4

3、答题信息

答题信息按行输入,每一行为一组答案,每组答案包含第2部分所有题目的解题答案,答案的顺序号与题目题号相对应。

格式:"#A:"+答案内容

格式约束:答案数量与第2部分题目的数量相同,答案之间以英文空格分隔。

样例:#A:2 #A:78

  2是题号为1的题目的答案
  78是题号为2的题目的答案

答题信息以一行"end"标记结束,"end"之后的信息忽略。

输出格式:
1、题目数量

格式:整数数值,若超过1位最高位不能为0,

样例:34

2、答题信息

一行为一道题的答题信息,根据题目的数量输出多行数据。

格式:题目内容+" ~"+答案

样例:1+1=~2

      2+2= ~4

3、判题信息

判题信息为一行数据,一条答题记录每个答案的判断结果,答案的先后顺序与题目题号相对应。

格式:判题结果+" "+判题结果

格式约束:

 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。

第一题题目分析
此题目作为第一道考验我们类的使用和正则表达式使用能力的题目,相对于后两次,该题目更简单,主要考察的是学生的代码编写能力。
题目要求为在输入时输入一定量题目,答案,并根据给出的答卷信息匹配对应答题信息判断题目回答是否正确。
我的解题思路是建立题目类,在主函数里面构造动态数组list用于储存题目的集合,再构造list2用于储存答案的集合,在此我没有建立答卷类,我认为这比较复杂,用一个动态数组可以解决。
以下为第一题代码
`package shiyan1;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Title{//题目类
private String titleID;
private String title;
private String standardAnswer;
public Title(){ }
public Title(String titleID,String title,String standardAnswer){
this.titleID=titleID;
this.title=title;
this.standardAnswer=standardAnswer;
}
public String getTitleID(){
return titleID;
}
public void setTitleID(String titleID){
this.titleID=titleID;
}
public String getTitle(){
return title;
}
public void setTitle(String title){
this.title=title;
}
public String getStandardAnswer(){
return standardAnswer;
}
public void setStandardAnswer(String standardAnswer){
this.standardAnswer=standardAnswer;
}
public boolean ifAnswer(String answer){
if(this.standardAnswer.equals(answer))
return true;
else
return false;
}
}

public class Main{
public static void main(String[] args){
Scanner input=new Scanner(System.in);
int sum=input.nextInt();
int i;
ArrayList list=new ArrayList<>();<br> ArrayList<String> list2=new ArrayList<>();<br> for(i=0;i<sum;i++)<br> {<br> String s=input.nextLine();<br> Pattern pattern=Pattern.compile("#N:(\d) #Q:(.<em>)#A:(.</em>)");<br> Matcher matcher=pattern.matcher(s);<br> if(matcher.matches()) {<br> String ID=matcher.group(1);<br> String t=matcher.group(2);<br> t=t.replaceAll("^ *| <em>$","");<br> String a=matcher.group(3);<br> Title title=new Title(ID,t,a);<br> list.add(title);<br> }<br> }<br> input.next();<br> for(i=0;i<sum;i++)<br> {<br> String s2=input.next();<br> Pattern pattern2=Pattern.compile("#A:(.</em>)");<br> Matcher matcher2=pattern2.matcher(s2);<br> if(matcher2.matches())<br> {<br> String answer=matcher2.group(1);<br> list2.add(answer);<br> }<br> }<br> String num="1";<br> int n=1;<br> for(i=0;i<sum;i++) {<br> if(list.get(i).getTitleID().equals(num))<br> {<br> System.out.println(list.get(i).getTitle()+"~"+list2.get(n));<br> n++;<br> num=""+1;<br> }<br> }<br> num="1";<br> for(i=0;i<sum;i++)<br> {<br> if(list.get(i).getTitleID().equals(num))<br> {<br> System.out.print("");<br> n++;<br> num=""+1;<br> }<br> }</p> <pre><code>} </code></pre> <p>}<br> `<br> 我的代码存在的一些缺点<br> 1.没有很清楚的类间关系,这是因为我自身学习得不到位,对于类间关系不熟练;<br> 2.在代码编写的过程中,我出现了许多错误,例如,对于ArrayList中元素的查找和编写匹配题号和答案的方法时,没有有效便捷的代码进行,导致在编写的过程中出现不少思路混乱的情况,代码一度无法编写下去;<br> 3.我的代码中为方便,有些地方在编写时随意编写名字,例如直接命名动态数组为list,list2。<br> 4.我的代码可读性不高,个人编写习惯不好;</p> <p>在本次题集中,我明白了一些道理<br> 1。在面对题目时,应优先理清楚类间关系,画好类图,有了构建思路再进行代码的编写,这样比一味编写代码更加快捷,也更加轻松<br> 2.要注重代码的可延展性,不注重可延展性会导致代码编写后不利于维修和改进<br> 3.编写代码时可以适当编写一些注释,这样方便后期阅读代码和思路断开后重新解读找回思路</p> <p>第二题题目信息<br> 7-2 答题判题程序-2<br> 分数 54<br> 作者 蔡轲<br> 单位 南昌航空大学<br> 设计实现答题程序,模拟一个小型的测试,以下粗体字显示的是在答题判题程序-1基础上增补或者修改的内容。</p> <p>要求输入题目信息、试卷信息和答题信息,根据输入题目信息中的标准答案判断答题的结果。</p> <p>输入格式:</p> <p>程序输入信息分三种,三种信息可能会打乱顺序混合输入:</p> <p>1、题目信息</p> <p>一行为一道题,可输入多行数据(多道题)。</p> <p>格式:"#N:"+题目编号+" "+"#Q:"+题目内容+" "#A:"+标准答案</p> <p>格式约束:</p> <pre><code>1、题目的输入顺序与题号不相关,不一定按题号顺序从小到大输入。 2、允许题目编号有缺失,例如:所有输入的题号为1、2、5,缺少其中的3号题。此种情况视为正常。 </code></pre> <p>样例:#N:1 #Q:1+1= #A:2</p> <pre><code> #N:2 #Q:2+2= #A:4 </code></pre> <p>2、试卷信息</p> <p>一行为一张试卷,可输入多行数据(多张卷)。</p> <p>格式:"#T:"+试卷号+" "+题目编号+"-"+题目分值</p> <pre><code> 题目编号应与题目信息中的编号对应。 一行信息中可有多项题目编号与分值。 </code></pre> <p>样例:#T:1 3-5 4-8 5-2</p> <p>3、答卷信息</p> <pre><code>答卷信息按行输入,每一行为一张答卷的答案,每组答案包含某个试卷信息中的题目的解题答案,答案的顺序与试卷信息中的题目顺序相对应。 </code></pre> <p>格式:"#S:"+试卷号+" "+"#A:"+答案内容</p> <p>格式约束:答案数量可以不等于试卷信息中题目的数量,没有答案的题目计0分,多余的答案直接忽略,答案之间以英文空格分隔。</p> <p>样例:#S:1 #A:5 #A:22</p> <pre><code> 1是试卷号 5是1号试卷的顺序第1题的题目答案 22是1号试卷的顺序第2题的题目答案 </code></pre> <p>答题信息以一行"end"标记结束,"end"之后的信息忽略。</p> <p>输出格式:</p> <p>1、试卷总分警示</p> <p>该部分仅当一张试卷的总分分值不等于100分时作提示之用,试卷依然属于正常试卷,可用于后面的答题。如果总分等于100分,该部分忽略,不输出。</p> <p>格式:"alert: full score of test paper"+试卷号+" is not 100 points"</p> <p>样例:alert: full score of test paper2 is not 100 points</p> <p>2、答卷信息</p> <p>一行为一道题的答题信息,根据试卷的题目的数量输出多行数据。</p> <p>格式:题目内容+"<sub>"+答案++"</sub>"+判题结果(true/false)</p> <p>约束:如果输入的答案信息少于试卷的题目数量,答案的题目要输"answer is null"</p> <p>样例:3+2=<sub>5</sub>true</p> <pre><code> 4+6=~22~false. answer is null </code></pre> <p>3、判分信息</p> <p>判分信息为一行数据,是一条答题记录所对应试卷的每道小题的计分以及总分,计分输出的先后顺序与题目题号相对应。</p> <p>格式:题目得分+" "+....+题目得分+"~"+总分</p> <p>格式约束:</p> <p>1、没有输入答案的题目计0分</p> <p>2、判题信息的顺序与输入答题信息中的顺序相同<br> 样例:5 8 0~13</p> <p>根据输入的答卷的数量以上2、3项答卷信息与判分信息将重复输出。</p> <p>4、提示错误的试卷号</p> <p>如果答案信息中试卷的编号找不到,则输出”the test paper number does not exist”,参见样例9。</p> <p>设计建议:</p> <p>参考答题判题程序-1,建议增加答题类,类的内容以及类之间的关联自行设计。</p> <p>输入样例1:<br> 一张试卷一张答卷。试卷满分不等于100。例如:</p> <h1 id="n1-q11-a2-4">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-2">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-2-8">T:1 1-5 2-8</h1> <h1 id="s1-a5-a22">S:1 #A:5 #A:22</h1> <p>end<br> 输出样例1:<br> 在这里给出相应的输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> 2+2=<sub>22</sub>false<br> 0 0~0<br> 输入样例2:<br> 一张试卷一张答卷。试卷满分不等于100。例如:</p> <h1 id="n1-q11-a2-5">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-3">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-70-2-30">T:1 1-70 2-30</h1> <h1 id="s1-a5-a22-1">S:1 #A:5 #A:22</h1> <p>end<br> 输出样例2:<br> 在这里给出相应的输出。例如:</p> <p>1+1=<sub>5</sub>false<br> 2+2=<sub>22</sub>false<br> 0 0~0<br> 输入样例3:<br> 一张试卷、一张答卷。各类信息混合输入。例如:</p> <h1 id="n1-q11-a2-6">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-4">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-70-2-30-1">T:1 1-70 2-30</h1> <h1 id="n3-q32-a5">N:3 #Q:3+2= #A:5</h1> <h1 id="s1-a5-a4">S:1 #A:5 #A:4</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>1+1=<sub>5</sub>false<br> 2+2=<sub>4</sub>true<br> 0 30~30<br> 输入样例4:<br> 试卷题目的顺序与题号不一致。例如:</p> <h1 id="n1-q11-a2-7">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-5">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-2-70-1-30">T:1 2-70 1-30</h1> <h1 id="n3-q32-a5-1">N:3 #Q:3+2= #A:5</h1> <h1 id="s1-a5-a22-2">S:1 #A:5 #A:22</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>2+2=<sub>5</sub>false<br> 1+1=<sub>22</sub>false<br> 0 0~0<br> 输入样例5:<br> 乱序输入。例如:</p> <h1 id="n3-q32-a5-2">N:3 #Q:3+2= #A:5</h1> <h1 id="n2-q22-a4-6">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-3-70-2-30">T:1 3-70 2-30</h1> <h1 id="s1-a5-a22-3">S:1 #A:5 #A:22</h1> <h1 id="n1-q11-a2-8">N:1 #Q:1+1= #A:2</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>3+2=<sub>5</sub>true<br> 2+2=<sub>22</sub>false<br> 70 0~70<br> 输入样例6:<br> 乱序输入+两份答卷。例如:</p> <h1 id="n3-q32-a5-3">N:3 #Q:3+2= #A:5</h1> <h1 id="n2-q22-a4-7">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-3-70-2-30-1">T:1 3-70 2-30</h1> <h1 id="s1-a5-a22-4">S:1 #A:5 #A:22</h1> <h1 id="n1-q11-a2-9">N:1 #Q:1+1= #A:2</h1> <h1 id="s1-a5-a4-1">S:1 #A:5 #A:4</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>3+2=<sub>5</sub>true<br> 2+2=<sub>22</sub>false<br> 70 0~70<br> 3+2=<sub>5</sub>true<br> 2+2=<sub>4</sub>true<br> 70 30~100<br> 输入样例7:<br> 乱序输入+分值不足100+两份答卷。例如:</p> <h1 id="n3-q32-a5-4">N:3 #Q:3+2= #A:5</h1> <h1 id="n2-q22-a4-8">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-3-7-2-6">T:1 3-7 2-6</h1> <h1 id="s1-a5-a22-5">S:1 #A:5 #A:22</h1> <h1 id="n1-q11-a2-10">N:1 #Q:1+1= #A:2</h1> <h1 id="s1-a5-a4-2">S:1 #A:5 #A:4</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 3+2=<sub>5</sub>true<br> 2+2=<sub>22</sub>false<br> 7 0~7<br> 3+2=<sub>5</sub>true<br> 2+2=<sub>4</sub>true<br> 7 6~13<br> 输入样例8:<br> 乱序输入+分值不足100+两份答卷+答卷缺失部分答案。例如:</p> <h1 id="n3-q32-a5-5">N:3 #Q:3+2= #A:5</h1> <h1 id="n2-q22-a4-9">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-3-7-2-6-1">T:1 3-7 2-6</h1> <h1 id="s1-a5-a22-6">S:1 #A:5 #A:22</h1> <h1 id="n1-q11-a2-11">N:1 #Q:1+1= #A:2</h1> <h1 id="t2-2-5-1-3-3-2">T:2 2-5 1-3 3-2</h1> <h1 id="s2-a5-a4">S:2 #A:5 #A:4</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> alert: full score of test paper2 is not 100 points<br> 3+2=<sub>5</sub>true<br> 2+2=<sub>22</sub>false<br> 7 0~7<br> 2+2=<sub>5</sub>false<br> 1+1=<sub>4</sub>false<br> answer is null<br> 0 0 0~0<br> 输入样例9:<br> 乱序输入+分值不足100+两份答卷+无效的试卷号。例如:</p> <h1 id="n3-q32-a5-6">N:3 #Q:3+2= #A:5</h1> <h1 id="n2-q22-a4-10">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-3-7-2-6-2">T:1 3-7 2-6</h1> <h1 id="s3-a5-a4">S:3 #A:5 #A:4</h1> <p>end<br> 输出样例:<br> 在这里给出相应的输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> The test paper number does not exist</p> <p>第二题</p> <p>第三题题目信息<br> 7-3 答题判题程序-3<br> 分数 80<br> 作者 蔡轲<br> 单位 南昌航空大学<br> 设计实现答题程序,模拟一个小型的测试,以下粗体字显示的是在答题判题程序-2基础上增补或者修改的内容,要求输入题目信息、试卷信息、答题信息、学生信息、删除题目信息,根据输入题目信息中的标准答案判断答题的结果。</p> <p>输入格式:</p> <p>程序输入信息分五种,信息可能会打乱顺序混合输入。</p> <p>1、题目信息<br> 题目信息为独行输入,一行为一道题,多道题可分多行输入。</p> <p>格式:"#N:"+题目编号+" "+"#Q:"+题目内容+" "#A:"+标准答案</p> <p>格式约束:<br> 1、题目的输入顺序与题号不相关,不一定按题号顺序从小到大输入。<br> 2、允许题目编号有缺失,例如:所有输入的题号为1、2、5,缺少其中的3号题。此种情况视为正常。<br> 样例:#N:1 #Q:1+1= #A:2<br> #N:2 #Q:2+2= #A:4</p> <p>2、试卷信息</p> <p>试卷信息为独行输入,一行为一张试卷,多张卷可分多行输入数据。<br> 格式:"#T:"+试卷号+" "+题目编号+"-"+题目分值+" "+题目编号+"-"+题目分值+...</p> <p>格式约束:<br> 题目编号应与题目信息中的编号对应。<br> 一行信息中可有多项题目编号与分值。<br> 样例:#T:1 3-5 4-8 5-2</p> <p>3、学生信息</p> <p>学生信息只输入一行,一行中包括所有学生的信息,每个学生的信息包括学号和姓名,格式如下。</p> <p>格式:"#X:"+学号+" "+姓名+"-"+学号+" "+姓名....+"-"+学号+" "+姓名</p> <p>格式约束:<br> 答案数量可以不等于试卷信息中题目的数量,没有答案的题目计0分,多余的答案直接忽略,答案之间以英文空格分隔。<br> 样例:<br> #S:1 #A:5 #A:22<br> 1是试卷号<br> 5是1号试卷的顺序第1题的题目答案<br> 4、答卷信息</p> <p>答卷信息按行输入,每一行为一张答卷的答案,每组答案包含某个试卷信息中的题目的解题答案,答案的顺序号与试 卷信息中的题目顺序相对应。答卷中:</p> <p>格式:"#S:"+试卷号+" "+学号+" "+"#A:"+试卷题目的顺序号+"-"+答案内容+...</p> <p>格式约束:<br> 答案数量可以不等于试卷信息中题目的数量,没有答案的题目计0分,多余的答案直接忽略,答案之间以英文空格分隔。<br> 答案内容可以为空,即””。<br> 答案内容中如果首尾有多余的空格,应去除后再进行判断。<br> 样例:<br> #T:1 1-5 3-2 2-5 6-9 4-10 7-3<br> #S:1 20201103 #A:2-5 #A:6-4<br> 1是试卷号<br> 20201103是学号<br> 2-5中的2是试卷中顺序号,5是试卷第2题的答案,即T中3-2的答案<br> 6-4中的6是试卷中顺序号,4是试卷第6题的答案,即T中7-3的答案<br> 注意:不要混淆顺序号与题号</p> <p>5、删除题目信息</p> <p>删除题目信息为独行输入,每一行为一条删除信息,多条删除信息可分多行输入。该信息用于删除一道题目信息,题目被删除之后,引用该题目的试卷依然有效,但被删除的题目将以0分计,同时在输出答案时,题目内容与答案改为一条失效提示,例如:”the question 2 invalid~0”</p> <p>格式:"#D:N-"+题目号</p> <p>格式约束:</p> <pre><code> 题目号与第一项”题目信息”中的题号相对应,不是试卷中的题目顺序号。 本题暂不考虑删除的题号不存在的情况。 </code></pre> <p>样例:</p> <h1 id="n1-q11-a2-12">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-11">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-2-8-1">T:1 1-5 2-8</h1> <h1 id="x20201103-tom-20201104-jack">X:20201103 Tom-20201104 Jack</h1> <h1 id="s1-20201103-a1-5-a2-4">S:1 20201103 #A:1-5 #A:2-4</h1> <h1 id="dn-2">D:N-2</h1> <p>end</p> <p>输出<br> alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> the question 2 invalid~0<br> 20201103 Tom: 0 0~0<br> 答题信息以一行"end"标记结束,"end"之后的信息忽略。</p> <p>输出格式:</p> <p>1、试卷总分警示</p> <p>该部分仅当一张试卷的总分分值不等于100分时作提示之用,试卷依然属于正常试卷,可用于后面的答题。如果总分等于100 分,该部分忽略,不输出。</p> <p>格式:"alert: full score of test paper"+试卷号+" is not 100 points"</p> <p>样例:alert: full score of test paper2 is not 100 points</p> <p>2、答卷信息</p> <p>一行为一道题的答题信息,根据试卷的题目的数量输出多行数据。</p> <p>格式:题目内容+"<sub>"+答案++"</sub>"+判题结果(true/false)</p> <p>约束:如果输入的答案信息少于试卷的题目数量,每一个缺失答案的题目都要输出"answer is null" 。<br> 样例:<br> 3+2=<sub>5</sub>true<br> 4+6=<sub>22</sub>false.<br> answer is null</p> <p>3、判分信息</p> <p>判分信息为一行数据,是一条答题记录所对应试卷的每道小题的计分以及总分,计分输出的先后顺序与题目题号相对应。</p> <pre><code>格式:**学号+" "+姓名+": "**+题目得分+" "+....+题目得分+"~"+总分 格式约束: 1、没有输入答案的题目、被删除的题目、答案错误的题目计0分 2、判题信息的顺序与输入答题信息中的顺序相同 样例:20201103 Tom: 0 0~0 根据输入的答卷的数量以上2、3项答卷信息与判分信息将重复输出。 </code></pre> <p>4、被删除的题目提示信息</p> <p>当某题目被试卷引用,同时被删除时,答案中输出提示信息。样例见第5种输入信息“删除题目信息”。</p> <p>5、题目引用错误提示信息</p> <p>试卷错误地引用了一道不存在题号的试题,在输出学生答案时,提示”non-existent question~”加答案。例如:</p> <p>输入:</p> <h1 id="n1-q11-a2-13">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-3-8">T:1 3-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a1-4">S:1 20201103 #A:1-4</h1> <p>end</p> <p>输出:<br> alert: full score of test paper1 is not 100 points<br> non-existent question~0<br> 20201103 Tom: 0~0<br> 如果答案输出时,一道题目同时出现答案不存在、引用错误题号、题目被删除,只提示一种信息,答案不存在的优先级最高,例如:<br> 输入:</p> <h1 id="n1-q11-a2-14">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-3-8-1">T:1 3-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-1">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103">S:1 20201103</h1> <p>end</p> <p>输出:<br> alert: full score of test paper1 is not 100 points<br> answer is null<br> 20201103 Tom: 0~0</p> <p>6、格式错误提示信息</p> <p>输入信息只要不符合格式要求,均输出”wrong format:”+信息内容。</p> <pre><code> 例如:wrong format:2 #Q:2+2= #4 </code></pre> <p>7、试卷号引用错误提示输出</p> <p>如果答卷信息中试卷的编号找不到,则输出”the test paper number does not exist”,答卷中的答案不用输出,参见样例8。</p> <p>8、学号引用错误提示信息</p> <p>如果答卷中的学号信息不在学生列表中,答案照常输出,判分时提示错误。参见样例9。</p> <p>本题暂不考虑出现多张答卷的信息的情况。</p> <p>输入样例1:<br> 简单输入,不含删除题目信息。例如:</p> <h1 id="n1-q11-a2-15">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-1-5">T:1 1-5</h1> <h1 id="x20201103-tom">X:20201103 Tom</h1> <h1 id="s1-20201103-a1-5">S:1 20201103 #A:1-5</h1> <p>end<br> 输出样例1:<br> 在这里给出相应的输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> 20201103 Tom: 0~0<br> 输入样例2:<br> 简单输入,答卷中含多余题目信息(忽略不计)。例如:</p> <h1 id="n1-q11-a2-16">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-1-5-1">T:1 1-5</h1> <h1 id="x20201103-tom-1">X:20201103 Tom</h1> <h1 id="s1-20201103-a1-2-a2-3">S:1 20201103 #A:1-2 #A:2-3</h1> <p>end<br> 输出样例3<br> 简单测试,含删除题目信息。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>2</sub>true<br> 20201103 Tom: 5~5<br> 输入样例3:<br> 简单测试,含删除题目信息。例如:</p> <h1 id="n1-q11-a2-17">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-12">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-2-8-2">T:1 1-5 2-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-2">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a1-5-a2-4-1">S:1 20201103 #A:1-5 #A:2-4</h1> <h1 id="dn-2-1">D:N-2</h1> <p>end<br> 输出样例3:<br> 在这里给出相应的输出,第二题由于被删除,输出题目失效提示。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> the question 2 invalid~0<br> 20201103 Tom: 0 0~0<br> 输入样例4:<br> 简单测试,含试卷无效题目的引用信息以及删除题目信息(由于题目本身无效,忽略)。例如:</p> <h1 id="n1-q11-a2-18">N:1 #Q:1+1= #A:2</h1> <h1 id="n2-q22-a4-13">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-3-8">T:1 1-5 3-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-3">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a1-5-a2-4-2">S:1 20201103 #A:1-5 #A:2-4</h1> <h1 id="dn-2-2">D:N-2</h1> <p>end<br> 输出样例4:<br> 输出不存在的题目提示信息。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> non-existent question~0<br> 20201103 Tom: 0 0~0<br> 输入样例5:<br> 综合测试,含错误格式输入、有效删除以及无效题目引用信息。例如:</p> <h1 id="n1-1-a2">N:1 +1= #A:2</h1> <h1 id="n2-q22-a4-14">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-2-8-3">T:1 1-5 2-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-4">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a1-5-a2-4-3">S:1 20201103 #A:1-5 #A:2-4</h1> <h1 id="dn-2-3">D:N-2</h1> <p>end<br> 输出样例5:<br> 在这里给出相应的输出。例如:</p> <p>wrong format:#N:1 +1= #A:2<br> alert: full score of test paper1 is not 100 points<br> non-existent question~0<br> the question 2 invalid~0<br> 20201103 Tom: 0 0~0<br> 输入样例6:<br> 综合测试,含错误格式输入、有效删除、无效题目引用信息以及答案没有输入的情况。例如:</p> <h1 id="n1-1-a2-1">N:1 +1= #A:2</h1> <h1 id="n2-q22-a4-15">N:2 #Q:2+2= #A:4</h1> <h1 id="t1-1-5-2-8-4">T:1 1-5 2-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-5">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a1-5-1">S:1 20201103 #A:1-5</h1> <h1 id="dn-2-4">D:N-2</h1> <p>end<br> 输出样例6:<br> 答案没有输入的优先级最高。例如:</p> <p>wrong format:#N:1 +1= #A:2<br> alert: full score of test paper1 is not 100 points<br> non-existent question~0<br> answer is null<br> 20201103 Tom: 0 0~0<br> 输入样例7:<br> 综合测试,正常输入,含删除信息。例如:</p> <h1 id="n2-q22-a4-16">N:2 #Q:2+2= #A:4</h1> <h1 id="n1-q11-a2-19">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-1-5-2-8-5">T:1 1-5 2-8</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-6">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="s1-20201103-a2-4-a1-5">S:1 20201103 #A:2-4 #A:1-5</h1> <h1 id="dn-2-5">D:N-2</h1> <p>end<br> 输出样例7:<br> 例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> the question 2 invalid~0<br> 20201103 Tom: 0 0~0<br> 输入样例8:<br> 综合测试,无效的试卷引用。例如:</p> <h1 id="n1-q11-a2-20">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-1-5-2">T:1 1-5</h1> <h1 id="x20201103-tom-2">X:20201103 Tom</h1> <h1 id="s2-20201103-a1-5-a2-4">S:2 20201103 #A:1-5 #A:2-4</h1> <p>end<br> 输出样例8:<br> 例如:</p> <p>alert: full score of test paper1 is not 100 points<br> The test paper number does not exist<br> 输入样例9:<br> 无效的学号引用。例如:</p> <h1 id="n1-q11-a2-21">N:1 #Q:1+1= #A:2</h1> <h1 id="t1-1-5-3">T:1 1-5</h1> <h1 id="x20201106-tom">X:20201106 Tom</h1> <h1 id="s1-20201103-a1-5-a2-4-4">S:1 20201103 #A:1-5 #A:2-4</h1> <p>end<br> 输出样例9:<br> 答案照常输出,判分时提示错误。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> 20201103 not found</p> <p>输入样例10:<br> 信息可打乱顺序输入:序号不是按大小排列,各类信息交错输入。但本题不考虑引用的题目在被引用的信息之后出现的情况(如试卷引用的所有题目应该在试卷信息之前输入),所有引用的数据应该在被引用的信息之前给出。例如:</p> <h1 id="n3-q中国第一颗原子弹的爆炸时间-a19641016">N:3 #Q:中国第一颗原子弹的爆炸时间 #A:1964.10.16</h1> <h1 id="n1-q11-a2-22">N:1 #Q:1+1= #A:2</h1> <h1 id="x20201103-tom-20201104-jack-20201105-www-7">X:20201103 Tom-20201104 Jack-20201105 Www</h1> <h1 id="t1-1-5-3-8-1">T:1 1-5 3-8</h1> <h1 id="n2-q22-a4-17">N:2 #Q:2+2= #A:4</h1> <h1 id="s1-20201103-a1-5-a2-4-5">S:1 20201103 #A:1-5 #A:2-4</h1> <p>end<br> 输出样例10:<br> 答案按试卷中的题目顺序输出。例如:</p> <p>alert: full score of test paper1 is not 100 points<br> 1+1=<sub>5</sub>false<br> 中国第一颗原子弹的爆炸时间<sub>4</sub>false<br> 20201103 Tom: 0 0~0</p>

标签:输出,题目,正则表达式,试卷,样例,pta,信息,使用,输入
From: https://www.cnblogs.com/wxz123wxz/p/18149784/wxz123456789

相关文章

  • pta实验总结
    刚开始接触java,感到有些吃力,可能是因为C语言基础不牢的缘故,我的Java水平还有待提高。pta1:7-1设计一个风扇Fan类分数4入门作者殷伟凤单位浙江传媒学院设计一个名为Fan的类表示一个风扇。这个类包括:1.三个名为SlOW、MEDIUM和FAST,其值为1、2和3常量表示风扇的速度。2.一......
  • opensips使用drouting进行路由
    操作系统:CentOS7.6_x64opensips版本:2.4.9drouting是DynamicRouting(动态路由)的缩写,该模块可为特定呼叫选择(基于多个条件)最佳网关。今天整理下CentOS7环境下opensips2.4.9的drouting模块笔记及使用示例,并提供运行效果视频和配套文件下载。我将从以下几方面进行展开:模块数据......
  • 第一阶段PTA总结
    前言截至目前,面向对象程序设计已经进行了三次PTA训练。题目是基于试卷的判分系统的程序设计,在三次训练中难度逐渐增加,同时这个题目还要伴随整个面向对象程序设计的学习,逐步迭代。完成这部分作业确实花费了我大部分时间,虽然最后的代码都可以完成所有的测试样例,但是无法通过所有的......
  • PTA题目集1~3的总结
    目录:1)前言2)设计与分析3)踩坑心得4)改进建议5)总结1.前言:Java作为本学期的新学语言,难度相较于上学期的c语言有很大提升,由易到难的过程也更加考验我们的学习和理解能力。前三次题目集重点考核类设计及类间关系设计,以及正则表达式的应用等。并且在每次题目集的题目数量不多的情......
  • PTA题目集1~3的总结
    1.前言[1]知识点:这三次题目集是针对对象和类展开的,主要是String类和正则表达式的运用。要运用到String.split,String.substring等,和通过正则表达式来判断字符串是否符合格式和拆分字符串。[2]题量:这三次题目集的题量不算很大,每次的题量有所减少,但是题目难度有所提升,每题......
  • 小程序animation使用
    想实现一个item左滑展示编辑和删除按钮的功能,涉及到元素移动,因此使用animation属性来实现了解animation下面这段代码设置了一个动画的各种属性(持续1000ms;匀速到加速再减速;立即开始执行;元素变换基点,此处是平移,不起作用),然后设置动画效果向左平移100元素,最后,调用export()方法......
  • PTA前三次题目集总结
    一.前言三次PTA题目集过后,算是彻底打击了我的自信心,PTA内容不在只是简单的对语法问题的考察,真正的从“基础”转到“面向对象”,随之而来的是更多的代码量,及消耗我们更多的时间。要学习新的内容并投入实践,和更多代码量给我带来更多的报错问题和非零返回问题,无不在告诉我这次学习有......
  • 前三次PTA题目集总结
    1.前言:前三次作业主要都是写答题判断程序,由于这学期才接触java,所以一开始对于怎么写,以及java语法有点不太适应。后来学习到“类”这个强大的工具和正则表达式,但因为并不熟练,所以写起来十分艰难。这三次题目难度逐级提升,都在原本的基础上添加了新的内容与知识点。类和对象的使用,关......
  • Vscode使用Git图形化工具IDE
    Vscode使用Git图形化工具IDE检查是否成功安装Git环境windows搜索栏输入PowerShell,右键以管理员身份运行输入git敲击回车重新打开Vscode(已安装ssh拓展)打开任意一个工程文件夹打开Git控制栏源代码管理Ctrl+shift+G初始化储存库提交推送选择要推送的仓......
  • PTA1-3总结w
    <1>前言:知识点:1.类的定义:代码中定义了三个类,Question、Answer和Paper,分别用来表示问题、答案和试卷。每个类都包含了相应的属性和方法。2.对象的创建:在main方法中通过new关键字创建了Question、Answer和Paper类的对象,然后对对象的属性进行赋值和操作。3.HashMap的使用:代码......