教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

算法与数据结构课程设计表达式求解问题(3)

来源:网络收集 时间:2026-07-26
导读: 1程序调试 2调试中遇到的问题 1.书写标识符时,忽略了大小写字母的区别。 main() { int a=5; printf(\} 编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上

1程序调试

2调试中遇到的问题

1.书写标识符时,忽略了大小写字母的区别。 main() { int a=5; printf(\}

编译程序把a和A认为是两个不同的变量名,而显示出错信息。C认为大写字母和小写字母是两个不同的字符。习惯上,符号常量名用大写,变量名用小写表示,以增加可读性。 2.忽略了变量的类型,进行了不合法的运算。 main() { float a,b; printf(\}

11

%是求余运算,得到a/b的整余数。整型变量a和b可以进行求余运算,而实型变量则不允许进行“求余”运算。

3.将字符常量与字符串常量混淆。 char c; c=\

在这里就混淆了字符常量与字符串常量,字符常量是由一对单引号括起来的单个字符,字符串常量是一对双引号括起来的字符序列。C规定以“\\”作字符串结束标志,它是由系统自动加上的,所以字符串“a”实际上包含两个字符:‘a'和‘\\',而把它赋给一个字符变量是不行的。 4.忽略了“=”与“==”的区别。

在许多高级语言中,用“=”符号作为关系运算符“等于”。如在BASIC程序中可以写 if (a=3) then …

但C语言中,“=”是赋值运算符,“==”是关系运算符。如: if (a==3) a=b;

前者是进行比较,a是否和3相等,后者表示如果a和3相等,把b值赋给a。由于习惯问题,初学者往往会犯这样的错误。 5.忘记加分号。

分号是C语句中不可缺少的一部分,语句末尾必须有分号。 a=1 b=2

编译时,编译程序在“a=1”后面没发现分号,就把下一行“b=2”也作为上一行语句的一部分,这就会出现语法错误。改错时,有时在被指出有错的一行中未发现错误,就需要看一下上一行是否漏掉了分号。 { z=x+y; t=z/100; printf(\}

对于复合语句来说,最后一个语句中最后的分号不能忽略不写(这是和PASCAL不同的)。

12

6.多加分号。

对于一个复合语句,如: { z=x+y; t=z/100; printf(\};

复合语句的花括号后不应再加分号,否则将会画蛇添足。

3心得体会

转眼,为期两周的《数据结构》课程设计即将结束了。我的题目是:图

遍历的演示,这两周课程设计中,通过该题目的设计过程, 自己的C语言知识和数据结构知识得到了巩固,编程能力也有了一定的提高,我加深了对图数据结构及队列的逻辑结构,存储结构及图的深度优先和广度优先遍历过程的理解,对图数据结构上基本运算的实现有所掌握,对课本中所学的各种数据结构进一步理解和掌握,学会了如何把学到的知识用于解决实际问题,锻炼了自己动手的能力。总结起来,自己主要有以下几点体会:

1.必须牢固掌握基础知识。由于C语言是大一所学知识,有所遗忘,且未掌握好这学期所学的《数据结构》这门课,所以在实习之初感到棘手。不知如何下手,但在后来的实习过程中自己通过看书和课外资料,并请教其他同学,慢慢地对C语言和数据结构知识有所熟悉。这时才逐渐有了思路。所以,这次实习之后,我告诫自己:今后一定要牢固掌握好专业基础知识。

2.必须培养严谨的科学态度。自己在编程时经常因为一些类似于“少了分号”的小错误而导致错误,不够认真细致,这给自己带来了许多麻烦。编程是一件十分严谨的事情,容不得马虎。所以在今后自己一定要培养严谨的科学态度。我想这不仅是对于程序设计,做任何事都应如此。

3.这次课程设计也让我充分认识到《数据结构》这门课的重要性。它给我们一个思想和大纲,让我们在编程时容易找到思路,不至于无章可循。同时它也有广泛的实际应用。

在课程设计时遇到了很多的问题,在老师的帮助,和对各种资料的查阅

13

中,将问题解决,培养了我自主动手,独立研究的能力,为今后在学习工作中能更好的发展打下了坚实的基础。

两周的课程设计很短暂,但其间的内容是很充实的,在其中我学习到了很多平时书本中无法学到的东西,积累了经验,锻炼了自己分析问题,解决问题的能力,并学会了如何将所学的各课知识融会,组织,来配合学习,两周中我收益很大,学到很多。

四 附件

1源程序代码

#include #include

#define stack_init_size 40 #define stackincrement 20 #define OK 1

#define FALSE 0 typedef struct{ int *base; int *top; int stacksize; }s_stack;

typedef struct{ char *base; char *top; int stacksize; }f_stack;

static char OP[7][7]= {

{'>','>','<','<','<','>','>'},{'>','>','<','<','<','>','>'},

14

{'>','>','>','>','<','>','>'},{'>','>','>','>','<','>','>'}, {'<','<','<','<','<','=',' '},{'>','>','>','>',' ','>','>'}, {'<','<','<','<','<',' ','='} };

int in(char c) /*判断是否为运算符*/ { int i;

char a[]=\

for(i=0;i

int s_initial(s_stack *s) {

s->base=(int *)malloc(stack_init_size*sizeof(int)); if(!s->base) exit(0); s->top=s->base;

s->stacksize=stack_init_size; return OK; }

int f_initial(f_stack *f) {

f->base=(char *)malloc(stack_init_size*sizeof(char)); if(!f->base) exit(0); f->top=f->base;

f->stacksize=stack_init_size; return OK; }

void s_push(s_stack *s,int e) {

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

s->base=(int *)realloc(s->base,(s->stacksize+stackincrement)*sizeof(int)); if(!s->base) exit(0);

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

*(s->top)=e; s->top++; }

void f_push(f_stack *f,char e) {

if(f->top-f->base>=f->stacksize) {

f->base=(char *)realloc(f->base,(f->stacksize+stackincrement)*sizeof(char));

15

…… 此处隐藏:1117字,全部文档内容请下载后查看。喜欢就下载吧 ……
算法与数据结构课程设计表达式求解问题(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/443095.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)