首页 > 其他分享 >PTA前三次题目集总结

PTA前三次题目集总结

时间:2024-04-21 22:12:04浏览次数:19  
标签:题目 String int 试卷 PTA 信息 答案 三次

一.前言

三次PTA题目集过后,算是彻底打击了我的自信心,PTA内容不在只是简单的对语法问题的考察,真正的从“基础”转到“面向对象”,随之而来的是更多的代码量,及消耗我们更多的时间。要学习新的内容并投入实践,和更多代码量给我带来更多的报错问题和非零返回问题,无不在告诉我这次学习有所难度,无不在提醒我要更勤加练习,以适应和掌握新的知识。
三次PTA题目量在逐渐减少,但是难度在逐渐增大,所消耗我的时间也在逐渐增多,而且很令人心痛,我的成绩也在随之减少。题目的更新,让我需要学习新的内容,我也从中掌握了一些新的知识。虽然在与题目抗争过程略显痛苦,但是也算有所收获。

二.设计与分析

第一次题目

题目内容

设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答题的结果。

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

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

我的代码

点击查看代码
import java.util.Scanner;
class Topic{
    private int topicID;
    private String topicCon;
    private String standardAnswer;
    public Topic(){
        
    }
    public Topic(int topicID,String topicCon,String standardAnswer){
        super();
        this.topicID=topicID;
        this.topicCon=topicCon;
        this.standardAnswer=standardAnswer;
    }
    public int getTopicID(){
        return topicID;
    }
    public void setTopicID(int topicID){
        this.topicID=topicID;
    }
    public String getTopicCon(){
        return topicCon;
    }
    public void setTopicCon(String topicCon){
        this.topicCon=topicCon;
    }
    public String getStandAnswer(){
        return standardAnswer;
    }
    public void setStandAnswer(String standardAnswer){
        this.standardAnswer=standardAnswer;
    }
    public boolean judg(String answerArr){
        if(this.standardAnswer.equals(answerArr)){
            return true;
        }
        else{
            return false;
        }
    }
}
class Test{
    private int queNum;
    public Topic[] top=new Topic[100];
    public int getQueNum(){
        return queNum;
    }
    public void setQueNum(int queNum){
        this.queNum=queNum;
    }
    public void saveQue(int topicID,Topic top){
        this.top[topicID-1]=top;
    }
    public boolean judetest(int topicID,String standardAnswer){
        return top[topicID-1].judg(standardAnswer);
    }
    public Test(){
        
    }
    public Test(int queNum){
        super();
        this.queNum=queNum;
    }
    public String getTopic(int topicID){
        return top[topicID].getTopicCon();
    }
}
class Answer{
    private Test test1=new Test();
    private String[] answerArr=new String[100];
    private boolean[] endArr=new boolean[100];
    public Answer(){
        
    }
    public Answer(String[] AnswerArr,Test test1){
        super();
        this.answerArr = AnswerArr;
        
        this.test1 = test1;
    }
    public String[] getAnswerArr() {
		return answerArr;
	}
	public void setAnswerArr(String[] answerArr) {
		this.answerArr = answerArr;
	}
	public boolean[] getEndArr() {
		return endArr;
	}
	public void setEndArr(boolean[] endArr) {
		this.endArr = endArr;
	}
    public boolean judeanwser(int topicID){
        return test1.judetest(topicID,answerArr[topicID-1]);
    }
    public void saveAns(int topicID,String answerArr){
        this.answerArr[topicID]=answerArr;
    }
    public void putout(int topicID){
        System.out.println(test1.top[topicID].getTopicCon()+"~"+answerArr[topicID]);
    }
    
}
public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int queNum=sc.nextInt();
        //String[][] topic=new String[queNum][4];
        String[] topic=new String[4];
        String[] answerArr=new String[queNum];
        Topic[] top=new Topic[queNum];
        Test test1=new Test();
        String fw=sc.nextLine();
        for(int i=0;i<queNum;i++){
            String str=sc.nextLine();
            topic=str.split("#(N|Q|A):");
            int qz=Integer.parseInt(topic[1].trim());
            top[i]=new Topic(qz,topic[2].trim(),topic[3].trim());
            test1.saveQue(qz,top[i]);
        }
        for(int i=0;i<queNum;i++){
            answerArr[i]=sc.next();
            answerArr[i]=answerArr[i].replace("#A:"," ").trim();
            if(answerArr[i].contains("end"))
                break;
        }
         Answer answerArr1=new Answer(answerArr,test1);
        for (int i=0;i<queNum;i++){
            answerArr1.putout(i);
        }
        //System.out.printf("%b ",answerArr1.judeanwser(1));
        //System.out.printf("%b ",answerArr1.judeanwser(0));
        for(int i=1;i<=queNum;i++){
            if(i!=queNum)
                System.out.printf("%b ",answerArr1.judeanwser(i));
            else
                System.out.printf("%b",answerArr1.judeanwser(i));
        }
    }
}

分析与心得

PowerDesigner的相应类图如下

从PowerDesigner相应类图中很清晰的的看出我的代码中类的关系主要(仅)用了关联

标签:题目,String,int,试卷,PTA,信息,答案,三次
From: https://www.cnblogs.com/hzh-qbw/p/18148293

相关文章

  • 前三次PTA题目集总结
    1.前言:前三次作业主要都是写答题判断程序,由于这学期才接触java,所以一开始对于怎么写,以及java语法有点不太适应。后来学习到“类”这个强大的工具和正则表达式,但因为并不熟练,所以写起来十分艰难。这三次题目难度逐级提升,都在原本的基础上添加了新的内容与知识点。类和对象的使用,关......
  • 题目集1~3的总结
    一、前言一到三次题目集主要考察的知识点有类与对象的设计、类与方法的调用、数组、链表等;题量稍大,题目难度具有挑战性,需要经过认真的思考。二、设计与分析1、题目一:(1)题目:设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答......
  • PTA1-3总结w
    <1>前言:知识点:1.类的定义:代码中定义了三个类,Question、Answer和Paper,分别用来表示问题、答案和试卷。每个类都包含了相应的属性和方法。2.对象的创建:在main方法中通过new关键字创建了Question、Answer和Paper类的对象,然后对对象的属性进行赋值和操作。3.HashMap的使用:代码......
  • 关于题目集1~3的总结
    前言前三次pta作业最后一题都是答题判题程序,题目难度逐级提升但写完后收获也不小。首先一点是需求分析,不应上来就写代码而是从业务需求整体分析,在确定好程序的层次结构再开始实现相应的功能。在这三次作业中,将所学的编程知识很好地运用,其次,三次作业也同样考验我们的自学能力比......
  • NCHU题目集1~3的总结
    目录一.前言二.设计与分析三.采坑心得四.改进建议五.总结前言知识点总结题目集一字符串处理对输入的字符串进行对应的匹配与确认,找到对应的字符串的内容,将对应字符串中不合规范的内容进行处理,合格后直接存储。字符串的比对,满足要求的字符串进行输出和相应......
  • 南昌空大学第一次PTA小结blog
    不相同与上学期的C语言,java在面向对象与面向过程,安全性与垃圾回收,跨平台性,速度与效率,应用领域,语法特性等方面存在显著的差异,而且java也是我们软件工程以后所使用的基础,接下来我分享第一次作业的总结。本次作业分为以下部分:(1)总结三次题目集的知识点、题量、难度等情况。(2)设计与......
  • 答题判题系统的三次优化
    一.前言(1)答题判题程序-1:【1】知识点:charAt()的运用,正则表达式,数据形式转换【2】题量:较少【3】难度:较易(2)答题判题程序-2:【1】知识点:charAt()的运用,正则表达式,ArrayList的运用【2】题量:中等【3】难度:中等(3)答题判题程序-3:【1】知识点:charAt()的运用,正则表达式,数据结构的......
  • blog1 1--3周PTA训练总结
    一.前言:在学习过C语言之后,面向对象的程序设计在本学期如期开启。该课程的编程语言是java,java与所学过的C语言有诸多相似之处,与C语言课程所不同的是,这门课程注重的是面向对象,如果说C语言是语法的学习,那么java就是其实战应用的学习,这门课的学习更让我深刻的感受到比写代码更重要的......
  • 前三次答题判题程序总结
    前言:本次作业主要考察类的设计,从第一次作业只需三到五个类就能解决问题到第三次需要六七个类以上才能解决问题,这要求我们在写程序之前必须设计好各个类之间的关系和职责,这需要我们有良好的设计习惯并且遵守面向对象程序设计的原则。这几次作业难度很大,第一次作业200行可以搞定,第......
  • PTA前三次题目集总结
    以下内容是我对PTA三次习题作业最后一题的思路,源码以及总结学到的java知识大多都来自写题目集这些题目对我对java的认知与学习起到了不小的帮助答题判题程序-1题目内容设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答题的......