基于 Java +Android 实现的移动业务大厅APP【100011059】

您所在的位置:网站首页 中国移动业务办理大厅官网 基于 Java +Android 实现的移动业务大厅APP【100011059】

基于 Java +Android 实现的移动业务大厅APP【100011059】

2023-06-08 13:06| 来源: 网络整理| 查看: 265

基于 Java 和安卓的移动业务大厅 一、基本信息与整体框架

基本信息:本作业使用 Android studio 完成一个完整的安卓程序,完成作业 PPT 中提到的所有功能,共 2 个 XML 页面,3 个 Java 文件。

预存手机号信息

手机号密码套餐余额用户名139112233443344超人套餐100Catnip139443322112211网虫套餐50David

两个 XML 页面

3个 Java 文件

baseClass.java

三个接口 interface:打电话 CallService、发短信 SendService、上网NetService

服务包父类子类定义与实现

父类服务包父类ServicePackage子类 1话痨套餐TalkPackageimplements CallService, SendService子类 2超人套餐SuperPackageimplements CallService, SendService, ;NetService子类 3网虫套餐NetPackageimplements NetService

​ 手机卡类、消费记录类、使用情景类的定义与实例化

MainActivity.java

实现初始化和一级界面相关功能

SecondActivity.java

实现二级界面相关功能

二、效果展示 一级界面 用户登录

在一级界面中点击“用户登录”,弹出以下对话框,输入预存的账号密码或新注册的账号密码后点击“下一步”。其中账号只能输入数字,密码会被隐藏显示

用户登录四种结果展示:

用户注册

在一级界面中点击“用户注册”,弹出随机生成的 9 个 139 开头号码单选框,用户选好后点击“下一步”,弹出 3 个套餐单选框,用户选好后点击“下一步”,填写用户名、密码、充值金额。其中充值金额只能输入数字,密码会被隐藏显示。

用户注册 4 种结果展示

使用嗖嗖

在一级界面选择“使用嗖嗖”,在弹出对话框中输入要消费的手机号,点击下一步。

此时可能有 2 种失败情况。

若成功使用嗖嗖,会触发 6 种随机事件。并且可能存在“剩余套餐足够完成场景”、“剩余套餐不足够完成场景,需要花费部分余额”、“剩余套餐不足够完成场景,余额花费完也不够”三种情况。

话费充值

用户在一级界面中点击“话费充值”,填写手机号、密码、充值金额,其中手机号和充值金额只能输入数字、密码会隐藏显示。

资费说明

在一级界面中点击资费说明,弹出三个套餐相关及额外消费的的资费说明

退出系统

在一级界面中点击退出系统,APP 退出,全流程结束。

二级界面 本月账单查询

在二级菜单中点击“本月菜单查询”可见

套餐余量查询

在二级菜单中点击套餐余量查询可见

打印消费详单

在二级菜单中点击“打印消费详单”可见,若该账号暂无消费记录显示

套餐变更

用户在二级界面选择“套餐变更”,并选择自己想要的新套餐,会出现三种情况。

办理退网

用户在二级界面选择“办理退网”,并确定,则成功退网,并退回一级界面。退网后无法再使用此账号登录。

返回上一页

用户在二级界面中点击“返回上一页”,则相当于退出登录,返回一级界面。

三、实现详情:baseClass.java 三个接口定义

​ 根据安卓开发的需要修改了作业要求中接口的参数。第一个参数为即将弹出的 dialog,第二个参数为调用接口的手机卡类实例,第三个参数为活动标签。如 act = 1 是"问候客户,谁知其如此难缠,通话 90 分钟",act = 2 是"询问妈妈身体情况,通话 30 分钟"。接口会在套餐类中被实现。

服务包类

包括一个抽象父类 ServicesPackage,三个子类 TalkPackage + SuperPackage +NetPackage

抽象父类

ServicesPackage

包含基本属性 price 和两个方法,GetPackageName 用于返回服务包名,ShowInfo用于展示套餐信息

服务包子类

以超人套餐为例:

​ 超人套餐包含新增的 3 个属性(通话时间、短信条数、上网流量),构造函数根据作业要求给 4 个属性赋值,返回套餐名字函数直接返回“超人套餐”的 String,其他四个方法中,ShowInfo 函数实现父类中的 abstract 抽象函数,另外三个实现调用的接口。

​ 其他套餐实现与超人套餐相似。

ShowInfo()函数

​ 分情况讨论,若套餐通话时间/短信条数/流量还没用完,展示剩余量,否则显示 0。其中流量需要使用 DecimalFormat 转换成“整数至少有一位,小数保留一位”的表示。

接口实现

以 Call 为例:思维导图如下,具体实现详见代码

手机卡类

包括卡的基本属性和 2 个方法,构造函数将三个实际消费初始化为 0,其他属性在注册时根据实际情况填充。ShowMsg 方法展示手机卡信息。

消费记录类

使用场景类

核心数据结构初始化

四、实现详情:MainActivity.java 初始化预存信息 SaveInfoAtFirst()

展示部分预存信息,其他详见代码

初始化函数 OnCreate()

预存用户信息和场景信息后展示一级界面

用户登录 UsrLogin(View v)

思维导图详见本实验报告第五页。具体实现为跳出交互界面,获取用户输入的用户名和密码,然后按照思维导图流程实现。

如果用户登录成功(用户名、密码合法且匹配),使用 Intent 关键字进行一级界面到二级界面的跳转,参数为用户手机号。此处仅展示跳转部分代码,详见源码。

用户注册 UsrRegister(View v)

用户注册思维导图见本实验报告第七页。本流程涉及多个步骤,为避免代码过长,拆成多个函数。

GetRandom()

利用 Random 类生成随机数

Reg_Show9Number()

生成 9 个随机号码,注意要判断合法性(是否已经注册过),并已单选框的形式展现给用户,用户选择后跳转到选择套餐函数。

Reg_ChoosePackage()

选择套餐函数。弹出 3 个套餐的单选框供用户选择。

FullfillName()

用户在弹出的输入框中填写注册用户的信息,代码获取用户信息并做合法性判断,若完全合法则将信息整合后填入 card 的 map 中。流程详见本实验报告第七页思维导图。具体实现详见源码,这里仅展示存储部分信息代码。

使用嗖嗖 UseSoso(View v)

用户在弹出的输入框中输入手机号,若手机号合法,点击下一步后随机进入编号为1-6 的消费情景(直接调用服务包类中封装的接口函数)。思维导图见本实验报告第九页,此处仅展示部分代码,详见源码。

话费充值 RechargePhoneBill(View v)

用户在弹出的输入框中输入手机号、密码、充值金额,若手机号和密码合法且匹配,则给用户账户充值对应金额,其中充值金额需大于 50 元。此处仅展示充值成功部分代码,其他实现详见源码。思维导图见本实验报告第 11 页。

资费说明 ShowFare(View v)

资费说明提前预存到 txt 中,用户点击资费说明按钮则读取 txt 并展示。读取 txt 时需要注意文本编码,防止中文乱码。LoadFareFile()读取文本,按行读取,拼接成字符串,展示到对话框中,若出现路径错误、文本空白等问题,执行报错。

退出系统 ExitSoso(View v)

调用杀死进程函数退出程序

五、实现详情:SecondActivity.java 初始化函数 OnCreate()

展示二级界面

本月账单查询 showAmountDetail(View v)

通过 Intent 获取用户手机号,然后直接调用 baseClass 中封装的手机卡类的方法 ShowMsg 展示用户本月账单。

套餐余量查询 showRemainDetail(View v)

通过 Intent 获取当前用户手机号,直接调用 baseClass 中各套餐类封装的 ShowInfo方法展示当前用户的套餐余量信息。

打印消费详单 showDescription(View v)

通过 Intent 获取当前用户手机号,在 consumInfos 的 map 中查找当前用户的消费记录,若无消费记录显示“暂无数据”,否则拼接消费记录并展示。

套餐变更 changingPack(View v)

根据以下思维导图流程进行,如果套餐变更成功,需要进行扣除月资费、原数据清零等相关操作。此处仅展示套餐变更成功部分代码,其他部分详见源码。

办理退网 delCard(View v)

通过 Intent 获取当前用户手机号。弹出对话框询问用户是否确认退网,若确认,则删除所有相关记录,并返回一级界面。

返回上一页 TurnBack()

通过 Intent 返回一级界面。

♻️ 资源

在这里插入图片描述

大小: 8.12MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87516508 注:如当前文章或代码侵犯了您的权益,请私信作者删除!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3