请选择 进入手机版 | 继续访问电脑版

C++编程

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 3082|回复: 10

紫麒麟笔记_小的开源代码介绍

[复制链接]

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
发表于 2017-4-12 11:40:21 | 显示全部楼层 |阅读模式
本帖最后由 ID紫麒麟 于 2017-5-17 14:59 编辑

开源计算器 abacus


这个东西是一个计算器,是可以直接输入运算式,得出结果的。我把代码直接上传上来在附件中了,压缩包里面的platform文件夹下就可以找到能够打开的工程项目了。



这个是压缩包里面的介绍:


一、简介
========

      abacus 2 是一个小型的计算器,得名于中国古代著名计算工具----算盘,致力于打造一个完美的计算器,在计算过程中,你可以使用四则混合运算、可以使用组合数或者三角函数等大量数学函数、可以定义变量参与运算,你还可以把公式定义为数学函数以便参与运算等。

      下载地址:        http://www.oschina.net/code/snippet_736932_13725
      技术文档地址:        http://my.oschina.net/u/736932/blog?catalog=254400
      E-mail:                zhoucosin@163.com

二、使用说明
============

      程序启动后,将执行命令处理循环,你应该逐条输入表达式进行计算或者输入一些控制命令,如定义变量或函数又或者查看某个函数的定义,在任何时候,你都可以输入 q 或者 quit 退出程序。
      要计算表达式的值,直接输入表达式即可
      1. 四则混合运算保持通常的数学书写习惯,除此之外,还支持下列运算符:
        x % y         返回 x 除以 y 的余数,y 应为正整数
        x ^ y         返回 x 的 y 次方,x 与 y 应满足指数运算的限制条件
           x!        返回 x 的阶乘, x 应为非负整数
        x!!        返回 x 的双阶乘
        此外 abacus 2 内置了圆周率 pi 和自然对数的底数 e,可以直接用 pi 与 e 进行引用。
      2. 数学函数,支持数学函数列表如下:
        abs(x)                返回 x 的绝对值               
        pow(x, y)        返回 x 的 y 次方
        exp(x)                返回 e 的 x 次方,e 是自然对数的底数
        log(x, y)        返回 x 的以 y 为底的对数值
        ln(x)                返回 x 的自然对数值
        sqrt(x)                返回 x 的算术平方根
        sin(x)                返回 x 的正弦值,三角函数中的角均采用弧度
        cos(x)                返回 x 的余弦值
        tan(x)                返回 x 的正切值
        arcsin(x)        返回 x 的反正弦值
        arccos(x)        返回 x 的反余弦值
        arctan(x)        返回 x 的反正切值
        factorial(x)        返回 x 的阶乘
        cb(m, n)        返回从 n 个不同对象中选出 m 个对象的组合数
        max(x1, x2, ..., xn)        返回多个数中的最大者
        min(x1, x2, ..., xn)        返回多个数中的最小者
        ceil(x)                返回不大于 x 的最大整数
        floor(x)        返回不小于 x 的最小整数
        asin(x)                返回 x 的双曲正弦
        acos(x)                返回 x 的双曲余弦
        atan(x)                返回 x 的双曲正切
      3. 变量的定义及使用
      在计算过程中可以使用变量,定义变量的方式如下:
                var x
要定义多个变量可以用逗号进行分隔:
                var x, y, z
也可以在变量定义时给它赋值:
                var x = 1, y = sin(pi/3), z, u, v
对已经赋值的变量再次使用 let 命令进行赋值可以改变它的值。
如果变量在定义时未赋值,则必须在使用它参与运算之前给它赋值:
                let z = cb(2, 10), z = 0, u = 0, v = 0
在表达式中可以直接使用经过定义并赋值的变量,如果在表达式中使用没有定义的变量或者没有赋值的变量将产生一条错误提示。        
      4. 公式型函数的定义及使用
      你可以把自己频繁使用的表达式定义为函数,以省去重复输入长长的表达式的烦恼,例如你可以定义圆的面积函数如下:
                func AreaOfCycle(r) = pi * r * r
之后只要在表达式中就像使用内置数学函数一样使用它,并且,如果你想通过它来计算圆环的面积,那么你可以继续定义:
                func AreaOfRing(R, r) = AreaOfCycle(R) - AreaOfCycle(r)
如此等等,你也可以把一元二次方程的求根公式定义为一个函数,以便用它来解方程,当然,你得保证这个方程是有根的,否则,在计算的时候将会得到一个对负数开方的错误提示。


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-5-16 15:43:57 | 显示全部楼层
最近重装系统,发现了一个很久以前搞加密解密的时候看的一个东西:beecrypt
虽然实际上当时很菜,很多东西都没看懂,而且后来也没有用上,不过现在还是写一个东西记录一下吧。
这个东西是一个开源的东西,里面有c和java的东西,都是能够查看代码的。
说实话,在搞加密解密的时候,好像还有一些,不过没时间看了,就搞一个名字出来,剩下的可以自行百度,里面有这些东西:
AlgorithmParameterGenerator
DH
DSA
AlgorithmParameters
DH
DHAES
DSA
Cipher
AES
Blowfish
DHAES
KeyAgreement
DH
KeyPairGenerator
DH
DSA
RSA
Mac
HMAC-MD5
HMAC-SHA-1
HMAC-SHA-256
HMAC-SHA-384
HMAC-SHA-512
MessageDigest
MD5
SHA-1
SHA-256
SHA-384
SHA-512
Signature
MD5withRSA
SHA1withDSA
SHA1withRSA
SHA256withRSA
SHA384withRSA
SHA512withRSA
这个是API说明文档,但是是英文的
http://beecrypt.sourceforge.net/doxygen/c++/index.html
回复 支持 反对

使用道具 举报

8

主题

31

帖子

323

积分

版主

Rank: 7Rank: 7Rank: 7

积分
323
QQ
发表于 2017-5-16 16:18:47 | 显示全部楼层
ID紫麒麟 发表于 2017-5-16 15:43
最近重装系统,发现了一个很久以前搞加密解密的时候看的一个东西:beecrypt
虽然实际上当时很菜,很多东西 ...

研究计算器啦?
VC纵横、磐实编程网
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-5-17 14:58:27 | 显示全部楼层
嬴政 发表于 2017-5-16 16:18
研究计算器啦?

没有,这不是以前写的一个开源的东西么,这个帖子本意就是搞一些开源小东西推荐去学习开源代码的。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-5 16:19:19 | 显示全部楼层
C++ B-tree是一种基于B树数据结构,实现命令内存容器的模板库
https://code.google.com/p/cpp-btree/
这个是google上的地址
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-5 16:23:21 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-6-5 16:30 编辑

SQLite这个数据库在手机上和linux上面在需要一些小巧的数据仓库应用场景上面已经用的很多了。这个数据库其实是建立在简单的文件读写上面的。
小巧轻量,开源,是特征,研究研究里面的东西对简单的数据库理解也有帮助。
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-8 14:18:35 | 显示全部楼层
本帖最后由 ID紫麒麟 于 2017-6-12 17:14 编辑

MySQL
挺常见的东西了,不多说了,后来被甲骨文收购了,后面的发展。。。。。
MongoDB
上面说的这两个比较大,不符合标题呀,其实我要说的是MySQL++具体信息就百度一下吧。

回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-12 12:05:54 | 显示全部楼层
FreeImage:一个开源库,跨平台的,显示图片的开源库。
CxImage也是一个显示图片的开源库
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-6-14 13:14:30 | 显示全部楼层
xml文件的解析:
makeup
tinyxml
tinyxml++
字符编码转换之类的:
libcionv
回复 支持 反对

使用道具 举报

18

主题

225

帖子

971

积分

高软

Rank: 4

积分
971
 楼主| 发表于 2017-7-4 11:56:39 | 显示全部楼层
最近掉进libevent这个网络库里面了,感觉乱乱的,想要把一个程序里面的libevent去掉,感觉产品的例子程序不应该找这种第三方库搞,让人发疯的是有个公司给别人用的东西demo里面非要引入不少开源库。。。。网络层还是用的libevent。。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|C++编程  

GMT+8, 2019-9-22 22:01 , Processed in 0.109375 second(s), 38 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表