基于C++实现的手机计费系统【100010649】
手机计费系统
功能分析
- 计算通话费用、短信费用、流量费、总费用
- 定时更新实时费用对象
- 模拟通话、发短信记录,显示通讯录信息、有电话拨通的声音
功能设计
- 输入个人信息
- 拨打电话
- 发送短信
- 查看通讯录
- 添加联系人
- 查看账单
- 查看短信记录
类设计与类结构
类设计
- 信息类(information)
- 费用类(cost)
- 通讯录类(address)
- 短信类(message)
类结构
功能模块设计
辅助模块
- 头文件
help.h
用来转化string
类型,static std::string toStdStr
函数为Platform::String
向std::string
转化,static Platform::String^ toPlaStr
反之 - 头文件
data.h
用来存取数据——information
的对象指针和电话号码number
information 模块:
- 初始化函数
- printmessagenum()
- 数据访问器
getincalltime(double time)
、getsms(string, string)
- 完善通讯录函数
addressperfect()
- 通讯录联系人初始化函数
addressinitialize(address)
- 返回数据成员函数
printtraffic()
、printcalltime()
、printaddress()
- 计算费用函数
callcost()
、messagecost()
、sumcost()
MainPage 页面
该页面含有两个 TextBox,输入字符串时触发 MainPage::TextBox_TextChanged
函数,将文本内容分别赋值给 _MainPage::name
和 _MainPage::number
。定义一个 information
类对象指针 info
,在按动 Button 时触发 MainPage::Button_Click
函数,调用 information
的构造函数初始化 info
,初始化两个 address
对象 a1
、a2
,通过 data::info->addressinitialize
函数压入 vector 中,并且跳转到 ciPage
页面
ciPage 页面
该页面含有 5 个 button,分别跳转 CallPage
、SMSPage
、AddressPage
、CostMapPage
、addressperfectPage
页面
CostMapPage 页面
该页面含有 6 个 TextBlock:
- 载入时用
help::toPlaStr()
函数将data::info->printcalltime()
(返回通话时间的函数)从 C++ string 向 UWP 转化,给(TextBlock^)sender)->Text
赋值,并在其中显示 - 同 1,调用
printmessagenum()
函数 - 使用
callcost
函数计算通话费用,先将通话时间向上取整,再乘通话单价,转化成string
类型返回,在 TextBlock 中显示。 - 同 3,调用
messagecost
显示短信费用 - 先用
Type stringToNum
(用来将string
转化成Type
)模板函数(令Type
等于double
型),将messagecost()
和callcost()
转化成double
类型相加后再将结果转化成string
,用help::toPlaStr
转化后在 TextBlock 中显示 - 调用
printtraffic
函数返回流量值显示流量费用
该页面含有两个 button:
- 返回
ciPage
- 跳转
SMSlogPage
(短信记录页面)
SMSlogPage 页面
该页面有一个 TextBlock,载入时调用 smslogprint
函数,循环 sms.size()
次(sms
为 info
中的短信 vector
成员),每次循环将循环下标对应的 sms
的 Recipientnum
和 messagecontent
成员通过 sms[i].printRecipientnum
和 sms[i].printmessagecontent
函数压入 str
字符串中并将其返回显示。
该页面有一个 button 用来跳转 ciPage
addressperfectPage(通讯录完善页面)
该页面有 6 个 TextBlock,内容发生改变时触发 TextBox_TextChanged
函数,将输入的 6 条信息分别存入 no
、name
、unit
、num
、email
、type
,用 help::toStdStr
转化后给 address
类对象 temp
成员初始化,使用 data::info->addressinitialize
函数压入 vector
中
该页面有 1 个 button 用来返回 ciPage
AddressPage(通讯录页面)
该页面有一个列表,先使用 appendItem
函数用来向纵向堆栈中添加条目,通过 for 循环(截止条件为通讯录中联系人个数)动态生成 n
个条目,列表内容通过 data::info->printaddname(i)
显示联系人姓名。
点击每一个条目时,将点击的条目的内容存入 content
,用 data::info->searchadd
函数进行搜索,返回值为选中 add
的下标赋值给 _contactPage::selectSub
,并且进入 contactPage
也可以在 TextBox 中搜索联系人姓名,姓名存入 _AddressPage::searchname
,同样使用 data::info->searchadd
搜索获得 add
下标赋值给 _contactPage::selectSub
,按动 button2 进入 contactPage
contactPage(名片页):
通过 _contactPage::selectSub
分别调用 info
的 6 个 print
函数,获取该联系人的信息在 6 个 TextBlock 中展示
按动 button 返回 AddressPage
cost 类的结构与功能设计
♻️ 资源
大小: 437KB
➡️ 资源下载:https://download.csdn.net/download/s1t16/87415912
基于C++实现的手机计费系统【100010649】相关推荐
- 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)
本设计: 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0019 下载链接 [ ...
- 基于Android的记账APP论文,基于Android平台的手机记账系统的设计与实现
摘要: 在经济社会中,"理财"一词对于人们来说已不再陌生.人们的生活收入稳步上升,用于工作,住房,休闲娱乐的财务支出增多,做好详细的收支计划,将有利于对个人,家庭的经济收入,支出状 ...
- Java基于JSP的网上手机销售系统
手机作为一个通讯工具一直在不断的更新换代,由最初的大哥大,到小灵通,再到诺基亚的塞班系统,直到现在的苹果安卓等系统.手机的功能也越来越多,从最初的只能打电话到现在聊天,游戏和看视频等功能.人们的业余生 ...
- 手机投票android,基于Android平台的手机投票系统
摘要: 随着移动通信技术与互联网的发展,传统的基于通信领域的手机操作系统已经不能满足需求,移动通信技术与互联网的融合已经成为当今时代的主流,Android就是在这个环境下诞生的一种智能手机操作系统,A ...
- 基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)
摘要 本文所讲述的是网上手机销售系统的设计与实现. 本系统实现了会员注册.登录.资料修改,浏览和检索商品.发布留言.看公告,管理员具有修改个人密码.添加手机品牌.增加手机信息.管理会员信息.管理订单信 ...
- 基于 Android 平台的手机订餐系统的设计与实现
1. 国内外有关的研究动态 随着计算机. 互联网和移动终端及其应用的快速发展, 不断的改变着人们的工作方式. 交流方式. 学习方式以及生活的各个方面, 尤其是电子商务的突飞猛进, 例如支付宝. 余额宝 ...
- 基于JSP的网上手机销售系统
技术:Java.JSP等 摘要: 随着社会的发展.时代的进步,我们的网络技术日新月异,手机成为男女老少生活中不可缺少的一部分.而网上购买商品已经成为当今最时尚的购物方式,大大小小的网络购物平台层出不穷 ...
- 基于asp.net在线手机销售系统
现如今是一个快节奏的生活,无论各个行业都是快速的发展,再也不是以前自给自足的社会,快节奏的生活带来了无数的变化.人们生活生活方式的变化,例如购物的方式,出行的方式等, 尤其突出的是在购物方式上的变化, ...
- 基于java的网上手机销售系统_基于SSH实现的网上手机销售系统+论文
简介: 项目简介网上手机销售系统主要实现以下功能.本系统模块如下: 1,前台系统功能模块|--商品的展示模块 |--新品上架 &nb 项目简介 网上手 ...
最新文章
- linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看
- ESLint的NPM账户遭黑客攻击,可能窃取用户NPM访问令牌
- [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
- access是不是计算机编程,access编程简介之二:用宏还是VBA?
- HBase读写的几种方式(一)java篇
- mysql 指定tcpip连接数_tcp ip连接数据库
- iOS开发 - 不进入待机(屏幕保持唤醒)---UIApplication学习
- 未找到 arp 项。_高新热力公司抢工期保供暖 42项新建改造项目全部完工
- 全国雾霾大数据,哪里才是桃花源?
- java开发表格,JAVA开发简历表格下载
- PHP 之建行龙支付 - 退款
- 我爱过你吗--我看美丽心灵的永恒阳光
- 谁在「连接」制造业?
- Least Crucial Node UVALive - 7456 【】
- 信息安全竞赛优秀作品介绍1
- Git基础-查看、添加、删除远程仓库链接
- 单位冲激信号和数字信号处理
- 2、二叉树的后序遍历
- 生日悖论 Birthday Paradox 至少有两人同一天生日概率
- 看完让你彻底理解 WebSocket 原理
热门文章
- 摄像头在线测试_9月19日组织心理咨询专业技能考试系统测试
- Linux 中文在线手册-笔记
- 基于XML 的服装 EDI 标准在服装企业的运用]XX 服装企业运用的营销策略
- android 换肤 字体颜色,android使用SkinManager实现换肤功能的示例
- 【快速找回删除的文件的方法汇总】
- ZStack Cube:超融合3.0,从虚拟化到云平台融合
- VRRP的概念及基本配置
- c4d导出obj结合keyshot5渲染破面问题
- 围圈报数c语言编程,59、1334:【例2-3】围圈报数(A)
- Adobe卸载工具安装教程