学校的课设任务,想了个偷懒的办法,很快就做好了这个计算器,两天时间还算快吧.
主要用到了c#里面的编译类,直接把算式转换为源程序再编译,利用反射调用,因此也实现了各种函数的扩展功能.自己做的的换肤功能,纯贴图啊,没有用任何换肤的dll,那些东西不是收钱就是难看,所以要是不很复杂的话自己写点代码就解决了,根本不用那些外挂的哈.

想来想去还是决定吧源代码都发出来,首先这个东西实在太简单没啥技术含量,根本没有保留技术的必要;第二希望有人能把它继续发扬光大,做成window平台下{zh0}用的计算器;第三,我自己也是做xx的,对于.net平台xx工具太多.东西想不让别人看到那是基本不可能,因此源代码就在下面,大家自己下.下了{zh0}留个言让我知道下有多少人喜欢这东西.

计算器直接用的版本也都发在下面,有什么不懂的和需要改进的都可以留言.

现在每天事情好多,服务器有被攻击了,博客一直没时间管,文章也没有更新,对不起了哈

———————————————————————————–

半岛t的计算器1.1

注意:您可以对本程序做任何修改,但请保留原作者信息谢谢!!

Author: 半岛t
Date: 2010.5.8

1.1版更新说明 (2010.5.9)
更正了没有数字0的大bug.囧!
增加了自定义皮肤功能

1.2版更新说明 (2010.5.9)
增加了mini版方便使用
增加星星皮肤(感谢”酷毙的花艺师”提供)
修改了算法,提高计算的速度
增加了一个16进制转换的示例函数

———————————————————————————–
功能说明

你可以直接在编辑框里输入你需要的算术表达式, 按enter后会在下面的编辑框中显示结果
也可以使用按钮来操作效果是一样的

支持换肤功能

已经支持c#中Math类中常见的函数和常数(如π和e),如果你需要更多的功能可以自己添加一些需要的函数或常数.

具体的方法为:
1.用任何文本编辑器(记事本就行了)打开Functions.fun文件,里面是各种函数的c#表达.你可以在里面添加自己要用的函数.
2.直接在输入框中使用你的函数即可.

怎么样够简单吧!

——————————————————————————–
举个例子
比如你可能经常要用到算面积的公式每次都要输入 pi*pow(r,2) 是不是太麻烦了。
你可以自己写一个函数来扩展功能

用文本编辑器打开functions.fun
在末尾加入

//求圆面积
private static double area(double r)
{
return pi*pow(r,2);
}

//将16进制字符串转换为float的函数
public static float s2f(string hexString)
{
uint num = uint.Parse(hexString, System.Globalization.NumberStyles.AllowHexSpecifier);
byte[] floatVals = BitConverter.GetBytes(num);
return BitConverter.ToSingle(floatVals, 0);

}

添加常数的办法就是在functions.fun开头添加自己需要的常数
比如你可能需要用到真空中的光速 C = 299792458;
于是你可以在前面加一行
private static double C = 299792458;

于是你就可以在计算过程中使用C这个常数了哈!!

———————————————————————————
换肤功能说明
打开skin文件夹建立一个新的文件夹
你只需要3个png的图片就可以制作自己的皮肤了
bg.png — 背景图片
btn.png — 函数按钮图片
btnunbers — 数字按钮图片

这样你的皮肤就会在皮肤切换中找到自己喜欢的皮肤哈!!
(小技巧:在你喜欢的皮肤前加个!就可以成为默认皮肤)

———————————————————————————

源码下载:

程序下载:

我的博客小站

www.bandaot.info