算法与数据结构课程设计表达式求解问题(3)
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
#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
相关推荐:
- [互联网资料]2022年厦门大学机电工程系824机械设计
- [互联网资料]东南大学2022年硕士研究生拟录取名单公
- [互联网资料]能源调研报告(精选多篇)
- [互联网资料]初三英语下学期 中考英语 语法填空训练
- [互联网资料]2022内蒙古选调生行测常识备考:新事物
- [互联网资料]自驾必备!在新西兰租什么样的车自驾游
- [互联网资料]佛教素食菜谱44页未完
- [互联网资料]盈利能力分析外文翻译
- [互联网资料]2022年南昌航空大学音乐学院736马克思
- [互联网资料]优选外贸跟单实习报告总结(精品版)
- [互联网资料]银行新员工培训总结
- [互联网资料]2_year_visa_new_guidance_190316
- [互联网资料]天津市五校宝坻一中静海一中杨村一中芦
- [互联网资料]2007--2008学年第一学期高三数学宁波市
- [互联网资料]Chromatic framework for vision in ba
- [互联网资料]幼儿园大班上学期美术教案《心愿树》含
- [互联网资料]2022年华中农业大学信息学院820微型计
- [互联网资料]硬盘坏道的表现 __硬盘使用久了
- [互联网资料]江苏省2016年会计从业资格考试《会计基
- [互联网资料]公共场所卫生监督试卷全解
- 高级英语第一册所有修辞方法及例子总结
- 综合交通枢纽规划与城市发展
- 沃尔玛的企业文化案例分析
- 美国Thanksgiving Day 感恩节 介绍
- PEP六年级英语上册Unit6How do you fee
- 最齐全的中国大型商场购物中心名单
- 数据结构实验报告八—哈夫曼编译码
- 杭州市余杭区人民政府(通知)
- 七年级语文成语运用专项训练
- 微观经济学第三章 消费者行为 课后习题
- 对_钱学森之问_的思考
- Excel_三级联动_下拉菜单
- 办公用品需求计划申请表
- 对外汉语教材必须要知道的发展史
- 挑战杯大学生学术科技作品竞赛作品申报
- 举办民办教育培训机构应具备下列条件
- 太阳能路灯项目设计方案
- 2013年八年级上最新人教版新教材Unit3I
- 【历史】 6-4 《近代科学之父牛顿》 课
- 高中生物《第四章 第二节 探讨加酶洗衣




