简单计算器设计_第1页
简单计算器设计_第2页
简单计算器设计_第3页
简单计算器设计_第4页
简单计算器设计_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

计算机与信息工程系《高级语言程序设计》课程设计报告设计目的将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应用,对所学知识达到融会贯通的程度。通过课程设计,学生在下述各方面的能力应该得到锻炼:(1)进一步巩固、加深学生所学专业课程《C++程序设计语言》的基本理论知识,理论联系实际,进一步培养学生综合分析问题,解决问题的能力。(2)全面考核学生所掌握的基本理论知识及其实际业务能力,从而达到提高学生素质的最终目的。(3)利用所学知识,开发小型应用系统,掌握运用C++语言编写调试应用系统程序,训练独立开发应用系统,进行数据处理的综合能力。(4)对于给定的设计题目,如何进行分析,理清思路,并给出相应的数学模型。(5)掌握结构化程序设计方法,熟悉面向对象程序设计方法。(6)熟练掌握C++语言的基本语法,灵活运用各种数据类型。(7)进一步掌握在集成环境下如何调试程序和修改程序。2设计内容及要求2.1设计内容设计一个简单计算器。2.2设计任务及具体要求主要利用c语言的文件操作能力设计开发一个简单的计算器系统,要求在功能上尽量模拟windows操作系统中的计算器,系统界面不做强制要求。2.3简单计算器设计的意义本课题的内容是设计一个简单的计算器。通过对程序的设计可以对C程序中的函数,循环,数组,调用,文件„„内容有更深入的理解和运用。设计程序的过程中,通过已有知识的运用和思考,能够做到对知识的整体理解。通过解决设计中遇到的问题,能够提高设计程序的熟练度,并对知识有巩固作用。另外,所选课题与自己的兴趣有关,编程之中不仅能提高题目涉及到的内容的兴趣,更主要的在于能对C语言更加感兴趣。3概要设计3.1系统的功能简介1)在程序中加入足够的操作提醒环节,使得使用者能够清楚的掌握操作流程和界面。2)程序中完成+、-、*、/的混合运算,使用者可以根据个人的需要在提示后输入相应的代码,然后进行相应的运算,最后在运算结果中查找相应的结果即可,如果需要继续运算,只要在上一次的运算结束后按照提示输入相应代码即可选择是继续进行运算还是退出程序。3.2总体程序框图3.2.1系统模块机构框图简易计算器简易计算器退出程序混合计算显示界面退出程序混合计算显示界面3.2.2功能模块框图及系统流程图简易计算器简易计算器四则运算四则运算混合运算加法运算减法运算乘法运算除法运算混合运算加法运算减法运算乘法运算除法运算退出程序开始开始循环函数循环函数输入函数输入函数判断判断有“=”继续输入无“=”继续输入循环循环循环循环判断判断否否判断判断是是退出退出退出退出运算运算运算运算计算SUM函数计算SUM函数输出SUM输出SUM输入0或1输入0或1判断判断结束结束4详细设计4.1模块描述(1)显示界面模块为系统提供类似于菜单的功能,让用户输入要操作的运算类型的数字代码,并进入相应的功能执行程序,显示相应界面。(2)数学计算模块中,根据用户选择的运算类型和运算符号,自动调用相应的函数,运行相关程序,进行计算,并显示结果。(3)退出程序模块。根据用户的需要,选择是否退出程序。4.2函数设计4.2功能:计算器功能选择界面输入:用户输入运算类型、退出程序的相应数字代码(1四则运算,2混合运算3退出程序)处理:根据用户输入的数字代码,跳转到相关功能函数输出:显示相应界面或退出程序4.2.2#include"stdio.h"mm(){inti,t,e,k,l;floatm,n;floata[999];intf[999];intc[999];charb[999];clrscr();m=0;n=0;c[0]=0;f[0]=0;printf("\n");printf("\n");printf("\n");printf("\n");printf("qingshurujisuangongshi\n");printf("\n");printf("\n");printf("");for(i=0;i<=999;i++){c[i]=0;f[i]=0;scanf("%f%c",&a[i],&b[i]);if(b[i]=='='){t=i;break;}}for(i=0;i<=t;i++){if(b[i]=='/'&&b[i+1]=='/'||b[i]=='*'&&b[i+1]=='*'||b[i]=='/'&&b[i+1]=='*'||b[i]=='*'&&b[i+1]=='/'){for(k=0;k<=t;k++){if(b[i+k]=='-'||b[i+k]=='+'||b[i+k]=='=')l=k;}for(k=0;k<=l;k++){if(b[i+k]=='*'){a[i+k+1]=a[i+k]*a[i+k+1];a[i+k]=0;}if(b[i+k]=='/'){a[i+k+1]=a[i+k]/a[i+k+1];a[i+k]=0;}}}for(i=0;i<=t;i++){if(b[i]=='*'&&b[i+1]=='*'||b[i]=='*'&&b[i+1]=='/'||b[i]=='/'&&b[i+1]=='/'||b[i]=='/'&&b[i+1]=='*'){for(k=0;k<=t;k++)if(b[k+i]=='+'||b[k+i]=='-'||b[k+i]=="="){l=k;break;}i=l+i;}if(b[i]=='*'&&b[i+1]!='*'&&b[i+1]!='/'){a[i]=a[i]*a[i+1];a[i+1]=0;}if(b[i]=='/'&&b[i+1]!='/'&&b[i+1]!='*'){a[i]=a[i]/a[i+1];a[i+1]=0;}}}for(i=0;i<=t;i++){m=m+a[i];if(b[i]=='-')m=m-a[i+1]-a[i+1];}printf("jisuanjieguo\n");printf("|%f|\n",m);printf("\n");printf("\n");printf("\n");}main(){inta,i;clrscr();for(i=0;i<=999;i++){printf("\n");printf("\n");printf("\n");printf("\n");printf("\n");printf("xuanzeshifoujixu(1yes,0no)");scanf("%d",&a);if(a==1)mm();elsebreak;}}5 功能测试1、加法、减法和乘法运算的界面:除法运行的界面:开方、乘方运行的界面:6小结课程设计是我们专业课程知识综合应用的实践训练,着是我们迈向社会,从事职业工作前一个必不少的过程.”千里之行始于足下”,通过这次课程设计,我深深体会到这句千古名言的真正含义.我今天认真的进行课程设计,学会脚踏实地迈开这一步,就是为明天能稳健地在社会大潮中奔跑打下坚实的基础.在这次设计过程中,体现出自己单独设计程序的能力以及综合运用知识的能力,体会了学以致用、突出自己劳动成果的喜悦心情,从中发现自己平时学习的不足和薄弱环节,从而加以弥补。

在此感谢我们的吴海波老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计的每个实验细节和每个数据,都离不开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。参考文献[1]科钦.C语言程序设计.北京:电子工业出版社,1987:56-58[2]徐君毅.C语言程序设计基础.上海:复旦大学出版社,1992:87-98[3]李成付.C语言程序设计基础.北京:科学出版社,1992:42-67[4]郝玉洁.C语言程序设计.北京:机械工业出版社,2000:63-88[5]钱启平.C语言程序设计基础.北京:中国铁道出版社,2000:91-99[6]李大友.C语言程序设计基础.北京:清华大学出版社,1999:58-98[7]黄迪明.C语言程序设计.北京:电子科技大学出版社,1998:78-98[8]姜仲秋.C语言程序设计基础.南京:南京大学出版社,1998:16-100[9]李国昌.C语言程序设计基础.北京:科学出版社,1998:78-120[10]谭浩强著.C程序设计(第二版).北京:清华大学出版社,2005[11]谭浩强.C程序设计[M].3版.北京:清华大学出版社,2005源程序#include<stdio.h>#include<math.h>#include<malloc.h>doublejisuan(chara[]){inti=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;charnibo[50],zhan2[50];doublex,n,l,z=0,zhan3[20];typedefstruct{doubled1;intd2;}dd;typedefstruct{dddata[50];inttop;}zhan1;zhan1shu;shu.top=0;while(a[i]!='\0'){if(a[i]>='0'&&a[i]<='9'){z=0;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){z=z*10+a[k]-'0';}j=j+1;x=z;if(a[j]=='.'){l=1;i=j+1;j=i+1;while(a[j]>='0'&&a[j]<='9'){j++;}j--;for(k=i;k<=j;k++){n=pow(0.1,l);l=l+1;x=x+n*(a[k]-'0');}i=j+1;}elsei=j;shu.data[++shu.top].d1=x;shu.data[shu.top].d2=++cnt;nibo[++t1]='0'+shu.data[shu.top].d2;nibo[t1+1]='\0';}elseif(a[i]=='('){zhan2[++t2]=a[i];i++;}elseif(a[i]==')'){j=t2;while(zhan2[j]!='('){nibo[++t1]=zhan2[j];nibo[t1+1]='\0';j--;}t2=j-1;i++;}elseif(a[i]=='+'){while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}elseif(a[i]=='-'){if(a[i-1]=='$'){a[0]='0';i=0;}elseif(a[i-1]=='('){a[i-1]='0';a[i-2]='(';i=i-2;\}else{while(t2>0&&zhan2[t2]!='('){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}elseif(a[i]=='*'||a[i]=='/'){while(zhan2[t2]=='*'||zhan2[t2]=='/'||zhan2[t2]=='^'||zhan2[t2]=='@'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}elseif(a[i]=='^'||a[i]=='@'){while(zhan2[t2]=='^'||zhan2[t2]=='@'){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}zhan2[++t2]=a[i];i++;}}while(t2>0){nibo[++t1]=zhan2[t2];nibo[t1+1]='\0';t2--;}t1=1;while(nibo[t1]!='\0'){if(nibo[t1]>='0'&&nibo[t1]<='9'){for(i=0;i<=shu.top;i++){if(nibo[t1]-'0'==shu.data[i].d2){m=i;break;}}zhan3[++t3]=shu.data[m].d1;}elseif(nibo[t1]=='+'){zhan3[t3-1]=zhan3[t3-1]+zhan3[t3];t3--;}elseif(nibo[t1]=='-'){

温馨提示

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

评论

0/150

提交评论