ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

学习总结

2022-06-07 22:31:58  阅读:145  来源: 互联网

标签:总结 Shop InnerCoupons int 作业 value 学习 public


学习总结

       期中考试之后布置的几次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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有