题目分析:
(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编程的重要环节,通过实验课可以巩固理论知识,提高编码能力。然而,在实验过程中可能会遇到一些困难。本文将分析主要困难,并针对相应题目的编码改进给出个人见解,最终对本阶段三次题目集进行综合性总结,提出需要进一步学习和研究的方向,并给出与教师、课程、作业、实验以及课堂组织方式等相关方面的改进建议。困难分析:
-
题目理解和问题分析: 在实验课中,一个常见的困难是正确理解题目要求,并进行有效的问题分析。有时候题目描述可能比较抽象,需要仔细研读并梳理出关键信息,以便正确把握解题思路。
-
编码技巧和语法应用: 编写Java程序需要掌握一定的编码技巧和语法知识。初学者可能会因为对语法规则不够熟悉而遇到困难,例如容易犯错的括号匹配、循环逻辑错误等。
-
调试和错误排查: 当程序出现错误时,调试和错误排查是必不可少的环节。然而,对于初学者来说,有时候很难追踪问题所在,找到并修复错误。改进见解:
- 题目理解和问题分析: 针对题目的理解和问题分析,可以采取以下改进措施:
- 仔细阅读题目,提取关键信息,并通过问题分析将问题拆解成更小的子问题;
- 使用流程图、伪代码或者思维导图等方式辅助理清解题思路,确保不遗漏重要环节;
- 若题目较为抽象或难以理解,及时向老师、同学或者网络资源寻求帮助。
- 编码技巧和语法应用: 提升编码技巧和语法应用的方法如下:
- 多实践编码练习,通过大量的实践才能熟练掌握编码技巧;
- 了解常见的编码规范和最佳实践,例如命名规范、代码风格等,以提高代码的可读性和可维护性;
- 多阅读Java相关的书籍、博客、文档等,深入理解语法知识和常用类库的用法。
- 调试和错误排查: 针对调试和错误排查,可以采用以下策略:
- 使用IDE提供的调试功能,逐步跟踪代码执行过程,定位问题所在;
- 遇到问题时,先通过观察输出和日志信息判断可能的错误点,再使用断点调试等方式验证猜测;
- 学会利用调试工具和技巧,如条件断点、查看变量值等,加快定位和解决问题的速度。
三、综合性总结:
通过本阶段的实验课,我学到了许多Java编程的基础知识和实践经验。但同时也发现了自己在理解题目、编码技巧和调试方面的不足之处。为了进一步提升自己的能力,我打算:
- 深入学习数据结构和算法,以提高问题分析和解决能力;
- 继续加强对Java语言特性和常用类库的学习和掌握,增强编码技巧;
- 注重实践练习,参与更多的编程项目,提高编码能力和调试技巧。
- 设计实验题目时尽量体现实际应用场景,以增加学生对Java编程的兴趣和动力;
- 结合理论与实践,将相关课程内容与实验紧密结合,让学生更好地应用所学知识在实验中注重解题思路和算法设计,而非仅仅追求结果;
- 提供详细的作业反馈和评价,帮助学生了解自己的不足并改进。
在Java实验课中,面对困难和挑战是正常的,重要的是我们能够从中吸取经验教训,并持续改进自身的编码能力和解决问题的能力。通过分析困难、给出见解,并提出改进建议,我们能够更好地应对未来的编程挑战