作业总结

一·前言

本次总结包含三次作业,题目难度随着作业的次数而不断增加,在经过了三个星期的作业训练后,写出了以下总结:

1.第一次作业:

第一次作业主要包括一些基础知识和输入输出,创建和if循环的应用;

本次作业难度不大,对java和c语言之间进行了一些过度和理解。

2.第二次作业:

第二次作业是在已经掌握了java编辑语言的前期基础之上进行类与对象的训练,同时训练面向对象的思维逻辑;

其中,第一题及第二题利用类分别进行简单编写后将各个类进行连接组成完整的代码;后面的两道题涉及时间函数和需要一些数学计算的思维。

第一题是菜单程序的开端,是接下来所有菜单程序的基础。

3.第三次作业:

延续了菜单程序的问题并进行了其他问题的训练,延长了要求并添加了时间函数的部分,运用了字符串的拆分截取。将上一次的时间函数添加其中,但是因为并没有完全明白之前的题目,最终的结果并不理想。

本次总结只写了必写和部分印象深刻的题。

由于时间以及知识理解不全等各种原因,菜单部分并没有完全通过测试点,所以代码错误,暂时不上传。

二·设计

菜单程序:

1.第二次作业第一道题:

题目要求输出时能够根据输入的大小数字来计算,菜单最后的总价钱订单上所有菜品的总价(整数数值),每份菜如果订单中包含不能识别的菜名,则在总价之前输出“** does not exist”,**是不能识别的菜名,并根据题目提供了相应的创建类的模板;

类别包括:Dish,Menu,Record,Order,Main;

思路:在进行编写时,将每一类分别处理:

Dish中编写名称和底价,并列出条件使其能够根据输入的数字改变价格;

Menu中创建数组,保留所有菜单信息;

Record中根据输入记录价格和菜品;

Order中进行总价的计算;

最终转入主函数Main中输出。

类图如下:

 

2.第二次作业第二道题:

题目与上一题类似,在上一题的基础上进行“升级”,并添加能够删除后台记录的功能如果删除记录的序号不存在,则输出“delete error”并根据题目提供了相应的创建类的模板;

 

类别包括:Dish,Menu,Record,Order,Main;

 

思路:在进行编写时,将每一类分别处理:

 

Dish中编写名称和底价,并列出条件使其能够根据输入的数字改变价格;

 

Menu中创建数组,保留所有菜单信息;

 

Record中根据输入记录价格和菜品;

 

Order中进行总价的计算,找到菜品记录,根据序号查找或删除;

 

最终转入主函数Main中,并在其中编写删除条件及程序,最终输出。

类图如下:

3.第三次作业第一道题:

题目在第二题的基础上进行添加,增加了桌号以及点餐时间,并要求每条点菜记录输出:序号+英文空格+菜名+英文空格+价格。

类别包括:Dish,Menu,Record,Order,Main;

思路:在进行编写时,将每一类分别处理:

Dish中编写名称和底价,并列出条件使其能够根据输入的数字改变价格;

Menu中创建数组,保留所有菜单信息;

Record中根据输入记录价格和菜品;

Order中进行总价的计算,找到菜品记录,根据序号查找或删除,添加时间函数;

最终转入主函数Main中,并在其中编写删除条件及程序,添加时间函数,最终输出。

类图如下:

 

 

 

时间函数(这是我第一次接触时间函数,所以进行分析,当作记录):

第二次作业第三道题:

本题要求根据给出的日期进行分析,将闰年标出,将日子所在位置标出,将两个日期相差时间标出。

类别:我只在主函数上进行了编写。

思路:本题主要考究的就是时间函数,利用时间函数中的Calendar,Date等对时间进行直接引用,完成运算。

第三次作业第二道题:

本题要求在给出的一段数中找到重复的并输出Yes或者No

类别:我只在主函数上进行了编写。

思路:根据循环原理一个一个读取数据并进行对比,对则输出Yes,错误则No。

第三次作业第三道题:

本题是第三次作业第二题的延申,在上一题基础上将重复的数据删除并输出删除后的数据。

类别:我只在主函数上进行了编写。

思路:根据循环原理一个一个读取数据并进行对比,将重复挑出并删除。

 三·分析

1.第二次作业第一道题

错因:1.因为开始的类并没有学习清楚,导致多次编译错误;

    2.在学历了解后进行改正,并尝试进行编译后,部分正确,其余出现格式错误:

 

 

 

 但由于我忽略了时间的问题,并没有完全改正,我在类的考虑和输出格式方面仍然欠缺。

2.第二次作业第二道题

错因:1.严重忽略时间;

          2.在第一次的题目基础上进行更改,但仍有多个测试点非零返回以及答案错误,根据上一题的输出,我本题的计算份额及单个菜的价格应该正确,但非零返回依旧无法改正,导致部分正确,严重失分:

 

 (图中为部分失分测试点)

 

 (此为计算单个菜品的代码)

3.第三次作业第一道题

错因:(本题在之前两道题的基础上进行了增加,但是由于我前面题目仍有疑惑,导致我在写这道题时部分错误仍然无法更改)

在加入时间函数之后没有改变计算方法,导致仍然有非零返回和答案错误的部分:

 

 (图中为部分失分测试点)

4.第二次作业第三道题:

错因:对于引用的时间和有效无效的规定出现问题,编译不理解,引用出错,导致部分正确,有超过1个日期不合法以及第一行日期非法、第二行日期合法且有效的两个测试点出现非零返回。

 

5.第三次作业第二道题

错因:最开始误会,以为只用if和数组读取数据就可以对比重复的数据,倒是无论怎么修改都是多种错误,4个测试点各错各的,根本无从下手;

最终进行了方法上的修改Set<Integer> strs,以及split等重新编译,才修改成功。

6.第三次作业第三道题

错因:最开始第二道题的错误理解导致第三道题无法编写,在修改完第二题后重新理解第三题,理解错因,利用多次利用循环以及split等进行改写,在几次尝试后改正成功。

四·踩坑心得

1.在刚刚接触菜单系列题目的时候,一度让我十分迷茫,从来没有写过这样类型的题,网上也没有答案,根本不知道从何下手,在经过多方查阅以及网上的询问之后,才明白原来是要学习类,但是在写代码过程之中学了一点this的用法,就赶紧用了一下,结果发现别的同学没有用,自己写的比别人长但是却没有比别人正确,就很出力不讨好(但是我觉得它有用,就没删):

 

2.在写一些代码之前,为了让他不出错并且正确运行,会有部分需要在public前加上import,比如输入:import java.util.Scanner,但是在自主学习查阅的时候我总会忽略import的重要性,导致编译出错。

3.格式错误,因为输出时的观察导致第一道菜单问题截至提交时间时还是有格式错误

4.很重要很重要,不明白不理解一些题目的时候自己查阅,不理解一定要问不能自己胡乱编写,自己都不理解自己在编写什么,这是很可怕的事情。

5.注意提交时间,第一次提交的时候觉得作业很简单,大意自得,结果从第二次开始接连失误,根本写不完。

6.时间函数,算是在老师正式讲解之前自己写习的一部分,但是运用到实际题目上却并没有特别理想的解题效果,对时间函数理解不完全,没有彻底掌握。

五·所需改进以及期待

改进:1.勤于练习,不能只看这一次的作业,自己也要从别的方向吸收知识和习题。

2.充分利用时间,主动积极学习,对上课和自学的知识反复琢磨。

3.反复理解作业,将作业中的重点知识理解清楚。

4.上课认真听讲充分理解,积极回答问题,不要缩起。

期待:随着题目越来越难,希望有时间可以找到老师寻求帮助和讲解;

多利用碎片化时间进行学习,拒绝摆烂。

六·收获

1.学习了部分Java的基础知识,学会了用if,循环进行编写,熟练操作;

2.学会了类的创建以及用法,虽然过程不是很熟练,但是可以写;

3.学会了时间函数,可以利用时间函数对时间部分进行编写,获得时间;

4.作业中没有体现,但是课程中讲解了正则表达式,并且能够利用正则表达式进行简单编写。

总结:虽然我写了这三次作业,但是我对知识点的理解却并不到位,还是缺乏练习与理解,对于菜单系列的题目仍然应接不暇,无法完美的写好这种题,仍然需要改进,希望能在接下来的练习中不断获得知识,不断进步(菜单程序的题目我仍然在改进,希望能在以后完全通过测试点,顺利掌握知识,通过考试)。

 

posted @ 2023-04-01 19:31  초심.(´..)  阅读(72)  评论(0)    收藏  举报