版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川大学软件学院实验报告学号:1043111051姓名:王金科专业:软件工程班级:2010级5班课程名称数据结构
实验课时8实验项目计算器实验时间8到10周实验目的了解c++类的封装和KMP算法。实验环境Windows平台VC6.0++
实验内容(算法、程序、步骤和方法)部分函数创建思想创建过程如下:实验流程图程序清单文件名:main.cpp#include<iostream>usingnamespacestd;#include<stdio.h>#include<malloc.h>#include"DefNit.h"#include"Compare.h"#include<windows.h>intmain(){LinkOptrT;LinkOpndN;InitStack(&T);PushOptr(T,'#');InitStack(&N);charch,key;inti=0,j=0,num2=0,op1,op2;while(1){ system("cls");cout<<"\n\n\t\t\t*********计算器*********”;cout<<"\n\n\t\t):请输入算数表达式(数入#号结束输入)";ch=getchar();while(ch!='#'||GetTop1(T)!='#'){if(!IsOptr(ch)) { i++; if(i<=j)num2=(int(ch)-48); if(i>j) { num2=num2*10+(int(ch)-48); i=j=0; } if(!IsOptr(ch=getchar())) i++; if(i==j) PushOpnd(N,num2);//用getchar()函数读进来的字符肯定只能是一个字符,比如,12是先读‘1’,然后读‘2’,这里的i和j是用来判断个位数还是十位数的,num2是把运算数栈前零散的字符统计出来} else switch(Precede(GetTop1(T),ch)) { case'<': PushOptr(T,ch); if(ch!='('&&ch!=')') j++; ch=getchar(); break; case'=': PopOptr(T); ch=getchar(); break; case'>': op1=PopOpnd(N); op2=PopOpnd(N); PushOpnd(N,Operate(op2,PopOptr(T),op1));break; }}cout<<"\n\n\t\t表达式的最终结果为:";printf("%5d\n",GetTop2(N));cout<<"\n\n\t\t是否继续(Y/N)";cin>>key;if(key=='n'||key=='N'){ break;}}cout<<"\n\n\t\t";return0;}文件名:Compare.hintIsOptr(charch){ charptr[10]={'+','-','*','/','(',')','#'}; for(inti=0;i<7;i++) { if(ch==ptr[i]) returntrue; } returnfalse;}charPrecede(charch1,charch2){if((ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/'||ch1==')')&&(ch2=='+'||ch2=='-'||ch2==')'||ch2=='#')) return'>'; elseif((ch1=='('||ch1=='#')&&(ch2=='+'||ch2=='-'||ch2=='*'||ch2=='/'||ch2=='(')) return'<'; elseif((ch1=='+'||ch1=='-'||ch1=='*'||ch1=='/')&&ch2=='(') return'<'; elseif((ch1=='+'||ch1=='-')&&(ch2=='*'||ch2=='/')) return'<'; elseif((ch1=='*'||ch1=='/'||ch1==')')&&(ch2=='*'||ch2=='/')) return'>'; elseif(ch1=='('&&ch2==')') return'='; elseif(ch1=='#'&&ch2=='#') return'='; else returnfalse;}intOperate(intx,charch,inty){if(ch=='+') returnx+y; elseif(ch=='-') returnx-y; elseif(ch=='*') returnx*y; elseif(ch=='/') returnx/y; else returnfalse;}文件名:DefNit.htypedefstructNode1{charch;structNode1*Next;}Optr,*LinkOptr;//运算符栈typedefstructNode{intnum; structNode*Next;}Opnd,*LinkOpnd;//运算数栈voidInitStack(LinkOptr*S){(*S)=(LinkOptr)malloc(sizeof(Optr)); (*S)->Next=NULL;}voidInitStack(LinkOpnd*S){(*S)=(LinkOpnd)malloc(sizeof(Opnd)); (*S)->Next=NULL;}intPushOptr(LinkOptrpr,charch1){LinkOptrtemp;temp=(LinkOptr)malloc(sizeof(Optr));temp->ch=ch1;temp->Next=pr->Next;pr->Next=temp;returntrue;}intPushOpnd(LinkOpndpn,intnum1){LinkOpndtemp;temp=(LinkOpnd)malloc(sizeof(Opnd));temp->num=num1;temp->Next=pn->Next;pn->Next=temp;returntrue;}charPopOptr(LinkOptrS){if(S->Next==NULL) returntrue;LinkOptrtemp;temp=S->Next;S->Next=temp->Next;returntemp->ch;free(temp);}intPopOpnd(LinkOpndS){if(S->Next==NULL) returntrue;LinkOpndtemp;temp=S->Next;S->Next=temp->Next;returntemp->num;free(temp);}charGetTop1(LinkOptrS){returnS->Next->ch;}intGetTop2(LinkOpndS){returnS->Next->num;}实验内容(算法、程序、步骤和方法)数据记录和计算
结论(结果)
这个程序达到了实验的要求,可以实现运算表达式的输入、运算和输出,而且可以进行输入验错,可以正常运行。小结
自己在整个课程设计过
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年中山大学附属第三医院公开招聘感染性疾病科郑悦副研究员科研助理备考题库附答案详解
- 2026年云阳县云安村干部公开招聘备考题库及答案详解参考
- 2026年德安县专业森林消防大队消防员招聘备考题库及完整答案详解1套
- 2026年中国宁波外轮代理有限公司招聘备考题库及1套完整答案详解
- 2026年广州市第一人民医院总院医务部编外人员招聘备考题库及答案详解参考
- 2026年北京科技大学智能科学与技术学院招聘备考题库完整参考答案详解
- 2025年厦大附属翔安实验学校公开招聘顶岗教师备考题库及1套完整答案详解
- 2026年临沂市供销集团招聘6人备考题库及一套答案详解
- 2026年上海外国语大学附属外国语学校松江云间中学校园招聘备考题库含答案详解
- 2026年内江日报印务有限公司面向社会公开招聘备考题库及一套参考答案详解
- DB34∕T 5161-2025 机动车检验机构“舒心车检”服务规范
- 2025年山西大地环境投资控股有限公司社会招聘116人备考题库及答案详解参考
- 2026中国物流集团校园招聘参考笔试题库及答案解析
- 胸锁乳突肌区课件
- 2025年物业管理师《物业管理实务》真题及试题及答案
- 2026危险品物流行业成本控制与运营效率优化专项研究报告
- 总经理年度工作述职报告
- 本科院校实验员面试电子版题
- 线束厂现场管理制度(3篇)
- 雅思2025年阅读真题解析试卷(含答案)
- 黑龙江省哈尔滨香坊区五校联考2026届物理九上期末考试试题含解析
评论
0/150
提交评论