计算器实验报告_第1页
计算器实验报告_第2页
计算器实验报告_第3页
计算器实验报告_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实 验 报 告课程名称:计算机软件基础学期:20011-2012学年第二学期成绩: 姓名:考号:实验名称:计算器 实验要求: 必作实验学时:2学时实验编号:3实验日期: 第2周完成日期:学院:机电工程学院专业 :年级: 2011级一、实验目的:1熟练掌握计算器的计算过程;本试验旨在帮助我们复习与巩固计算器的计算过程是如何实现的;二、实验内容: 编写并调试计算器的程序,介绍程序所能够达到的功能.程序如下:int main()char a80,*p,op;/定义char型数组a,指针变量*p,char型变量opint n=0,i;/定义整型变量n,i。n赋值0int data1,data2;/定

2、义整型变量data1,data2float output;定义浮点型变量outputscanf("%s",a);/按字符串格式从键盘输入到变量ap=&a0;/数组a的首元素地址赋给指针变量pwhile(*p !='0' && *p <='9' && *p>='0')/while条件循环,条件:*p指向的数组元素不是空字符并且小于等于9并且大于等于0p+;n+;/p移到下一地址,n+1data1=0;/data1赋值0for(i=0;i<n;i+)/for条件循环,条件:

3、i<np-;/p移到上一地址data1+=(*p-'0')*pow(10,i);/赋值data1,p指向的值转换成整数乘以10的i次幂p=p+n;op=*(p+);n=0;while(*p !='0' && *p <='9' && *p>='0')p+;n+;data2=0;for (i=0;i<n;i+)p-;data2+=(*p-'0')*pow(10,i);switch(op)case '+':output=data1+data2;bre

4、ak;case '-':output=data1-data2;break;case '*':output=data1*data2;break;case '/':output=(float)data1/data2;break;default:printf("wrong operatorn");return 0;printf("%5.2f",output);输入1+1;输出2;三、实验环境:Windows XP CT6.0;四、实验过程: 1)输入数据及运算符号首先输入运算符号a 80 实现语句scanf(&q

5、uot;%s",a);然后输入运算的数据;2)数据的计算,使用选择结构switch函数; 对于数据的四则运算进行处理switch(op)case '+':output=data1+data2;break;case '-':output=data1-data2;break;case '*':output=data1*data2;break;case '/':output=(float)data1/data2;break;default:printf("wrong operatorn");return 0

6、;printf("%5.2f",output);五、在实验中遇到的问题及解决方法:在实验中此语句(case '*':output=data1*data2;break;)运行不正确,因此在输出结果时没能够做出正确的运算内容;经过分析发现(break)忘记在后方加入,当其将break加入后结果就能正常的运行了;在实验期间我还遇到其他很多类似的内容,不是忘加“,”就是有的忘记加“;”但最总实验还是成功的编写正确了。 解决问题的方法:通过问指导老师和上网搜素进行的解决。六、实验总结:1)当我们在编写程序中,我们需要处处仔细切还要认真的一步步静下心来编写每一步,否则我

7、们会问题连连不断的出现;总之认真出结果仔细内容对。3体会和收获。 让我们了解到计算器是如何进行当我们输入一些数一步步往下运行的;C语言的编写于运行是自己对编写程序过程中,要仔细每一步的编写,分号的应用。 做到条理清晰分明。遇到问题要学会查找解决的方法(同学间的互相探讨,向指导老师求解等)七、原程序:int main()char a80,*p,op;/定义char型数组a,指针变量*p,char型变量opint n=0,i;/定义整型变量n,i。n赋值0int data1,data2;/定义整型变量data1,data2float output;定义浮点型变量outputscanf("

8、%s",a);/按字符串格式从键盘输入到变量ap=&a0;/数组a的首元素地址赋给指针变量pwhile(*p !='0' && *p <='9' && *p>='0')/while条件循环,条件:*p指向的数组元素不是空字符并且小于等于9并且大于等于0p+;n+;/p移到下一地址,n+1data1=0;/data1赋值0for(i=0;i<n;i+)/for条件循环,条件:i<np-;/p移到上一地址data1+=(*p-'0')*pow(10,i);/赋值

9、data1,p指向的值转换成整数乘以10的i次幂p=p+n;op=*(p+);n=0;while(*p !='0' && *p <='9' && *p>='0')p+;n+;data2=0;for (i=0;i<n;i+)p-;data2+=(*p-'0')*pow(10,i);switch(op)case '+':output=data1+data2;break;case '-':output=data1-data2;break;case '*':output=data1*data2;break;case

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论