江苏科技大学课程实践报告设计题目程序设计实践设计时间至学院系船舶与海洋工程专业班级卓越一班学生姓名朱国栋学号指导老师张晓茹任务一一实践任务建立一个类对数组中元素用选择法进行升序排序排序函数定义到类的友元类中具体要求如下类二详细设计类的描述与定义私有数据成员一维整型数组存放需要排序的数需要排序的数的个数公有成员函数构造函数初始化成员数据初始值为友元类公有成员函数从键盘输入数据对数组进行赋值对数组中的元素进行升序排序输出数组中的元素主要函数设计在主程序中定义对象对该类进行测试三源程序清单请输入需要排序的数的个数请依次输入个需要排序的数数组中的元素为四运行结果任务二一实践任务建立一个类将数组中最大元素的值与最小元素的值互换二详细设计类的描述与定义私有数据成员一维整型数组数组中元素的个数公有成员函数构造函数初始化成员数据输出平均值并将数组中的元素按要求重新放置输出一维数组析构函数主要函数设计在主程序中用数据对该类进行测试三源程序清单平均值为四运行结果任务三一实践任务建立一个生成并显示一个螺旋方阵螺旋方阵如下图所示起始数置于方阵的左上角然后从起始数开始依次递增按顺时针方向从外向里旋转填数而成二详细设计类的描述与定义私有数据成员二维整型数组存放螺旋方阵螺旋方阵的起始数存放方针的层数公有成员函数构造函数初始化成员数据和生成起始数为的行螺旋方阵输出螺旋方阵主要函数设计在主程序中定义类的对象对该类进行测试三源程序清单测试请输入起始数和方阵的层数四运行结果任务四一实践任务建立一个类求两个整数集合的并集二详细设计类的描述与定义私有数据成员用动态空间存储集合表示其元素的个数用动态空间存储集合表示其元素的个数用数组空间存储并集表示其元素的个数公有成员函数用变量和初始化集合及其长度用变量和初始化集合及其长度并把并集的长度置为判断整数是否属于集合是返回否则返回求集合和集合的并集方法是先把集合中的所有元素复制给并集然后调用函数把集合中不属于集合的元素复制给并集输出集合集合和并集释放动态空间主要函数设计在主函数中对定义的类进行测试定义数组并用它们初始化类的对象然后调用相关的成员函数求并集输出集合集合和并集三源程序清单集合集合并集四运行结果任务五一实践任务建立一个类求一个数组中的所有鞍点提示鞍点是这样的数组元素其值在它所在行中为最大在它所在列中为最小二详细设计类的描述与定义私有数据成员存放二维数组元素存放二维数组中的鞍点值存放鞍点个数公有成员函数构造函数用参数初始化数组同时初始化数组与的值均为求数组所有鞍点如果有鞍点把它们行列及值相应存放在数组中并将求出的鞍点个数赋给输出数组鞍点个数与鞍点坐标及相应值主要函数设计在主程序中定义数组作为原始数组定义一个类对象通过调用成员函数完成求鞍点及输出工作三源程序清单数组为鞍点个数当不为时即其中此时对应下标保存有原数组中对应下标的鞍点值鞍点坐标相应值无鞍点四运行结果任务六一实践任务定义一个方阵类并根据给定算法实现方阵的线性变换方阵的变换形式为为原始矩阵为原始矩阵的转置为变换矩阵这里设定为1001011001101001二详细设计类的描述与定义私有数据成员指向方阵数组为变换矩阵表示方阵的行和列数公有成员函数用给定的参数和初始化数据成员和对变换矩阵进行初始化要求必须用循环实现根据上述变换算法求出变换后的数组形式存放在原始数组内在屏幕上显示数组元素释放动态分配的空间主要函数设计在主程序中定义数组作为原始数组定义一个类对象用初始化完成对该类的测试三源程序清单一实践任务定义一个方阵类并根据给定算法实现方阵的线性变换方阵的变换形式为为原始矩阵为原始矩阵的转置为变换矩阵这里设定为1001011001101001二详细设计类的描述与定义私有数据成员指向方阵数组为变换矩阵表示方阵的行和列数公有成员函数用给定的参数和初始化数据成员和对变换矩阵进行初始化要求必须用循环实现根据上述变换算法求出变换后的数组形式存放在原始数组内在屏幕上显示数组元素释放动态分配的空间主要函数设计在主程序中定义数组作为原始数组定义一个类对象用初始化完成对该类的测试三源程序清单原矩阵为经线性变换后的矩阵为四运行结果任务七一实践任务以下程序中函数的功能是删除数组中的前个元素中重复的元素并返回所删除元素的总数请改正其中的错误程序正确的运行结果为处理前的数组为处理后的数组为二改正后正确的源程序如下数组处理后的数组为数组处理后的数组为三运行结果任务八一实践任务以下程序统计一个字符串中包含某个字符的单词所出现的次数这里假设单词之间由一个或多个空格分隔且在判断字符是否相等时不区分大小写字母请改正其中的错误程序正确的运行结果为字符串中包含字符的单词有个二改正后正确的源程序如下字符串中包含字符的单词有个三运行结果程序设计实践课程心得通过这次实验我从中学到了不少知识并且熟练了在电脑编写程序我感受最深的一点是在编写一个程序之前要明确所需的数据结构存储结构简洁的算法了解了典型数据结构的性质选取合适的参数形式有益于实现函数之间的数据传输面对对象设计时要使程序效率高可读性高定义合理的类在类中合理的安排数据和对数据的处理这次实验过程中也有一些程序出现错误但在和同学探讨中能解决问题让我明白这门课程需要探索和互助在自己薄弱的地方可以让他人指导比如递归调用静态联编二维指针等方面都有了明显的提高