首页  >   经验  >   练习项目:2 基本框架扩展转换功能实现

练习项目:2 基本框架扩展转换功能实现

查看 codexia 的博客 2015-06-25 22:48:55 2266
控制台   项目  
手机阅读 | 转发赚积分
手机收藏 | 分享给好友
简介这里讲述如何实现在框架下扩展执行转换的功能。讲述了完整的过程和实现分析思路,以及思考问题的方式。不要以为这个简单就不屑一顾,其实一沙一世界,通过这个小项目可以反映出软件开发的很多重要的东西。谨记:戒骄戒躁,不断挖掘新东西,主要看你站在哪个角度来看问题。虽然代码也不多,但是站的角度高,你的代码所属的层次就很高了。

    前两篇文章:控制台的项目的建立,请阅读《VS中控制台项目创建方法步骤》。然后阅读基本框架的构建文章《控制台项目(练习项目)基本框架实现》,请先阅读这两篇文章后再阅读本文。
    在VS中为了控制台程序运行完后一闪即过,那么为了方便,也不用使用《控制台项目(练习项目)基本框架实现》文章讲到的在主函数中使用输入暂停,我们在写一个框架函数包装一下,这样使用就很简单了。当然在框架中,你可以使用系统的一个函数来停止。为了减小程序大小,那么就只使用输入暂停就可以了。
    扩展转换功能函数,我们就单独添加功能函数文件。使用时包含以下功能函数的头文件,即可使用。本文实现长度的互换。头文件和源文件分别取名为"Lenght.h"和"Lenght.cpp",添加方法在前两篇中讲过了。
    这里问题来了,看看什么问题?
    我们要实现毫米、厘米、分米和米之间的互换,根据排列组合,一共有12组。如果不假思索的直接写12组函数,那么代码就太冗余了,开发效率就太低了。并且在后续的扩展和选择模式时就很麻烦了。所以,打开头文件时,我就迟迟没有动手。在干什么呢?我在寻找一个合适的模式,以最少的代码实现所有的转换。要达到少一个函数嫌少,多一个函数嫌多。
    几分钟后,我想到了一种方式。因为涉及到的转换单位有4个,那么最低要四个函数来实现。所以我就定义了四个函数,分别表示转换到一个单位,然后从哪个单位转换过来,则使用函数中的第一个参数作为标志,这样就可以区别,在函数内部实现条件转换,使用switch来实现。
    而在4个函数中,每一个函数中的代码基本相同,都有4个情况(case)。你可能会问,转换到自己为什么还要加上一种情况呢?如果不要,那不是可以省掉一种情况吗?为了让代码整洁,不容易出错,提高代码的统一风格,综合考虑,使用统一的方式来使用,有利于降低代码的维护成本,减少了出错的可能性。每个代码结构差不多,变动的地方也是有规律的,这样很容易检查代码是否出错,这也可以给代码精简提供一个很好的基础。
    这些实现分析,可以让你很好的了解到扩展功能的背景和开发应该遵循的好的习惯,不要上来就写代码,规划好代码,为日后写代码可以节约大量时间,可以让程序 稳定性大大提升,代码质量也提高很多。不同水平的人写同样一个功能的代码,代码风格和质量也不一样,所以,即使简单,也要沉下心用心做。在此基础上,项目扩展会越来越大,在那个时候,如果有一个好框架的支持,增加模块,删除模块都是轻而易举的事情,而不会为改动模块头疼。

    框架中扩展了一个暂停程序,不让一闪而过的框架函数。函数声明在头文件"Afx.h"中,实现在"Afx.cpp"中。
    函数声明如下:

void AfxPause();// - 输入字符,回车结束程序

    函数实现如下:
void AfxPause()
{
    AfxMessage("输入任意键字符,回车键结束程序!");
    int i;
    cin>>i;
}

    代码说明:
    1.函数没有任何参数,没有返回值,调用非常简单,不用重复写代码,只要一个函数调用即可,使用很方便。
    2.代码实现中,还是调用框架的函数来实现。这也是代码重用的好处。虽然是简单的cout,但是使用起来也是挺麻烦的。

    框架中还扩展了一个重载

1.微信扫码
2.点击按钮,粘贴命令
自动刷新 手动刷新
命令:rd 13H/) 复制
提示:如果您发送了命令,自动刷新会展开全文。自动刷新最多60秒,超过60秒请点击手动刷新。
创作不易,汗水不止!为防止劳动果实被爬虫窃取,开启了反爬机制,需要您发送命令继续阅读。取关会再次出现此提示。一段时间后出现此提示,请再次发送即可。如有问题,请加客服微信Freeme007处理。感谢您的理解。
标注
评论
站内搜
百度搜
传送到手机
手机扫码,识别文字,完成传送x
加载中...
标注内容x
加载中...
添加标注x
文章标题:练习项目:2 基本框架扩展转换功能实现
文章地址:http://www.cjjjs.com/article/6252015554822577
转载到个人博客,请在文末带上右侧内容(含超链接):本文转载自:练习项目:2 基本框架扩展转换功能实现
收藏 0 点赞 0
公众号
微信赞赏
支付宝赞赏
领支付宝大红包
QQ群

相关阅读

  1. 练习项目:5 练习解析和使用协议(自定义的简单文件格式协议) 查找全网同类文章
  2. 练习项目:4 书籍销售报告分析程序 查找全网同类文章
  3. 练习项目:3 控制台项目(练习项目)基本框架完全实现和转换功能扩展(完结) 查找全网同类文章
  4. 练习项目:2 基本框架扩展转换功能实现 查找全网同类文章
  5. 练习项目:1 基本框架实现 查找全网同类文章
  6. 项目开发中一些注意事项及技巧总结 查找全网同类文章
  7. 项目开发中应用如何并发处理的一二事 查找全网同类文章
  8. 一个项目案例告诉你如何做好软件的用户体验 查找全网同类文章
  9. 项目开发经验之谈:返回值和返回数据方式的总结 查找全网同类文章
  10. [QT] 使用QT开发的项目是必须要开源吗 查找全网同类文章
分享到:
分享文章[练习项目:2 基本框架扩展转换功能实现]到QQ空间

相关阅读

猜您感兴趣