C语言实现计算器功能.docx
- 文档编号:24797970
- 上传时间:2023-06-01
- 格式:DOCX
- 页数:13
- 大小:40.66KB
C语言实现计算器功能.docx
《C语言实现计算器功能.docx》由会员分享,可在线阅读,更多相关《C语言实现计算器功能.docx(13页珍藏版)》请在冰豆网上搜索。
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;
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 实现 计算器 功能
![提示](https://static.bdocx.com/images/bang_tan.gif)