Blog -----前三次大作业总结
1.第一次大作业中,Java题目所涉及到的知识点包括:
(1).数据的输入和输出。程序需要从控制台读取输入,并将结果输出到控制台。这涉及到System.in和System.out的使用,以及可能用到的Scanner类或其他输入读取方法。
(2).字符串处理。题目中的输入格式包含多种特殊字符,程序需要能够正确解析这些字符并提取出有用信息。这可能涉及到String类的各种方法,如split(), substring(), trim()等。
(3).逻辑判断。程序需要根据题目的标准答案来判断学生的答题是否正确。这涉及到基本的逻辑判断,如比较两个字符串是否相等等。
(4).循环和条件语句。由于题目数量和答题信息都是可变的,程序需要使用循环(如for, while等)和条件语句(如if, else等)来处理不同数量的输入。
(5).数组或集合的运用。:为了存储题目信息和答题信息,程序可能需要使用数组或集合(如ArrayList)来动态地添加和管理数据。
(6).异常处理。由于用户输入可能存在错误或不符合预期的情况,程序需要能够妥善处理这些异常情况,如输入格式错误、输入超出范围等。
public class ExamSimulator { //创建一个ExamSinulator类
for (int i = 0; i < numQuestions; i++) {
while (scanner.hasNextLine()) { //循环语句的运用
String[] parts = line.split(" "); //数组或集合的运用
if (isFirstAnswer) {
System.out.println(numQuestions);
isFirstAnswer = false;
}
}
scanner.close(); //异常处理代码
2.第二次大作业中,Java题目所涉及到的知识点包括:
(1).类的运用。解析输入行,提取出题目的编号、内容和标准答案,然后将这些信息存储在答题类的实例中。
(2).文件读取。从标准输入或文件中读取数据。
(3).字符串的处理。题目涉及解析,截取,替换字符串,从而达到程序的正常运行。
(4).条件语句的运用。题目中不乏运用(“if,else”),对情况多角度分析。
(5).循环语句的运用。题目中不乏存在着对循环语句的运用。如(“for或while”)。
(6).数学运算和逻辑判断。
public class ExamSimulator { //创建一个ExamSimulator类
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.startsWith("#N:")) { //文件及题目信息的读取
String[] parts = line.split(" ");
String[] parts = line.split(" ")
String[] parts = line.split(" ");
String[] parts = line.split(" "); //字符串的运用以及题目信息的处理
for (int i = 0; i < answers.length; i++) { //循环语句的运用
else if (line.equals("end")) { //条件语句的运用
private static Map<Integer, Question> questions = new HashMap<>();
private static Map<Integer, List
private static Map<Integer, String> students = new HashMap<>();
private static Map<Integer, Answer> answers = new HashMap<>(); //逻辑判断
3.第三次大作业中,Java题目所涉及到的知识点包括:
(1).面向对象编程。设计答题程序需要创建多个类,如Question(题目类)、Paper(试卷类)、Student(学生类)和Answer(答题类),来表示题目、试卷、学生和答题信息。
(2).文件读取和解析。程序需要从标准输入或文件中读取题目信息、试卷信息、学生信息和答卷信息。因此,需要掌握文件读取的基本方法,并能够解析不同格式的输入数据。
(3).字符串处理。答卷信息中的答案可能包含首尾空格,需要使用字符串处理方法去除这些空格。此外,还需要对输入数据进行验证和格式检查。
(4).条件语句和循环语句。程序需要根据输入数据的不同情况执行不同的操作。例如,根据试卷信息和答题信息判断答题结果,根据试卷信息和学生信息计算总分等。因此,需要掌握if、else、for、while等条件语句和循环语句。
(5).异常处理。在读取和解析输入数据时,可能会遇到各种异常情况,如文件不存在、输入格式错误等。需要使用try-catch语句进行异常处理,确保程序的稳定性和健壮性。
(6).算法和数据结构。为了高效地处理大量的题目、试卷和学生信息,需要选择合适的算法和数据结构。例如,可以使用HashMap来存储题目和试卷之间的关系,使用ArrayList来存储学生信息和答题信息等。
(7).数学运算和逻辑判断。答题程序需要根据题目信息中的标准答案判断答题结果,因此需要掌握基本的数学运算和逻辑判断。
(8).输出格式控制。程序需要按照特定的格式输出试卷总分警示、答卷信息、判分信息和提示信息。因此,需要掌握基本的输出格式控制方法,如使用printf或String.format等。
public class ExamSimulator { //创建一个ExamSimulator类
while (scanner.hasNextLine()) {
String line = scanner.nextLine(); //读取题目信息
if (line.startsWith("#N:")) { //条件语句的运用
String[] parts = line.split(" ");
String[] parts = line.split(" ");
String[] parts = line.split(" ");
String[] parts = line.split(" "); //题目信息的处理
private static Map<Integer, Question> questions = new HashMap<>();
private static Map<Integer, List
private static Map<Integer, String> students = new HashMap<>();
private static Map<Integer, Answer> answers = new HashMap<>(); //异常处理
对前三次大作业的总结:就在我自己看来,这几次大作业中涉及多的是字符串的运用以及之前学过的条件语句和循环语句的使用。在我认为难度较大的地方属于逻辑判断,对于较长的题目不能够静下心来仔细去思考,往往会觉得难度大,不想去做。同时自己平常的学习抓的比较松,不能够严格要求自己在学习方面上下功夫。对于上述大多数语法掌握的不够熟练,碰到需要较长时间才能做出来的题目,会没有耐心。
对前三次大作业的心得:在学习面向对象这门课程时,我们应该沉住气,一步一个脚印,对每个知识点做到滴水不漏,认真打好面向对象的基础,为后面更加复杂程序打下夯实的基础。