码迷,mamicode.com
首页 > 其他好文 > 详细

三次题目总结

时间:2021-04-06 15:05:32      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:有序   复制   lazy   nbsp   lin   代码   掌握   --   main方法   

(1)前言:总结三次题目集的知识点、题量、难度等情况

  第一次题目集

  1,计算两个数的和----数据的输入及运算

  2,电话键盘字母数字转换----数字与字符的相互转化,以及数据合法性检验

  3,成绩分级管理 ----java中选择语句的运用

  4,计算税率----java中选择语句的运用

  5,计算钱币----数据运算

  6,使用一维数组求平均值----数组的用法

  7,对多个整数进行排序----对一维数组进行排序

  8,判断三角形类型----double类型转化为int型,产生误差

 

难度分析:第一次题目集,较为简单,但最后一个题容易出错,不知道哪里错了。

 

  第二次题目集

  1,IP地址转换 ----二进制转化为十进制

  2,合并两个有序数组为新的有序数组 ----合并数组并排序

  3,判断闰年及星期几----合理使用数组代替if

  4,求下一天----对方法的调用

  5,求前N天----合理利用数组及方法

 

  难度分析:第二次题目集,前面两题比较简单题目集中后3题都十分类似,写出了第三题基本上都能写出。

 

  第三次题目集

  1,创建账户类Account ----类的创建及使用、类中方法的调用

  2,定义日期类----类的创建及使用、类中方法的调用

  3,一元多项式求导(类设计)----字符串的处理(截取、连接)

 

  难度分析:第三次题目集,前两题要求用类的封装,比较简单。

       最后一题,考察的是对字符串的处理,很多高效的方法没有掌握熟练(正则表达式、split方法)。

 

(2)设计与分析:

7-8判断三角形类型

  因为初期没有学习关于类的知识,此题没有使用到类

  此题中我只使用for循环和if,导致复杂度太高,不知道自己哪个点没有过。

  另外,没有写注释,也没有使用方法,直接在Main方法中写完代码。

7-4 求下一天

  这一题使用了多个方法,用来判断闰年以及输入日期是否合法。

  该题是求日期的下一天,因此要考虑的问题就包括数据的合法,以及跨年、跨月、闰年。

  使用了if语句,用来判断。

  将各月份的天数存入数组,更为简便,在数组中将月份,即可得到该月对应天数,提高效率。

7-5 求前N天

  没有使用类

  该题完全可以借鉴上一题7-4求下一天,将方法nextDate(),多传入一个参数n。

  与前一个题目比较类似,将各月份的天数存入数组,便于使用。

  这一题使用了多个方法,用来判断闰年以及输入日期是否合法。

7-2  定义日期类

  该题主要是要理解对类的使用,而非前面题目集中,直接调用方法解决问题。

  使用了类的封装。

    将年月日作为日期的私有属性,将输入的信息参数传入类中,再在类中调用方法,输入结果。

  但使用类的封装,做到了对数据的保护。

 

 

技术图片

7-3  一元多项式求导

  由于不会对字符串进行处理,这一题我没有写。

  我也开始学习对字符串的处理方法,学习掌握高效的方法(正则表达式、split方法)。

(3)采坑心得:                                         

 

  1、第一次题目集最后一题判断三角形类型中,开始没有完全考虑到各种不能构成三角形的数据,也没有考虑根号的情况,没有考虑到误差值。

  2、第二次题目集时不知道如何来判断月末的最后一天,不知道用数组来存储月的天数,浪费了很多时间。

  3、第三次题目集一开始不会类的封装,不知道使用静态方法访问,导致编译器一直报错。

  4、学会了如何调试程序,知道如何看自己的程序哪里出了错。

  

(4)改进建议 :

 

  1、第一次题目集中最后一题--判断三角形类型,对三角形三条边比较大小,我使用for循环一个一个比较 非常复杂,且效率极低技术图片

   double min=a[0],max=a[0],mid=a[0];
         for(i=0;i<3;i++) {
             if(a[i]>max) max=a[i];
             if(a[i]<min) min=a[i];
             num=num+a[i];
         }
         mid=num-max-min;

  对此,可以用Java中的Math类进行快速比较,

  改进代码

         max=Math.max(Math.max(a[0],a[1]), a[2]);
         min=Math.min(Math.min(a[0], a[1]), a[2]);
mid=a[0]+a[1]+a[2]-max-min;

         2、第一次题目集第七题我用的是冒泡排序来排序的,其实可以用一个函数来完成的。

(5)总结: 

  学到了什么:

  学会了类的封装。

  学会了如何从控制台输入数据。

  学会了一些java函数的使用。

  了解了顺序、选择、循环、方法(函数)在java中的使用。

  了解复杂度的概念,尽量减少使用if,以及加注释,增加程序可维护性。。

 

  需要进一步学习及研究)

  对类的使用(创建、调用)极其不熟练

  java中的链表 Linked list  

  正则表达式

三次题目总结

标签:有序   复制   lazy   nbsp   lin   代码   掌握   --   main方法   

原文地址:https://www.cnblogs.com/123lph/p/14617439.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!