九宫格输入法是一个很经典的输入法,当你输入每个字母的时候,它会提前显示你想输入什么单词,大大加快了人们的打字速度,尤其是在手机屏幕还比较小的时代。

下面是小编整理好的一套C/C++资料,加小编C/C++编程学习群:825414254,获取系统性学习C/C++的学习资料

下面直接先讲数据结构吧。

从图内九宫格下面的标号可以看成,我们实际上应该从2开始,所以按键按钮应该这样定义:

然后我们还要创造一个词典,词典就是我们使用输入法的时候输入法本身就带有的词典,通过词典,我们才能提前显示用户想要输入的单词。这里我们选择手动输入词典。格式是:单词 + 权重。

权重就是这个单词的重要性,比如我们输入中文的时候:打 xiang 显示的第一个很可能是“想”这个字,而不是“像”这个字,这就是权重控制的先后顺序。现在的输入法一般都是动态设置权重,它们依据你所使用某个字的频率设置某个拼音的权重。

然后我们需要一个数组存放我们的词典。


我们需要对用户每次敲的数字进行预测,并构造前缀

存放构造的单词前缀数组:

我们先把主函数写了,再观察需要什么函数:

显然,calculate应该是个void函数,它要实现数字->字母的过程,并计算权重,决定输出的是什么。这里需要注意的是 for()里的++i和i++其实效果是一样的,只不过++i的内存开销小。

所以,我们还需要一个计算单词权重的函数:

这样就大功告成了。

完整代码:




结果如图:

设计九宫格手机输入法(附C++源码)初学C语言练手小项目!相关推荐

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

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

  2. 基于JAVA的网上花店销售系统的设计与实现(附:源码 论文 sql文件)

    摘要 随着时代的快速发展,我们的生活已经离不开计算机网络,而电子商务的快速发展正在改变着人们的生活方式.随着各种网上购物平台的不断兴起,人们早已习惯了不用出门就买到自己需要的东西.但是针对鲜花销售这方 ...

  3. 基于B/S的网上零食销售系统的设计与实现(附:源码 论文 Sql文件)

    摘要: 本文介绍了网上零食销售系统的整个开发过程,采用国内认准的B2C商城建站系统模式,并按照现有的购物系统的现状而设计开发的网络买卖平台. 本文主要阐述的了整个系统的完成过程,模拟了一个具备卖家,买 ...

  4. 基于JAVA的企业信息员工管理系统的设计与实现(附:源码 论文 sql文件)

    摘  要 随着电子信息的飞速发展,计算机已经融入到了生活的各个方面,越来越多的企业开始使用电子计算机来对企业进行管理,信息化的时代已经到来,各个企业无论大小都需要一个信息化的管理系统来对自己公司内部的 ...

  5. 基于B/S的城市公交查询系统的设计与实现(附:源码+论文+答辩PPT))

    摘  要 近年来, Internet推动了以互联网技术为核心的各项工作蓬勃展开,互联网的强大也大大的促进了社会的发展,整个社会信息化进程逐步加快,网络也变成了我们日常活动中越来越重要的组成成分.为了使 ...

  6. 基于B/S的网络考试系统的设计与实现(附:源码 论文 课件)

    摘 要 科技在进步,人们生活和工作的方式正发生着改变,不仅体现在人们的衣食住行,也体现在与时俱进的考试形式上.以前的考试需要组织者投入大量的时间和精力,需要对考试的试题进行筛选,对后期的考卷进行批阅, ...

  7. 基于B/S的影视创作论坛的设计与实现(附:源码 论文 sql文件 项目部署教程)

    摘  要  随着时代的发展,互联网的出现,给传统影视行业带来的最大便利就是,方便了影视从业人员以及爱好者的交流和互动,而为用户提供一个书写影评,阅读影评以及回复影评的平台,以影评为载体来使用户感受影评 ...

  8. 基于JAVAWeb的农产品销售管理系统的设计与实现(附:源码 论文 sql文件)

    摘要 本文论述了基于JAVA.Web的农产品销售管理系统开发的目的及意义,目的是为了农产品资源的合理利用和物资的充分交流,有些地方富余而卖不出去,有些地方却吃不上.意义在于加快社会主义现代化建设的步伐 ...

  9. 鸿蒙关键技术研究,鸿蒙内核源码分析(静态链接篇) | 完整小项目看透静态链接过程 | 百篇博客分析HarmonyOS源码 | v54.02...

    百篇博客系列篇.本篇为: 下图是一个可执行文件编译,链接的过程. 本篇将通过一个完整的小工程来阐述ELF编译,链接过程,并分析.o和bin文件中各区,符号表之间的关系.从一个崭新的视角去看中间过程,阅 ...

最新文章

  1. 网络编程学习笔记(IPv4套接口选项)
  2. linux下多线程 排序,Linux多线程实践(7) --多线程排序对比
  3. C# 繁体,简体互转
  4. EasyNVR H5无插件摄像机直播解决方案前端解析之:videojs初始化的一些样式处理...
  5. 高并发Redis缓存如何设计
  6. Linux使用evhttp实现一个简单的HttpServer
  7. springboot系列二、springboot项目搭建
  8. 卷积神经网络基础知识二
  9. a股用计算机模拟走势,一张图揭示抄底A股的机会在这里
  10. 图片相似度判断-差异值哈希算法JAVA版
  11. easyexcel一个单元格导出多张图片等
  12. aac +sbr +ps
  13. linux内核计算次方,linux内核bic和cubic实现
  14. springboot+高校自习室座位管理小程序 毕业设计-附源码191028
  15. windows getLastError 错误码大全
  16. c语言fseek函数的总结
  17. Pandas(一)—— Pandas基础
  18. 2019 ICCV之多光谱行人检测:Weakly Aligned Cross-Modal Learning for Multispectral Pedestrian Detection
  19. 开放大世界 codelikeme
  20. 让AI看哈利波特就为了学······剧透?!还能不能愉快的玩耍了?

热门文章

  1. Deflater压缩算法
  2. 一个老外眼中的创新和“微创新”
  3. 【LeetCode】1710.卡车上的最大单元数
  4. R语言书籍学习02 《R语言数据分析、挖掘建模与可视化》-第十三章 SVM模型
  5. Dell笔记本拆机加内存条
  6. 用Python分析过去10年地震分布~
  7. 麦肯锡|稻盛和夫|麦肯锡方法与稻盛经营哲学
  8. [英语阅读]美国少女“无心”生活近四个月
  9. java ddd_DDD小结 - java随记 - BlogJava
  10. 如何快速开通流量主要求微信小程序如何快速开通流量主