亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? common.cpp

?? 能計算數學函數的計算器 這個計算器可用 set 命令自定義變量
?? CPP
字號:
#include <stdlib.h>
#include "common.h"

int      error = NULL;
int      prec = 6;
int      infocmd = 0;
int      infoarg = 0;
int      ArgCounter = 0;
char     VarName[MAXSIZE];
char     *expString = NULL;
char     *Unknown = NULL;
char     *Command[2];
bool     vision = false;
NODE     *ExpressionHead = NULL;
NODE     *ExpressionTail = NULL;
VARIABLE *VariableList = NULL;
VARIABLE *VariableListTail = NULL;
FUNCTION FunctionList[FUNCTION_MAXLENGTH] = {
	{"sin",21},{"cos",22},{"tan",23},{"cot",24},{"arcsin",25},{"arccos",26},{"arctan",27},{"arccot",28},{"ln",29},{"lg",30}
};


bool strcopy (
	char dest[],
	char sour[],
	int n
	)
{
	int i;
	for (i = 0;i < n-1 && sour[i] != NULL;i ++) {
		dest[i] = sour[i];
	}
	if (i >= n) {
		return false;
	} else {
		dest[i] = NULL;
		return true;
	}
}



bool strcmp_a(const char str1[],const char str2[])
{
	int i=0;
	for(;str1[i] != NULL && str2[i] != NULL;i++) {
		if(str1[i] != str2[i]) {
			return false;
		}
	}
	if (str1[i] == NULL && str2[i] == NULL) {
		return true;
	} else {
		return false;
	}
}
bool strmatch (
	const char sour[],
	const char p[]
	)
/*++
函數描述:

功能:
	實現字符串(字母序列)的大小寫模糊匹配

參數:
	sour	- 原字符串(字母序列)
	p	    - 要匹配的字符串(字母序列)

返回值:
	若匹配返回 true ,否則返回 false 
--*/
{
	int        i;
	for (i = 0;i < FUNCTION_NAME_MAXLENGTH && sour[i] != NULL && p[i] != NULL;i ++) {
		if ((sour[i] - p[i])%32 != 0) {
			return false;
		}
	}
	if (sour[i] == NULL && p[i] == NULL) {
		return true;
	} else {
		return false;
	}
}


VARIABLE *NewVarNode (
	char *NewName,
	OPERAND NewOperand
	)
{
	VARIABLE *tmp;
	tmp = (VARIABLE *) malloc (sizeof (VARIABLE));
	if (tmp == NULL) {
		error = memmory_allocation_failed;
		return NULL;
	}
	strcopy (tmp->Name,NewName,MAXSIZE);
	tmp->Operand = NewOperand;
	tmp->Next = NULL;
	return tmp;
}

VARIABLE *InsertVarNode (
	VARIABLE *Tail,
	VARIABLE *NewVar
	)
{
	if (Tail != NULL) {
		Tail->Next = NewVar;
		Tail = NewVar;
	}
	return Tail;
}


NODE *NewNode (
	TERM NewTerm,
	int  NewTermSignal
	)
/*++
函數描述:

功能:
	生成一個新的結點

參數:
	NewTerm         - 一個新的項
	NewTermSignal	- 一個新的項標志

返回值:
--*/
{
	NODE *p;
	if ((p = (NODE *)malloc(sizeof(NODE))) != NULL) {
		p->Term = NewTerm;
		p->TermSignal = NewTermSignal;
		p->Next = NULL;
	}
	return p;
}


void DeleteNodes (
	NODE *first,
	NODE *last
	)
/*++
函數描述:

功能:
	銷毀從 first 到 last 的所有結點 (不包含 first 結點)
	并將 first 結點和 last 之后的結點鏈接起來

參數:
	
返回值:
--*/
{
	NODE *tp,*savenext;
	if (first != NULL && last != NULL) {
		tp = first->Next;
		first->Next = last->Next;
		while (tp != first->Next) {
			savenext = tp->Next;
			free (tp);
			tp = savenext;
		}
	}
}


void DeleteList (
	NODE *head
	)
/*++
函數描述:

功能:
	銷毀整個鏈表,釋放內存

參數:
	head	- 鏈表頭指針
返回值:
--*/
{
	NODE *savenext;	
	while (head!=NULL) {
		savenext=head->Next;
		free (head);
		head=savenext;
	}
}
void NODEcopy (
	NODE *dest,
	NODE *sour
	)
/*++
函數描述:

功能:
	將 sour 中的內容復制到 dest 中

參數:

返回值:
--*/
{
	dest->Next = sour->Next;
	dest->Term = sour->Term;
	dest->TermSignal = sour->TermSignal;
}

void NODEcopyWithoutNext(
	NODE *dest,
	NODE *sour
	)
{
	dest->Term = sour->Term;
	dest->TermSignal = sour->TermSignal;
}

void InsertAfter (
	NODE *Target,
	NODE *s
	)
{
	if (Target != NULL) {
		s->Next = Target->Next;
		Target->Next = s;
	}
}
	
NODE *InsertEnd (
	NODE *Tail,
	NODE *s
	)
/*++
函數描述:

功能:
	在鏈表尾部插入一個結點

參數:
	Tail	- 鏈表尾結點
	s       - 要插入的結點

返回值:
	返回鏈表的尾結點
--*/
{
	if (Tail != NULL) {
		Tail->Next = s;
		s ->Next = NULL;
		Tail = s;
	}
	return Tail;
}


int FunctionSearch (
	FUNCTION FunctionList[],
	char     name[],
	TERM     *tempTerm
	)
/*++
函數描述:

功能:數學函數查找,查找sin cos 等數學函數

參數:
	FunctionList	- 數學函數列表
	name            - 要查詢的函數名
	tempTerm        - 保存詢到的函數內部表示

返回:函數的內部表示數字
--*/
{
	int i;
	for (i = 0;i < FUNCTION_MAXLENGTH;i ++) {
		if (strmatch (FunctionList[i].FunctionName,name)) {
			tempTerm->Operator.Symbol = FunctionList[i].FunctionOperator;
			tempTerm->Operator.Priority = 1;
			tempTerm->Operator.OperandNumber = 1;
			return MATH_FUNCTION;
		}
	}
	return NULL;
}

bool FunctionNameSearch (
	FUNCTION FunctionList[],
	char     symbol,
	char     name[]
	)
{
	int i;
	for (i = 0;i < FUNCTION_MAXLENGTH;i ++) {
		if (symbol == FunctionList[i].FunctionOperator) {
			strcopy (name,FunctionList[i].FunctionName,FUNCTION_NAME_MAXLENGTH);
			return true;
		}
	}
	return false;
}


int VariableSearch (
	VARIABLE *VariableList,
	char     name[],
	TERM     *tempTerm
	)
/*++
函數描述:

功能:查找自定義變量,獲取變量中保存的值

參數:
	VariableList	- 自定義變量列表
	name            - 要查詢的變量名
	tempTerm        - 保存查詢到的自定義變量的值

返回:函數的內部表示數字
--*/
{
	VARIABLE *p = NULL;
	for (p = VariableList;p != NULL;p = p->Next) {
		if (strmatch (p->Name,name)) {
			tempTerm->Operand = p->Operand;
			return ISVARIABLE;
		}
	}
	return NULL;
}

VARIABLE *VariableSearch (
    VARIABLE *VariableList,
    char     name[]
	)
/*++
函數描述:

功能:查找自定義變量,獲取變量中保存的值

參數:
	VariableList	- 自定義變量列表
	name            - 要查詢的變量名

返回值:
	找到的變量的地址
--*/
{
	VARIABLE *p = NULL;
	for (p = VariableList;p != NULL;p = p->Next) {
		if (strcmp_a (p->Name,name)) {
			return p;
		}
	}
	return NULL;
}

void PrintVariable (
	void
	)
{
	VARIABLE *p =NULL;
	for (p = VariableList;p != NULL;p = p->Next) {
		printf ("%s:",p->Name);
		if (p->Operand.DataSignal == FLOAT) {
			printf ("%f\n",p->Operand.Data.Real);
		} else {
			printf ("%d\n",p->Operand.Data.Integer);
		}
	}
}

void PrintList (
	void
	)
/*++
函數描述:

功能:
	輸出鏈表中有意義的內容

參數:
	Head	- 鏈表的表頭指針

返回值:
--*/
{
	NODE *p;
	if (error != NULL || vision == false) {
		return;
	}
	for (p = ExpressionHead;p != NULL;p = p->Next) {
		if (p == ExpressionHead || p == ExpressionTail) {
			continue;
		}
		if (p->TermSignal == ISDATA || p->TermSignal == ISVARIABLE) {
			if (p->Term.Operand.DataSignal == INTEGER) {
				printf ("%d",p->Term.Operand.Data.Integer);
			} else {
				printf ("%f",p->Term.Operand.Data.Real);
			} 
		} else if (p->TermSignal == MATH_FUNCTION){
			char mathfunctionname[FUNCTION_NAME_MAXLENGTH];
			FunctionNameSearch (FunctionList,p->Term.Operator.Symbol,mathfunctionname);
			printf ("%s",mathfunctionname);
		} else {
			printf ("%c",p->Term.Operator.Symbol);
		}
		putchar (' ');
	}
}

void usage (
	void
	)
{
	printf ("用法:\n");
	printf ("有四個可用命令 set view help exit\n");	
	printf ("set 設置環境變量和自定義變量\n");
	printf ("set [prec|自定義變量名] [表達式]]\n");
	printf ("view 查看環境變量和已定義變量\n");
	printf ("view [prec|自定義變量名|all]\n");
	printf ("help 顯示幫助\n");
	printf ("help [沒有參數]\n");
	printf ("exit 退出程序\n");
	printf ("exit [沒有參數]\n\n");
}

void logo (
	void
	)
{
	printf ("=============== calculator ===============\n\n");
	printf ("	程序能完成一定范圍內的算術運算\n");
	printf ("	+ - * / \\(求余) %(百分號)\n");
	printf ("	和三角,反三角,對數,指數函數運算\n");
	printf ("	sin arctan ln(自然對數) lg(10為底的對數)\n");
	printf ("	還支持常量和自定義變量(用 set 變量名 表達式 定義變量)\n");
	printf ("	pai(3.1415926) e(2.71828)\n");
	printf ("	可以用 set 設置顯示精度(prec)(默認是 6 )\n");
	printf ("	說明:只用用字母序列作為變量名,輸入 help 可得到幫助\n\n");

}

void InitVvar (
	void
	)
{
	VARIABLE *tmp;
	OPERAND  NewOperand;
	NewOperand.DataSignal = FLOAT;
	NewOperand.Data.Real = 3.1415926535897932385;
	VariableList = NewVarNode ("pai",NewOperand);
	if (VariableList == NULL) {
		error = memmory_allocation_failed;
		return;
	}
	VariableListTail = VariableList;
	NewOperand.Data.Real = 2.7182818284590452354;
	tmp = NewVarNode ("e",NewOperand);
	if (VariableList == NULL) {
		error = memmory_allocation_failed;
		return;
	}
	VariableListTail = InsertVarNode (VariableListTail,tmp);
}

void FreeCMD (
	void
	)
{
	int i;
	for (i = 0;i < 2;i ++) {
		if (Command[i] != NULL) {
			free (Command[i]);
			Command[i] = NULL;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品欧美福利在线观看| 免费在线观看日韩欧美| 欧美性受xxxx| 国产老妇另类xxxxx| 欧美aa在线视频| www.久久久久久久久| 国产主播一区二区| 美女在线观看视频一区二区| 亚洲影院理伦片| 激情欧美一区二区三区在线观看| 国产成人午夜精品影院观看视频| 国产一区二区三区av电影| 国产精品资源在线看| 欧美喷潮久久久xxxxx| 日韩三级免费观看| 日韩女优电影在线观看| 26uuuu精品一区二区| 欧美变态tickling挠脚心| 精品久久久久久久人人人人传媒 | 91成人看片片| 日本道精品一区二区三区| 国产日韩欧美电影| 国产精品免费视频一区| 日韩理论片在线| 亚洲品质自拍视频网站| 亚洲一区二区三区四区在线免费观看| 国产精品综合一区二区三区| 日韩免费在线观看| 久久草av在线| 色偷偷88欧美精品久久久| 91精品国产综合久久精品| 国产日韩精品视频一区| 美日韩一区二区三区| 欧美男女性生活在线直播观看| 亚洲午夜久久久久久久久电影院| 日韩精品久久理论片| 激情久久五月天| 精品999在线播放| 亚洲一区二区三区四区五区黄| 久久久亚洲综合| 中文字幕亚洲区| 久久成人免费网站| 久久久久国产免费免费| 国产成人精品亚洲午夜麻豆| 国产三区在线成人av| 亚洲午夜影视影院在线观看| 在线视频亚洲一区| 日本一区二区免费在线| 不卡的av在线| 久久久www免费人成精品| 丰满放荡岳乱妇91ww| 日韩精品专区在线影院重磅| 久久av资源网| 国产精品久久久久久久午夜片| 日本中文一区二区三区| 一本色道久久综合亚洲91| 亚洲国产视频一区二区| 日韩欧美一卡二卡| 成人蜜臀av电影| 久久精品综合网| 91在线精品一区二区三区| 久久精品一二三| 色哟哟亚洲精品| 久久精工是国产品牌吗| 中文字幕在线观看一区| 51精品秘密在线观看| 国产一区二区三区四| 国产精品成人免费| 日韩你懂的在线观看| 91亚洲国产成人精品一区二三 | 欧美日韩国产综合视频在线观看| 蜜桃视频在线观看一区| 日本一区二区三区电影| 在线综合视频播放| www.在线成人| 国产在线精品一区在线观看麻豆| 亚洲激情图片小说视频| 日本丶国产丶欧美色综合| 久久99九九99精品| 日韩精品在线一区| 日本久久电影网| 国产成人自拍网| 日韩不卡一区二区三区| 日韩一区中文字幕| 精品免费99久久| 欧美色中文字幕| 99re视频精品| 国产91清纯白嫩初高中在线观看| 视频一区中文字幕| 一区二区三区欧美在线观看| 欧美色涩在线第一页| 亚洲一本大道在线| 中文字幕av一区二区三区| 波多野结衣中文字幕一区| 精品一区二区三区免费视频| 亚洲国产一区二区三区| 亚洲欧美一区二区三区久本道91| 国产亚洲欧美日韩在线一区| 91精品国产aⅴ一区二区| 精品视频在线看| 91国偷自产一区二区三区成为亚洲经典 | 91尤物视频在线观看| 国产成人精品一区二区三区四区| 久久国产精品99精品国产| 青娱乐精品视频在线| 天天综合天天做天天综合| 亚洲精品在线三区| 日韩美女一区二区三区| 欧美一级二级三级乱码| 制服丝袜av成人在线看| 欧美日韩1区2区| 制服丝袜成人动漫| 日韩一区二区三区电影在线观看 | 午夜精品久久久久久久| 一区二区欧美精品| 亚洲精品乱码久久久久久久久| 国产精品家庭影院| 亚洲精品成人精品456| 亚洲精品视频在线看| 亚洲一区二区五区| 日韩精品乱码av一区二区| 日韩avvvv在线播放| 蜜桃一区二区三区在线观看| 激情小说亚洲一区| 粉嫩蜜臀av国产精品网站| 99re热这里只有精品免费视频| 91蝌蚪porny九色| 欧美日韩一区二区在线视频| 欧美一区二区三区系列电影| 日韩欧美在线网站| 中文字幕成人av| 亚洲电影视频在线| 亚洲嫩草精品久久| 亚洲成年人网站在线观看| 久久精品国产亚洲aⅴ | 秋霞成人午夜伦在线观看| 免费人成黄页网站在线一区二区| 极品美女销魂一区二区三区| 成人三级在线视频| 欧美性极品少妇| 久久综合九色欧美综合狠狠| 国产精品久久久久永久免费观看 | 国产不卡免费视频| 色综合色综合色综合| 日韩限制级电影在线观看| 欧美国产一区视频在线观看| 亚洲综合色网站| 国产在线播放一区| 色综合天天狠狠| 精品福利一区二区三区免费视频| 中文字幕视频一区二区三区久| 亚洲国产三级在线| 国产黄色成人av| 欧美日韩大陆一区二区| 国产欧美视频在线观看| 亚洲综合色噜噜狠狠| 国产美女精品在线| 欧美视频一区在线| 国产精品麻豆久久久| 蜜桃在线一区二区三区| 欧洲一区二区三区在线| 欧美激情在线免费观看| 日本中文字幕一区二区有限公司| 99久久久久久99| 国产亚洲制服色| 日av在线不卡| 欧美亚洲精品一区| 亚洲欧美日韩在线播放| 国产一区不卡视频| 日韩欧美国产一区二区三区 | 又紧又大又爽精品一区二区| 久久精品99国产精品日本| 欧美少妇一区二区| 1024成人网色www| 国产91精品精华液一区二区三区| 日韩三级视频在线观看| 亚洲国产成人91porn| 91视视频在线观看入口直接观看www| 精品毛片乱码1区2区3区 | 亚洲九九爱视频| 丰满少妇久久久久久久| 久久综合色一综合色88| 乱一区二区av| 精品少妇一区二区三区免费观看 | 粉嫩在线一区二区三区视频| 精品入口麻豆88视频| 免费人成黄页网站在线一区二区| 欧美亚洲国产一区二区三区| 亚洲欧美综合色| 99久久免费视频.com| 国产精品久久久久久久岛一牛影视| 国产一区二区三区av电影| 欧美va在线播放| 黑人巨大精品欧美黑白配亚洲 | 欧美二区三区91| 久久久久久麻豆| 国产伦精品一区二区三区视频青涩| 欧美α欧美αv大片| 老司机免费视频一区二区| 欧美成人a∨高清免费观看|