首页 > 其他分享 >PTA题目集1~3的总结性Blog

PTA题目集1~3的总结性Blog

时间:2024-04-21 23:55:31浏览次数:18  
标签:总结性 题目 String int 试卷 PTA Blog num private

第一次:
难度:类内方法不复杂,只有3种信息输入,且有类设计的提示。相对简单。
题量:需要1~2天
知识点:类设计,字符串处理等基础语法,正则表达式。
————————————————————————设计与分析——————————————————————————————————
类设计思路:
1~题目类(单个题目的信息):
属性:题目编号、题目内容、标准答案-standardAnswer
主要方法:
判题方法(答案-answer:判断答案-answer是否符合标准答案-standardAnswer)
2~试卷类(一套题目的信息)
属性:题目列表(题目类的对象集合,数组)、题目数量
主要方法:
@1判题方法(题号-num、答案-answer):判断答案-answer是否符合对应题号的题目标准答案-standardAnswer。
分析:这里判题方法进一步封装,调用题目类的判题方法
@2保存题目(题号-num、题目-question):将题目保存到题目列表中,保存位置与num要能对应
3~答卷类(用于封装答题信息)
属性:试卷(试卷类的对象)、答案列表(保存每一题的考生答案)、判题列表(保存每一题的判题结果true/false)
主要方法:判题方法(题号-num):判断答案列表中第num题的结果是否符合试卷中对应题号的题目标准答案
输出方法(题号-num):按照题目的格式要求,输出题号为num的题目的内容和答题结果。
保存一个答案(题号-num,答案-answer):保存题号为num的题目的答题结果answer。

————————————————————————踩坑心得————————————————————————————————————
两大坑:
1,数组的实例化
questions=new Questions[n];
和数组元素的实例化
for (int i = 0; i < n; i++) { //!!! 实例化数组中的每个元素
questions[i] = new Questions();
2,数组元素下标访问的越界问题:
因为题目数组questions[0]存的是第一题,所以所有对题目的操作要注意下标减一。
比如 以下对num修正
public void saveQuestion(int num,String question,String standAnswer){
num-=1;
questions[num].setNum(num);
questions[num].setQuestion(question);
questions[num].setStandAnswer(standAnswer);
}
其他:
正则表达式运用不好,可以用网上在线工具实时测试表达式是否正确(如菜鸟工具https://www.jyshare.com/front-end/854/)
————————————————————————改进建议————————————————————————————————————
因为已知题目数量,所以用数组,和变量n记录。
这里分析以后更贴近真实情况应该改用arraylist更好

第二次:
难度:4种信息输入,多次输入,无提示。不提前告诉题目的数量,乱序。中等
题量:需要3~4天
知识点:类设计,字符串处理等基础语法,正则表达式,arraylist。
————————————————————————设计与分析——————————————————————————————————
类设计思路:尝试使用list
1~题目类(Question):用于保存一道题目的信息以及处理的方法。(与系列1相同,无变化)
属性:private int num;// 题号private String content, // 题目内容standardAnswer;// 标准答案boolean matchingStandardAnswers(String answer):
主要方法:判断是否符合标准答案试卷题目类(Question _ Paper 新增): 用于保存试卷中的题目信息。
2~试卷题目类
由于试卷新增了分数,题目在不同试卷中的分值可能不一样,因此,设计试卷题目类。
属性:int p_q_ num;//试卷中题目的顺序号Question question;//题目类的对象, 保存题目信息int question _ score;// 题目分值int judge _markAnswer(String answer) // 主要方法:判断题目得分
试卷类(TestPaper):保存和处理一张试卷的信息以及处理的方法,int questionNum;// 题目数量Question[] questions;//题目清单void inputQuestion(int num, Question question): 添加一道题目void printQuestions(): 输出题目的内容~标准答案boolean markQuestion(int num, String answer): 判断第 num题的正确性。int sum-保存总分 (新增)int questionQuantity-保存题目数量 (新增)int getSum(): 获得总分 (新增)
答案类(Answer 新增):用于保存答卷中一道答案的信息。Question _ Paper question;String answer;boolean mark;// 每一题的正确性int score=0;// 每一题的得分void calScore()//
计算得分答卷类(AnswerPaper): 保存和处理一张答卷的信息以及处理的方法TestPaper paper;//试卷信息String[] answers;//每一题的答案信息boolean[] marks;//每一题的判题结果 (对/错)(去除)void printQ_A(int num): 输出第 num 题的题目和答案(卷面答案, 非标准答案)boolean getJudge(int num): 获得第 num题的判题结果void printJudges() : // 输出所有的得分以及总分, 以空格分隔(新增)
尝试使用list
class Papers {
// private List questions;}
// class AnswerPapers {
// private int paperNum; // 试卷编号
// private List studentAnswers; // 考生答案列表
// private int totalScore; // 总分
// private List scores; // 每题得分
————————————————————————踩坑————————————————————————————————————
未协调好时间,错误评估了难度。
不会检验写到一半的代码,没有正反馈。

第三次:
————————————————————————设计与分析——————————————————————————————————
难度:6种信息输入,多次输入,不提前告诉题目的数量,乱序。多了很多错误输入。
题量:需要4~5天
知识点:类设计,字符串处理等基础语法,正则表达式,arraylist,hashmap。
类设计:(部分采纳老师建议)
涉及的类题目类(Question):用于保存一道题目的信息以及处理的方法。(与系列1相同,无变化)private int num;// 题号private String content, // 题目内容standardAnswer;// 标准答案boolean matchingStandardAnswers(String answer): 判断是否符合标准答案(新增) boolean isValid=true;//是否是有效的题目(新增) void disabled() //当题目被删除, 设置题目为失效状态(新增) ArrayList answers //
记录所有引用了该题目的答案试卷题目类(Question _ Paper): 用于保存试卷中的题目信息。由于试卷中的题目序号与题目本身的题号不一致。且题目在不同试卷中的分值可能不一样,因此,设计试卷题目类。int p_q_ num;//试卷中题目的顺序号Question question;//题目类的对象, 保存题目信息int question _ score;// 题目分值int judge _markAnswer(String answer) //
判断题目得分试卷类(TestPaper):保存和处理一张试卷的信息以及处理的方法,int questionNum;// 题目数量HashMap<String, Question _ Paper> questions;//题目清单void inputQuestion(int num, Question question): 添加一道题目void printQuestions(): 输出题目的内容~标准答案boolean markQuestion(int num, String answer): 判断第 num题的正确性。int sum-保存总分int questionQuantity-保存题目数量int getSum(): 获得总分答案类(Answer):用于保存答卷中一道答案的信息。Question _ Paper question;String answer;boolean mark;// 每一题的正确性int score=0;// 每一题的得分void calScore()//计算得分(新增) void disable() //
答案对应的题目失效, 判分为0答卷类(AnswerPaper): 保存和处理一张答卷的信息以及处理的方法TestPaper paper;//试卷信息String[] answers;//每一题的答案信息boolean[] marks;//每一题的判题结果 (对/错)void printQ_A(int num): 输出第 num题的题目和答案(卷面答案, 非标准答案)boolean getJudge(int num): 获得第 num题的判题结果void printJudges() : // 输出所有的得分以及总分, 以空格分隔(新增) String stuNum;// 学号(新增) void printErrorNumQuestion(Answer answer) // 输出试卷中错误题目号的题目
我的类设计可视化 ,以下:
class Questions{
public Questions() {
private int num;
private String question;
private String standardAnswer;
//判题
public boolean judgeMethodOfQuestions(String answer){
if(answer.equals(standardAnswer))
return true;
else return false;
}
}
class Q_Paper{

private int num;
private Questions question;
private int fullScore;
//
public boolean judgeMethodOfQ_Paper(String answer){
   
}

}
class Papers{
//试卷编号
private int Papernum;

//试卷顺序题目编号
private  static int num=1;
//与答卷答案顺序对应
private ArrayList<Q_Paper> questions = new ArrayList<>();

//加题
public void addQuestionsToPaper(Q_Paper question) {
	questions.add(question);
}

}
class Students{

private String num;
private String name;

}
class Answers{
//试卷题目类
private Q_Paper question;
//考生答案
private String answer;
//正确性
boolean mark;
//得分
int score=0;
public void judgeMethodOfAnswers(String answer) {

}
class AnswerPapers
{
//对应试卷
private Papers paper;
//对应试卷编号
private int forPaperNum;
//学生编号
private String stuNum;
//考生答案对象集
private Answers answers[];
//输出问题和卷面答案结果
public void printQ_A(){}}

————————————————————————踩坑心得————————————————————————————————————
对hashmap不熟练运用
花时间不够
————————————————————————改进建议————————————————————————————————————
重视,重拾,重写修改。

~
——————————————————————————总结————————————————————————————————————————
1·学到了正则表达式的运用,类设计方法,java的封装思想,面向对象编程的思想等。
2·我反思检讨自己需要端正态度,认真学习,认真java编程。
我建议,希望能在每一次大作业结束后可以发一次补集,补集可以不算入成绩,但是这样一来我们能修改调试,或者老师讲解后新的想法的实现,修改。这样可以提升能力。

标签:总结性,题目,String,int,试卷,PTA,Blog,num,private
From: https://www.cnblogs.com/huo-ha/p/18149807

相关文章

  • 第一次blog
    一.前言1.前三次题目集的知识点:(1)利用面对对象编程原理根据题目给的信息以及题目的复杂程度建立对应的类以及在类里加入方法。(2)使用Java自带的类库运用Scanner类中的方法、regex.Matcher类中的方法、regex.Pattern类中的方法等。(3)正则表达式的利用,利用正则表达式对题目给出的输......
  • 对于前三次的pta题集练习,由于我的偷懒和迟钝,有许多部分没有完成,但在此我还是对题目集
    第一道大题题目信息7-1答题判题程序-1分数50作者蔡轲单位南昌航空大学设计实现答题程序,模拟一个小型的测试,要求输入题目信息和答题信息,根据输入题目信息中的标准答案判断答题的结果。输入格式:程序输入信息分三部分:1、题目数量格式:整数数值,若超过1位最高位不能为0,......
  • pta实验总结
    刚开始接触java,感到有些吃力,可能是因为C语言基础不牢的缘故,我的Java水平还有待提高。pta1:7-1设计一个风扇Fan类分数4入门作者殷伟凤单位浙江传媒学院设计一个名为Fan的类表示一个风扇。这个类包括:1.三个名为SlOW、MEDIUM和FAST,其值为1、2和3常量表示风扇的速度。2.一......
  • 题目集1-3的总结性Bolg
    一.前言:在这几周,我们进行了3次pta的题目训练。每次的题目集的最后一个答题程序不断迭代,使题目集的难度不断增大,压力很大。不过与此同时,这也使我们学到了很多。以下是我的初步总结:1.知识点在我看来,答题程序实现的关键有两点。第一点是正确的使用正则表达式等技术提取输入信息,从......
  • 第一次blog
    前言:我在大一上学期学习了c语言,然后在下学期学习了第二门语言java,因为之前c语言学的挺一般的,然后在这学期学习java感觉还是挺不简单的,要自学很多东西,在这段时间里,我学习了JAVA的基本语法。逻辑结构的使用,学习了类的使用,和类的基本概念,学会了如何封装程序,使得代码更加严谨,代码也更......
  • 第一阶段PTA总结
    前言截至目前,面向对象程序设计已经进行了三次PTA训练。题目是基于试卷的判分系统的程序设计,在三次训练中难度逐渐增加,同时这个题目还要伴随整个面向对象程序设计的学习,逐步迭代。完成这部分作业确实花费了我大部分时间,虽然最后的代码都可以完成所有的测试样例,但是无法通过所有的......
  • Blog1-3
    Blog1-3总结1.前言三个礼拜左右的pta训练,让我成功认知到了学校对java这门课程的重视。总体而言,这三次pta难度都是比较大的,让我的头发掉了一根又一根,而且题目难度跨度太大了,让人有点难以适应,也是因为难度跨度很大,导致分数的分配也不是很均匀。还有就是有些测试点真的有点奇怪,让......
  • PTA题目集1~3的总结
    目录:1)前言2)设计与分析3)踩坑心得4)改进建议5)总结1.前言:Java作为本学期的新学语言,难度相较于上学期的c语言有很大提升,由易到难的过程也更加考验我们的学习和理解能力。前三次题目集重点考核类设计及类间关系设计,以及正则表达式的应用等。并且在每次题目集的题目数量不多的情......
  • 第一次Blog
    一.前言在前三次大作业中,设计的均为我们学习生活中常见的答题判题程序,适用于常见的一些网上答题系统,例如我们常见的学习通考试系统。总结前三次大作业,主要知识点第一则为类。利用类能够很好的解决前三次大作业的问题。在后两次大作业中则额外考查了动态数组,链表以及hashmap的知识......
  • OOP课程第一次Blog
    目录1.前言:2.设计与分析:第一次大作业7-5:第一次大作业7-5总结:第二次大作业7-4:第二次大作业7-4总结:第三次大作业7-3:第三次大作业7-3总结:3.踩坑心得:4.改进建议:5.总结:1.前言:题目集1:这次的作业题目量较大,而且最后一题难度不小,然后是第一次使用Java语言编写代码,对于类的使用以及Java的......