五、结论与心得 1.总体评价
在此次的课程设计中,由于不够细心,在程序设计中犯了一些错误,花了挺多的时间。但是经过一番思考并且在老师的帮助下,找到了导致程序错误的原因,经过几次修改和调试,程序能正常运行,并且能够完成课程设计任务中的大部分功能。同时在此次的课程设计中让我更深刻的了解了二叉树的基本操作,增加了对专业只是学习的兴趣。我想在以后的学习中,我们会继续努力,希望在计算机方面有好的成绩,也感谢老师给我们这次课程设计的机会,让我们认识到了自身的不足,让我们能够不断地完善自己!
2.所做的工作及体会
肖琳桂:
编写程序和课程设计报告。课程设计中我主要担任程序设计的编写和设计报告的编写工作,经过两个星期的上机实践学习,使我对数据结构有了更进一步的认识和理解,也知道了要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。通过实践我发现我的很多不足之处,然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不到的困惑,因为自己对知识点的掌握不够熟悉,但通过学习有很大改进。
在这次课程设计中使我知道了二又树的先序、中序、后序、层次遍历。同时,还包括了求二叉树深度和结点个数,结点的孩子信息,以及对文件的操作,用文件读取的方式实现对二叉树的建立。充分掌握树的基本操作,以及对线性存储结构的理解。也培养了我如何去把握一件事情,如何去做一件事情,又如何完成一件事情的方法和技巧。
在设计过程中,和同学们相互探讨,相互学习,相互监督。我学会了运筹帷幌,学会了宽容,学会了理解,也学会了做人与处世,这次课程设计对找来说受益良多。
在今后的日子里,我会认真对待每一件事情,争取做到最好,努力将知识与实践相结合,不断巩固,加深所学的知识,做到学以致用。
另外感谢老师的细心教导,以及同学们的帮助。
10
康政:
编写程序和课程设计报告。我在小组中做了编写程序和撰写报告的工作。在编写程序时,遇到很多困难,例如缺少声明,调用函数错误等等。通过网上搜查,查询资料以及老师的指点帮助,完成了很多任务。作为基础不是很好的学生,我在克服自己知识不足的过程中也在努力学习新的知识,运用不同的原理编写出不同的算法。也学习到,算法不能盲目抄袭,很多东西是不同的,必须通过自己的思考和努力的钻研才能写出一套完整的代码,不可心急,越是急越不可能精细的完成任务。撰写报告的时候,很多地方因细节问题处理不好导致出了大大小小很多漏洞,不能很精细的完成指定的任务。从中我也明白了,做一件事,尤其是耗时的编写程序的问题,不能心急也不能马虎,也许一点点出错整个程序就会崩溃,还要重新一点点的检查才能找出问题,大大降低了办事效率。所以,今后要做的第一件事是慢慢巩固检出,打好根基。第二件事是沉下心来认真做事,不能毛手毛脚,从头到尾认真细致的做下去,避免出错惹出更多的麻烦。这次的程序设计使我受益匪浅,学到了很多,做了很多。希望以后可以更多的做这种任务,巩固知识,学习新的知识,有了这些经验可以做的更好。
张小东:
查找资料和打印。这次我在小组中做的事情是查询资料和打印排版。虽然因为我的专业底子差一点,现在暂时只能在程序设计时查找一些需要用到的专业资料,帮助组员完成设计,但我相信下一次我不会仅此于此。这次程序设计我的收获还是很大了,让我懂得了学好专业知识,并不是自己想象中的难,而是你自己是否去努力了。
在查找资料的过程中,我是边查边学自己不会的知识点。查找途中也遇到了一些当时不能理解的知识点,但经过同学的细心解答,最后一些难掌握的知识点都被基本掌握。这让我懂得编程过程需要很大的耐心,而且要有良好的思维和扎实的专业基础知识,所以我需要努力的学习,发现自身不足之处并努力改正他,逐步提高自身的能力,不断取得进步。通过这次课程设计,我认识到知识运用的重要性,并且努力加深对基础知识的理解,从中了解自己需要学习的东西并学会自学。作为一名计算机专业的学生,今后我会加紧学习,学好专业知识,为将来打下坚实的基础。
11
张帆:
查找资料和打印。这次我在小组中做的事情是查询资料,打印排版。虽然这些工作并不是主要任务,但是我用心对待,认真为做程序的同学查找资料,为他们挑选所需要的代码以及算法,及时反馈给他们信息。因为基础不是很好,经常会剪裁到一些不是很合适的代码,我们通过共同分析,共同筛选,最终也获得了很多收获。通过和他们一起分析代码,我也涨了很多知识。懂的了二叉树的算法,数据类型等等。报告的排版也是一项需要耐心的工作,通过晚上的时间,我认认真真的对所写的设计报告进行了排版,把一些不符合文本框架或者有代码错误的都进行了细致的修改,保证了设计报告的质量。从这次的程序设计中,我学到了很多。认认真真做一件事情不会有错,用什么态度做什么事会得到什么样的回报。并且我认为数据结果也不是很难的科目,认真花时间去琢磨一定不会落下很多。所以以后我会细致做事,并在闲暇时间补习功课,争取尽快补习好原来的知识,再学习新的知识为自己充电。
12
六、程序附录(源代码)
#include
typedef struct BiTNode {
TElemType date;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
void Destory(BiTree &T);//函数声明 char input[255]; void Interface(); void sjecs(BiTree &T); void jp(BiTree &T);//键盘 void wj(BiTree &T);//文件 void CreateBiTree(BiTree &T); int Count(BiTree T); int Deep(BiTree T);
void PreOrderTraverse(BiTree T);//先序 void InOrderTraver(BiTree T);//中序 void PostOrderTraver(BiTree T);//后序 void ccbl(BiTNode *b);//层次遍历 void blxljm();
void locate(BiTree T,char x); void main()//主函数 {
Interface(); BiTree T=NULL; bool End=false; char sel;
13
k; ;
char x; int p=1; int q=1; do{
Interface(); fflush(stdin); char select=cin.get(); system(\switch(select) {
case'1':cout<<\创建二叉树:\\n\case'2': {
cout<<\遍历序列\\n\do{blxljm();cout<<\选择:\fflush(stdin); sel=cin.get(); p=1; switch(sel) {
case'1':cout<<\
先序遍历二叉树的输出顺序:
\\n\
case'2': cout<<\中序遍历二叉树的输出顺序:case'3': cout<<\后序遍历二叉树的输出顺序:
\\n\\\n\
case'4': cout<<\层次遍历二叉树的输出顺序:\\n\case'5': p=0; }
}while(p); break;}
ccbl(T);cout<<\
case'3':{ do{ system(\
14