三次大作业总结

上个学期学习了C语言,这个学期一来就学习java语言,经过近半个学期的学习,我已经深深感受到了java语言的学习难度,但是同时也感受到了它的魅力,尤其是类的出现,打破我对代码的重新认知
这三次大作业都是关于一个主题,设计实现答题程序,模拟一个小型的测试。三次作业难度不断上升,刚开始的测试点都还算简单,也很好设计,到后面难度越来越大,也越来越复杂,第一次大作业还得了满分到后面作业两次作业都没有得到满分。
三次作业实现

第一次作业
第一次作业是设计。实现答题程序,模拟一个小型的测试。第一次很简单,只用到了三个类,题目类,试卷类,答卷类,整体思路是通过一排排输入,即input.nextLine()来输入,每一行就相当于是一个类,当检测到哪一行字符串是“end”得时候就结束。由于第一次大作业很简单,没有错误格式得测试,并且第一行还输入要输入几个题目得数字,即将每行代码用split拆分一下,再分别将拆分出来得数据存入类里,最后再遍历题目和答案,看是否相同,相同输出true,不相同输出false。由于第一次大作业很简单,所以只用了100多行代码就解决了。
第二次大作业同样是答卷类作业,但是多了一个分数类,即每一题赋予了一个分值,判断每一题对错得时候要给每一题得得分赋分,最后输出,在这里我用了一个sco数组去存储每一题得分数,最后用循环printf出每一题得分数,总分则用totalsco分别加上对的题目的分数。另外分数类答卷不止一个这里要加一个循环。还要考虑answer is null的情况,即答案比题目少的情况,如果这个题目没有匹配到对应的答案,则输出answer is null。这里我用了一个整型n,每循环一次赋分的map就加一,然后每次都和answer类MAP的size做对比,当对应的题目没有answer时,其对应的size,即n就会大于answer的size,即后面都输出answer is null。
第三次大作业难度更大了,主要是复杂程度大大增加。不仅新加了两个类,一个学生信息类,一个删除类,而且考虑的情况也更多了,比如增加了wrong format的输入,这里就要求要用到正则表达式去检验格式,并且每一行的输入情况可能有多种,就比如答卷类,它可能是wrong format 也可能是answer is null 所以我用了两个正则表达式去检验两种情况,先检验是不是answer is null,再检验是不是wrong format,其他类一样,都要用到相应的正则表达式,而且这次的正则表达式的运用与前面大不相同,属于是天差地别,为此我特意去网上搜索查询并且不停的询问自己的室友,最后才确定了每个类的正则表达式。这是难点1。难点2就是要想到遍历的顺序,从哪开始遍历,我的设计思路是先从赋分类开始遍历,即#T:类开始,先遍历问题类,即#N:类,再遍历#S:类,即答卷类,它的难点在于每一题有四种情况,即“answer is null”,“题目不存在”,“题目被删除”,“题目true or false”,这四种情况有优先级,并且还要设计一个比较复杂的算法去判断,当判断到优先级最高的则continue,直接把后面的判断省去。最后的输出我也是用一个数组sco去记录每一题的得分,用循环输出出来,并且在算法判断的时候我用了一个类去实现所有的计算功能,并在这个类里开了所有类的数组用来遍历,把这些类分别放到对应的数组里。来依次遍历。还有一点就是用到map的遍历。对应的题号与分值存入map,对应的题号与答案存入map,到第三次作业我就用了400行代码。
总结,因为是第一次写大作业集,所以感觉老师布置的作业难度是不大的,反正不能说特别难,不说100分,起码60分是可以拿到的,前提是你要自学新的java知识如map,arraylist,以及正则表达式等等,在这些内容学会的基础上,要有一个明确的思路,应该从哪开始,怎么去调整优先级等,有了思路,后面才能继续,这些是开始前就要想好的,否则开始后你会毫无头绪,像在迷宫里绕来绕去一样。

总结作业
1.分析与总结
参考上文
2.设计检查
第一次作业
image
第一次作业很简单,所以复杂度并不高
第二次作业
image
第二次作业相对较难一点,但总的来说还是容易的
第三次作业

第三次作业难度就上升了一个档次,最终也只得了54分(满分84分)。
学到了什么
1.对于map,arraylist的运用更加熟练了,学会了用数组存类并用来循环遍历,以及不停的循环遍历map,
2.在设计思路上通过这次大作业,思路上有了经验,知道怎么去判断循环等。就比如这次,我学会了先遍历#T类再遍历#N类再遍历#S类,我认为这个思路很重要,否则做到后面就会一团糟。
3.对于输入时的正则表达式有了深刻的认识,也熟练掌握了正则表达式的使用,但在许多别的复杂程度情况下,正则表达式的运用会有很多复杂的呈现,这些都是要去不断学习的,它有很多种情况。
不足
1.时间花少了,作业总是留到最后两三天来完成,认为自己能做完,但总是因为各种问题,导致最后没有全部完成,而只是得了一部分得分,没有满分。

2.对于java的知识还是了解的太少了,应该主动去学习java的新知识。

工具推荐
ideaIU这个是idea的专业版,可以很快捷的完成很多功能,如生成类图等等,真的很好用。
心得体会
老师布置的大作业是良苦用心的,难度循序渐进。是合理的,通过这次训练,我已经初步入门了java这门语言,虽然后面还有好长的一段路要走,但是这次大作业是一个很好的锻炼新手的机会,是一个好的开始、

posted @ 2024-04-21 22:22  skinny晖  阅读(23)  评论(0)    收藏  举报