请教用c编一个函数计算器

来源:百度知道 编辑:UC知道 时间:2024/05/17 06:52:19
可以将运算式以字符串的形式输入并对输入的运算表达式做分析,转换成便于计算的二叉树(也可以用堆栈)表示,将计算结果输出,通过键盘或鼠标输入数字, 可以进行+、-、*、/、开方、清零、backspace的功能,可以对小数进行运算,扩弧运算功能。
最好有图形界面的~,带注释最好~
想研究下~~谢谢各位老

#include<stdio.h>
#include<conio.h>
#include<math.h>
#include<stdlib.h>

#define UNKNOWN_CHAR 2
#define DIVISOR_IS_ZERO 3
#define FALSE 0
#define TRUE 1

/*定义结构,主要用于GetString函数,可以不管它*/
typedef struct string
{char str;
struct string *next;
}string;

/*函数声明*/

/*可以无限接受字符,输入一个字符就给你个空间,返回一个字符串首地址 . */
/*这个函数可以看成普通的scanf()*/
char *GetString();
/*从字符串str第*rank个字符开始分析直到遇到 ')' or ']' or '}' or '\0' . */
/*有错误就把错误代号装在*errorNum中,返回从中计算出的值*/
double GetASResultOf(char * str, int *rank, int *errorNum);
/*从字符串str第*rank个字符开始分析直到遇到不符合要求的字符,返回这个单位值.*/
/*如:str="12+sin(30)+[12+cos(60)]"
GetUnitageOf(str,0,errorNum)=12
GetUnitageOf(str,3,errorNum)=0.5
GetUnitageOf(str,11,errorNum)=12.5 */
double GetUnitageOf(char * str, int *rank, int *errorNum);
/*Are you read