1、 数 据 结 构 课 程 设 计 设计题目: 串的应用及其基本操作 学生姓名: 专业班级: 指导教师: 完成时间: 信 息 工 程 学信 息 工 程 学院 信科信科 系 目目 录录 第一章:课程设计的目的、基本要求及其解析 1 1.1 课程设计的目的: . 1 1.2 课程设计要求: . 1 1.3 课程设计题目解析: . 1 第二章:课程设计内容 1 2.1 程序设计代码: 1 2.2:程序设计的基本思想: 12 2.3 程序运行结果: . 15 第三章:课程设计的优点及遇到的问题 . 19 3.1:课程设计的优缺点: 19 3.2:课程设计过程中遇到的问题: 19 第四章:总结 . 20
2、41:个人小结: . 20 42:参考文献: . 21 1 第一章第一章:课程设计的目的、基本要求及其解析:课程设计的目的、基本要求及其解析 1.1 课程设计的目的: (1):掌握串的基本存储结构。 (2):掌握串的基本运算及其实现。 1.2 课程设计要求: (1):将上机程序全部调试通过。 (2):结合程序分析运行结果。 1.3 课程设计题目解析: 顾名思义,串及其基本操作,就是要在理解串的基本概念和特征的基础上, 了解串的内部表示和处理方法。这样才能有效地实现串的基本操作。串,也还是字符 串,是一种特殊的线性表。特殊之处在于表中的每一个元素都是字符,以及由此而要 求的一些特殊操作。在串及其
3、基本操作中,要求的操作有联接、求串长、求子串、比 较串的大小、串的插入、串的删除、子串的定位和置换。因为所要进行的操作比较零 散也比较多,所以就要用到多个函数把这个整体的课程设计划分成多个模块来进行。 每个函数对应一个功能。在主函数中,用一个菜单,就可以将原来的已分模块的函数 系统地进行检验及操作。 第二章:课程设计内容第二章:课程设计内容 2.1 程序设计代码: #include #include #define maxsize 64 /*假设串可能的最大长度是 64 */ typedef struct 2 char chmaxsize; /*串的存储空*/ int curlen; /*当前
4、串的长度*/ seqstring; seqstring *s; void strcats()/*串的联接*/ seqstring str132,str232; printf(“请输入俩串字符串:“); scanf(“%s%s“,str1,str2); strcat(str1,str2); puts(str1); void strlens()/*串的长度*/ seqstring str32; int i; printf(“请输入一串字符串:“); scanf(“%s“,str); 3 i=strlen(str); printf(“此字符串的串长为:%d“,i); void strcmps()/*
5、比较串的大小*/ seqstring str132,str232; printf(“请输入两串字符串:“); scanf(“%s%s“,str1,str2); if(strcmp(str1,str2)0) printf(“1“); if(strcmp(str1,str2)=0) printf(“0“); if(strcmp(str1,str2)curlen); printf(“请输入要插入的字符串的长度:“); scanf(“%s%d“,t, for(j=s-curlen-1;j=i;j-) s-chj+t-curlen=s-chj; for(k=0,j=i;t-chk!=0;k+,j+) s
6、-chj=t-chk; s-chs-curlen+t-curlen=0; s-curlen=s-curlen+t-curlen; 5 printf(“插入后的字符串为:“); puts(s-ch); void deletes(seqstring *s,int i,int j)/*串的删除*/ int k; printf(“请输入原字符串和其长度:“); scanf(“%s%d“,s, for(k=i+j-1;s-chk!=0;k+) s-chk-j=s-chk; s-chk-j=0; s-curlen=k-j; printf(“删除后的字符串为:“); puts(s-ch); int index(seqstring *s,seqstring *t) /*串的定位*/ int i=0,j=0; 6 printf(“请输入主串和子