预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共16页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

C语言计算器源代码/*可以用鼠标操作的C语言计算器源码,比较精美了*//******************文件包含*******************/#include/*DOS接口函数*/#include/*数学函数的定义*/#include/*屏幕操作函数*/#include/*I/O函数*/#include/*库函数*/#include/*变量长度参数表*/#include/*图形函数*/#include/*字符串函数*/#include/*字符操作函数*/#include/*****************宏代换定义********************/#defineBWIDTH50/*按键条的宽度*/#defineBHEIGHT30/*按键条的高度*/#defineMAX_SCR15#definePI3.141592654/*******************声明函数*******************/voidgraph(void);/*画图形函数声明*/voidwindows(void);/*绘制窗口界面函数声明*/voidbutton(intx,inty,intc1,intc2,intc3,char*bt);/*按键函数声明*/voidscr(charscr_main[MAX_SCR],interror);/*屏显函数声明*/intmouse_message(void);/*鼠标信息函数声明*/voidvisbilemouse(void);/*鼠标可视化函数声明*/voidgetmouse(int*x,int*y,int*key);/*获得鼠标信息函数声明*/voiddrawmouse(int*x,int*y,int*z);/*画鼠标函数声明*/voidjd(intx,inty);/*按钮焦点函数声明*/voidcalculator(intfun_code);/*实现计算器功能函数声明*/voidclrnum(intn0,intn1);/*清空Num数组函数声明*/voidadv(void);/*高级函数功能声明*/doubleqiu_zhi(char*bds_start,char*bds_end);/*求表达式值函数声明*/longjie_cheng(longn);/*阶乘函数声明*//*******************定义全局变量***************/intMaxcolor,Maxx,Maxy;/*定义最大颜色数,边界*/charNum[2][MAX_SCR]={{0},{0}};/*定义存储数据的二维数组,分别对应双目运算的数据*/doubleMemory=0;/*定义内存存储数据*/intFlag=0,Num_flag=0;/*二维数组的第几维数和第几个数*/charfun=0;/*功能变量,对应双目运算*/intMx,My,Mkey,Mk0=-1;/*定义鼠标的位置和按键状态,初始键值为-1*/intjd0=-1,jd1=-1;/*定义按键焦点,按鼠标键后返回0~29或-1*/charfunction[30]={'Q','M','R','S','P','B','7','4','1','0','C','8','5','2','F','A','9','6','3','.','%','/','*','-','+','e','^','K','D','='};/*定义按键对应的function[fun_code]*/charAdv_ch[100]={0};/*定义表达式数组变量*//**********************主函数*****************/voidmain(){intmessage;/*定义通信变量*/graph();/*进入图形模式*/windows();/*绘制窗口界面*/visbilemouse();/*显示鼠标*/for(;message=mouse_message();)if(message!=-1)calculator(message);/*用鼠标输入数据mouse-message返回jd1到message*/closegraph();/*关闭图形模式*/}/*message,fun-code,jd1是相互联系的通信变量*//****************进入图形模式********************/voidgraph(void){intGraphDriver=DETECT,GraphMode,ErrorCode;initgraph(&GraphDriver,&GraphMode,"");/*初始化图形系统*/ErrorCode=graphresult();/*读初始化结果*/if(ErrorCode!=grOk)/*如果初始化时出现错