1、课 程 设 计 任 务 书 学院 信息科学与工程 专业 通信工程 学生姓名 * 学号 设计题目 字符串类的设计与实现字符串类的设计与实现 内容及要求: 计算机处理的对象分为数值数据和非数值数据, 字符串是最基本的非数值数 据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分析、 符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。 要求采用 C+语言实现进行字符串类的设计, 具体要求如下: (1) 使用堆分配存储表示实现字符串的存储; (2) 实现串赋值操作 StrAssign( (4) 实现求串长操作 StrLength(S); (5) 实现串连接操作 Concat(
2、(8) 将上述功能作为类的成员函数实现,编写主函数测试上述功能。 进度安排: 第 17 周:分析题目,查阅课题相关资料,进行类设计、算法设计; 第 18 周:程序的设计、调试与实现; 第 19 周:程序测试与分析,撰写课程设计报告,进行答辩验收。 指导教师(签字) : 年 月 日 学院院长(签字) 年 月 日 目目 录录 1 需求分析 . 3 2 算法基本原理 . 3 3 类设计. 4 4 详细设计 . 4 4.1 类的接口设计 4 4.2 类的实现 5 4.3 主函数设计 5 5 DOS 界面程序运行结果及分析 . 8 5.1 程序运行结果 12 5.2 运行结果分析 14 6 基于 MFC
3、 的图形界面程序开发 14 6.1 基于 MFC 的图形界面程序设计 . 14 6.2 程序测试 18 6.3 MFC 程序编写总结 . 20 7 参考文献 20 1 需求分析需求分析 (1) 计算机处理的对象分为数值数据和非数值数据, 字符串是最基本的非数 值数据。其应用非常广泛,它是许多软件系统(如字符编辑、情报检索、词法分 析、符号处理、自然语言翻译等系统)的操作对象。其重要性不言而喻。 (2)字符串是字符的有限集合,可记作 a=a1 an。其中 a 是字符串的 名,单括号里的字符序列是字符串的值,单引号不是字符串的成分,其作用是为 了避免变量名与常量混淆。ai(0ch=(char *)
4、malloc(sizeof(char)*len,就会为字符串分配内存。 (3)函数是有字符串类进行调用的,通过在主函数中定义字符串类的对象,作 为函数的参数,对于需要改写对象的需要进行址传递,我们可以通过函数在主函 数中的反映来观察他的执行状态。 3 类设计类设计 4 详细设计详细设计 整个程序分为三个独立的文档, Linequ.h文件中包括矩阵类 Matrix和线性方 程组类 Linequ 的声明,Linequ.cpp 文件中包括这两个类的成员函数实现文件; main.cpp 文件包括程序的主函数,主函数中定义了一个类 Linequ 的对象,通过 这个对象求解一个四元线性方程组。 4.1 类
5、的接口设计 /Linequ.h文件,实现类的声明 #include #include using namespace std; class Matrix /基类 Matrix声明 public: /外部接口 Matrix(int dims=2); /构造函数 Matrix(); /析构函数 void SetMatrix(double *rmax); /矩阵赋初值 void PrintM(); /显示矩阵 protected: int index; /方阵的行数 double* MatrixA; /矩阵存放数组首地址 ; class Linequ:public Matrix /公有派生类 Lin
6、equ声明 public: /外部接口 Linequ(int dims=2); /构造函数 Linequ(); /析构函数 void SetLinequ(double *a, double *b); /方程赋值 void PrintL(); /显示方程 int Solve(); /全选主元高斯消去法求解方程 void ShowX(); /显示方程的解 private: /私有数据 double *sums; /方程右端项 double *solu; /方程的解 ; 经过公有派生,Linequ 类获得了除构造函数、析构函数之外的 Matrix 类的 全部成员,由于基类的成员是公有和保护类型,因此在派生类中的成员函数中, 基类继承来的成员全部可以访问,而对于建立 Linequ 类对象的外部模块来讲, 基类的保护成员是无法访问的。通过保护访问类型和公有的继承方式,实现了基 类 Matrix 的数据的有效共享和可靠保护。在程序中,方程的系数矩阵、解以及 右端项全部采用了动态内存分配