ICode9

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

Blog(3)

2022-06-18 09:03:54  阅读:168  来源: 互联网

标签:接听 题目 10 座机 Blog 计费 2022.1


一、前言

  随着学期尾声的不断接近,作业的难度也逐渐回落,但电信收费系统的难度有点让人无从下手,感觉java的残酷在这个系列题上尽数体现了。最近的几次作业,所涉及的知识点仍然包含正则表达式、继承与多态还有抽象类与接口、集合框架等等。从题量上来说不是很大,每次以两三道为主,但是难度比较大。有时候花几个小时做不出一道题目。

  1.PTA题目集

  电信系统涉及到了继承、多态、抽象类、集合框架等知识点,较为分散,题量少难度大,此次blog主要分析。

题目集8第一题移动业务资费难度较大,因为题目给出的类图是分开的,要吃透题目给出的类图,掌握类与类之间的所有关系。其中还包括许多的抽象类,因此编码所需时间很长。

题目集9中第一题关于移动业务资费难度较大,加入了手机套餐,还需要考虑手机的所在地和手机的接听收费,计费规则需要添加很多,编码所需时间较长。

题目集10中第一题短信计费难度小了很多,因为本题只需考虑短信的计费一个问题,较前两题简单,但正则表达式很磨人,需要一些课外知识。

  2.农夫过河

    实验中还需要用到List和Map,这让我再次熟悉了List与Map相关类的使用方法,同时也对接口的使用有了更加深刻的了解,题目本身难度适中,但也需要花一定心思,通过指导书提供的类图编写代码让我收获很多。

 

  3.期末考试

    两题难度循序渐进,知识点考察囊括抽象类与接口、集合框架等,代码之间可以层层迭代,难易适中。

二、设计与分析:

电信计费:

实现南昌市电信分公司的计费程序,假设该公司针对手机和座机用户分别采取了两种计费方案,分别如下:
1、针对市内座机用户采用的计费方式(与电信计费系列1内容相同):
月租20元,接电话免费,市内拨打电话0.1元/分钟,省内长途0.3元/分钟,国内长途拨打0.6元/分钟。不足一分钟按一分钟计。
假设本市的区号:0791,江西省内各地市区号包括:0790~0799以及0701。
2、针对手机用户采用实时计费方式:
月租15元,市内省内接电话均免费,市内拨打市内电话0.1元/分钟,市内拨打省内电话0.2元/分钟,市内拨打省外电话0.3元/分钟,省内漫游打电话0.3元/分钟,省外漫游接听0.3元/分钟,省外漫游拨打0.6元/分钟;
注:被叫电话属于市内、省内还是国内由被叫电话的接听地点区号决定,比如以下案例中,南昌市手机用户13307912264在区号为020的广州接听了电话,主叫号码应被计算为拨打了一个省外长途,同时,手机用户13307912264也要被计算省外接听漫游费:
u-13307912264 1
t-079186330022 13307912264 020 2022.1.3 10:00:25 2022.1.3 10:05:11

输入:
输入信息包括两种类型
1、逐行输入南昌市用户开户的信息,每行一个用户,含手机和座机用户
格式:u-号码 计费类型 (计费类型包括:0-座机 1-手机实时计费 2-手机A套餐)
例如:u-079186300001 0
座机号码由区号和电话号码拼接而成,电话号码包含7-8位数字,区号最高位是0。
手机号码由11位数字构成,最高位是1。
本题在电信计费系列1基础上增加类型1-手机实时计费。
手机设置0或者座机设置成1,此种错误可不做判断。
2、逐行输入本月某些用户的通讯信息,通讯信息格式:
座机呼叫座机:t-主叫号码 接听号码 起始时间 结束时间
t-079186330022 058686330022 2022.1.3 10:00:25 2022.1.3 10:05:11
以上四项内容之间以一个英文空格分隔,
时间必须符合"yyyy.MM.dd HH:mm:ss"格式。提示:使用SimpleDateFormat类。
输入格式增加手机接打电话以及收发短信的格式,手机接打电话的信息除了号码之外需要额外记录拨打/接听的地点的区号,比如:
座机打手机:
t-主叫号码 接听号码 接听地点区号 起始时间 结束时间
t-079186330022 13305862264 020 2022.1.3 10:00:25 2022.1.3 10:05:11
手机互打:
t-主叫号码 拨号地点 接听号码 接听地点区号 起始时间 结束时间
t-18907910010 0791 13305862264 0371 2022.1.3 10:00:25 2022.1.3 10:05:11

注意:以上两类信息,先输入所有开户信息,再输入所有通讯信息,最后一行以“end”结束。

输出:
根据输入的详细通讯信息,计算所有已开户的用户的当月费用(精确到小数点后2位,单位元)。假设每个用户初始余额是100元。
每条通讯、短信信息均单独计费后累加,不是将所有信息累计后统一计费。
格式:号码+英文空格符+总的话费+英文空格符+余额
每个用户一行,用户之间按号码字符从小到大排序。

类图:

 

 

 解题心得:

 首先进行开户:利用正则表达式匹配正确字符串,然后按空格分开并存入数组中再将分别截取座机号码进行开户,存入treeMap中。其次解析电话的拨打字符串:先按空格分开并存入数组,截取出区号用于判断座机地理位置,时间,借助于计算事件的公式计算差值即为通话时间。最后存入callRecord。进行计费主要用到同城与同省、同国的计费规则算出calcost,固定话费100-calcost-月租就是最后所剩的话费。

  1. 农夫过河

1、 请修改实验四农夫过河游戏的代码,将用户界面改为图形界面,界面效果自行设计。

 

 

2、 请画出修改后的类图,并说明在界面中使用了哪些技巧以达到较好的界面效果。

 

 

 

解题心得:

这次只有一个任务:给之前的代码框架设计图形界面,看起来简单但实际上很难。通过这次实验,我了解了JavaFX的基本原理和基本组件;能够熟练应用JavaFX组件进行界面设计,学习和掌握了Java的事件驱动机制、lambda表达式和shape形状类的使用,大大锻炼巩固了我们的编码知识。

三、踩坑心得:

  问题:写代码拖沓,等到最后一天才完成全部代码,也不在过程中进行调试,惨死于ddl前夕

  总结:尽量时不时的进行调试改错,不等到代码完成再进行调试(可能在代码完成后ddl已经过了或自己思路已经乱了),这样可以减少惨死ddl和不知道错在哪里、怎么改错的情况,提高编码效率。

 

四、 改进建议:

我认为这几次作业的一个坑点就是需要严格通过类图去设计方法,好好运用继承的特点,减少重复的代码,提高代码的效率,在后期维护或者说修改代码的时候也可以方便很多。然后在类多了以后要清楚各个类的对象是否通用,不然会出错,还有这个成员变量是否通用,要清楚父类与子类的关系。分析题目时先思考有哪些需要构建的类和对象,再分析这些类和对象应该具有的属性和方法,最后分析类和类之间的关系。

 

五、总结:

  1.在这几次题目集中加深了对于正则表达式的运用和理解,明白了自己对于正则表达式的运用还不够熟练,字符串一复杂起来就不知道该如何运用正则表达式进行处理,在正则表达式的运用上还需要加强学习。

  2.理解了Java中的继承和多态关系,理解了多态在面向对象中的优点。

  3.学习了Java中子类如何重写父类的方法,以及为什么子类要重写父类的方法。

  4.理解了多态性,以及多态和方法重写的意义。

  5.对于类之间的聚合关系理解还不足,在后续的学习中还需要加强对于类的聚合关系的理解。

  6.对题目分工要求必须明确,各个类实现各个相应的功能,使代码可读性增强,对继承与多态的理解尚且不够,还需努力.

  经过这三周的学习,我基本实现了对Java这门语言的深入认识。基本掌握了数据类型种类与字符串类中的各种方法,认识到面向对象的语言自然必须掌握类与对象的关系。自学了正则表达式用于精确处理数据(虽然很烂)。但当像电信计费一样需求多、类图繁复、方法繁多的题目时,很难顾及到每一个层面,难以沉着对待,冷静分析数据。

 

标签:接听,题目,10,座机,Blog,计费,2022.1
来源: https://www.cnblogs.com/21201216lej/p/16387638.html

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

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

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

ICode9版权所有