C++课程设计字符串类的设计与实现

发布时间 : 星期四 文章C++课程设计字符串类的设计与实现更新完毕开始阅读

封 皮

(按学校要求手工填写)

课 程 设 计 任 务 书

学院 学生姓名 设计题目 内容及要求: 信息科学与工程 *** 专业 学号 字符串类的设计与实现 通信工程 10030603** 计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分析、符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。 要求采用C++语言实现进行字符串类的设计, 具体要求如下: (1) 使用堆分配存储表示实现字符串的存储; (2) 实现串赋值操作StrAssign(&T, chars); (3) 实现串比较操作StrCompare(S,T); (4) 实现求串长操作StrLength(S); (5) 实现串连接操作Concat(&T,S1,S2) (6) 实现求子串操作SubString(&Sub,S,pos,len) (7) 实现清空子串操作ClearString(&S); (8) 将上述功能作为类的成员函数实现,编写主函数测试上述功能。 进度安排: 第17周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第18周:程序的设计、调试与实现; 第19周:程序测试与分析,撰写课程设计报告,进行答辩验收。 指导教师(签字): 年 月 日 学院院长(签字) 年 月 日

目 录

1 需求分析 ................................................................................................. 4 2 算法基本原理 ........................................................................................ 4 3 类设计 ..................................................................................................... 5 4 详细设计 ................................................................................................. 5

4.1 类的接口设计 ..................................................................................................... 5 4.2 类的实现 ............................................................................................................. 6 4.3 主函数设计 ......................................................................................................... 6

5 DOS界面程序运行结果及分析 ............................................................ 9

5.1 程序运行结果 ................................................................................................... 13 5.2运行结果分析 .................................................................................................... 15

6 基于MFC的图形界面程序开发 ........................................................ 15

6.1 基于MFC的图形界面程序设计 ..................................................................... 15 6.2 程序测试 ........................................................................................................... 19 6.3 MFC程序编写总结 ........................................................................................... 21

7 参考文献 ............................................................................................... 21

1 需求分析

(1) 计算机处理的对象分为数值数据和非数值数据,字符串是最基本的非数值数据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分析、符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。

(2)字符串是字符的有限集合,可记作a=’a1 …an’。其中a是字符串的名,单括号里的字符序列是字符串的值,单引号不是字符串的成分,其作用是为了避免变量名与常量混淆。ai(00,如果等于0,则称a为空串,记作:a=’’。

2 算法基本原理

(1)字符串从结构上看是一种以字符为数据元素的线性表,从存储结构的不同可分为顺序表和链式存储结构,它们都适用于字符串,但由于要求的操作不同,为了提高运算效率所选用的存储结构也是不同的。对于字符串改动较频繁的一般用链式存储结构,而顺序存储结构能够高效的读取。所以各有优点。本程序由于需要大量改动数据,理所当然的选择链式存储结构,其算法结构为: Typedef struct {

Char *ch; /*若字符串为空,则按长度分配存储区,否则为NULL */ Int length; /*字符串的长度*、 }

(2)本题字符串要求用堆来分配字符串的存储空间,采用堆分配函数malloc,它的格式为T->ch=(char *)malloc(sizeof(char)*len,就会为字符串分配内存。 (3)函数是有字符串类进行调用的,通过在主函数中定义字符串类的对象,作为函数的参数,对于需要改写对象的需要进行址传递,我们可以通过函数在主函数中的反映来观察他的执行状态。

联系合同范文客服:xxxxx#qq.com(#替换为@)