手机计费系统

功能分析

  1. 计算通话费用、短信费用、流量费、总费用
  2. 定时更新实时费用对象
  3. 模拟通话、发短信记录,显示通讯录信息、有电话拨通的声音

功能设计

  • 输入个人信息
  • 拨打电话
  • 发送短信
  • 查看通讯录
  • 添加联系人
  • 查看账单
  • 查看短信记录

类设计与类结构

类设计

  • 信息类(information)
  • 费用类(cost)
  • 通讯录类(address)
  • 短信类(message)

类结构

功能模块设计

辅助模块

  • 头文件 help.h 用来转化 string 类型,static std::string toStdStr 函数为 Platform::Stringstd::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 对象 a1a2,通过 data::info->addressinitialize 函数压入 vector 中,并且跳转到 ciPage 页面

ciPage 页面

该页面含有 5 个 button,分别跳转 CallPageSMSPageAddressPageCostMapPageaddressperfectPage 页面

CostMapPage 页面

该页面含有 6 个 TextBlock:

  1. 载入时用 help::toPlaStr() 函数将 data::info->printcalltime()(返回通话时间的函数)从 C++ string 向 UWP 转化,给 (TextBlock^)sender)->Text 赋值,并在其中显示
  2. 同 1,调用 printmessagenum() 函数
  3. 使用 callcost 函数计算通话费用,先将通话时间向上取整,再乘通话单价,转化成 string 类型返回,在 TextBlock 中显示。
  4. 同 3,调用 messagecost 显示短信费用
  5. 先用 Type stringToNum(用来将 string 转化成 Type)模板函数(令 Type 等于 double 型),将 messagecost()callcost() 转化成 double 类型相加后再将结果转化成 string,用 help::toPlaStr 转化后在 TextBlock 中显示
  6. 调用 printtraffic 函数返回流量值显示流量费用

该页面含有两个 button:

  • 返回 ciPage
  • 跳转 SMSlogPage(短信记录页面)

SMSlogPage 页面

该页面有一个 TextBlock,载入时调用 smslogprint 函数,循环 sms.size() 次(smsinfo 中的短信 vector 成员),每次循环将循环下标对应的 smsRecipientnummessagecontent 成员通过 sms[i].printRecipientnumsms[i].printmessagecontent 函数压入 str 字符串中并将其返回显示。

该页面有一个 button 用来跳转 ciPage

addressperfectPage(通讯录完善页面)

该页面有 6 个 TextBlock,内容发生改变时触发 TextBox_TextChanged 函数,将输入的 6 条信息分别存入 nonameunitnumemailtype,用 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】相关推荐

  1. 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文)

    本设计: 基于STM32F103C8T6的充电桩计费系统(程序+原理图+PCB+论文) 原理图:Altium Designer 程序编译器:keil 5 编程语言:C语言 编号C0019 下载链接 [ ...

  2. 基于Android的记账APP论文,基于Android平台的手机记账系统的设计与实现

    摘要: 在经济社会中,"理财"一词对于人们来说已不再陌生.人们的生活收入稳步上升,用于工作,住房,休闲娱乐的财务支出增多,做好详细的收支计划,将有利于对个人,家庭的经济收入,支出状 ...

  3. Java基于JSP的网上手机销售系统

    手机作为一个通讯工具一直在不断的更新换代,由最初的大哥大,到小灵通,再到诺基亚的塞班系统,直到现在的苹果安卓等系统.手机的功能也越来越多,从最初的只能打电话到现在聊天,游戏和看视频等功能.人们的业余生 ...

  4. 手机投票android,基于Android平台的手机投票系统

    摘要: 随着移动通信技术与互联网的发展,传统的基于通信领域的手机操作系统已经不能满足需求,移动通信技术与互联网的融合已经成为当今时代的主流,Android就是在这个环境下诞生的一种智能手机操作系统,A ...

  5. 基于Java的网上手机销售系统的设计与实现(附:源码 论文 sql文件 部署视频)

    摘要 本文所讲述的是网上手机销售系统的设计与实现. 本系统实现了会员注册.登录.资料修改,浏览和检索商品.发布留言.看公告,管理员具有修改个人密码.添加手机品牌.增加手机信息.管理会员信息.管理订单信 ...

  6. 基于 Android 平台的手机订餐系统的设计与实现

    1. 国内外有关的研究动态 随着计算机. 互联网和移动终端及其应用的快速发展, 不断的改变着人们的工作方式. 交流方式. 学习方式以及生活的各个方面, 尤其是电子商务的突飞猛进, 例如支付宝. 余额宝 ...

  7. 基于JSP的网上手机销售系统

    技术:Java.JSP等 摘要: 随着社会的发展.时代的进步,我们的网络技术日新月异,手机成为男女老少生活中不可缺少的一部分.而网上购买商品已经成为当今最时尚的购物方式,大大小小的网络购物平台层出不穷 ...

  8. 基于asp.net在线手机销售系统

    现如今是一个快节奏的生活,无论各个行业都是快速的发展,再也不是以前自给自足的社会,快节奏的生活带来了无数的变化.人们生活生活方式的变化,例如购物的方式,出行的方式等, 尤其突出的是在购物方式上的变化, ...

  9. 基于java的网上手机销售系统_基于SSH实现的网上手机销售系统+论文

    简介: 项目简介网上手机销售系统主要实现以下功能.本系统模块如下: 1,前台系统功能模块|--商品的展示模块              |--新品上架         &nb 项目简介 网上手 ...

最新文章

  1. linux打开 root .m2,小辣椒M2 (LA-M2)获取ROOT权限教程,新手root必看
  2. ESLint的NPM账户遭黑客攻击,可能窃取用户NPM访问令牌
  3. [Spring cloud 一步步实现广告系统] 11. 使用Feign实现微服务调用
  4. access是不是计算机编程,access编程简介之二:用宏还是VBA?
  5. HBase读写的几种方式(一)java篇
  6. mysql 指定tcpip连接数_tcp ip连接数据库
  7. iOS开发 - 不进入待机(屏幕保持唤醒)---UIApplication学习
  8. 未找到 arp 项。_高新热力公司抢工期保供暖 42项新建改造项目全部完工
  9. 全国雾霾大数据,哪里才是桃花源?
  10. java开发表格,JAVA开发简历表格下载
  11. PHP 之建行龙支付 - 退款
  12. 我爱过你吗--我看美丽心灵的永恒阳光
  13. 谁在「连接」制造业?
  14. Least Crucial Node UVALive - 7456 【】
  15. 信息安全竞赛优秀作品介绍1
  16. Git基础-查看、添加、删除远程仓库链接
  17. 单位冲激信号和数字信号处理
  18. 2、二叉树的后序遍历
  19. 生日悖论 Birthday Paradox 至少有两人同一天生日概率
  20. 看完让你彻底理解 WebSocket 原理

热门文章

  1. 摄像头在线测试_9月19日组织心理咨询专业技能考试系统测试
  2. Linux 中文在线手册-笔记
  3. 基于XML 的服装 EDI 标准在服装企业的运用]XX 服装企业运用的营销策略
  4. android 换肤 字体颜色,android使用SkinManager实现换肤功能的示例
  5. 【快速找回删除的文件的方法汇总】
  6. ZStack Cube:超融合3.0,从虚拟化到云平台融合
  7. VRRP的概念及基本配置
  8. c4d导出obj结合keyshot5渲染破面问题
  9. 围圈报数c语言编程,59、1334:【例2-3】围圈报数(A)
  10. Adobe卸载工具安装教程