ICode9

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

第三次bolg

2022-06-12 19:31:06  阅读:159  来源: 互联网

标签:第三次 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

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

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

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

ICode9版权所有