其他分享
首页 > 其他分享> > 学习总结

学习总结

作者:互联网

学习总结

       期中考试之后布置的几次PTA题目集、学习通作业相对于之前的多边形作业来说难度下降了许多,题量也不大,涉及的知识点也相对来说较少,但是对于基础不扎实的同学来说还是有很大的难度。后面几次大作业知识点主要涉及ArrayList、HashSet集合、内部类、javaFX控件、布局的使用、接口的实现、抽象类的使用、正则表达式的运用、迭代器的简单使用。

      三次大作业都是和电信计费有关,在做第一次电信计费时会感觉有点难,因为给出的题目不完整,会对思维有影响、对一些暂时用不到的题干感到困惑,不过由于给出了类图导致难度大大下降,不然如果需要自己设计类的话,难度不比之前的大作业低。我一开始看完题目完全不知道从何处下手,只能一遍又一遍地看类图来寻找思路,最后终于根据类图找到了一点思路,然后思维逐渐打开,慢慢知道如何来写代码。

      电信计费这道题根据类图能把大部分代码写出来,所以只要能看懂类图就比较简单了,然后只剩下最难的输入数据部分,要对输入、输出进行限制,输入可以通过正则表达式,输出不能重复,所以我们在输入的时候可使用HashSet()方法去掉重复项,然后在输出时将HashSet转化成ArrayList使用冒泡排序和Collections.swap()根据ArrayList中的号码大小对其中的元素进行排序。还有就是对时间的处理,用SimpleDateFormat来判断是否是合法时间,如果能根据我们给出的格式进行转化则是合法时间。总的来说,只要能看懂类图就成功了一半了。

  

public void record(ArrayList<User> users){
        for (int i=0; i<users.size()-1; i++)
        {
            for (int j = 0; j <users.size()-1-i; j++)
            {
                if (Long.parseLong(users.get(j).getNumber())>Long.parseLong(users.get(j+1).getNumber()))
                {
                    Collections.swap(users,j,j+1);
                }
            }
        }//对号码排序
        for (int i=0;i<users.size();i++){
            if(i!=users.size()-1)
                System.out.printf("%s %.1f %.1f\n",users.get(i).getNumber(),users.get(i).calCost(),users.get(i).getBalance());
            else
                System.out.printf("%s %.1f %.1f",users.get(i).getNumber(),users.get(i).calCost(),users.get(i).getBalance());
        }
}

  

      如果能做出第一次电信计费作业,之后的两次电信计费作业自然不在话下,只需要模仿第一次作业的代码就行。内部类那题也需要思考一下,有一点绕,需要在Shop类中的构造方法中给购物券赋值,然后在main方法中创建内部类InnerCoupons的对象时传入购物券的值,要特别注意创建内部类的格式。

import java.util.Scanner;

public class Main {
    public static void main(String[]args){
        Scanner s=new Scanner(System.in);
        Shop myshop=new Shop();
        myshop.setMilkCount(s.nextInt());
        Shop.InnerCoupons innerCoupons=myshop.new InnerCoupons(myshop.coupons50.value);
        innerCoupons.buy();
        Shop.InnerCoupons innerCoupons1=myshop.new InnerCoupons(myshop.coupons100.value);
        innerCoupons1.buy();
    }
}
class Shop {
    private int milkCount;

    public int getMilkCount() {
        return milkCount;
    }

    public void setMilkCount(int milkCount) {
        this.milkCount = milkCount;
    }
    class InnerCoupons{
        public int value;

        public InnerCoupons(int value) {
            this.value=value;
        }
        public void buy(){
            milkCount-=value/50;
            System.out.println("使用了面值为"+value+"的购物券进行支付\n"+"牛奶还剩"+getMilkCount()+"箱");
        }
    }
    InnerCoupons coupons50;
    InnerCoupons coupons100;

    public Shop() {
        this.coupons50 =new InnerCoupons(50);
        this.coupons100 =new InnerCoupons(100);
    }
}

  

      我认为这几次的作业相比于多边形的那几次作业给我的收获更多,题目不会太难也不会特别简单,能够让我们运用新学的知识,能更好的掌握所学。通过这些作业,我学会了迭代器、HashMap、内部类、HashSet的使用,还发现之前作业用到的知识有点遗忘,内部类、抽象类还有接口掌握的不是很好,不知道何时使用。我认为上课可以在完成教学任务的同时,可以多解释一些我们这个阶段能够掌握的知识,但不强制要求学会,起到拓展视野的作用。

标签:总结,Shop,InnerCoupons,int,作业,value,学习,public
来源: https://www.cnblogs.com/big5gb/p/16353647.html