C语言实现计算器功能.docx

上传人:b****3 文档编号:11581988 上传时间:2023-06-01 格式:DOCX 页数:13 大小:40.66KB
下载 相关 举报
C语言实现计算器功能.docx_第1页
第1页 / 共13页
C语言实现计算器功能.docx_第2页
第2页 / 共13页
C语言实现计算器功能.docx_第3页
第3页 / 共13页
C语言实现计算器功能.docx_第4页
第4页 / 共13页
C语言实现计算器功能.docx_第5页
第5页 / 共13页
C语言实现计算器功能.docx_第6页
第6页 / 共13页
C语言实现计算器功能.docx_第7页
第7页 / 共13页
C语言实现计算器功能.docx_第8页
第8页 / 共13页
C语言实现计算器功能.docx_第9页
第9页 / 共13页
C语言实现计算器功能.docx_第10页
第10页 / 共13页
C语言实现计算器功能.docx_第11页
第11页 / 共13页
C语言实现计算器功能.docx_第12页
第12页 / 共13页
C语言实现计算器功能.docx_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言实现计算器功能.docx

《C语言实现计算器功能.docx》由会员分享,可在线阅读,更多相关《C语言实现计算器功能.docx(13页珍藏版)》请在冰点文库上搜索。

C语言实现计算器功能.docx

C语言实现计算器功能

实验一多功能计算器

一、问题描述

设计一个多功能计算器,可以完成基本的计算。

设计要求:

1.具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。

依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。

结果可以作为下一个运算的第一运算数。

按’C清屏,按’R'返回菜单。

例如:

输入:

2

+

5

输出:

7

2.实现单运算符表达式计算的功能。

输入的操作数可以包含整数或浮点数。

输入表达式如下:

例如:

输入:

2+5

输出:

7

二、算法说明

1.数据结构说明(可以图示说明,也可以文字说明)

本程序主要根据选择菜单编写了六个自定义函数,用于在main()函数中调用,在main()中,用一个字符变量num1来记录下菜单选项的标号,根据num1的值来决定调用哪个函数。

程序要完成的功能及所要用到的函数如下:

菜IYl-

算术运算

a

卑运篡符表达

b

清屏

C

返回菜单

E

退岀程序

t

F面是整个程序的流程图:

使用各菜单分别调用的函数

'≡ua∩ξhuyun≡uanO

■>SUanShUyUnSLLan2

panduan()

>biaodashiyunsuan0

>QirLgPing()

>fanhuicaidan()

2•算法说明(即函数说明)

VoidSUanshuyunsuan()//做算术运算时调用的函数

VoidSUanshuyunsuan2()//选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数〃判断算术运算是否继续

voidPanduan()〃判断算术运算是否继续

voidbiaodashiyunsuan()〃单运算符表达式实现函数

voidqingping()〃清除屏幕

voidfanhuicaidan()//显示菜单

三、测试结果(这部分需文字与图示结合)

1•第一组测试用例

(1)测试输入:

(≡Γf;I学习\匚语言程序设计实习'实验一IlkbII丛匚语言实验一一

算运做单序单运式重菜程菜术达屏回出-僅-≡扁腿-≡abort

PleaSeChOSeOneIQtterfroma,b,cjrjandta

输入:

2

+

5

测试目的:

测试算术运算的功能结果输出:

算一算运做单序单运式重菜程菜术达屏回出算表清返退abCrt

pleaseChoSeOneIetterfromndt

a

输入:

2

+

结果八

7.00Θ0ΘO

是否结束运算?

■是1•否

请选择®或1》:

(2)再一次输入:

1

测试目的:

测试算术运算是否能继续

结果输出:

PleaSQchoseOneIetterfrom"a1bτcIrJandt,,

⅛JΛ=2+

结果加

7・ΘΘΘΘOG

是否结束运算?

GL是1•否

请选择。

或1>:

1

7.000000

×

2

I结果:

=

1⅛.Θ00Θ0Θ

是否结束运算?

0堤1•否

(3)这时输入:

0

测试目的:

退出算术运算

结果输出:

pleasechoseOneIetterfrom"a,b,c,r,andt"a

输入煜

÷

7*ΘΘΘΘΘΘ

是否结束运算?

∩⅛T否

请选择Θ⅛1>^Q

pleasechoseoneIetterfrom,,Btb,c,r,andt"

2•第二组测试用例

测试输入:

PIeaSeChOSeOneIetterfrom,,a1btcFrTendtb

输入:

3+5

测试目的:

测试单运算符表达式函数

结果输出:

aHmplb输结Pl

Letterfroma,bφc1r,andt

Ietterfrom,,a,bfc,r,andt

3•第三组测试用例

测试输入:

C

国"F:

\学习匹语言程序设计实习\实验"'IkbTigUJ语書欢验一.

J=J□j×

嘉入总

+

⅛≡:

=

7.000000

I是否结束运算?

S是•否

请选择0或1〉:

1

7,ΘOΘΘ00

2

结果"

14.Θ0ΘΘΘΘ

是否结束运算?

◎是■!

諸i⅛择O或1》:

®

PleaSeChOSeOneIetto厂from"arb9ctr,andtlib

输入:

3+5

结果心

测试目的:

测试输入C是否能清屏

测试输出:

PIeaSeChOSeOneIetterfrom"a,b,cfrsandt,i

4•第四组测试用例

测试输入:

r

学习订语言程序设计实討\实验一∖%b町E:

语言冥验十二La

PIeaSeChOSeOneIette厂from"apb,clr,andt

测试目的:

测试返回菜单函数

测试输出:

 

鈕"F:

'学封辽语言程序设计实习\实1^—∖Debug'⅛C语言实验1,ex∈

Cho^eOneletterfrom,,a1b,CFr7anctfr

算运做单序单运式重菜程菜术达屏回出算表清返退

ChoSeOneIetterfromBIbICTrPanClt

Ietterfrom

rfandt

choseOneletterfromajb,cjr,andt,

5.第五组测试用例

测试输入:

t

算运做单序单运式重菜程菜术达屏回出算表清返退

测试目的:

测试是否能正确退出程序

 

测试输出:

PleaSeChOSeOneIetfrom"aib,c,rfandt

菜单

"算术运算b.表达式运算G清屏重]故r∙返回菜单t∙退出程序

PIeaSechoseOneIetterfromlta,b,CJrJandt"

PreSSanykeytoCOntinUe

附录:

源代码(附上全部源代码,且不能雷同)

#inClUdevStdio.h>

#include"windows.h"

double乙//定义全局变量用来存放算术运算前一次的结果

〃做算术运算时调用的函数

voidSUanshuyunSUan()

{

Charfh,hh1,hh2;//hh1与hh2是用来存放回车字符的

doublenum1,num2;

Printf("输入:

");

SCanf("%lf%c%c%c%lf',&num1,&hh1,&fh,&hh2,&num2);

SWitCh(fh)//判断是做什么运算

{

CaSe'+':

Z=num1+num2;break;

CaSe'-':

Z=num1-num2;break;

CaSe'*':

Z=num1*num2;break;

CaSe'/':

Z=num1∕num2;break;

}

Printf("结果:

=");

Printf("\n%lf\n",z);

//选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数voidsuanshuyunsuan2()

{

doublenum1;

charfh;

printf("%lf\n",z);//首先输出前一次算术运算的结果

rewind(stdin);

scanf("%c%lf",&fh,&num1);

switch(fh)

{

case'+':

z=z+num1;break;

case'-':

z=z-num1;break;

case'*':

z=z*num1;break;

case'/':

z=z/num1;break;

}

printf("结果:

=");

printf("\n%lf\n",z);

}

//判断算术运算是否继续

voidpanduan()

{

printf("是否结束运算?

\n");

printf("0.是");

printf("1.否\n");

printf("请选择0或1>:

");

}

//单运算符表达式实现函数

voidbiaodashiyunsuan()

{

intnum1,num2,num3;

charfh;

printf("输入:

");

scanf("%d%c%d",&num1,&fh,&num2);

printf("结果:

=");

switch(fh)

{

case'+':

num3=num1+num2;break;

case'-':

num3=num1-num2;break;

case'*':

num3=num1*num2;break;

case'/':

num3=num1/num2;break;

}

printf("%d",num3);

//清除屏幕

voidqingping()

{

system("cls");

}

//显示菜单voidfanhuicaidan()

{

printf("菜单\n");

printf("a.算术运算\n");printf("b.表达式运算\n");printf("c.清屏重做\n");printf("r.返回菜单\n");printf("t.退出程序\n");

}

voidmain()

{

charnum1;//用于存放选择的菜单选项

intpd;//用于存放是否继续算术运算的选择项

printf("菜单\n");//先显示菜单

printf("a.算术运算\n");

printf("b.表达式运算\n");printf("c.清屏重做\n");printf("r.返回菜单\n");printf("t.退出程序\n");

while

(1)

{rewind(stdin);//清除键盘缓冲区printf("\npleasechoseoneletterfrom\"a,b,c,r,andt\"\n");scanf("%c",&num1);//输入一个数用于判断是选择了哪一个菜单项

if(num1=='a')//选择了做算术运算

{suanshuyunsuan();panduan();scanf("%d",&pd);while(pd)//继续做算术运算时就循环

{

suanshuyunsuan2();

panduan();

scanf("%d",&pd);

}

}

if(num1=='b')//选择了做单运算符表达式运算

biaodashiyunsuan();

if(num1=='c')//清屏

qingping();

if(num1=='r')//显示菜单

fanhuicaidan();

if(num1=='t')//退出程序

break;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2