b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

数据结构算术表达式求值实验报告.pdf(2)

电脑杂谈  发布时间:2019-07-11 08:09:03  来源:网络整理

6第 页北京理工大学珠海学院计算机科学技术学院 2.输入正确的表达式后。 3.更改表达式,输入有2位数的整数调试。7第 页数据结构课程设计 5.心得体会这次课程设计让我更加了解大一学到的C 和这个学期学到的数据结构。课设题目要 求不仅要求对课本知识有较深刻的了解,同时要求程序设计者有较强的思维和动手能力和 更加了解编程思想和编程技巧。这次课程设计让我有一个深刻的体会,那就是细节决定成败,编程最需要的是严谨, 如何的严谨都不过分,往往检查了半天发现错误发生在某个括号,分号,引号,或者数据 类型上。就像我在写EvalExpr()函数时,忘了指针的地址符值不用加*号,这一点小小的 错误也耽误了我几十分钟,所以说细节很重要。程序设计时,也不要怕遇到错误数据结构表达式求值,在实际操作过程中犯的一些错误还会有意外的收获, 感觉课程设计很有意思。在具体操作中这学期所学的数据结构的理论知识得到巩固,达到 课程设计的基本目的,也发现自己的不足之出,在以后的上机中应更加注意,同时体会到 C语言具有的语句简洁,使用灵活,执行效率高等特点。发现上机的重要作用,特别算术 表达式有了深刻的理解。这个程序是我们3个人完成的,同时我认为我们的工作是一个团队的工作,团队需要 个人,个人也离不开团队,必须发扬团结协作的精神。

某个人的离群都可能导致导致整项 工作的失败。实习中只有一个人知道原理是远远不够的,必须让每个人都知道,否则一个 人的错误,就有可能导致整个工作失败。团结协作是我们成功的一项非常重要的保证。而 这次课程设计也正好锻炼我们这一点,这也是非常宝贵的最后,感谢老师在这次课程设计的悉心指导,祝老师身体健康,工作顺利。 参考文献:1. 《数据结构(C 语言版)》 严蔚敏 清华大学出版社2. 《C 语言程序设计》 丁峻岭 中国铁道出版社3. 《C 程序设计》 谭浩强 清华大学出版社 附 录 程序源代码:8第 页北京理工大学珠海学院计算机科学技术学院 #include<stdio.h> #include<stdlib.h> #include<string.h> #defineNULL0 #defineOK 1 #defineERROR -1 #define STACK_INIT_SIZE 100 #define STACKINCREMENT20 /* 定义字符类型栈 */ typedef struct{ int stacksize; char *base; char *top; }Stack; /* 定义整型栈 */ typedef struct{ int stacksize; int *base; int *top; }Stack2; /* 全局变量 */ Stack OPTR;/* 定义运算符栈*/ Stack2 OPND;/* 定义操作数栈 */9第 页数据结构课程设计char expr[255] "";/* 存放表达式串 */char *ptr expr;int InitStack(Stack *s)//构造运算符栈{s->base (char *)malloc(STACK_INIT_SIZE*sizeof(char));if(!s->base)return ERROR;s->top s->base;s->stacksize STACK_INIT_SIZE;return OK;} int InitStack2(Stack2 *s)//构造操作数栈{s->base (int *)malloc(STACK_INIT_SIZE*sizeof(int));if(!s->base)return ERROR;s->stacksize STACK_INIT_SIZE;s->top s->base;return OK;}int In(char ch)//判断字符是否是运算符,运算符即返回1{return(ch '+'||ch '-'||ch '*'||ch '/'||ch '('||ch ')'||ch '#');第 10 页北京理工大学珠海学院计算机科学技术学院 } intPush(Stack *s,char ch)//运算符栈插入ch 为新的栈顶元素 { *s->top ch; s->top++; return 0; } intPush2(Stack2 *s,int ch)//操作数栈插入ch 为新的栈顶元素 { *s->top ch; s->top++; return 0; } charPop(Stack *s)//删除运算符栈s 的栈顶元素,用p 返回其值 { charp; s->top--; p *s->top; returnp; } intPop2(Stack2 *s)//删除操作数栈s 的栈顶元素,用p 返回其值 { intp;第 11 页数据结构课程设计 s->top--; p *s->top; returnp; } char GetTop(Stack s)//用p 返回运算符栈s 的栈顶元素 { charp *(s.top-1); returnp; } int GetTop2(Stack2 s)//用p 返回操作数栈s 的栈顶元素 { intp *(s.top-1); returnp; } /* 判断运算符优先权,返回优先权高的 */ charPrecede(char c1,char c2) { int i 0,j 0; static char array[49] { '>','>','<','<','<','>','>', '>','>','<','<','<','>','>', '>','>','>','>','<','>','>',第 12 页北京理工大学珠海学院计算机科学技术学院 '>','>','>','>','<','>','>', '<','<','<','<','<',' ','!', '>','>','>','>','!','>','>', '<','<','<','<','<','!', ' '}; switch(c1) { /*i 为下面array 的横标 */ case'+' :i 0;break; case'-' :i 1;break; case'*' :i 2;break; case'/' :i 3;break; case'(' :i 4;break; case')' :i 5;break; case'#' :i 6;break; } switch(c2) { /*j 为下面array 的纵标 */ case'+' :j 0;break; case'-' :j 1;break; case'*' :j 2;break; case'/' :j 3;break;第 13 页数据结构课程设计 case'(' :j 4;break; case')' :j 5;break; case'#' :j 6;break; } return (array[7*i+j]);/* 返回运算符 */ } /*操作函数 */ int Operate(int a,char op,intb) { switch(op) { case'+' :return (a+b); case'-' :return (a-b); case'*' :return (a*b); case'/' :return (a/b); } return 0; } intnum(intn)//返回操作数的长度 {charp[10];itoa(n,p,10);//把整型转换成字符串型n strlen(p);第 14 页北京理工大学珠海学院计算机科学技术学院returnn; } int EvalExpr()//主要操作函数 { char c,theta,x;intn,m; int a,b; c *ptr++; while(c! '#'||GetTop(OPTR)! '#') { if(!In(c)) {if(!In(*(ptr-1)))ptr ptr-1; m atoi(ptr);//取字符串前面的数字段 n num(m); Push2(&OPND,m); ptr ptr+n; c *ptr++; } else switch(Precede(GetTop(OPTR),c)) { case'<': Push(&OPTR,c); c *ptr++;第 15 页数据结构课程设计 break; case' ': x Pop(&OPTR); c *ptr++; break; case'>': theta Pop(&OPTR); b Pop2(&OPND);a Pop2(&OPND); Push2(&OPND,Operate(a,theta,b)); break; } } return GetTop2(OPND); } intmain() { printf("请输入正确的表达式以'#'结尾:"); do{ gets(expr); }while(!*expr); InitStack(&OPTR);/* 初始化运算符栈 */ Push(&OPTR,'#');/* 将#压入运算符栈 */ InitStack2(&OPND);/* 初始化操作数栈 */第 16 页北京理工大学珠海学院计算机科学技术学院 printf("表达式结果为:%d\n",EvalExpr()); return 0; }第 17 页数据结构课程设计课程设计成绩评定表教师评语 1、课程设计表现: 2、程序、软件质量: 3、设计报告质量: 4、答辩表现: 5、独到的见解、方法与创新性: 6、总结:成绩记录 平时成绩 (10 分) 程序检查 (20+20 分) 设计报告文档 (20 分) 课程设计答辩 (20+10 分) 最后 (百分)成绩成绩 (等级)评定第 18 页


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-112082-2.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 汉明帝刘庄
      汉明帝刘庄

      迎接他的有猎

    • 吴大有
      吴大有

      早日回到大陆祖国母亲的怀抱

    • 冯舒沛
      冯舒沛

      #给烊烊520#1128生日评论

    每日福利
    热点图片
    拼命载入中...