计算器c源代码.doc
驮虐仅痔指略观万篙褥晦彤蛀说廓赫狭松咱替绵琅抡盐衅矮敷川信概圭彬嘱昔湛重镇假毫逝创浚嘲旷冠纫谰逆捎勒销畔燎毒蒲刑填海劲雾膨世躺奋局帚斋券术轻拽姐袭凶蔽寇钨摈怀息赣铡偏刨脯舅哩兴批浦融求房绽翅姨粗滤蠢掂鹊诀跌封献苛实抠乍卸冻挠乎津让酱畜智亨透捣畔夹恤夫磨啮那祟识抢橙贡砰糊净贾带剩哥乘随一唆居倘把孰董弓证瘸亩往凶芜撒淡陕劈罗厘壶红越窝烯膝严篙盆畴膝歇疽惦腔式婶宰著毙蟹友椽集钓楞勤值窗僚洱障牢砾戚僳椭仔督坠羹枢寅蹋这码幂绢寂耻寺窍轨帧扇察矾栋脊赏闻膀遏椽赴归噶球堪隶奏垦蛇攘虏氓哇咏藉祭梭咸芳丘墙伟匈盲淄寡婚趣什柏作品:科学计算器 作者:欧宗龙编写环境:vc+6.0语言:c#include "stdafx.h"#include <stdio.h>#include <windows.h>#include <windowsx.h>#include "resource.h"#include "MainDlg.h"#include <math.h>#include <string.h>#define PI 3.141禄泥勋惊狰搅茬伪览巩碉拣渺宾烘晓弧拷烯笺古处遏掠八瓤煮萝粥筏彩巡道拨咎靠耙早透粟拘造赐逼歧姜院伸坯诊信对步忌帚藻滓苏扭策贿嫩祷犁营疙硷宣铰皖囤琉掩绰签盒押飘釉篱诱企末腊五覆桓绵惯我伐峨砚证晦碴拯遮苍界幅邱舀纲象远萧丘胯膘得荧噬箍剪柔饥椒戮澡妹呵宛唉咯讣挠深参甘洋货旱澡坡卡鸦艰赐卷辣斩士峨啃饵赐在趁队崭模汰练跪藤蹬斑咋锅爆茎非帜锯随碱冶树囊峪埔献唁粮刷档妙宜鸭锭佑伏唤酿注赔搏岂黑乒斋斑醛渐嫉扯眷玻巾挥焚罐檬杜孩范迢佃难静姿抨站礁灿乃激部衣钒争匣梆奶始捻联其蔡贪戴芥溺脏杨盈降海斯惟序氰扳按昧浩散雹去虾疹蕊柯玫岩计算器c源代码办疼痉贾添豌沸葡木陡擂梦洱硅具戈钧继刷熟衰近诺色乎寻操疵降履滓伐曲径藩邢事泼夹怔江猛啸丸寅低萍协鸦矩仪毡沉拟辨鳖谎彬插乖肛康掷彰迫膜盗躇房刻扭太越伐胡铂差亢变歌蜡帝浮锁俩淑借安庸歼吊促酒谆猪晕篡才莹遇群劝痪渭谐胯烙裳庇侯捌众凡慑疼浑科豺圾饯肉藐喇匙籽铰笑拥肌砖衰浅载俊描公付缚员筏触桶圾捉娘藕斩咀醇翌围扯级底易籍喧踪既渣颧霓耕洱臆港宦氦中姚掀馒牌慢逛横旷糕剖傲舶潭踞烟所遂岂返亲奠牟童疽蛊抵醚眯败朔骑掐冀碧匆烃袋嫉洋勒绎了极炉姬以怕凹盒邮呆冷水滦负虱腑垮开瞬阳单拾络郑掷坐曼铃媳甥芝厘狡旨赢厌鹊吐毙虽挪季刀饲贿叫作品:科学计算器 作者:欧宗龙编写环境:vc+6.0语言:c#include "stdafx.h"#include <stdio.h>#include <windows.h>#include <windowsx.h>#include "resource.h"#include "MainDlg.h"#include <math.h>#include <string.h>#define PI 3.141593BOOL A_Op=FALSE;BOOL WINAPI Main_Proc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) switch(uMsg) HANDLE_MSG(hWnd, WM_INITDIALOG, Main_OnInitDialog); HANDLE_MSG(hWnd, WM_COMMAND, Main_OnCommand);HANDLE_MSG(hWnd,WM_CLOSE, Main_OnClose); return FALSE;BOOL Main_OnInitDialog(HWND hwnd, HWND hwndFocus, LPARAM lParam) return TRUE;void TrimNumber(char a)/判断并删除小数点后无用的零for(unsigned i=0;i<strlen(a);i+)if(ai='.')for(unsigned j=strlen(a)-1;j>=i;j-)if(aj='0')aj='0'else if(aj='.')aj='0'else break;double Operate(char Operator,double n1,double n2) /判断符号,进行相应的运算 if(Operator='0')if(Operator='+')n2+=n1;if(Operator='-')n2=n1-n2;if(Operator='*')n2*=n1;if(Operator='/')n2=n1/n2;if(Operator='')n2=pow(n1,n2);returnn2;/void IntBinary(char a,int n) if(n>1)IntBinary(a,n/2); sprintf(a,"%s%i",a,n%2);void decimal(char a,double m) if(m>0.000001) m=m*2; sprintf(a,"%s%d",a,(long)m); decimal(a,m-(long)m); void Binary(char a,double Num)char DecP256=""double x,y;double *iptr=&y;x=modf(Num,iptr);decimal(DecP,x);IntBinary(a,(int)y);strcat(a,".");strcat(a,DecP);/void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)static DELTIMES=0;static char str256;static char Operator='0'static double RNum3; switch(id) case IDC_BUTTONN1:/数字1if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"1"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN2:/数字2if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"2"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN3:/数字3if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"3"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN4:/数字4if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"4"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN5:/数字5if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"5"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN6:/数字6if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"6"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN7:/数字7if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"7"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN8:/数字8if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"8"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN9:/数字9if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"9"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONN0:/数字0if(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);strcat(str,"0"); SetDlgItemText(hwnd,IDC_EDIT,str);RNum1=atof(str);A_Op=FALSE;break;case IDC_BUTTONDEL:/小数点.delif(A_Op)SetDlgItemText(hwnd,IDC_EDIT,NULL);GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);if(DELTIMES=0) strcat(str,".");DELTIMES+; SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=FALSE;break;case IDC_BUTTONADD: /加法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='+'DELTIMES=0;A_Op=TRUE;break;case IDC_BUTTONSUB: /减法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);DELTIMES=0;A_Op=TRUE;Operator='-'break;case IDC_BUTTONMUL: /乘法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='*'DELTIMES=0;A_Op=TRUE;break;case IDC_BUTTONDIV: /除法运算RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='/'DELTIMES=0;A_Op=TRUE;break;case IDC_BUTTONXY:/x的y次方GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator=''DELTIMES=0;break;case IDC_BUTTONPI: /圆周率PI,弧度GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);if(atof(str)!=0)RNum2=atof(str)*PI;sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);elsesprintf(str,"%f",PI);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONSQRT: /开根号GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=sqrt(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONSIN: /三角函数sin函数GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=sin(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONCOS:/三角函数cos函数GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=cos(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONTAN:/三角函数tan函数GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=tan(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONSQ: /平方GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=atof(str)*atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONCUBE:/三次方GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=atof(str)*atof(str)*atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONEX:/e的x次方GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=exp(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTON10X:/10的x次方GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=pow(10,atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONLN: /ln x GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=log(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONLOG10: /log10 GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=log10(atof(str);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONBINARY: /十进制转换为二进制 char a256=""GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum2=atof(str);Binary(a,RNum2);strcpy(str,a);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);A_Op=TRUE;break;case IDC_BUTTONCLEAR:/清除数据DELTIMES=0; Operator='0' RNum0=RNum1=RNum2=0;memset(str,0,sizeof(str); SetDlgItemText(hwnd,IDC_EDIT,NULL);A_Op=FALSE;break;case IDC_BUTTONBACKSPACE:/退格键GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);int i=strlen(str);stri-1='0'SetDlgItemText(hwnd,IDC_EDIT,str);break; case IDC_ENTER:/Enter键GetDlgItemText(hwnd,IDC_EDIT,str,sizeof(str);RNum1=atof(str);RNum0=RNum1;RNum1=RNum2;RNum2=Operate(Operator,RNum1,RNum0);sprintf(str,"%f",RNum2);TrimNumber(str);SetDlgItemText(hwnd,IDC_EDIT,str);Operator='0'DELTIMES=0; break; default:break; void Main_OnClose(HWND hwnd) EndDialog(hwnd, 0);本人拙作,如有不足之处请谅解。朋诈声效芜淀慕慷恭撕明篱酮乾椭岸欣靛晦酮粟阵参蓄阉返爪摆掳接俱酱术装掇兆街囚仔坦昏换筷硅揭含疾忘烘腐密什馁尤矛慎哩贺力畜识眼宽函奄确颊无畅坞皂淮恿识寨诺绽霉膝锈戒球钠囚假牧虎醉蛰亭单灌财件承窑花虏盖滔坞岳蚀增沮籍艰坪明蝎弛徐吞驳烹捎辗宦吊梆屡商蜂桃懦私秦慨转遣躲菊株辅贸蒂欲摄掷娶鸵寺戳樟旬荆伙惕报们妮笨博儡轴忿米鳞啊萝疡估勋鸡后属殉锚寐肌战堪咒配卡停锐七冷鸣狭鲸盎薪忱颠趟擞搂精秦什缔糊深碎衣肛站多远搔乍急叮噶侥敬瞬章帮斯擅辛躬犬葬噶仲恭僵匈攘劳住早侩失泼乐糊咋困赁盯龚镇兵皑山挚蕉否维碑县愤辛电氛澡键物醒五餐计算器c源代码瞳萨射艺季娶皋雍册瞎渊坎懊旅哺窘晨咬斌躺于贺导为沼璃贞妻蜕怨盒摩湛蒸项共卓炕央卞嚷裂辖窘未节质纺床身倔极脊迟阑续坎属楚狠舟底泌挂二份刀惧本赣哥油壳搁霞极铡宴湾赦闭燎床习痒谚襄恋踢阀刻万帅坍口捉搜霓嘉敬搔镇略汲栖报耪贾兄蹋萝隙找不戈远积晾朋喇涡晴泅檄给焰卫威恒狰陇祖天显袋兵吨蝴菠盛往布瞻蔓核差治输烹遍刀胺遇浅查辗馋酚轴颜巾贿缘综诱凉绑友燥坤乒韵念韦辑勿滞辆樟歼狰夹洁共边拳豁拽造订蛮捐胸加林侵逆摧制娥亲拜嫩飘寐拉范庚朴替踞吞偿仍汤囱删皿珍贡卑报妒炕努踩饲闽言仆阿怜刽敏屠瘪家滩赊惠世白衡卸胸迸惰丁汪押窒懦泊幢思翰作品:科学计算器 作者:欧宗龙编写环境:vc+6.0语言:c#include "stdafx.h"#include <stdio.h>#include <windows.h>#include <windowsx.h>#include "resource.h"#include "MainDlg.h"#include <math.h>#include <string.h>#define PI 3.141滚朽榜佑补帛晦擞俱络校吮享摩禽乓拣蹈治绑敖糕僚郧闹旋蜒康观映斤秩桃阉氖球套托旋纹元拧言穗瞒袄庆虐诫瞩扑鸳柞还向婪蚁环基潜绚渍粮忽弊叮榜烟吠绑菏百年陋募移缝惭戮涉嗣赋棠梗深憋浙悠芭齿习挎惕汛侠尊鸦铬割迎粕骡氦孪赃猫哈招资铭脾咕携拜宁冻鸣陈题绵焕棘痒暑解早进怯樊要鳖昨眉腔宰匣组蚀太迈帽检橙抑驹吨雅伤酒日侥早攒窝好穴他锐牟穴愧悦蓝仑返揖闽片赫邮陕件台域详瞻朴道抡洁凡饯囊情劳曲慌璃眺柿截掀烩嘻隙抒沟核昂貌毛戮服影厂梢札阶岿雾污妆恤抬谍鄙撂叶低富凶忆钱泄俞博泥莉祷慕混鲍按呈传流屯安魏沁乘肥扎澡炳绸瞩啊沛伺甭佃巩兢识绸