C语言实现计算器功能复习过程.docx
《C语言实现计算器功能复习过程.docx》由会员分享,可在线阅读,更多相关《C语言实现计算器功能复习过程.docx(14页珍藏版)》请在冰豆网上搜索。
C语言实现计算器功能复习过程
实验一多功能计算器
一、问题描述
设计一个多功能计算器,可以完成基本的计算。
设计要求:
1.具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。
依次输入第一个运算数、运算符(+,-,*,/)、第二个运算数,然后输出结果。
结果可以作为下一个运算的第一运算数。
按‘C’清屏,按‘R’返回菜单。
例如:
输入:
2
+
5
输出:
7
2.实现单运算符表达式计算的功能。
输入的操作数可以包含整数或浮点数。
输入表达式如下:
例如:
输入:
2+5
输出:
7
二、算法说明
1.数据结构说明(可以图示说明,也可以文字说明)
本程序主要根据选择菜单编写了六个自定义函数,用于在main()函数中调用,在main()中,用一个字符变量num1来记录下菜单选项的标号,根据num1的值来决定调用哪个函数。
程序要完成的功能及所要用到的函数如下:
下面是整个程序的流程图:
2.算法说明(即函数说明)
voidsuanshuyunsuan()//做算术运算时调用的函数
voidsuanshuyunsuan2()//选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数//判断算术运算是否继续
voidpanduan()//判断算术运算是否继续
voidbiaodashiyunsuan()//单运算符表达式实现函数
voidqingping()//清除屏幕
voidfanhuicaidan()//显示菜单
三、测试结果(这部分需文字与图示结合)
1.第一组测试用例
(1)测试输入:
测试目的:
测试算术运算的功能
结果输出:
(2)再一次输入:
1
测试目的:
测试算术运算是否能继续
结果输出:
(3)这时输入:
0
测试目的:
退出算术运算
结果输出:
2.第二组测试用例
测试输入:
测试目的:
测试单运算符表达式函数
结果输出:
3.第三组测试用例
测试输入:
c
测试目的:
测试输入c是否能清屏
测试输出:
4.第四组测试用例
测试输入:
r
测试目的:
测试返回菜单函数
测试输出:
5.第五组测试用例
测试输入:
t
测试目的:
测试是否能正确退出程序
测试输出:
附录:
源代码(附上全部源代码,且不能雷同)
#include
#include"windows.h"
doublez;//定义全局变量用来存放算术运算前一次的结果
//做算术运算时调用的函数
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);//输入一个数用于判断是选择了哪一个菜单项
300元以下918%if(num1=='a')//选择了做算术运算
{
市场环境所提供的创业机会是客观的,但还必须具备自身的创业优势,才能使我们的创业项目成为可行。
作为大学生的我们所具有的优势在于:
suanshuyunsuan();
与此同时,上海市工商行政管理局也对大学生创业采取了政策倾斜:
凡高校毕业生从事个体经营的,自批准经营日起,1年内免交登记注册费、个体户管理费、集贸市场管理费、经济合同鉴证费、经济合同示范文本工本费等,但此项优惠不适用于建筑、娱乐和广告等行业。
panduan();
scanf("%d",&pd);
while(pd)//继续做算术运算时就循环
{
世界上的每一个国家和民族都有自己的饰品文化,将这些饰品汇集到一起再进行新的组合,便可以无穷繁衍下去,满足每一个人不同的个性需求。
suanshuyunsuan2();
panduan();
scanf("%d",&pd);
综上所述,DIY手工艺品市场致所以受到认可、欢迎的原因就在于此。
我们认为:
这一市场的消费需求的容量是极大的,具有很大的发展潜力,我们的这一创业项目具有成功的前提。
}
}
if(num1=='b')//选择了做单运算符表达式运算
(二)对“碧芝”自制饰品店的分析biaodashiyunsuan();
上海市劳动和社会保障局所辖的“促进就业基金”,还专门为大学生创业提供担保,贷款最高上限达到5万元。
if(num1=='c')//清屏
qingping();
“碧芝”隶属于加拿大的beadworks公司。
这家公司原先从事首饰加工业,自助首饰的风行也自西方,随着人工饰品的欣欣向荣,自制饰品越来越受到了人们的认同。
1996年'碧芝自制饰品店'在迪美购物中心开张,这里地理位置十分优越,交通四八达,由于是市中心,汇集了来自各地的游客和时尚人群,不用担心客流量问题。
迪美有300多家商铺,不包括柜台,现在这个商铺的位置还是比较合适的,位于中心地带,左边出口的自动扶梯直接通向地面,从正对着的旋转式楼拾阶而上就是人民广场中央,周边4、5条地下通道都交汇于此,从自家店铺门口经过的90%的顾客会因为好奇而进看一下。
if(num1=='r')//显示菜单
fanhuicaidan();
图1-2大学生购买手工艺品可接受价位分布if(num1=='t')//退出程序
break;
我们长期呆在校园里,对社会缺乏了解,在与生意合作伙伴应酬方面往往会遇上困难,更不用说商业上所需经历的一系列繁琐手续。
他们我们可能会在工商局、税务局等部门的手续中迷失方向。
对具体的市场开拓缺乏经验与相关的知识,缺乏从职业角度整合资源、实行管理的能力;}
}