题目分析:

(1)、

创建学生类,包含

属性:学号(String)、姓名(String)、语文成绩(int)、数学成绩(int)、物理成绩(int)

方法:计算总分、计算平均分

输入5个学生的信息,将每个学生的信息封装在一个学生对象中。

按输入顺序依次输出5个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。

(2)、

创建成绩类,包含:

属性:平时成绩(int)、期末成绩(int)

方法:计算总成绩(计算规则:平时成绩*0.4+期末成绩*0.6,保留整数部分,小数部分直接丢弃)

创建学生类,包含:

属性:学号(String)、姓名(String)、语文成绩(成绩类)、数学成绩(成绩类)、物理成绩(成绩类)

方法:计算总分、计算平均分

输入3个学生的信息,将每个学生的信息封装在一个学生对象中。

按输入顺序依次输出3个学生的总分、平均分(精确到小数点后两位,舍去部分按四舍五入规则计入最后一位)。

(3)、

某高校课程从性质上分为:必修课、选修课,从考核方式上分为:考试、考察。

考试的总成绩由平时成绩、期末成绩分别乘以权重值得出,比如平时成绩权重0.3,期末成绩权重0.7,总成绩=平时成绩*0.3+期末成绩*0.7。

考察的总成绩直接等于期末成绩

必修课的考核方式必须为考试,选修课可以选择考试、考察任一考核方式。

1、输入:

包括课程、课程成绩两类信息。

课程信息包括:课程名称、课程性质、考核方式(可选,如果性质是必修课,考核方式可以没有)三个数据项。

课程信息格式:课程名称+英文空格+课程性质+英文空格+考核方式

课程性质输入项:必修、选修

考核方式输入选项:考试、考察

课程成绩信息包括:学号、姓名、课程名称、平时成绩(可选)、期末成绩

课程信息格式:学号+英文空格+姓名+英文空格+课程名称+英文空格+平时成绩+英文空格+期末成绩

以上信息的相关约束:

1)平时成绩和期末成绩的权重默认为0.3、0.7

2)成绩是整数,不包含小数部分,成绩的取值范围是【0,100】

3)学号由8位数字组成

4)姓名不超过10个字符

5)课程名称不超过10个字符

6)不特别输入班级信息,班级号是学号的前6位。

2、输出:

输出包含三个部分,包括学生所有课程总成绩的平均分、单门课程成绩平均分、单门课程总成绩平均分、班级所有课程总成绩平均分。

为避免误差,平均分的计算方法为累加所有符合条件的单个成绩,最后除以总数。

1)学生课程总成绩平均分按学号由低到高排序输出

格式:学号+英文空格+姓名+英文空格+总成绩平均分

如果某个学生没有任何成绩信息,输出:学号+英文空格+姓名+英文空格+"did not take any exams"

2)单门课程成绩平均分分为三个分值:平时成绩平均分(可选)、期末考试平均分、总成绩平均分,按课程名称的字符顺序输出

格式:课程名称+英文空格+平时成绩平均分+英文空格+期末考试平均分+英文空格+总成绩平均分

如果某门课程没有任何成绩信息,输出:课程名称+英文空格+"has no grades yet"

3)班级所有课程总成绩平均分按班级由低到高排序输出

格式:班级号+英文空格+总成绩平均分

如果某个班级没有任何成绩信息,输出:班级名称+英文空格+ "has no grades yet"

异常情况:

1)如果解析某个成绩信息时,课程名称不在已输入的课程列表中,输出:学号+英文空格+姓名+英文空格+":"+课程名称+英文空格+"does not exist"

2)如果解析某个成绩信息时,输入的成绩数量和课程的考核方式不匹配,输出:学号+英文空格+姓名+英文空格+": access mode mismatch"

以上两种情况如果同时出现,按第一种情况输出结果。

3)如果解析某个课程信息时,输入的课程性质和课程的考核方式不匹配,输出:课程名称+" : course type & access mode mismatch"

4)格式错误以及其他信息异常如成绩超出范围等,均按格式错误处理,输出"wrong format"

5)若出现重复的课程/成绩信息,只保留第一个课程信息,忽略后面输入的。

1、建立学生类:

class Student {
String studentId;
String name;
int chineseScore;
int mathScore;
int physicsScore;

public Student(String studentId, String name, int chineseScore, int mathScore, int physicsScore) {
this.studentId = studentId;
this.name = name;
this.chineseScore = chineseScore;
this.mathScore = mathScore;
this.physicsScore = physicsScore;
}

public int getTotalScore() {

}

public double getAverageScore() {

}
}

其中包含对学生类中的构造,包含学生的基本信息,基本操作,和计算等。

使用时只需要将学生类进行整体操作调用即可。使得代码结构更加清晰。

其中对于Java编写规范的要求和对相应函数的操作容易出现问题

java实验课是学习和实践Java编程的重要环节,通过实验课可以巩固理论知识,提高编码能力。然而,在实验过程中可能会遇到一些困难。本文将分析主要困难,并针对相应题目的编码改进给出个人见解,最终对本阶段三次题目集进行综合性总结,提出需要进一步学习和研究的方向,并给出与教师、课程、作业、实验以及课堂组织方式等相关方面的改进建议。困难分析:

  1. 题目理解和问题分析: 在实验课中,一个常见的困难是正确理解题目要求,并进行有效的问题分析。有时候题目描述可能比较抽象,需要仔细研读并梳理出关键信息,以便正确把握解题思路。

  2. 编码技巧和语法应用: 编写Java程序需要掌握一定的编码技巧和语法知识。初学者可能会因为对语法规则不够熟悉而遇到困难,例如容易犯错的括号匹配、循环逻辑错误等。

  3. 调试和错误排查: 当程序出现错误时,调试和错误排查是必不可少的环节。然而,对于初学者来说,有时候很难追踪问题所在,找到并修复错误。改进见解:

  1. 题目理解和问题分析: 针对题目的理解和问题分析,可以采取以下改进措施:
  • 仔细阅读题目,提取关键信息,并通过问题分析将问题拆解成更小的子问题;
  • 使用流程图、伪代码或者思维导图等方式辅助理清解题思路,确保不遗漏重要环节;
  • 若题目较为抽象或难以理解,及时向老师、同学或者网络资源寻求帮助。
  1. 编码技巧和语法应用: 提升编码技巧和语法应用的方法如下:
  • 多实践编码练习,通过大量的实践才能熟练掌握编码技巧;
  • 了解常见的编码规范和最佳实践,例如命名规范、代码风格等,以提高代码的可读性和可维护性;
  • 多阅读Java相关的书籍、博客、文档等,深入理解语法知识和常用类库的用法。
  1. 调试和错误排查: 针对调试和错误排查,可以采用以下策略:
  • 使用IDE提供的调试功能,逐步跟踪代码执行过程,定位问题所在;
  • 遇到问题时,先通过观察输出和日志信息判断可能的错误点,再使用断点调试等方式验证猜测;
  • 学会利用调试工具和技巧,如条件断点、查看变量值等,加快定位和解决问题的速度。

三、综合性总结:

通过本阶段的实验课,我学到了许多Java编程的基础知识和实践经验。但同时也发现了自己在理解题目、编码技巧和调试方面的不足之处。为了进一步提升自己的能力,我打算:

  1. 深入学习数据结构和算法,以提高问题分析和解决能力;
  2. 继续加强对Java语言特性和常用类库的学习和掌握,增强编码技巧;
  3. 注重实践练习,参与更多的编程项目,提高编码能力和调试技巧。

 

  • 设计实验题目时尽量体现实际应用场景,以增加学生对Java编程的兴趣和动力;
  • 结合理论与实践,将相关课程内容与实验紧密结合,让学生更好地应用所学知识在实验中注重解题思路和算法设计,而非仅仅追求结果;
  • 提供详细的作业反馈和评价,帮助学生了解自己的不足并改进。

在Java实验课中,面对困难和挑战是正常的,重要的是我们能够从中吸取经验教训,并持续改进自身的编码能力和解决问题的能力。通过分析困难、给出见解,并提出改进建议,我们能够更好地应对未来的编程挑战

 posted on 2023-10-07 23:51  pluto130101  阅读(119)  评论(0编辑  收藏  举报