YiBao-0103

怡宝De代码之路

导航

Blog3-PTA题目集+实验题

前言

PTA大作业六(座机电话话费计算)

  • 知识点:
    • 抽象类的继承,抽象方法的定义以及实现。
    • 封装类中数据,保证数据安全性。
    • 集合与泛型的使用。
    • 正则表达式使用。
    • SimpleDateFormat类在处理通话起始时间的应用。
    • DecimalFormat类进行数据处理。
  • 题量:适中
  • 难度:相比之前的图形大作业,难度下降较多,个人来说后面后面布置的几次大作业更能培养java面向对象编程的意识和能力。

PTA大作业七(手机通话话费计算)

  • 知识点:
    • 同大作业六
  • 题量:适中
  • 难度:相比座机收费难度稍大,因为要考虑座机手机互打,手机之间互打的情况。、

PTA大作业八(手机短信计费)

  • 知识点:
    • 同大作业六
    • 字符串处理进行相应计算
  • 题量:较小
  • 难度:由于实现功能简单,难度较小。

实验五(JavaFx实现农夫过河游戏)

  • 知识点:
    • Javafx的基本原理和基本组件
    • Java的事件驱动机制、lambda表达式
    • 界面类与数据类分离
  • 难度:较大,需要实现数据与界面较好的分离以及用鼠标进行交互。

设计与分析

座机通话话费计算

  • 类图:
  • 设计步骤:
    • 读题,根据题目的所给类图构造框架,依次实现各方法的功能。
    • 由于输出的用户数据需要进行排序,故User需要继承Comparable接口并实现compareTo方法:
    • 开户的重复信息直接跳过:其中使用了contains方法,意味着User类需要重写equals方法:
    • 每一个拨打电话的号码需要去判断是否开户,若开户才可以进行计算,未开户则将其视为无效信息直接跳过:
    • 日期处理:使用SimpleDateFormat类将日期装换为yyyy.MM.dd HH:mm:ss格式。

手机通话话费计算

  • 类图:
  • 设计步骤:
    • 在座机的基础上增加PhoneInCityRule类,PhoneInProvinceRule类,PhoneInLandRule类,PhoneAnswerInLandRule类。
    • 实现打电话地区和接电话考虑情况分离,即对于拨打电话用户只需要对拨打地区进行分类,无需同时考虑接收电话区域(很麻烦,情况较多),只需要在计算方法里对于answerArea进行分类和相应计算:使得程序操作简便且不会出现考虑情况不全出现的问题。

手机短信计费

  • 类图:
  • 设计步骤:
    • 实现SendMessageRule类中calCost方法:

Java实现农夫过河游戏

  • 类图:
  • 设计步骤:
    • 界面设置:进入游戏页面(该页面上有play按钮,点击该按钮进入游戏页面)、游戏页面、游戏结束界面显示游戏结果(输/赢),其中进入游戏页面index和GameOver页面均使用javafx组件进行编写,相应的点击操作通过lambda表达式编写,实现界面和操作分离。
    • 设置导演类,该类只有一个,可以从外部直接拿到导演类的instance进行操作,通过该类进行页面之间的跳转方法。
    • GameScene是游戏主页面,有初始化,绘制,刷新方法实现游戏画面,创建playAction内部类处理鼠标事件实现游戏操作,通过点击界面上指定位置的图标进行角色的过河操作。
    • 创建Sprite类(可视化角色类),设置角色坐标,对应角色的image,以及对应宽高,在Boat类中的过河操作时只需要在源代码基础上增加改变坐标位置代码即可。

踩坑心得

  • 在设计座机拨打电话时未能实现打电话地区和接电话考虑情况分离,即对于拨打电话用户只需要对拨打地区进行分类,无需同时考虑接收电话区域,导致程序功能不完整,代码冗杂。
  • 在短信计费时计算费用时,一开始对计费规则理解错误,后来修改计费计算方法时少打了1个“+”,导致计算结果问题,经过单步调试得以发现。
  • playAction内部类设置的鼠标事件无法响应,点击相应图标角色无法进移动,游戏无法操作;发现无法操作原因是将mouseClicked事件操作者设置为playaction但是在playaction中并未对mouseClicked事件进行操作,而是判断isPrimaryButtonDown()来操作
    修改之后就可以运行。

总结

  • 了解JavaFX的基本原理和基本组件,并且能够熟练应用JavaFX组件进行界面设计。
  • 在程序设计阶段对于程序结构分析以及程序执行的大体方式需要重点设计,以保持程序的条理性。

posted on 2022-06-10 15:18  Yibao_0103  阅读(80)  评论(0编辑  收藏  举报