收藏 分销(赏)

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

上传人:丰**** 文档编号:5411915 上传时间:2024-10-31 格式:DOC 页数:11 大小:367.50KB 下载积分:8 金币
下载 相关 举报
C语言实现计算器功能.doc_第1页
第1页 / 共11页
C语言实现计算器功能.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
实验一 多功能计算器 一、问题描述 设计一个多功能计算器,可以完成基本的计算。 设计要求: 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 测试目的:测试是否能正确退出程序 测试输出: 附录:源代码(附上全部源代码,且不能雷同) #include<stdio.h> #include"windows.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 '-':num3=num1-num2;break; case '*':num3=num1*num2;break; case '/':num3=num1/num2;break; } printf("%d",num3); } //清除屏幕 void qingping() { system("cls"); } //显示菜单 void fanhuicaidan() { printf(" 菜单\n"); printf("a.算术运算\n"); printf("b.表达式运算\n"); printf("c.清屏重做\n"); printf("r.返回菜单\n"); printf("t.退出程序\n"); } void main() { char num1; //用于存放选择的菜单选项 int pd; //用于存放是否继续算术运算的选择项 printf(" 菜单\n"); //先显示菜单 printf("a.算术运算\n"); printf("b.表达式运算\n"); printf("c.清屏重做\n"); printf("r.返回菜单\n"); printf("t.退出程序\n"); while(1) { rewind(stdin); //清除键盘缓冲区 printf("\nplease chose one letter from \"a,b,c,r,and t\"\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; } }
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服