简易文本编辑器数据结构课程设计内容摘要:

择设计一个简易的文本编辑器。 通过这次课程设计我认识到了知识的学习不能只局限于课 本知识,更使我明白了编码能力和实践能力的重要性,而我们以后15 的编码将会有更高的要求,将会有更多的设计要求,不能仅仅是从自身的考虑出发,这将大大提高编码的困难程度。 而通过这次课程设计,也让我更加的熟练的掌握了 Visual C 的环境和语法,熟悉了其结构,提高了自身的分析能力和编码能力。 同时,通过这次课程设计,我也对大一学习的 C 语言进行了一次复习,再次复习了 C 语言的编程语法。 在编码与调试过程中,我也遇到了很多的问题,有很多问题也是由于自己的粗心而使调试的时候花费了很多不必要的世界,例如有的地方少了分号,冒号,有的 地方忘记了定义,有时候即使没有出现错误但是运行结果是错误的,通过与同学的交流沟通,和在书上查看相关资料,最终解决了这些问题。 总之,通过这次课程设计不仅锻炼了我的实际操作能力,而且培养了严密的思维能力和严谨的态度,本次课程设计让我受益匪浅,而且加深了我对编程的兴趣。 参考文献 1].王昆仑、李红。 《数据结构与算法》。 北京:中国铁道出版社。 16 附 录(关键部分程序清单) 查找和替换函数 void chazhao(LString *T,char *chars,char *chars1)//所查找字符和替换后的字符 { Chunk *p,*q。 int m=0,c=0,a=1,b=0,d=0,a1=0,c1=0,c2=0,x=0。 char u。 p=q=Thead。 while(1) { if(c==CHUNKSIZE) { q=qnext。 a++。 c=0。 } for(x=0。 qch[c]==chars[m]。 x++) { m++。 c++。 if(x==0) { b=a。 d=c1。 } if(c==CHUNKSIZE) { q=qnext。 c=0。 } 17 if(chars[m]==39。 \039。 )//字符查完 { printf( 所 查 字 符 所 在 行 位 置 是 %d,第 %d 个位置开始\n,b,d+1)。 printf(若需替换该字符,输入 Y,否则输入 N\n)。 scanf(%c,amp。 u)。 fflush(stdin)。 if(u!=39。 N39。 ) { p=Thead。 a=b。 c=d。 for(a1=1。 a1a。 a1++) p=pnext。 q=p。 for(。 c1m。 c1++)//替换后的字符 chars1 { if(c==CHUNKSIZE) { q=qnext。 c=0。 } qch[c]=chars1[c2]。 c2++。 c++。 } c2=0。 c1=0。 StrPrint(*T)。 18 }//替换完毕 c=d。 a=b。 } } if(!*(qch+c+1+m))//串查完 / { printf(查找完成,已无匹配字符 \n)。 break。 } else { p=Thead。 for(a1=1。 a1a。 a1++) { p=pnext。 q=p。 } c=c+1。 m=0。 } } } 生成一个其值等于 chars 的串 T, 成功返回 1,否则返回 0 int StrAssign(LString *T,char *chars) { int i,j,k,l,m=0。 19 Chunk *p,*q。 i=strlen(chars)。 // i 为串的长度 if(!i) return 0。 (*T).curlen=i。 j=i/CHUNKSIZE。 // j 为块链的结点数,块的个数 ,即行数 if(i%CHUNKSIZE0) //不足一个块的,当成一个块即块数加 1 j++。 printf(长度是 %d\n 行数是 %d\n,i,j)。 for(k=0。 kj。 k++) { p=(Chunk*)malloc(sizeof(Chunk))。 if(!p) return 0。 if(k==0) (*T).head=q=p。 else {。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。