- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言实现计算器功能
实验一 多功能计算器
一、问题描述
设计一个多功能计算器,可以完成基本的计算。
设计要求:
1.具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按‘C’清屏,按‘R’返回 菜单。
例如:输入:2
+
5
输出:7
2.实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下:
例如:输入:2+5
输出:7
二、算法说明
1.数据结构说明(可以图示说明,也可以文字说明)
本程序主要根据选择菜单编写了六个自定义函数,用于在main()函数中调用,在main()中,用一个字符变量num1来记录下菜单选项的标号,根据num1的值来决定调用哪个函数。
程序要完成的功能及所要用到的函数如下:
下面是整个程序的流程图:
2.算法说明(即函数说明)
void suanshuyunsuan() //做算术运算时调用的函数
void suanshuyunsuan2() //选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数 //判断算术运算是否继续
void panduan() //判断算术运算是否继续
void biaodashiyunsuan() //单运算符表达式实现函数
void qingping() //清除屏幕
void fanhuicaidan() //显示菜单
三、测试结果(这部分需文字与图示结合)
1.第一组测试用例
(1)测试输入:
测试目的:测试算术运算的功能
结果输出:
(2)再一次输入:1
测试目的:测试算术运算是否能继续
结果输出:
(3)这时输入:0
测试目的:退出算术运算
结果输出:
2.第二组测试用例
测试输入:
测试目的:测试单运算符表达式函数
结果输出:
3.第三组测试用例
测试输入:c
测试目的:测试输入c是否能清屏
测试输出:
4.第四组测试用例
测试输入:r
测试目的:测试返回菜单函数
测试输出:
5. 第五组测试用例
测试输入:t
测试目的:测试是否能正确退出程序
测试输出:
附录:源代码(附上全部源代码,且不能雷同)
#includestdio.h
#includewindows.h
double z; //定义全局变量用来存放算术运算前一次的结果
//做算术运算时调用的函数
void suanshuyunsuan()
{
char fh,hh1,hh2; //hh1与hh2是用来存放回车字符的
double num1,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);
}
//选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数
void suanshuyunsuan2()
{
double num1;
char fh;
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);
}
//判断算术运算是否继续
void panduan()
{
printf(是否结束运算?\n);
printf(0.是 );
printf(1.否\n);
printf(请选择0或1:);
}
//单运算符表达式实现函数
void biaodashiyunsuan()
{
int num1,num2,num3;
char fh;
printf(输入:);
scanf(%d%c%d,num1,fh,num2);
printf(结果:=);
switch(fh)
{
case +:num3=num1+num2;break;
case -:n
您可能关注的文档
- 2017腰痛优势病种.doc
- 2017郑州市小升初英语真题.docx
- 2017部编本二年级风 第二课时.ppt
- 2017秋期河南省南阳市卧龙区七年级数学期中测试卷.doc
- 2018--2019第一学期保教工作计划.doc
- 2017跨年个性签名.doc
- 2018.1.24腊八施粥方案.pptx
- 2018-2019年度郑州四县联考九年级语文 期中卷 答案.pdf
- 2018-2019第一学期江苏省江阴市华士片初三语文试题及答案.doc
- 20180316龙太聪在集团公司巡视组对广安公司开展巡视工作动员会上的表态发言.doc
- 部编版小学四年级下册道德与法治《期末测试卷》及完整答案(考点梳理).docx
- 部编版小学四年级下册道德与法治《期末测试卷》及答案.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及完整答案(考点梳理).docx
- 部编版小学四年级下册道德与法治《期末测试卷》及参考答案(达标题).docx
- 2025至2030年接续管项目商业计划书.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及答案【夺冠】.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及答案【精选题】.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及答案【各地真题】.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及答案【易错题】.docx
- 部编版小学四年级下册道德与法治《期末测试卷》及参考答案(预热题).docx
文档评论(0)