文档视界 最新最全的文档下载
当前位置:文档视界 › 表达式求值实验报告记录

表达式求值实验报告记录

表达式求值实验报告记录
表达式求值实验报告记录

表达式求值实验报告记录

————————————————————————————————作者:————————————————————————————————日期:

淮海工学院计算机工程学院

课程设计报告

设计名称:数据结构课程设计

选题名称:表达式求值

姓名:学号:

专业班级:

系(院):计算机工程学院

设计时间:

设计地点:软件工程实验室、教室

指导教师评语:

成绩:

签名:

年月日

1.课程设计目的

1、训练学生灵活应用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。

2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;

3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。

2.课程设计任务与要求:

任务

根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择应用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。

设计题目从任务书所列选题表中选取,每班每题不得超过2人。

学生自选课题

学生原则上可以结合个人爱好自选课题,要求课题有一定的深度与难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。

要求:

1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备与否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。

2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。

3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释;

4、每位同学需提交可独立运行的程序;

5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算);

6、课程设计实践作为培养学生动手能力的一种手段,单独考核。

3.课程设计说明书

一 需求分析

[问题描述]

一个算术表达式是由操作数(operand)、运算符(operator)和界限符(delimiter)组成的。假设操作数是正整数,运算符只含加减乘除等四种运算符,界限符有左右括号和表达式起始、结束符“#”,如:#(7+15)*(23-28/4)#。引入表达式起始、结束符是为了方便。编程利用“算符优先法”求算术表达式的值。 [基本要求]

(1) 从键盘读入一个合法的算术表达式,输出正确的结果。 (2) 显示输入序列和栈的变化过程。

二 概要设计

1、设定“操作数”的栈的抽象数据类型定义: ADT SqStack_f{

数据对象:D={i a },+∈∈N i R a i

数据关系:R1={<1,-i i a a >|1-i a ,D a i ∈,i=2,…,n}

约定n a 端为栈顶,i a 端为栈底。

基本操作:

InitStack_f(&S)

操作结果:构造一个空栈S 。 GetTop_f(&S,&e) 初始条件:栈S 已存在。

操作结果:用e 返回S 的栈顶元素。 Push_f(&S ,ch)

初始条件:栈S 已存在。

操作结果:插入元素ch 为新的栈顶元素。 Pop_f(&S,&e)

初始条件:栈S 已存在。

操作结果:删除S 的栈顶元素,并以e 返回其值。 }ADT SqStack_f

2、设定“操作符”的栈的抽象数据类型定义:

ADT SqStack_c{

数据对象:D={i a {}},'^'/'''*'''''+

∈-+∈N i a i

数据关系:R1={<1,-i i a a >|1-i a ,D a i ∈,i=2,…,n}

约定n a 端为栈顶,i a 端为栈底。

基本操作:

InitStack_c(&S)

操作结果:构造一个空栈S。

GetTop_c(&S,&e)

初始条件:栈S已存在。

操作结果:用e返回S的栈顶元素。

Push_c(&S,ch)

初始条件:栈S已存在。

操作结果:插入元素ch为新的栈顶元素。

Pop_c(&S,&e)

初始条件:栈S已存在。

操作结果:删除S的栈顶元素,并以e返回其值。

}ADT SqStack_c

3、本程序包含六个模块

1)主程序模块

void main( )

{

初始化;

while(命令==“继续”)

{

接受数据;

处理数据;

接受命令;

2)栈模块——实现栈抽象数据类型

3)判断运算符优先级模块——判断运算符的优先级别

4)后缀表达式转换模块——将中缀表达式转换为后缀表达式,方便操作

5)无括号表示式求值运算模块——根据后缀表达式求值,并输出中间和最终结果6)运算结果输出模块——以正确形式输出表达式的值

三详细设计

1、主程序中需要的全程量

#define TTACK_INIT_SIZE 100 //初始分配最大空间量

#define STACKINCREMENT 10 //(默认)增补空间量

2、结点类型、指针类型

typedef struct{

float *base; //存储实型数据元素的一位数组

float *top; //栈顶指针

int stacksize; //栈数组容量

}SqStack_f; //有序存储实型的顺序表类型

typedef struct{

char *base; //存储字符数据元素的一位数组

char *top; //栈顶指针

int stacksize; //栈数组容量

}SqStack_c; //有序存储字符型的顺序表类型

void InitStack_f(SqStack_f *s)

void InitStack_f(SqStack_f *s)

//构造一个存储实型(字符型)的空栈,预设空间为100,分配失败就退出

void GetTop_f(SqStack_f *s,float *e)

void GetTop_c(SqStack_c *s,char *e)

//若栈s不空,则以e带值返栈顶元素,否则显示错误“ERROR”,并退出程序

void Push_f(SqStack_f *s,float e)

void Push_c(SqStack_c *s,char e)

//在s的栈顶插入新的栈顶元素e,若栈的当前空间已满,则追加存储空间

void Pop_f(SqStack_f *s,float *e)

void Pop_c(SqStack_c *s,char *e)

//若栈s不空,则删除栈s的栈顶元素,用e带值返回,否则退出程序

其中部分操作的伪码算法(由于比较类似,以浮点型的栈为例)

void InitStack_f(SqStack_f *s)

{//构造一个存储实型的空栈,预设空间为100,分配失败就退出

s->base=(float *)malloc(TTACK_INIT_SIZE*sizeof(float));

if(!s->base)

exit(1);

s->top=s->base;

s->stacksize=TTACK_INIT_SIZE;

}

void GetTop_f(SqStack_f *s,float *e)

{//若栈s不空,则以e带值返栈顶元素,否则显示错误“ERROR”,并退出程序if(s->top==s->base)

{

printf("ERROR!\n");

exit(1);

}

*e=*(s->top-1);

}

void Push_f(SqStack_f *s,float e)

{//在s的栈顶插入新的栈顶元素e,若栈的当前空间已满,则追加存储空间if(s->top-s->base>=s->stacksize)

{

s->base=(float *)realloc(s->base,(s->stacksize+STACKINCREMENT)*sizeof(float));

if(!s->base)

{

printf("OVERFLOW!\n");

exit(1);

}

s->top=s->base+s->stacksize;

s->stacksize+=STACKINCREMENT;

}

*s->top++=e;

}

void Pop_f(SqStack_f *s,float *e)

{//若栈s不空,则删除栈s的栈顶元素,用e带值返回,否则退出程序

if(s->top==s->base)

exit(1);

*e=*--s->top;

}

3、判断运算符优先级的算法:

算符间的优先关系如下:

+ - * / ( ) # + >= < < < < > > - > >= < < < > > * > > >= > < > > / > > > >= < > > ( < < < < < =

) > > > > > > # < < < < < =

伪码算法:

int precede(char Top_char,char s1_char)

{//栈顶的运算符赋给Top_char,新读入的运算符赋给s1_char。判断它们的优先级

//若栈顶运算符优先级高,则返回1,否则返回0

int i,pre[2];

char op[2];

op[0]=Top_char; //栈顶的运算符赋给op[0]

op[1]=s1_char; //新读入的运算符赋给op[1]

for(i=0;i<2;i++)

switch(op[i])

{

case'(':case')':pre[i]=0;break; //将括号的优先级设为0

case'+':case'-':pre[i]=1;break; //将+ - 运算符的优先级设为1

case'*':case'/':pre[i]=2;break; //将* / 运算符的优先级设为2

case'^':pre[i]=3;break; //将^ 运算符的优先级设为3

}

if(pre[0]>=pre[1]) //栈顶元素优先级高返回1

return 1;

else

return 0; //否则返回0

}

4、中缀表达式转换为后缀表达式的算法:

算法过程描述:

1)首先将左括号“(”压进栈,作为栈底元素;

2)从左而右对算数表达式进行扫描,每次读入一个字符s1[i];

3)若遇到数字或小数点,则立即写入s2[i],若遇算数运算符,将“”(空格)写入s2[i];

4)遇到左括号“(”则压栈;

5)若遇算术运算符,如果它们的优先级比栈顶元素高,则直接进栈,否则弹出栈顶元素输出到

s2[i],直到新栈顶元素的优先级比它低,然后将它压栈;

6)若遇到右括号“)”,则将栈顶元素输出到s2[i],直到栈顶元素为“(”,然后相互抵消;

7)当扫描到“#”符号,表明表达式串已全部输入,将栈中的运算符全部输出到s2[i],并删除

栈顶元素。

伪码算法:

void Translate(char *s1)

{ //中缀表达式转换为后缀表达式

char s2[80];

SqStack_c Optr;

int i=0,j=0;

cha r t;

InitStack_c(&Optr);//初始化一个存储字符型的空栈,便于存储运算符

Push_c(&Optr,'(');// 首先将左括号“(”压进栈,作为栈底元素

while(s1[i]!='#') //当扫描到的不是“#”,即表达式串没结束时

{

if(s1[i]>='0' && s1[i]<='9' || s1[i]=='.') //若果是数字或小数点则将其输出给s2[i]

{

s2[j++]=s1[i];

if((s1[i+1]<'0' || s1[i+1]>'9') && s1[i+1]!='.')

s2[j++]=' ';

}

else

switch(s1[i]) //扫描到的是运算符

{

case'(':Push_c(&Optr,s1[i]);break;// 遇到左括号“(”则压栈

case')':Pop_c(&Optr,&t); //若遇到右括号“)”,则将栈顶元素输出

到s2[i]

while(t!='(') //直到栈顶元素为“(”,然后相互抵消

{

s2[j++]=t;

Pop_c(&Optr,&t);

}

break;

default:while(GetTop_c(&Optr,&t),precede(t,s1[i]))

{//遇到算数运算符则比较优先级

Pop_c(&Optr,&t);//栈顶元素优先级高,则弹出到s2[i]

s2[j++]=t;

}

Push_c(&Optr,s1[i]);//栈顶元素优先级低,直接压栈

}

i++;

}

Pop_c(&Optr,&t);

烘焙实验报告撰写具体内容及要求

实验一:面包制作 1. 实验目的 通过实验进一步熟悉面包生产工艺,掌握面包制作技术及相关原理。 2. 面团形成和发酵的基本原理 【补充】 3.面包的配方 4. 实验仪器 和面机、醒发箱、烤箱、冰箱、台称及其他食品制作小工具。 5.制作工艺及操作步骤 面包一次发酵法制作工艺流程:【补充】 操作步骤如下: (1)称料(按配方百分比计量称重) (2)调整加水水温。“水温=3×面团理想温度-室温-面粉温度-和面摩擦升温”(测定室温、面粉温度,确定面团理想温度,和面升温,计算出加水水温)(3)投料:粉→酵母→干搅匀→糖、面包改良剂→干搅匀→加水(边加水边搅拌)(4)搅拌:慢速搅拌,至无粉粒(约2min),加入融化的黄油慢速搅拌lmin,快速搅拌(约10~12min),面团受拉,形成薄膜。 (5)切割:切割成450g重面团。注意:称重时加减面团要切,不应拉面团,以免破坏已形成的面筋网络。 (6)搓团:将切好的面团搓成圆形。表面要形成光滑,无接口,接口放在底部。 (7)舒缓:将搓圆后的面团放在工作台上,用塑料布盖住,静止约15min。 (8)成型:将舒缓好的面团放入成型机内(压片→卷折→成型);或将面团用杆面

仗压成面片状,将面片卷折2.5圈以上,再顺搓,成长型面包坯。 (9)装模:将做好的面包坯装入模盒内。 (10)醒发:将模盒放在烤盘内,一起送入醒发箱。醒发时间约1h,箱内温度:约35℃。醒发后的面团两边与模盒相平。 (11)焙烤:将醒发后的面团送入烤箱。上火:180℃,下火:210℃,时间:25min 6.面包评分【附产品外观和切面组织图片】 按面包评分标准,逐一评述。如: 面包表皮色泽为棕黄,有斑点且无光泽,4分; …….. 7.结果分析分析影响面包品质的因素。 结合评分结果分析影响面包品质的因素【参考《食品工艺学》】 附:面包评分标准 1.表皮色泽(5分) (1) 棕黄、金黄、红棕、浅棕色; 5分 若有斑点、无光泽、不均匀扣0.5分。 (2) 棕黄、棕色、浅褐色; 4分 若有斑点、无光泽、不均匀扣0.5分。 (3) 棕灰、褐灰。 3分 (4) 灰白或焦黑色 2分 (5) 灰白或焦黑色并呈塌陷状 1分 2.表皮质地与面包形状(5分) (1) 冠大,预极明显,无裂纹,平滑无斑 5分 不平滑,厚而硬,有裂纹扣0.5分。 (2) 冠中等,颈短,表皮光洁平滑无斑点。 4分 (3) 冠小,颈短,表皮光洁平滑无斑点。 3分 表皮不光洁,不平滑扣0.5分。 (4) 冠不显示,无颈,塌陷。 2分 (5) 无冠,无颈,塌陷。 1分 3.面包心色泽(5分) (1) 洁白、乳白并有丝样光泽; 5分 无丝样光泽扣除0.5分。

数据结构表达式求值实验报告

竭诚为您提供优质文档/双击可除数据结构表达式求值实验报告 篇一:数据结构实验二——算术表达式求值实验报告 《数据结构与数据库》 实验报告 实验题目算术表达式求值 学院:化学与材料科学学院 专业班级:09级材料科学与工程系pb0920603 姓学 邮名:李维谷号:pb09206285箱: liwg@https://www.docsj.com/doc/a510011169.html,指导教师:贾伯琪 实验时间:20XX年10月10日 一、需要分析 问题描述: 表达式计算是实现程序设计语言的基本问题之一,它的实现是栈的应用的一个典型例子。设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。

问题分析: 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 设置运算符栈(字符型)和运算数栈(浮点型)辅助分析算符优先关系。在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。 在运算之后输出正确运算结果,输入表达式后演示在求值中运算数栈内的栈顶数据变化过程,最后得到运算结果。 算法规定: 输入形式:一个(:数据结构表达式求值实验报告)算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为使实验更完善,允许操作数为实数,操作符为(、)、.(表示小数点)、+、-、*、/、^(表示乘方),用#表示结束。 输出形式:演示表达式运算的中间结果和整个表达式的最终结果,以浮点型输出。 程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。 测试数据:正确输入:12*(3.6/3+4^2-1)#

上机实验内容及实验报告要求

上机实验内容及实验报告要求 本文从网络收集而来,上传到平台为了帮到更多的人,如果您需要使用本文档,请点击下载按钮下载本文档(有偿下载),另外祝您生活愉快,工作顺利,万事如意! 上机实验内容及实验报告要求 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10M硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.C文件、.OBJ 文件和.EXE文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用A4纸打印) 1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的:

③算法描述(可用文字描述,也可用流程图): ④源代码:(.C的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对C文件的要求: 程序应具有以下特点:A可读性:有注释。 B交互性:有输入提示。 C结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。 2.带头结点的单链表的插入。 3.带头结点的单链表的删除。 注意:1.每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。 例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。 2.实验报告中的源代码应是通过编译链接即可运

数据结构实验二——算术表达式求值实验报告

《数据结构与数据库》 实验报告 实验题目 算术表达式求值 学院:化学与材料科学学院 专业班级:09级材料科学与工程系PB0920603 姓名:李维谷 学号:PB09206285 邮箱:liwg@https://www.docsj.com/doc/a510011169.html, 指导教师:贾伯琪 实验时间:2010年10月10日 一、需要分析 问题描述:

表达式计算是实现程序设计语言的基本问题之一,它的实现是栈的应用的一个典型例子。设计一个程序,演示通过将数学表达式字符串转化为后缀表达式,并通过后缀表达式结合栈的应用实现对算术表达式进行四则混合运算。 问题分析: 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 设置运算符栈(字符型)和运算数栈(浮点型)辅助分析算符优先关系。在读入表达式的字符序列的同时完成运算符和运算数的识别处理,然后进行运算数的数值转换在进行四则运算。 在运算之后输出正确运算结果,输入表达式后演示在求值中运算数栈内的栈顶数据变化过程,最后得到运算结果。 算法规定: 输入形式:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为使实验更完善,允许操作数为实数,操作符为(、)、.(表示小数点)、+、-、*、/、^(表示乘方),用#表示结束。 输出形式:演示表达式运算的中间结果和整个表达式的最终结果,以浮点型输出。 程序功能:对实数内的加减乘除乘方运算能正确的运算出结果,并能正确对错误输入和无定义的运算报错,能连续测试多组数据。 测试数据:正确输入:12*(3.6/3+4^2-1)# 输出结果:194.4

计算机上机实验内容及实验报告要求

计算机上机实验内容及实验报告要求 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj文件和.exe文件)。 3. 截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印) 1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3. 上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。

1. 顺序表的删除。 2.带头结点的单链表的插入。 3. 带头结点的单链表的删除。 注意:1. 每个人只需在实验报告中完成上述4个项目中的一个,具体安排为:将自己的序号对4求余,得到的数即为应完成的项目的序号。 例如:序号为85的同学,85%4=1,即在实验报告中应完成顺序表的删除。 2. 实验报告中的源代码应是通过编译链接即可运行的。 3. 提交到个人空间中的内容应是上机实验中的全部内容。

数据结构算术表达式求值实验报告

软件技术基础实验报告 实验名称:表达式计算器 系别:通信工程 年级: 班级: 学生学号: 学生姓名: 《数据结构》课程设计报告 题目简易计算表达式的演示 【题目要求】 要求:实现基本表达式计算的功能 输入:数学表达式,表达式由整数和“+”、“-”、“×”、“/”、“(”、“)”组成输出:表达式的值 基本操作:键入表达式,开始计算,计算过程和结果记录在文档中 难点:括号的处理、乘除的优先级高于加减

1.前言 在计算机中,算术表达式由常量、变量、运算符和括号组成。由于不同的运算符具有不同的优先级,又要考虑括号,因此,算术表达式的求值不可能严格地从左到右进行。因而在程序设计时,借助栈实现。 算法输入:一个算术表达式,由常量、变量、运算符和括号组成(以字符串形式输入)。为简化,规定操作数只能为正整数,操作符为+、-*、/、=,用#表示结束。 算法输出:表达式运算结果。 算法要点:设置运算符栈和运算数栈辅助分析算符优先关系。在读入表达式的字符序列的同时,完成运算符和运算数的识别处理,以及相应运算。 2.概要设计 2.1 数据结构设计 任何一个表达式都是由操作符,运算符和界限符组成的。我们分别用顺序栈来寄存表达式的操作数和运算符。栈是限定于紧仅在表尾进行插入或删除操作的线性表。顺序栈的存储结构是利用一组连续的存储单元依次存放自栈底到栈顶的数据元素,同时附设指针top 指示栈顶元素在顺序栈中的位置,base 为栈底指针,在顺序栈中,它始终指向栈底,即top=base 可作为栈空的标记,每当插入新的栈顶元素时,指针top 增1,删除栈顶元素时,指针top 减1。 2.2 算法设计 为了实现算符优先算法。可以使用两个工作栈。一个称为OPTR ,用以寄存运算符,另一个称做OPND ,用以寄存操作数或运算结果。 1.首先置操作数栈为空栈,表达式起始符”#”为运算符栈的栈底元素; 2.依次读入表达式,若是操作符即进OPND 栈,若是运算符则和OPTR 栈的栈顶运算符比较优先权后作相应的操作,直至整个表达式求值完毕(即OPTR 栈的栈顶元素和当前读入的字符均为”#”)。 2.3 ADT 描述 ADT Stack{ 数据对象:D={ i a |i a ∈ElemSet,i=1,2,…,n, n ≧0} 数据对象:R1={< 1 ,-i i a a >| 1-i a ,D a i ∈,i=2,…,n}

嵌入式--计算器--实验报告

计算器设计实验报告 一、实验设计主要分工 04009320 文斌:算法设计,LCD显示。 04** 张希:界面(按钮控件)设计,文件内容读取。 共同调试、完善设计。 二、程序设计实现功能效果 (1)支持整数、小数基本加减乘除运算; (2)有优先级的判别计算。优先级由高到低一次为括号运算、乘除运算、加减运算。(3)支持键盘输入和触摸屏输入; (4)能读取指定目录下文本内容(内容为计算表达式)并计算得出结果,将内容和结果显示在LCD上。 程序任务开始后,等待键盘或触摸屏的输入。输入键有0~9数字键、+-*/()运算符、del退格键、clear清屏键、read读指定目录文本内容并计算键、enter'='键、‘.’小数点键。 每当有字符输入时,触摸屏相应键显示“AAA”,100ms后恢复原相应按键符号,同时LCD 屏幕上显示相应字符。当输入'del'键时,屏幕显示去掉最后一位字符。当输入'='号后,得出计算结果,结果显示于表达式的下一行。若是除零错误,则结果显示为“/0ERROR!”。若有非法字符(触摸点不能识别为设计按键符则视为非法字符),则结果输出为“Syntax Error!!”。若表达式有运算符连续输入,则忽略前面的运算符,只取最后一位运算符计算,正常显示数字结果。当输入'clear'键时,情况显示区域。当输入'read'键时,从指定目录文本文件中读取表达式并计算。将表达式内容和计算结果显示在LCD上。 三、程序算法实现 1、计算算法 首先将输入的0~9数字、+-*/()运算符的内容存储于一个全局变量cal[number]中, 表达为中缀表达式。用void str2repol()函数,将输入字符串cal[number]转换成逆波 兰表达式并存于全局数组char repol[maxs]中。str2repol()函数中缀表达式转成逆波兰 后缀表达式算法如下: (1)首先构造一个运算符栈stack[maxs],此运算符在栈内遵循越往栈顶优先级越高的 原则。

计算机上机实验内容及实验报告要求(完整版)

报告编号:YT-FS-1915-76 计算机上机实验内容及实验报告要求(完整版) After Completing The T ask According To The Original Plan, A Report Will Be Formed T o Reflect The Basic Situation Encountered, Reveal The Existing Problems And Put Forward Future Ideas. 互惠互利共同繁荣 Mutual Benefit And Common Prosperity

计算机上机实验内容及实验报告要 求(完整版) 备注:该报告书文本主要按照原定计划完成任务后形成报告,并反映遇到的基本情况、实际取得的成功和过程中取得的经验教训、揭露存在的问题以及提出今后设想。文档可根据实际情况进行修改和使用。 一、《软件技术基础》上机实验内容 1.顺序表的建立、插入、删除。 2.带头结点的单链表的建立(用尾插法)、插入、删除。 二、提交到个人10m硬盘空间的内容及截止时间 1.分别建立二个文件夹,取名为顺序表和单链表。 2.在这二个文件夹中,分别存放上述二个实验的相关文件。每个文件夹中应有三个文件(.c文件、.obj 文件和.exe文件)。 3.截止时间:12月28日(18周周日)晚上关机时为止,届时服务器将关闭。 三、实验报告要求及上交时间(用a4纸打印)

1.格式: 《计算机软件技术基础》上机实验报告 用户名se××××学号姓名学院 ①实验名称: ②实验目的: ③算法描述(可用文字描述,也可用流程图): ④源代码:(.c的文件) ⑤用户屏幕(即程序运行时出现在机器上的画面): 2.对c文件的要求: 程序应具有以下特点:a 可读性:有注释。 b 交互性:有输入提示。 c 结构化程序设计风格:分层缩进、隔行书写。 3.上交时间:12月26日下午1点-6点,工程设计中心三楼教学组。请注意:过时不候哟! 四、实验报告内容 0.顺序表的插入。 1.顺序表的删除。

算术表达式语法检查实验报告

中南民族大学计算机科学学院本科课程设计 任务书 设计名称:算术表达式语法检查 指导教师:下达时间: 2015-5-8 学生姓名:学号: 专业: 一、课程设计的基本要求 根据所学知识,编写指定题目的C++语言程序,并规范地完成课程设计报告。通过课程设计,加深对《C++面向对象程序设计》课程所学知识的理解,熟练掌握和巩固C++语言的基本知识和语法规范,掌握C++语言的基础知识,理解面向对象系统的封装性、继承性和多态性;熟练使用C语言中的函数、数组、指针、链表和字符串等基本知识;掌握类的定义、标准String类和向量;理解掌握友元函数和重载操作符,动态数组;理解掌握继承和多态性;掌握模版的使用;能够进行程序调试过程中的异常处理;进一步掌握利用C++进行类的定义和操作方法;进一步掌握类的继承和派生方法;进一步理解虚函数和多态;综合利用上述知识,学习设计并编写面向对象的C++简单应用程序;培养解决复杂任务功能分解方法(自顶向下逐步求精、模块化设计、信息隐藏等)。 学会编制结构清晰、风格良好、数据结构适当的C++语言程序,从而具备利用计算机编程分析解决综合性实际问题的初步能力。 具体要求如下: 1、采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。学生也可根据自己对题目的理解增加新的功能模块(视情况可另外加分)。 2、系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行。 3、程序算法说明清晰,理论分析与计算正确,运行情况良好,实验测试数据无误,容错性强(能对错误输入进行判断控制)。 4、编程风格良好(包括缩进、空行、适当注释、变量名和函数名见名知意,程序容易阅读等); 5、写出规范的课程设计报告,具体要求见相关说明文档。

四则运算表达式求值实验报告

HUNAN UNIVERSITY 课程实习报告 题目:四则运算表达式求值 学生姓名: 学生学号: 专业班级: 指导老师: 完成日期:

一、需求分析 四则运算表达式求值,将四则运算表达式用中缀表达式表示,然后转换为后缀表达式,并计算结果。 本程序要求利用二叉树后序遍历来实现表达式的转换,同时可以使用实验2的结果来求解后缀表达式的值。 在字符界面上输入一个中缀表达式,回车表示结束。如果该中缀表达式正确,那么在字符界面上输出其后缀表达式,其中后缀表达式中两相邻操作数之间利用空格隔开;如果不正确,在字符界面上输出表达式错误提示。 测试数据 输入: 21+23*(12-6) 输出: 21 23 12 6 -*+ 二、详细设计 输入和输出的格式 输入 本程序可以将输入的四则运算表达式(中缀表达式)转换为后缀表达式 输出 后缀表达式为://输出结果的位置 表达式的值为://输出结果的位置 三、调试分析 本次实验的难点主要是在建立二叉树的问题上。关于如何把中缀表达式存入二叉树中,我参考了网上的一些方法,成功实现了目标,但是却遇到了一个问题,那就是不能处理小数,甚至两位或两位以上的整数。因为如果采用字符数组来存储操作数,运算符合一位整数还可以处理,但对于两位数就就会出问题,最后我改进采用字符串数组来存储操作数,成功解决了问题。 另外在处理输入的非法表达式问题中,我也费了很大功夫,但总体问题不大。 四、测试结果 五、用户使用说明(可选) 1、运行程序时 提示输入四则运算表达式 本程序可以将中缀表达式转化为后缀表达式,并计算结果 请输入四则运算表达式: 输出 后缀表达式为: 表达式的值为: 程序源代码(c++) #include #include #include #include

实验报告格式与要求

作业格式要求 一、作业题目 围绕如何学习信息安全专业课程,掌握专业知识等内容自拟题目并进行论述。 二、用纸、页面设置要求 作业应按规定格式用计算机打印,纸张大小一律使用A4复印纸,单面打印。 页面设置:每一面的上方(天头)和下方(地脚)应留边25mm左右,左侧(订口)和右侧(切口)应分别留边317mm左右。页码设置为:插入页码,居中。 三、作业内容打印要求 作业中所有标点符号必须是中文全角逗号、句号。 (一)目录 采用四号字,其中每章题目用黑体字,每节题目用宋体字,并注明各章节起始页码,题目和页码用“……”相连,如下所示: 目录(黑体小3号) (自然空一行) 第一章 XXXXXXXX ……………………………………………1 (黑体小4号) 1.1 XXXXXX ………………………………………………2 (宋体小4号) 1.1.1 XXXXX …………………………………………6 (宋体小4号) 第二章 XXXXXXXXXX ………………………………………40(黑体小4号)(二)正文字体要求 每章题目居中、黑体小三号;每节题目左顶边、宋体四号加黑;每小节题目左顶边、宋体小四号加黑。正文文字用宋体小四号汉字和小四号“Times New Roman”英文字体,每自然段首行缩进2个字符。 (三)行间距要求 每章题目与每节题目之间的行距设置:每章题目后设单倍行距,段后0.5 行。

每节题目与小节题目之间的行距设置:每节题目后设单倍行距,段后0.5 行。 正文行距设置:设多倍行距,设置值为1.25。 (四)正文章节序号编制 章,编写为:第一章,第二章…。 节,编写为:1. 1、1. 2…,2. 1、2. 2…。 小节,编写为:1. 1. 1, 1. 1. 2…。 小节以下层次,先以括号为序,如(1),(2)…;再以圈圈为序,如①, ②…。层次采用如下格式: 例如: 第一章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 1. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 1.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(小四号宋体) (首行缩进2个字符)① xxxxxx(小四号宋体) (下一章另起一页) 第二章 XXXXXXXX(黑体小三号)(单倍行距,段后0.5行) 2. 1 XXXXXXXX(宋体四号加黑)(单倍行距,段后0.5行) 2.1. 1 xxxxxx(宋体小四号加黑) (首行缩进2个字符)(1)xxxxx(宋体小四号) (首行缩进2个字符)① xxxxxx(宋体小四号) (五)报告的公式、图与表 公式号以章分组编号,如(2-4)表示第二章的第4个公式。 公式尽量采用公式编辑应用程序输入,选择默认格式,公式号右对齐,公式调整至基本居中。 图与表中的文字小于正文中的文字字号。 图与表以章分组编序号,如图3-5表示第三章的第5幅图。

《数据结构课程设计》表达式求值实验报告

实验课程名称 专业班级 学生姓名 学号 指导教师 20 至 20 学年第学期第至周

算术表达式求值演示 一、概述 数据结构课程设计,要求学生在数据结构的逻辑特性和物理表示、数据结构的选择和应用、算法的设计及其实现等方面,加深对课程基本容的理解。同时,在程序设计方法以及上机操作等基本技能和科学作风方面受到比较系统和严格的训练。 在这次的课程设计中我选择的题目是算术表达式求值演示。表达式计算是实现程序设计语言的基本问题之一,也是栈的应用的一个典型例子。设计一个程序,演示用算符优先法对算术表达式求值的过程。深入了解栈和队列的特性,以便在解决实际问题中灵活运用它们,同时加深对这种结构的理解和认识。 二、系统分析 1.以字符列的形式从终端输入语确的、不含变量的整数表达式。利用已知的算符优先关系,实现对算术四则混合运算表达式的求值,并仿照教科书的例子在求值中运算符栈、运算数栈、输入字符和主要操作的变化过程。 2.一般来说,计算机解决一个具体问题时,需要经过几个步骤:首先要从具体问题抽象出一个适当的数学模型,然后设计一个解决此数学模型的算法,最后编出程序,进行测试,调试直至得到想要的答案。对于算术表达式这个程序,主要利用栈,把运算的先后步骤进行分析并实现简单的运算!为实现算符优先算法,可以使用两个栈,一个用以寄存运算符,另一个用以寄存操作数和运算结果。 3.演示程序是以用户于计算机的对话方式执行,这需要一个模块来完成使用者与计算机语言的转化。 4.程序执行时的命令: 本程序为了使用具体,采用菜单式的方式来完成程序的演示,几乎不用输入什么特殊

的命令,只需按提示输入表达式即可。(要注意输入时格式,否者可能会引起一些错误)5. 测试数据。 三、概要设计 一个算术表达式中除了括号、界限符外,还包括运算数据和运算符。由于运算符有优先级别之差,所以一个表达式的运算不可能总是从左至右的循序执行。每次操作的数据或运算符都是最近输入的,这与栈的特性相吻合,故本课程设计借助栈来实现按运算符的优先级完成表达式的求值计算。 算法设计 程序包含三个模块 (1) 主程序模块,其中主函数为 void main{ 输入表达式; 根据要求进行转换并求值; 输出结果; } (2) 表达式求值模块——实现具体求值。 (3) 表达式转换模块——实现转换。 各个函数之间的调用关系

表达式求值实验报告

淮海工学院计算机工程学院 课程设计报告 设计名称:数据结构课程设计 选题名称:表达式求值 姓名:学号: 专业班级: 系(院):计算机工程学院 设计时间: 设计地点:软件工程实验室、教室 指导教师评语: 成绩: 签名: 年月日

1.课程设计目的 1、训练学生灵活使用所学数据结构知识,独立完成问题分析,结合数据结构理论知识,编写程序求解指定问题。 2.初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; 3.提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 4.训练用系统的观点和软件开发一般规范进行软件开发,巩固、深化学生的理论知识,提高编程水平,并在此过程中培养他们严谨的科学态度和良好的工作作风。 2.课程设计任务和要求: 任务 根据教材《数据结构-C语言描述》(耿国华主编)和参考书《数据结构题集(C语言版)》(严蔚敏、吴伟民主编)选择课程设计题目,要求通过设计,在数据结构的逻辑特性和物理表示、数据结构的选择使用、算法的设计及其实现等方面加深对课程基本内容的理解和综合运用。 设计题目从任务书所列选题表中选取,每班每题不得超过2人。 学生自选课题 学生原则上可以结合个人爱好自选课题,要求课题有一定的深度和难度,有一定的算法复杂性,能够巩固数据结构课程所学的知识。学生自选课题需在18周前报课程设计指导教师批准方可生效。 要求: 1、在处理每个题目时,要求从分析题目的需求入手,按设计抽象数据类型、构思算法、通过设计实现抽象数据类型、编制上机程序和上机调试等若干步骤完成题目,最终写出完整的分析报告。前期准备工作完备和否直接影响到后序上机调试工作的效率。在程序设计阶段应尽量利用已有的标准函数,加大代码的重用率。 2、.设计的题目要求达到一定工作量(300行以上代码),并具有一定的深度和难度。 3、程序设计语言推荐使用C/C++,程序书写规范,源程序需加必要的注释; 4、每位同学需提交可独立运行的程序; 5 、每位同学需独立提交设计报告书(每人一份),要求编排格式统一、规范、内容充实,不少于10页(代码不算); 6、课程设计实践作为培养学生动手能力的一种手段,单独考核。 3.课程设计说明书

实验报告撰写要求正式版

For the things that have been done in a certain period, the general inspection of the system is also a specific general analysis to find out the shortcomings and deficiencies 实验报告撰写要求正式版

实验报告撰写要求正式版 下载提示:此报告资料适用于某一时期已经做过的事情,进行一次全面系统的总检查、总评价,同时也是一次具体的总分析、总研究,找出成绩、缺点和不足,并找出可提升点和教训记录成文,为以后遇到同类事项提供借鉴的经验。文档可以直接使用,也可根据实际需要修订后使用。 1. 实验报告和实验预习报告使用同一份实验报告纸,是在预习报告的基础上继续补充相关内容就可以完成的,不作重复劳动,因此需要首先把预习报告做的规范、全面。 2. 根据实验要求,在实验时间内到实验室进行实验时,一边测量,一边记录实验数据。但是为了使报告准确、美观,此时应该把实验测量数据先记录在草稿纸上。等到整理报告时再抄写到实验报告纸上,以避免错填了数据,造成修改,把报告写得很乱。

3. 在实验中,如果发生实验测量数据与事先的计算数值不符,甚至相差过大,此时应该找出原因,是原来的计算错误,还是测量中有问题,不能不了了之,这样只能算是未完成本次实验。 4. 实验报告不是简单的实验数据记录纸,应该有实验情况分析,要把通过实验所测量的数据与计算值加以比较,如果误差很小(一般5%以下)就可以认为是基本吻合的。如果误差较大就应该有误差分析,找出原因。 5. 在实验报告上应该有每一项的实验结论,要通过具体实验内容和具体实验数据分析作出结论(不能笼统的说验证了某某定理)。

C语言程序设计实验报告实验数据类型运算符和表达式

凯里学院C 语言程序设计实验报告 ×××××专业××年级××班,学号××××××姓名××成绩 合作者实验日期年月日 指导教师评阅日期年月日 实验二数据类型、运算符和表达式 一、实验目的: (1)掌握C 语言数据类型,熟悉如何定义一个整型、字符型、实型变量、以及对它们赋值的方法,了解以上类型数据输出时所用的格式转换符。 (2)学会使用C 的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(――)运算符的使用。 (3)掌握C 语言的输入和输出函数的使用 (4)进一步熟悉C 程序的编辑、编译、连接和运行的过程,学会使用stepbystep 功能。 (5)认真阅读教材数据类型,算术运算符和表达式,赋值运算符和表达式部分内容。 二、实验内容: (1)输人并运行下面的程序 #include voidmain() { charc1,c2; c1='a'; c2='b'; 装 订 线 装 订 线

printf("%c%c\n",c1,c2); } (2)按习题3.7的要求编程序并上机运行 该题的要求是: 要将“China”译成密码,密码规律是:用原来字母后面的第4个字母代替原来的字母。 例如,字母“A”后面第4个字母是“E”,用“E”代替“A”。因此,“China”应译为“Glmre"。 请编一程序,用赋初值的方法使。cl,c2,c3,c4,c5五个变量的值分别为‘C’、‘h’、‘i’、‘n’、‘a’,经过运算,使cl,c2,c3,c4,c5分别变为‘G’、‘l’、‘m’、‘r’、‘e’,并输出。 三、实验步骤: (1)输人并运行下面的程序 #include voidmain() { charc1,c2; c1='a'; c2='b'; printf("%c%c\n",c1,c2); } ①运行此程序。 程序结果为:

实验报告书写要求

实验报告书写要求 实验报告的书写是一项重要的基本技能训练。它不仅是对每次实验的总结,更重要的是它可以初步地培养和训练学生的逻辑归纳能力、综合分析能力和文字表达能力,是科学论文写作的基础。因此,参加实验的每位学生,均应及时认真地书写实验报告。要求内容实事求是,分析全面具体,文字简练通顺,誊写清楚整洁。 实验报告内容与格式 (一) 实验名称 要用最简练的语言反映实验的内容。如验证某现象、定律、原理等,可写成“验证×××”;分析×××。 (二) 所属课程名称 (三) 学生姓名、学号、及小组成员 (四) 实验日期和地点(年、月、日) (五) 实验目的 目的要明确,在理论上验证定理、公式、算法,并使实验者获得深刻和系统的理解,在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。 (六) 实验内容 这是实验报告极其重要的内容。要抓住重点,可以从理论和实践两个方面考虑。这部分要写明依据何种原理、定律算法、或操作方法进行实验。详细理论计算过程. (七) 实验设备与材料 实验用的设备和材料。 (八) 实验步骤 只写主要操作步骤,不要照抄实习指导,要简明扼要。还应该画出实验流程图(实验装置的结构示意图),再配以相应的文字说明,这样既可以节省许多文字说明,又能使实验报告简明扼要,清楚明白。 (九) 实验结果 实验现象的描述,实验数据的处理等。原始资料应附在本次实验主要操作者的实验报告上,同组的合作者要复制原始资料。 对于实验结果的表述,一般有三种方法: 1. 文字叙述: 根据实验目的将原始资料系统化、条理化,用准确的专业术语客观地描述实验现象和结果,要有时间顺序以及各项指标在时间上的关系。

算术表达式求值-数据结构实验报告

清华大学数据结构课程实验报告(20 -20 学年第学期) 报告题目:算术表达式求值 任课老师: 专业: 学号: 姓名: 二0一年月日

摘要:现代科学技术高速发展,各种高科技产品频频问世,而各种技术的基础都离不开基本的表达式求值,它虽然简单,但却是任何复杂系统的基本执行操作。栈是一种重要的线性结构,从数据结构的角度看,它是一种特殊的线性表,具有先入先出的特点。而算符优先法的设计恰巧符合先入先出的思想。故我们基于栈这种数据结构,利用算符优先法,来实现简单算术表达式的求值。 关键字:算符优先法;算术表达式;数据结构;栈 一、课题概述 1、问题描述 一个算术表达式是由运算数、运算符、界限符组成。假设操作数是正整数,运算符只含有加“+”、减“-”、乘“*”、除“/”四种二元运算符,界限符有左括号“(”、右括号“)”和表达式起始、结束符“#”。利用算符优先法对算术表达式求值。 2、设计目的 (1)通过该算法的设计思想,熟悉栈的特点和应用方法; (2)通过对算符优先法对算术表达式求值的算法执行过程的演示,理解在执行相应栈的操作时的变化过程。 (3)通过程序设计,进一步熟悉栈的基本运算函数; (4)通过自己动手实现算法,加强从伪码算法到C语言程序的实现能力。3、基本要求: (1)使用栈的顺序存储表示方式; (2)使用算符优先法; (3)用C语言实现; (4)从键盘输入一个符合要求的算术表达式,输出正确的结果。 4、编程实现平台 Microsoft Visual C++ 6.0 二、设计思路及采取方案 1、设计思路: 为了实现算符优先法,可以使用两个工作栈。一个称做OPTR,用以寄存运

实验报告编写格式和基本要求

《园林施工与管理》实验指导大纲 一、实验内容 ①园林场地平面施工图放样;②园林场地竖向测量。 二、实验地点 西南林业大学教学主楼前 三、实验目的及要求 ①掌握实际工作进行园林图纸现场放样的方法。 ②掌握运用皮尺进行多种常见园林场地形状的画法。 ③熟悉水准仪的构造和使用方法。 ④掌握普通水准测量的观测,记录,计算和检核的方法。 四、实验分组 每组学生不超过12人。(班长和学习委员进行分组) 五、实验仪器及工具 ①皮尺、水准仪(由班长和学习委员到园林学院借取) ②图版、图纸、稿纸、记录笔、计算器(自带) ③粉笔(组长教室取用) 六、主要实验步骤与方法 (一)场地平面施工图绘制 根据所给图纸,在教学主楼前开阔地带,运用皮尺,借鉴几何制图的原理,使用粉笔绘制与图纸相吻合的园林场地。 1.认真阅读图纸 2.基准点的确定(参照法) 3.直线或折线场地的绘制(坐标法、网格法、勾股定律) 4.圆形场地的绘制(坐标法) 5.菱形场地的绘制(坐标法) 6.椭圆形场地的绘制(坐标法、四心圆弧法) 9.乔木种植点的确定(坐标法) 10.片植地被植物的绘制(坐标法、网格法) 11.将放样坐标标识在图纸上 (二)场地竖向测量 1.水准仪使用步骤 ①安置仪器;②粗略整平③瞄准水准尺④精平与读数。 2.水准测量 ①依次测量各主要场地控制点的现状标高,并使用标识在场地上。 ②根据现状标高和图纸设计成型标高计算场地标高差值,并标识在场地上;其中,挖方场地控制点前加“+”号以示区别,填方场地控制点前加“-”号以示区别。 ③将场地竖向采取相同的方法标识在图纸上。

七、实验成果 根据实验过程和结果,文字描绘和草图绘制相结合,编写本实验的全过程实验报告。(仅能使用手写版,字数不少于3000字。提交时间:实验结束后的周四上午十点前) 八、实验报告编写要求 1.实验名称——(园林施工与管理——平面和立面放样) 2.实验内容①园林场地平面施工图放样;②园林场地竖向测量。 3.实验地点——西南林业大学教学主楼前 4.实验目的——结合本实验,简明扼要说明本实验在理论学习和专业实践中的作用。 5.实验工具——根据现场使用过的各种工具进行编写。 6.实验基本背景——简要介绍实验图纸的基本场地和设计概况 7.实验数据及结果——紧紧围绕图纸的平面放样过程、竖向测量过程,详细编写使用了什么工具?什么顺序?什么方法(绘制方法、仪器方法、测量丈量方法)?多大参数? 8.平面放样过程图纸——参照所给图纸,将各种放样参数和过程依次绘制草图标识清楚 9.场地竖向测量图纸——使用所给图纸,根据现场测量顺序,绘制各场地控制点测量的原始标高、挖填高差值。 10简要谈谈本实验在大学专业知识学习方面的应用感想。 11.简要谈谈本实验对未来专业工作的应用设想和思考。

《C语言程序设计》实验报告实验

《C语言程序设计》 实验报告 2013~2014学年第二学期 班级 姓名 学号 指导教师

实验一 实验项目名称:C程序的运行环境和运行C程序的方法 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.了解在Visual C++ 6.0环境下如何编辑、编译、连接和运行一个C程序; 2.通过运行简单的C程序,初步了解C源程序的特点。 二、预习内容: 教材《C语言程序设计教程》第1章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入并运行下面的程序: #include int main( ) { printf("This is a C program.\n"); return 0; } 2. 在Visual C++ 6.0环境下输入下面的程序(有语法错误),编译、连接、调试该程序,直至程序无语 法错误,然后运行程序,并观察分析运行结果。 #include int main( ) { int a,b,sum a=3; b=4; sun=a+b; print(“%d+%d=%d\n”,a,b,sum); return 0; } 四、实验结果: 1. 运行结果(或截图): This is a C program. Press any key to continue 2. (1) 改正后的源程序: #include int main( ) { int a,b,sum; a=3; b=4; sum=a+b;

printf("%d+%d=%d\n",a,b,sum); return 0; } (2) 运行结果(或截图): 3+4=7 五、思考题: 1. 一个C程序上机的步骤有哪些? 答:上级输入与编辑源程序—对原程序进行编译–与库函数链接–运行可执行的目标程序。 2. 组成C程序的基本单位是函数,一个函数包括哪几个部分? 答:一个函数包括两部分:分别为函数头或函数首部和函数体。 成绩指导教师签名 实验二 实验项目名称:数据类型、运算符和表达式 所使用的工具软件及环境:Visual C++ 6.0 一、实验目的: 1.掌握整型、实型与字符型这三种基本类型的概念; 2.掌握常量及变量的使用方法; 3. 掌握基本算术运算符及其表达式的使用方法; 4. 掌握++、--运算符、赋值运算符及其表达式的使用方法。 二、预习内容: 教材《C语言程序设计教程》第2章。 三、实验内容: 1. 在Visual C++ 6.0环境下输入下面的程序,编译、连接、调试该程序。 main( ) { char m,n; m=280; n=320; printf(“%d\t%d\n”,m,n); printf(“%c\t%c\n”,m,n); } 2. 在Visual C++ 6.0环境下输入并运行下面的程序,观察分析运行结果。 #include int main( ) { int a=3,b=4,c=8; float d,e; d=a+b/c; e=a+(float)b/c;//请将此处d改为b printf("d=%f,e=%f\n",d,e);

长沙理工大学数据结构栈的实现及应用算术表达式求值实验报告

实验报告 年级班号学号姓名 实验名称:栈的实现及其应用:算术表达式的计算实验日期2016年12月2日 计算机科学与技术系 2016年制

一、实验环境 32位操作系统下的Window平台Microsoft Visual C++ 二、实验目的 掌握栈的实现及使用 三、实验内容 1.实现栈的存储结构 2.实现栈的基本操作的有关算法 3.利用栈解决*算术表达式求值问题 四、数据结构与算法思想描述 顺序读取中缀表达式: 1、当遇到数字时,将数字入数字栈 2、当遇到操作符时,与操作符栈栈顶比较: If(当前操作符优先级大于操作符栈栈顶的优先级) If(非”)”操作符) 将当前操作符进操作符栈; Else While(操作符栈栈顶不等于”(“) 取操作符栈栈顶及数字栈的两个数进行运算,并将结果压入数字栈; Else If(非(“操作符) While(操作符栈栈顶不等于”(“) 取操作符栈栈顶及数字栈的两个数进行运算,并将结果压入数字栈; Continue;(直到当前操作符比栈顶操作符优先级大) Else 将当前操作符进操作符栈; 3、While(操作符栈非空) 操作符栈栈顶及数字栈的两个数进行运算,并将结果压入数字栈; 4、在数字栈取最后结果并输出。

五、程序清单 //10*8^2+16.3+5*(5.2*5+3.01)/4-(-10)+0.1000060+4.00416-40 = 666.666666 //100+(-100)-(-10^2) = 100 //(((2016-2017+(((2015-2014)))))) = 0 //-1+(((((((((1^0))))))))+100%10^2 = 0 #include #include #include #include #include #include using namespace std; const int MAX = 105; typedef double Type; typedef struct { Type TypeStack[MAX]; char charStack[MAX];

相关文档