此博文记载着自编C++应用类库和生成器库的源代码的链接地址,并且对库的开发环境、开发过程、缺陷以及改进更新进行说明。

分数类

利用中午的时间,自己在Visual Studio 2013环境下编写了一个C++分数类,使用的是标准库,可跨平台。分数类中提供了求最大公约数和最小公倍数的方法,为分数的算术运算打下基础,接着重载了算术运算符,支持分数的算术运算。之后增添了类型转换函数,将分数的算术运算范围扩展到整数和浮点数,且提供了分数类对象之间的比较方法。

为了方便测试分数类,提供了分数自动生成器,以及示例程序。经过断点调试,发现分数的乘法运算有时正确,有时错误。紧接着采用逐步调试,发现在long int类型的变量为负数的情况下,与unsigned int类型的变量进行乘法运算,结果的类型却是unsigned int。于是采用显式类型转换,在运算之前,将unsigned int类型的变量转换成long int类型,便得到了正确的答案。

在进行以上改进之后,分数类还存在着计算范围限制的缺陷,目前能够完美支持4位分数运算。由于C++标准类库未提供大数运算类,分数类下一步改进的难度较高。

分数类 Fraction-v1.0 github链接:https://github.com/xucongandxuchong/tools

注:此库纯属个人原创,转载请注明出处。

C++原创应用类库和工具类库的更多相关文章

  1. [原创][开源]SunnyUI.Net, C# .Net WinForm开源控件库、工具类库、扩展类库、多页面开发框架

    SunnyUI.Net, 基于 C# .Net WinForm 开源控件库.工具类库.扩展类库.多页面开发框架 Blog: https://www.cnblogs.com/yhuse Gitee: h ...

  2. 编写更少量的代码:使用apache commons工具类库

    Commons-configuration   Commons-FileUpload   Commons DbUtils   Commons BeanUtils  Commons CLI  Commo ...

  3. 尝试造了个工具类库,名为 Diana

    项目地址: diana 文档地址: http://muyunyun.cn/diana/ 造轮子的意义 为啥已经有如此多的前端工具类库还要自己造轮子呢?个人认为有以下几个观点吧: 定制性强,能根据自己的 ...

  4. OS X第三方类库管理工具cocoapods入门

    一.简介 什么是cocoapods?--是OS X和iOS下一个第三方类库管理工具.通过cocoapods,可以为项目添加"Pods"依赖库,并且管理其版本. cocoapods好 ...

  5. Flutter 常用工具类库common_utils

    地址:https://pub.flutter-io.cn/packages/common_utils#-readme-tab- Dart常用工具类库 common_utils 1.TimelineUt ...

  6. Microjs: 超棒的迷你框架和迷你类库搜罗工具

    你可以按条件方便的搜索需要的类库或者框架,以下为条件 基础框架 模板引擎 DOM操作 CSS动画 Javascript动画 数据操作 更多 阅读原文:Microjs: 超棒的迷你框架和迷你类库搜罗工具

  7. Android开发免费类库和工具集合

    用于Android开发的免费类库和工具集合,按目录分类. Action Bars ActionBarSherlock Extended ActionBar FadingActionBar GlassA ...

  8. JSON工具类库: alibaba/fastjson 使用记录

    JSON工具类库: alibaba/fastjson 使用记录 一.了解JSON JSON标准规范中文文档: http://www.json.org/json-zh.html 最佳实践:http:// ...

  9. Java_图片处理_02_图片处理工具类库

    二.参考文档 1.Java图片处理工具类库

随机推荐

  1. C++ 输入/输出

    std:: 是什么?有什么作用? 输入和输出的iostream 库.iostream 库的基础是两种命名为 istream 和 ostream 的类型,分别表示输入流和输出流. 标准库定义了 4 个 ...

  2. 转利用python实现电影推荐

    “协同过滤”是推荐系统中的常用技术,按照分析维度的不同可实现“基于用户”和“基于产品”的推荐. 以下是利用python实现电影推荐的具体方法,其中数据集源于<集体编程智慧>一书,后续的编程 ...

  3. mysql导入存储过程

    查询数据库存储过程 select `name` from mysql.proc where db = 'databaseName' and `type` = 'PROCEDURE'; mariadb操 ...

  4. hdu 1525 Euclid's Game【 博弈论】

    Two players, Stan and Ollie, play, starting with two natural numbers. Stan, the first player, subtra ...

  5. 专访msup创始人兼CEO刘付强:追求卓越是数据时代下企业和个人的生存之道

    近些年,"信息化带动工业化"策略的深入人心,这为信息技术本身开辟了一个更加广阔的应用天地,在这样的大环境下国内IT培训市场得了飞速发展.那么在云计算.大数据时代,如何让企业的IT团 ...

  6. c++中system("pause")的作用和含义

    简单来说就是暂停的意思,一般在LINUX编程时会用到,等待接收信号,才会重新运行 . 在进行C/C++编程的时候,在运行程序查看输出效果时,会出现窗口闪一下就关闭的情况. 在C语言中一般通过添加get ...

  7. Linux下的反调试技术

    Linux下的反调试技术 2014年01月30日 ⁄ 综合 ⁄ 共 2669字 ⁄ 字号 小 中 大 ⁄ 评论关闭 转自  http://wangcong.org/blog/archives/310 ...

  8. paas容器云

  9. table 的td 自适应事项

    media的html结构,如果用display:table-cell实现, table { width: 100%; border-collapse: collapse; border: $bor; ...

  10. mysql获取下一篇和上一篇文章的ID

    mysql获取上一篇和下一篇文章的ID只要在当前页面读取上一个和下一个的ID就可以了.假设当前ID为10:搜索上一个的ID:select  id  from table where id<10 ...