面向对象程序设计课程设计指导

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计课程设计》

指导书

2 周)

适用专业:苏州理工学院计算机科学与技术专业

江苏科技大学苏州理工学院

2018年8 月

课程设计目的

《面向对象程序设计课程设计》的目的是通过综合性程序设计训练,使学生进一步巩固对计算机程序设计语言 (C++) 基本语法、基本算法的理解,加深对面向对象程序设计的理解,并将课本上的理论知识的实际应用有机的结合起来,锻炼学生的分析问题、解决问题的能力,为学习后续课程和实际编程打下良好的基础。

二、课程设计要求

利用所学的面向对象程序设计的编程知识和技巧,独立完成具有一定难度的程序设计题,养成良好的编程习惯,掌握基本程序设计的理念、方法,熟练运用程序调试的技巧,提高基本的程序开发能力。

1.学生必须独立完成本指导书中附录一中的所有编程题。

2.遵守机房管理制度和实验操作规则

3.上机者在上机规定的时间内,不得从事与本课程设计无关的内容

4.独立完成课题,严禁抄袭他人成果

5.按时提交报告

三、时间安排

2018年9月2日~2018年9月 13日。

四、实验设备和开发工具

1.计算机

计算机应具有较好的性能和稳定性。

2.操作系统

操作系统采用 Windows 2000 、 Windows XP 、 Windows 2003 server 等。

3.开发工具

VC

五、考核要求

1.上机考核:在规定的时间内完成 1~2 题进行编程,占总成绩的 60% 。

2.课程设计报告:选附录中的一半题写成报告,格式要求见附录二,占总成绩的

20%。

3.平时表现:占总成绩的 20。

附录一:课程设计内容

【排序、数组操作】

1.[题目]对一个 5 位数的任意整数,求出其降序数。例如:整数是 82319,则其降序

数是 98321。算法提示:将整数的各位数分解到一维整型数组 a 中,再将 a 数组中的元素按

降序排序,最后输出 a 数组元素值。试建立一个类 NUM ,用于完成该功能。具体要求如下:

(1)私有数据成员 int n 。存放 5 位数的整数。 int a[5] 。存放其元素的降序排列值。

(2)公有成员函数

NUM ( int x=0) :构造函数,用参数 x 初始化数据成员 n。

void decrease():将n的各位数值分解到 a数组中,并将a数组排成降序。

void show ( ) :屏幕显示原数及其降序数。

(3)在主程序中输入一个5位数的任意整数,然后定义一个 NUM类对象num,用上述输

入的数初始化num,然后完成对该类的测试。

运行结果:

输入一个五位的正整数 :82319

n=82319

9 8 3 2 1

2.[题目]设有一个包含 size 个数的数列,要求能够把从指定位置 m 开始的 n 个数排成

降序,并输出新的完整的数列。可将数列存放在一维数组中。例如,原数列有10个数,值为{ 1 , 8, 3, 0, 5, 9, 7, 6, 9, 8 } ,若要求把从第 4个数开始的 5个数排成降序,则得到的新数列为 { 1, 8, 3, 9, 7, 6, 5, 0, 9, 8 }。试建立一个类 LIST ,完成上述功能。具体要求如下:

(1)私有数据成员

int size 。数列元素个数。

int *arr 。数列数组的起始指针。

(2)公有成员函数

LIST(int a[ ], int len):构造函数,用len初始化size,根据size动态分配数组存储空

间, arr 指向该存储空间。

void sortpart (int m, int n) :将数列从第 m 个元素开始的 n 个数排成降序。注意: 数

列中数的序号与其元素的下标不一致。

void output( ) :输出新的完整的数列。

~LIST ():析构函数,释放 arr指向的存储空间。

(3)在主程序中定义数组int a[10]用于存放原始数列,其值为 { 1,8,3,0,5,9,7,

6,9,8 }。定义一个LIST类对象tt,用a数组及数组实际元素的个数初始化该对象,然后把从第 4个数开始的 5个数按逆序排列,完成该类的测试。

3.【题目】求整数x,使y=x2的各位数字为严格递增序列。如:372=1369中,1、

3、6、9是严格递增序列;又如,1、3、6、6、9就不是一个严格递增序列。试建立一个类

RISE,完成求出某范围内,满足条件的所有x及其平方数和x的个数。

具体要求如下:

(1)私有数据成员

int low,high : x 的取值范围的下限和上限。

int a[100][2] :每行存放满足条件的 x 及其平方数。

int count :满足条件的 x 的个数。

(2)公有成员函数

RISE (int lw,int hi) :构造函数,用参数 lw 和 hi 分别初始化 low 和 high 。缺省的

取值范围为 [10,1000] 。将 count 初始化为 0。

int isrise(int y) :判断 y 的各位数字是否严格递增,若是则返回1,否则返回 0。

void process():求出满足条件的所有x及其平方,并将结果存入数组a,同时统

计满足条件的 x 的个数。

void show():输出数组 a及 count。

⑶ 在主函数中完成对该类的测试。定义一个RISE类的对象v,使用缺省方式

初始化该对象,按上述要求处理并输出结果。

程序运行结果应为

13 169

16 256

17 289

37 1369

116 13456

117 13689

367 134689

count=7

4.【题目】若数组a中的n个元素已按升序排列,现将一个新数 x插入到数组a中,

插入后数组 a 的元素仍然保持升序。使用的插入排序算法是:从数组 a 的最后一个元素开始,依次向前扫描数组元素,若 a[i]大于x,则将a[i]放入a[i+1](后移一个位置),并继续向前扫描,直到找到某个 a[i]小于或等于x,将x赋值到a[i+1]元素中,此时完成插入排序工作。编写程序时要考虑初始时,数组是空数组(即数组中没有元素),插入第一个元素时,要做特殊处理。试建立一个类InsSort,完成插入排序工作。

具体要求如下:

(1)私有数据成员

int a[100] :存放排好序的整数序列。

int n :数组实际元素个数。

(2)公有成员函数

InsSort (int b[ ], int size):构造函数,用参数 b初始化a数组,用参数size初始化

n, size 的缺省值是 0。

void insert(int x):将x插入到数组 a中。

void show( ) :输出数组元素个数及数组各元素值。

(3)在主函数中完成对该类的测试。定义数组int b[100] ,其初值是:

{ 1 , 3, 5 } 。定义一个InsSort 类的对象arr ,用数组 b 及其元素的个数初始化该对象。定义数组int c[100] ,其初值是: { 0 , 1, 2, 3, 5, 8, 10 } 。然后循环将数组 c 中的所有元素依次插入到对象arr 的成员数组 a 中。最后输出对象arr 中的全体数据成员。程序正确运行后,应输出:

number=10

0, 1, 1, 2, 3, 3, 5, 5, 8, 10

5.【题目】将两个分别从小到大排列的有序数组a和b复制合并到第3个有序数组c

中。m和n分别是数组a和b的元素个数,结果 c的元素个数为k。例如a和b数组元素分别为 {1,2, 2, 3, 8}和{3, 4, 7, 8},则结果数组 c 的值是: {1, 2, 2, 3, 3, 4, 7, 8,8} 。算法是:将 a、b 两个数组看成两个队列,比较队首的两个元素,将较小者放入 c 队列尾部,如果队首的两个元素相等,则先选择 a 队列首部元素加入 c 队列尾部。循环执行以上过程,直到 a 或 b 队列之一为空,然后将另一个非空队列拷贝到 c 队列尾部。注意:不允许使用其它算法(如排序算法)。试建立一个类Com,完成合并工作。

相关文档
最新文档