用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.

用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.,第1张

#include<iostream>

#include<cmath>

#include<string>

using

namespace

std;

const

double

pi

=

314159265;

const

double

e

=

2718281828459;

const

int

SIZE

=

1000;

typedef

struct

node//为了处理符号而建立的链表(如:

1+(-2))

{

char

data;

node

next;

}node;

typedef

struct

stack_num//存储

的栈

{

double

top;

double

base;

}stack_num;

typedef

struct

stack_char//存储

运算符号

的栈

{

char

top;

char

base;

}stack_char;

stack_num

S_num;//定义

stack_char

S_char;//定义

char

fu[18]

=

{'\n',

')',

'+',

'-',

'',

'/',

'%',

'^',

'Q',

'L',

'C',

'S',

'T',

'c',

's',

't',

'('};

int

compare[1000];//表现出各运算符号的优先级

double

shu[1000];//存储

"数"

的数组

double

dai_result;//运算的结果,是为了处理

M

运算(简介函数里有M的定义)

int

biao

=

0;//和dia_result

一样,为了处理

M

运算

char

line[SIZE];//输入的所要计算的表达式

void

init()//初始化

{

compare[fu[0]]

=

-2;//用数字的大小表现出符号的优先级

compare[fu[1]]

=

-1;

compare[fu[2]]

=

2;

compare[fu[3]]

=

2;

compare[fu[4]]

=

4;

compare[fu[5]]

=

4;

compare[fu[6]]

=

4;

compare[fu[7]]

=

5;

for(int

i

=

8;

i

<=

15;

i++)

compare[fu[i]]

=

6;

compare[fu[16]]

=

7;

S_numbase

=

(double)malloc(sizeof(double)SIZE);//为栈开辟空间

S_charbase

=

(char)malloc(sizeof(char)SIZE);//同上

S_numtop

=

S_numbase;

S_chartop

=

S_charbase;

}

void

push_num(double

n)//数字进栈

{

++S_numtop

=

n;

}

void

push_char(char

c)//运算符号进栈

{

++S_chartop

=

c;

}

double

pop_num()//数字出栈

{

double

m

=

S_numtop;

S_numtop--;

return

m;

}

char

pop_char()//运算符号出栈

{

char

cc

=

S_chartop;

S_chartop--;

return

cc;

}

char

get_top_char()//得到运算符号的栈中最顶端的运算符号

{

return

S_chartop;

}

double

operate(double

y,

char

c,

double

x)//

对两个数计算

(

含是双目运算符

:

,

/

等等

)

{

double

r;

if(c

==

'-')

r

=

x

-

y;

else

if(c

==

'+')

r

=

x

+

y;

else

if(c

==

'/'

&&

y

!=

0)

r

=

x

/

y;

else

if(c

==

'')

r

=

x

y;

else

if(c

==

'^')

{

r

=

1;

for(int

i

=

1;

i

<=

y;

i++)

r

=

x;

}

else

if(c

==

'%')

{

int

r0

=

(int)x

%

(int)y;

r

=

double(r0);

}

return

r;

}

double

operate_one(double

one,

char

cc)//

对一个数运算

(

含单目运算符

:

log(L),

sin(S)

等等

)

{

double

r;

if(cc

==

'Q')

r

=

sqrt(one);

else

if(cc

==

'C')

r

=

cos(one);

else

if(cc

==

'S')

r

=

sin(one);

else

if(cc

==

'T')

r

=

tan(one);

else

if(cc

==

'c')

i++;

}

i++;

}

if(ge

>=

3)

return

0;

else

return

1;

}

void

output(double

result)//

打出结果

{

printf("

所得结果是

:

");

cout<<result<<endl;

}

void

check()//

检查表达式是否合法

{

void

introduce();

char

cc;//

决定计算器按哪种功能进行计算

double

result;//

结果

void

input();//

定义

if(

check_kuohao()

&&

check_char()

)//

看是否合法

,

合法则计算

{

result

=

compute();

output(result);

cout<<"

输入一个字符

'M'

'D'

'F',

决定是否继续

:

"<<endl;

while(cin>>cc)

{

if(cc

==

'M')

{

system("cls");

introduce();

printf("

您上次所得结果为

:

");

cout<<result<<endl;

cout<<"

在上次计算结果的基础上

,

请继续输入想计算的表达式

"<<endl;

dai_result

=

result;

biao

=

1;

input();//

输入表达式

break;

}

else

if(cc

==

'D')

{

system("cls");

introduce();

cout<<"

计算器已清零

,

请输入您所要计算的表达式

"<<endl;

input();//

输入表达式

break;

}

else

if(cc

==

'F')

{

system("cls");

cout<<"

计算器关闭

,

谢谢使用

!"<<endl;

break;

}

else

{

cout<<"

所输入字符无效

,

请输入一个字符

'M'

'D'

'F'!"<<endl;

continue;

}

}

}

else//

不合法,分两种不合法

{

if(check_kuohao()

==

0

&&

check_char()

==

1)

{

cout<<"

您所输入的表达式括号不匹配

,

请重新输入

:"<<endl;

input();//

输入表达式

}

else

{

cout<<"

您所输入的表达式不合法

,

请重新输入

:"<<endl;

input();//

输入表达式

}

}

}

void

tackle_fuhao()//

处理负号

{

node

root,

head,

p,

q,

p1;

root

=

head

=

new

node;

head->next

=

NULL;

int

i;

for(i

=

0;

line[i]

!=

'\0';

i++)//

建立链表

{

p

=

new

node;

p->data

=

line[i];

p->next

=

head->next;

head->next

=

p;

head

=

p;

}

//

delete

p;

q

=

(node)malloc(sizeof(node));

head

=

root;

if(root->next->data

==

'+'

||

root->next->data

==

'-')//

处理第一个字符

{

p

=

new

node;

p->data

=

'0';

p->next

=

head->next;

head->next

=

p;

}

if(root->next

!=

NULL)

{

for(q

=

root->next;

q;

q

=

q->next)

{

if(q->data

==

'('

&&

(q->next->data

==

'-'

||

q->next->data

==

'+'))

{

p

=

new

node;

p->data

=

'0';

p->next

=

q->next;

q->next

=

p;

}

}

}

//

delete

q;

p1

=

new

node;

int

qi

=

-1;

for(p1

=

root->next;

p1;

p1

=

p1->next)

{

line[++qi]

=

p1->data;

}

line[++qi]

=

'\0';

}

void

input()//

输入

{

cin>>line;

if(biao

==

0)

tackle_fuhao();//

处理负号

check();//

检查表达式是否合法

}

void

introduce()//

对计算器的符号功能的简要介绍

{

cout<<"

计算器简要介绍

"<<endl;

cout<<"C(cos)

S(sin)

T(tan)

a(arccos)

c(arcsin)

"<<endl;

cout<<"7

8

9

/

on

t(arctan)

"<<endl;

cout<<"4

5

6

%

L(log)"<<endl;

cout<<"1

2

3

-

M(M+)

Q(sqrt)

"<<endl;

cout<<"0

+

^(

乘方

)

F(off)

Enter(=)

"<<endl;

cout<<"

对于对数输入

L2_5

表示以

2

为底

5

的对数

"<<endl;

cout<<"M(

在前面结果的基础上继续计算,

如:

上次结果为

10

现输入

+1052)"<<endl;

cout<<"D(

清零并继续输入

)"<<endl;

cout<<"F(

计算机关闭

)"<<endl;

cout<<"

输入

P

就代表输入圆周率

,

输入

E

代表输入自然对数

"<<endl<<endl;

}

void

print()

{

system("color

2");

cout<<"

欢迎使用本计算器

"<<endl;

cout<<"

输入一个字符串

on,

计算器开始启动

"<<endl;

}

void

if_start()//

是否启动计算器

{

string

start;

print();

while(cin>>start)

{

if(start

!=

"on")

{

cout<<"

您所输入的字符无效

,

请按照介绍的继续输入

:"<<endl;

continue;

}

else

break;

}

if(start

==

"on")

{

system("color

5");//

颜色的处理

system("cls");//

刷屏

}

introduce();//

对计算器的简要介绍

cout<<"

现在

,

请输入您所要计算的表达式

"<<endl;

input();//

输入所要计算的表达式

}

int

main()

{

if_start();//

调用是否启动计算器函数

return

0;

}

r

=

acos(one);

else

if(cc

==

's')

r

=

asin(one);

else

if(cc

==

't')

r

=

atan(one);

可以使用系统自带的造字程序。

1、打开win7系统中的开始菜单→所有程序→附件→系统工具;

2、然后选择打开专用字符编辑程序;

3、在运行中输入:eudceditexe 点击确定(或按回车键)也能打开专用字符编辑程序;

4、打开专用字符编辑程序,会d出选择编码的提示框,首次使用,点击确定即可;

5、d出编辑框之后,再点击工具栏上的窗口→参照;

6、尽量利用现成的偏旁,这样造出来的文字比较规范好看;

7、比如石字偏旁加一个太字,这个字的拼音是:dài ,地名用字。

8、首先找到右边是太字的文字。借用文字是:呔,代码是:5454;

9、在找到左边是石的文字,例如“硕”。

10、制作好之后,保存一下自造字;

11、并及在拼音短语中输入:dai=石太(此字只能在已经编辑过的电脑中显示)。

现在房价一直在上涨,所以大多数业主都希望翻新旧房子。 因此,了解装修前的旧房装修过程非常重要。 大家居装饰怎么样? 老房子的装修程序是什么? 在土巴兔小编下​​面供大家介绍。

大业美家家居装饰老家装修工艺工艺

大业美家家居装饰简介:

北京大冶美佳家居装饰是一家专业从事别墅装修装修服务的新型诚信家装企业,服务对象涵盖 富裕的精英和客户拥有高品质的家居装修需求。 提供的服务包括案例审查,风水调查,室内设计,建筑,主要材料采购和配件服务。

Daiye Meijia Brand被定位为“中国别墅·大家家居解决方案专家”; Daye Meijia专注于为成功人士创造高品质和精致的家居生活。

老房子装修过程:

第一步,拆迁

老房子一般是自己设计和装修的。 经过多年的使用,瓷砖可能会脱落,地板也不会从正面变化。 表面也可能被灰尘覆盖,如果要重新装修,则需要将其移除。 当去除老化的瓷砖时,一些墙壁的壁皮可能开始脱落,因此需要完全去除墙壁皮肤,以便随后的翻新可以产生良好的效果。

二,重新设计

由于建设时间长,老房子有一定的不合理现象。 如果你想让你的房子更人性化,你可以选择重新设计,但你需要注意它。 如果您发现需要拆除某些墙壁,您必须要求专业人员确定墙壁是否是地板的承重墙。 承载墙不能拆除。 拆除后会非常危险。 因此,有必要在继续之前确定详细设计。

大业美家家居装饰老房子装修过程需要知道

第三步,墙面翻新

可以通过设计使房屋布局更合理,可以增加玄关,装饰墙面 ,并重新做上限。 对于墙壁和地面的装饰,它在老房子的装饰过程中是必不可少的。 对于墙壁,您可以选择便于构造且颜色鲜艳的涂料。 您还可以选择视觉和触感多样化的壁纸,并根据自己的需要将内墙装饰成您喜欢的风格。 在地面上选择装饰材料时,您可以选择硬装,防潮,色彩斑斓的瓷砖或大理石瓷砖。 您也可以选择温和的木地板,并可以调节室内湿度。 不同的材料有不同的装修风格。

第四步,浴室厨房的翻新

浴室和厨房的奢华现在是一个全新的时尚设计家居,你可以为你的浴室铺设漂亮的瓷砖,如果你想要更个性化的设计,你可以选择马赛克马赛克 风格,防水,防腐,美观。 如果条件允许,您可以更换浴缸,让生活更舒适,更轻松。 对于厨房,您可以选择一体式橱柜,这不仅可以解决设计问题,而且可以更有效地利用空间,使厨房更加方便。

第五步,更换家具

装饰通常需要更换匹配的家具。 整体协调的家具也使旧房子焕然一新。 衣柜,双人床,沙发,餐桌,椅子,工作平台应和谐。 无论是现代金属元素还是古朴天然的木质材料,老房子的整体装饰都有更好的体验。

关于大冶美佳家居装修和老房子的装修过程,土巴兔小编供大家介绍,现在大家都明白了。 当您装修旧房子时,您可以根据装修过程进行装饰,因此经过翻新的旧房子非常时尚。 有关大雅美家居装饰的更多信息,请登录土巴兔查看相关信息。

土巴兔在线免费为大家提供“各家装修报价、1-4家本地装修公司、3套装修设计方案”,还有装修避坑攻略!点击此链接:

一、企业实收资本金做验资出验资报告所需要的材料有:

1.公司全套证件

2.法人股东身份z原件

3.公章、财务章、法人章

4 公司章程

5.银行开户许可证、机构信用代码证、银行网银

二、流程:在基本户里验资,需要股东按比例把钱存入基本户里,由律师事务所出具验资报告,如果dai缴的话需要新开一般户,待账户激活后股东还是按比例入资,出具验资报告即可。

以上就是关于用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.全部的内容,包括:用C语言编写一个计算器程序,实现加,减,乘,除,求平方根(正数),倒数等功能.、怎么自己在电脑上造字、大业美家家居装饰,老房子装修流程须知等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10079607.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存