第三次bolg
作者:互联网
前言:
在12-15周的学习中,我们进行了电信计费的迭代练习,在练习的过程中,难点为类的数量过多,继承关系较多,运用大量的集合容器等。在实验方面,我们进行了策略模式的练习以及运用javaFX对时钟进行图形界面化,其难点为对策略模式的不熟悉以及对javaFX的入门。
设计与分析:
第一次电信计费:
本次电信计费是对座机的互相拨打进行计费,题目中已经提供了类图,但是还是有一定的难度,下面我们来看看代码:
我首先进行了开户:
先利用正则表达式匹配正确字符串,然后按空格分开并存入数组s1中再将两个座机电话号码分别截取出来,进行开户,并利用treeMap容器存入treeMap中。
其次对第二个字符串进行解析,即为进行电话的拨打以及收费:
首先还是对字符串按空格分开并存入数组s2中,并截取出区号,用于判断两个座机的地理位置,截取出时间,由于事件的格式要求为yyyy.MM.dd HH:mm:ss,所以必须借助于计算事件的公式算出两个时间的差值,又便于计费。最后将截取的区号和时间存入callRecord中,进行拨打电话。
最后要进行计费:
计费主要用到的是此函数,在此函数中,我将同城拨打电话的计费规则和同省电话的计费规则以及不同省拨打电话的计费规则存入到总的计费规则的容器中,再分别取出相加变得到最后总的计费,再用固定话费100-calcost-月租就是最后所剩的价钱。
下面看看运行结果:
由于还要进行的下面的迭代,所以便需要类图:
第二次电信计费:
第二次电信计费加入了手机用户,难度也得到了相应的提升,下面来看看代码:
还是首先进行开户处理,但这次需要处理两种开户,一种是座机的开户,一种是手机的开户,运用正则法则,匹配相应的字符串,进行开户,和第一次类似。
而后进行拨打电话和收费,拨打电话也与座机类似,但是收费方式发生了明显的改变:
计费由原本的4个类变为9个类,但过程几乎相同,也就是进行了第一次电信计费的复杂迭代,难度还是可以接受的。
下面是结果:
第三次电信计费,第三次电信计费是对发送信息进行计费,相对简单:
过程基本一样,唯一不同的是对短信收费格式的正则判定:
最后结果为:
踩坑心得:
在练习的过程中,踩坑的也是很多,比如明明正确的计费方式,得出的结果却不一样。
比如还有hasMap一直为null的情况:
后来发现是因为没有将号码和用户传入其中。
改进建议:
应该明确每个类的作用,而不是凭空去继承或新加类,导致加的类并没有起到关键作用,例如,
我并没有搞明白此类作用是什么,这也是我接下来要改进的地方。
总结:
在这几周的学习中,我学到了如何将自己的代码优化为可迭代代码,增加代码的复用性,还学到了hashMap的用法,以及对继承更深入的了解,还进行了对农夫过河以及时钟的界面化设计,自己也学习了很多新的东西以及提高了自己的能力。
标签:第三次,bolg,拨打,座机,开户,计费,电信,进行 来源: https://www.cnblogs.com/sunqi123/p/16368425.html