第一次博客作业

1)前言:

第一次题目集:

知识点:java基础语法,面向对象编程。

题量:适中。

难度:较为简单,主要考察Java基础语法和面向对象编程的概念和应用。

第二次题目集:

知识点:

1. Java基础语法:例如变量定义、常量定义、数据类型、循环、条件语句等。             

2. 面向对象编程:例如类和对象的定义,封装、继承和多态的概念,方法的重载和重写等。 

3. 数组:因为菜单上可能有多个选项,需要使用数组进行管理和操作。
4. 输入和输出:程序需要从控制台或文件中读取菜单内容,并将计算结果输出到控制台或者保存到文件中。
5. 异常处理:在程序运行过程中,可能会出现一些错误或者异常情况,需要进行捕获和处理,以保证程序正常运行且不影响用户体验。
7. 设计模式:例如观察者模式、工厂模式等设计模式可以提高代码的灵活性和可扩展性,使得程序更易于维护和修改。

题量:少。

难度:较困难,需要实现简单的菜单选项,实现不算复杂,只需一些基础的Java语法知识。但需要考虑到多种菜品、状态切换、价格计算等场景,就需要更深入地掌握Java面向对象编程、数组、输入输出操作等相关知识。

第三次题目集:

知识点:

1. Java基础语法:例如变量定义、常量定义、数据类型、循环、条件语句等。             

2. 面向对象编程:例如类和对象的定义,封装、继承和多态的概念,方法的重载和重写等。 

3. 数组:因为菜单上可能有多个选项,需要使用数组进行管理和操作。
4. 输入和输出:程序需要从控制台或文件中读取菜单内容,并将计算结果输出到控制台或者保存到文件中

题量:适中。

难度:困难,不仅要掌握Java基础语法知识,还要对类和对象的定义,封装、继承和多态的概念,方法的重载和重写等有较深的理解。

2):设计与分析

第一次题目集

1). 身体质量指数(BMI)测算

1. Java基础知识
在实现体质指数计算程序时,需要用到基本的Java语言特性,如变量、函数、条件语句、循环语句等。此外,还需要了解Java的数据类型、运算符、字符串处理和异常处理等相关知识。

2. 面向对象编程思想
了实现程序的可重用性和扩展性,可以采用面向对象的编程思想。可以将程序拆分为多个类,每个类负责不同的功能模块。例如,在程序中可以定义一个名为Person的类来表示人物信息,另一个名为BMI的类来计算BMI值。

2.长度质量计量单位换算

1. Java基础知识
在实现长度质量计量单位换算程序时,需要使用到Java中的基本数据类型、运算符和控制语句等知识。我们需要定义一些变量来保存输入数据,并使用条件语句处理异常情况,例如用户输入非法字符等。

2. 面向对象编程思想
为了实现程序的可重用性和扩展性,可以采用面向对象编程思想。可以将程序拆分为多个类,每个类负责不同的功能模块。例如,在程序中可以定义一个名为Converte r的类来进行单位转换操作。

(3). 奇数求和

针对Java奇数求和程序的实现,我们需要运用到Java基础知识、面向对象编程思想和算法分析能力等。下面对题目的提交源码进行分析,重点关注其可读性、可维护性和性能优化等方面。

1. 代码讲解:

public class OddSum {
    public static void main(String[] args) {
        int start = 1;
        int end = 100;
        int sum = 0;
        for (int i = start; i <= end; i++) {
            if (i % 2 == 1) {
                sum += i;
            }
        }
        System.out.println("The sum of odd numbers from " + start + " to " + end + " is: " + sum);
    }}

该程序定义了一个名为OddSum的类,其中包含了一个主方法main。首先定义起始值start和结束值end,然后使用循环遍历从start到end之间的所有整数,判断当前数字是否为奇数,如果是则加上这个奇数并将结果保存在sum变量中。最后输出计算结果

(4)房产税费计算


首先,我们可以使用代码度量工具SourceMonitor来生成报表,以便更好地了解源代码的质量和复杂度。通过SourceMonitor生成的代码度量报表,我们可以了解到Java房产税费计算的代码复杂度、可维护性、耦合等指标,从而评估其软件质量。

其次,我们还可以使用建模工具PowerDesigner创建相应的类图。在类图中,我们可以清楚地看到Java房产税费计算系统的各个组件之间的关系和交互方式。通过对类图的分析,我们可以更好地理解系统的运行方式和架构设计

第二次题目集

(1)菜单计价程序-1

本题要求设计一款Java菜单计价程序,实现用户输入不同的菜单及份数后,能够输出总价。该程序需要具备良好的可读性、可维护性和易扩展性。下面从代码规模、类图设计和代码实现三个方面对该程序进行分析。

  1. 类图设计分析

Menu类表示一个菜单项,在这里定义了菜名、价格等属性,并提供相关get/set方法。
Order类表示一个订单项,在这里定义了所点菜名及份数等属性,并提供相关get/set方法以及计算总金额的方法。
Main类为主函数入口,负责控制整个逻辑流程,并与用户进行交互

  1. 代码实现分析
    在代码实现方面,该程序结构清晰,注释详细,优化良好。在Menu和Order两个类中使用了封装性原则,并且应用了面向对象编程中的继承和重载等特性。同时,在Main函数中也用到了异常处理机制,增强了程序的健壮性。
    以下为部分源代码实现:

Menu类:

 

Order类:

 

Main函数:

 

总的来说,该程序是一个比较典型的小型Java项目,具备良好的可读性、可维护性和易扩展性。作者在代码实现中采用了面向对象编程思想和异常处理机制等技术手段,从而使得该程序更加健壮和高效。

(2)菜单计价程序-2

这道题我并没有什么解题思路下面是我自己总结的未解出此题的原因

  1. 缺乏Java编程语言的基础知识:首先,如果不了解Java语法和常用类库,就很难理解代码的结构、实现方式以及如何调试代码。以后要继续学习Java编程语言的基础知识。
    2. 面向对象编程思想不够清晰:在这个菜单计价程序中,我们需要对菜单和订单进行封装,以便更好地进行操作。如果对面向对象编程思想不够清晰,就难以正确实现这些功能。要学习面向对象编程思想的相关概念,并多加练习。
    3. 数组、集合等数据结构不熟悉:在本程序中,我们需要使用数组或集合来存储和管理菜单项和订单信息。如果对于数组、集合等数据结构不熟悉,可能会导致无法正确实现菜单和订单管理功能。要学习数组、集合等数据结构的相关知识,并注意常见操作方法。
    4. 缺乏调试经验:调试是程序开发中非常重要的一部分。如果缺乏良好的调试经验,就难以快速找到代码中出现问题的位置,并解决问题。要多进行代码调试,并了解各种调试技巧和工具。

针对上述问题,可以采取以下措施:

1. 掌握Java基础知识:可以通过学习相关书籍、在线视频、教程等方式来提高自己的Java语言能力。
2. 确认需求并思考解决方案:在开始编写代码之前,应该先明确需求和要求,并且将其转化为易于理解的逻辑结构。可以画出草图并用伪代码来表示程序逻辑,以帮助自己更好地理解。
3. 多进行实践:只有通过不断练习和实践,才能掌握Java编程技能,所以可以多写一些小程序来提高自己的编程水平,并且尝试阅读别人的代码,从中学习其他程序员的经验和技巧。

第三次题目集

(1)菜单计价程序-3

因为上次作业的菜单类作业没做所以对这次进阶版的菜单类作业也没什么思路

(2)判断两个日期的先后,计算间隔天数、周数

对于Java中判断两个日期的先后以及计算间隔天数、周数,我们可以使用Java.util.Date类和Java.text.SimpleDateFormat类。

在这段代码中,我们使用SimpleDateFormat类将字符串类型的日期转换为Date类型,然后使用Date类的after()方法和before()方法来判断两个日期的先后关系。同时,我们也利用Date类中的getTime()方法计算出两个时间点之间相差的毫秒数,进而求出它们之间的天数差和周数差。

代码性能方面可以使用SourceMonitor进行分析,它可以生成各种与代码复杂性有关的报告,比如行数、圈复杂度等等。我们可以查看生成的报告分析代码的质量和效率。

另外,PowerDesigner可以很好地生成类图,通过类图可以清晰地了解代码结构和对象之间的关系,便于更好地理解和维护代码。在实际开发中,我们应该注重代码的可维护性和可拓展性,并根据具体场景选择合适的设计模式来实现需求。

(3)踩坑心得

1. 编译错误:PTA上的题目往往需要使用Java的类库,如果没有正确导入这些类库,就会出现编译错误。在做题之前,要先阅读题目中所提到的类库,并将其导入到代码中。

2. 输入输出问题:PTA平台会提供多组测试数据,所以要注意输入输出格式。在处理输入时,应该使用Scanner或BufferedReader等工具类;在输出时,应该注意格式控制。

3. 数组越界错误:数组越界错误是一个常见的运行时错误。要避免这个错误,可以使用for-each循环或者List等Java集合代替原生数组。

4. 逻辑错误:有些PTA题目需要考虑边界和特殊情况。在编写代码之前,要认真阅读题目并理解需求,在代码实现过程中考虑各种可能性,并对每个分支进行测试。

5. 在使用Scanner类获取用户输入时,要注意避免空格、回车等非数字字符的干扰。可以在获取完数字后使用nextLine()方法将其余字符清空。

6. 在使用switch语句实现菜单功能时,要注意case语句中的break语句的位置。如果break放在末尾,则会出现意外的bug。建议将break放在case逻辑块的最后一行。


7. 菜单价格计算可能会产生小数,需要考虑数据类型和精度问题。可以使用BigDecimal类进行高精度运算。


8. 如果菜单计价程序中菜单很长,代码可读性和维护性都会降低。可以将菜单选项封装成一个独立类或枚举类型,并提供相应的方法。

(4)主要困难及改进意见

  1. 困难:理解题目要求和建立问题模型是解题的关键。对于一些复杂的问题,在理解要求和建立模型过程中可能会出现困难。

    改进建议:在遇到难题时,不要放弃,应该经常深入思考和讨论,并尝试寻找更多的资料和范例来帮助理解。多看老师课上讲授的相关知识点,加强对基本操作的掌握,逐步积累编程思维能力。

    2. 困难:编码中出现了语法错误或逻辑错误,导致程序无法正常运行或得到正确结果。

    改进建议:细心地阅读代码、Debug技巧、注释技巧都非常重要。需要用心去分析每一个代码片段,并且有时需要进行代码重构或抽象化以优化代码。在遇到问题时,可以通过查看错误信息、调试语句等方式找到错误并修正它们。

    3. 困难:时间限制过短或作业质量过高,导致完成作业较为困难。

    改进建议:将时间合理分配并进行有效使用,放弃一开始就想从头到尾完成作业的想法。在时间不够的情况下,优先解决高分值的问题。同时,要阅读题目和代码,在理解后再进行编码。可以把一道大题拆成若干小题进行处理,逐渐深入理解问题。

(5)总结

1.

通过本阶段三次题目集,我学到了Java基础知识的运用,如循环结构、条件语句、数组、方法等。同时也学习到了面向对象编程的概念和实现,如封装、继承和多态等。

在完成菜单计价程序时,我深入了解了Java中Scanner类和DecimalFormat类的使用。使用Scanner获取用户输入,并通过DecimalFormat类对输出结果进行格式化,达到更好的视觉效果。

在实践过程中,我也发现了自己的不足之处。比如对Java集合类的掌握还不够熟练,在程序设计中往往使用基础数据类型进行处理,而没有充分利用Java提供的集合类及其相关方法。因此,在日后需要进一步学习并熟悉Java集合类的应用。

此外,在代码设计过程中还需要注意模块化思想,即将大问题拆分为小问题进行解决,并考虑代码重复利用率和可维护性等因素。

总之,通过这三次题目集的实践,我深入理解了Java编程语言,并掌握了一些基础开发技能。在未来的学习与实践中,我将进一步加强自身技能储备,并努力优化代码设计与开发效率。

2.

下面是我对教师、课程、作业、实验、课上及课下组织方式等方面的改进建议及意见。


1. 教师方面:建议教师讲解时能够结合实际应用场景进行讲解,提高学生的兴趣。同时,在授课内容方面,建议加强对一些实践性较强的内容进行解释和演示。

2. 课程方面:建议在Java语言相关知识点学习之外,可以增加一些实际项目案例进行讲解,并介绍相关行业知识,有助于学生更好地了解该领域的发展趋势和应用场景。

3. 作业方面:建议定期布置合理难度的编程作业,并严格按时同步批阅,及时反馈学生问题并提供优质批改意见。

4. 实验方面:建议设计具有一定难度和挑战性的实验题目,并在实验过程中能够引导学生思考问题并正确使用Java语言进行解决。

5. 课上及课下组织方式方面:针对Java课程特点,可以增加小组讨论、团队作业等课下学习方式,以及线上分享、线下实践等更多的课上教学方式,并鼓励学生积极参与,促进互动交流。同时,建议有关部门加强Java课程授课质量监管和教师培训,确保Java课程能够得到有效推广和应用。

希望以上意见可以对Java课程的改进建设有所启发。

 

 

 

 

 

 

 

 

posted @   henrenzhenderen  阅读(57)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示