《C++程序设计开发》第3章 数据结构设计

母 第3章数据结构
1 第3章 数据结构

第3章数据结构 数组 为指针 字符串 对象与指针 2枚举 共用体 关于声明符的进一步讨论
2 第3章 数据结构 数组 指针 字符串 对象与指针 枚举 共用体 关于声明符的进一步讨论

数组 一维数组 二维数组 对象数组
3 数组 一维数组 二维数组 对象数组

维数组的定义 边一维数组(向量)是一种整体定义、个别使用的 数据结构。作为一个整体,数组有如下特征: 名字:用以对数组各元素的整体标识,这个名 字称为数组名 类型:数组各元素的类型; 大小:可容纳的数组元素个数(注意,不是字 P(节数); y.存储:占有一个连续的内存空间。 与简单变量一样,上述特征要用声明语句定义, 0格式如下: 类型数组名[大小;
4 一维数组的定义 一维数组(向量)是一种整体定义、个别使用的 数据结构。作为一个整体,数组有如下特征: ·名字:用以对数组各元素的整体标识,这个名 字称为数组名; ·类型:数组各元素的类型; ·大小:可容纳的数组元素个数(注意,不是字 节数); ·存储:占有一个连续的内存空间。 与简单变量一样,上述特征要用声明语句定义, 格式如下: 类型 数组名 [大小];

维数组的初始化 数组的声明语句是定义性声明,在声明的 同时可以对数组各元素初始化,初始化表 达式按元素顺序依次写在一对花括号内 C++语言还允许使用下列初始化的省略方 式 1)初始化时也可以不指定数组的大小, 编译器会根据初始值的个数自动决定数组 大小 22)允许省略为0的元素值 3)当最后的几个元素初值为0时,可以只 写出前面的数列,但数组体积不可省略
5 一维数组的初始化 数组的声明语句是定义性声明,在声明的 同时可以对数组各元素初始化,初始化表 达式按元素顺序依次写在一对花括号内 C + + 语言还允许使用下列初始化的省略方 式 1)初始化时也可以不指定数组的大小, 编译器会根据初始值的个数自动决定数组 大小 2)允许省略为0的元素值 3)当最后的几个元素初值为0时,可以只 写出前面的数列,但数组体积不可省略

数组元素 2作为数组的个体,数组中的每个元素都有 如下特征 它们的类型是相同的 每个元素用数组名加上括在方括号中的下 标表示。下标表示该元素在数组中的顺序, 下标以0为起始计数
6 数组元素 作为数组的个体,数组中的每个元素都有 如下特征: 它们的类型是相同的 每个元素用数组名加上括在方括号中的下 标表示。下标表示该元素在数组中的顺序, 下标以0为起始计数

模拟洗扑克牌 基本思路是:将54张扑克牌统一编号为: 0,1,2,5253,然后随机地从中一一抽取 张牌,并依次放起,形成新的序列。具 体要解决两个问题:如何存储54张扑克牌 以及在此基础上如何一一抽取 々随机抽牌算法 在0到53之间产生一个随机数r,将pk与 pk门交换
7 模拟洗扑克牌 基本思路是:将54张扑克牌统一编号为: 0,1,2,……,52,53,然后随机地从中一一抽取 一张牌,并依次放起,形成新的序列。具 体要解决两个问题:如何存储54张扑克牌 以及在此基础上如何一一抽取 随机抽牌算法 在0到53之间产生一个随机数r,将pk[0]与 pk[r]交换

类结构 #include #include int pklggchvanl {501,502, 101,102,103,104,105,106,107,108,109,110,111,112,113 201,202,203,204,205,206,207,208,209,210,211,212,213, 301,302,303,304,305,306,307,308,309,310,311,312,313, 401,402,403,404,405,406,407,408,409,410,411,412,4133 class pack t public void makepackonce o void Pack:: makepackonceo int temp, r; for(inti=0;i<53;i++)//洗一次牌 r= int(float(53 -i)* rand o/ RAND_MAX) +i; temp= pk [ [i]=pk[r]; pk[r]= temp; cout<<pk[订]<< //打印洗好的牌 cout < pk[i] < end1 //打印洗好的最后一张牌 8
8 类结构 #include #include int pk[qqchyan1][] = { 501,502, 101,102,103,104,105,106,107,108,109,110,111,112,113, 201,202,203,204,205,206,207,208,209,210,211,212,213, 301,302,303,304,305,306,307,308,309,310,311,312,313, 401,402,403,404,405,406,407,408,409,410,411,412,413}; class Pack { public: void makePackOnce(); }; void Pack::makePackOnce() { int temp,r; for(int i = 0; i < 53; i ++) // 洗一次牌 { r= int(float(53 - i) * rand() / RAND_MAX) + i; temp = pk[i]; pk[i] = pk[r]; pk[r] = temp; cout << pk[i] << ","; // 打印洗好的牌 } cout << pk[i] << endl; // 打印洗好的最后一张牌 }

多次洗牌程序 void Pack:: makePackAny O Int temp,r, times; cout times //输入拟洗牌次数 cout < endl for (int j=l; i<= times; 3++) //洗 times次牌 cout TIme j <<endl; for(inti=0;i<53;i++)//一次洗牌 Ir= int(float(53-i)* rand O/ RAND_MAX)+i; temp= pk[i]; pk[r]= temp cout < pk[i] cout < pk[i]<< endl; 9
9 多次洗牌程序 void Pack::makePackAny() { int temp,r,times; cout > times; // 输入拟洗牌次数 cout << endl; for(int j =1; j <= times; j ++) // 洗times次牌 { cout << "Time: " << j <<endl; for(int i = 0; i < 53; i ++) //一次洗牌 {r= int(float(53 - i) * rand() / RAND_MAX) + i; temp = pk[i]; k[i] = pk[r]; pk[r] = temp; cout << pk[i] << ","; } cout << pk[i] << endl; } }

B动态地改变随机数序列起点 void Pack: makepackAny O int temp, r, times; cout > times //′输入拟洗牌次数 cout < endT srand(time (null)) //用时间函数设置随机数序列的起点 for (int j=l;j<= times; j ++ // times次洗牌 for(inti=0;i<53;i++)//其中的一次洗牌 r= int(float(53-i)* rando/ RAND_MAX)+i; emp= pk[i]; pk[i]= pk[r]: pk[r] temp: cout<<pk[订]<<","; cout < pk[i] << endT 10
10 动态地改变随机数序列起点 void Pack::makePackAny() { int temp,r,times; cout > times; // 输入拟洗牌次数 cout << endl; srand(time(NULL)); // 用时间函数设置随机数序列的起点 for(int j =1; j <= times; j ++) // times次洗牌 { for(int i = 0; i < 53; i ++) // 其中的一次洗牌 { r= int(float(53 - i) * rand() / RAND_MAX) + i; temp = pk[i]; pk[i] = pk[r]; pk[r] = temp; cout << pk[i] << ","; } cout << pk[i] << endl; } }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C++程序设计开发》第2章 算法设计与程序结构.ppt
- 《C++程序设计开发》第1章 C++程序设计入门.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Reflection Mechanism Java 反射机制.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)CollectionFramework.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Cloning Objects.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 13 I/O Package.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 12 Threads.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 11 Nested Classes and Interfaces.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 10 Interfaces.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 09 Extending Classes.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 08 Basic Grammar(Part 3).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 07 Basic Grammar(Part 2).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 05 Classes and Objects(Part 2).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 04 Classes and Objects(Part 1).ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 03 JVM Architecture.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 02 Programming Basic.ppt
- 成都信息工程大学(成都信工学院):《Java编程语言 The Java Programming Language》课程教学资源(PPT课件讲稿)Lesson 01 Java语言的发展历史(李凡).ppt
- 《文秘与办公应用全能培训教程》习题答案.doc
- 《文秘与办公应用全能培训教程》单元18 办公自动化系统维护.ppt
- 《文秘与办公应用全能培训教程》单元17 互联网与现代办公.ppt
- 《C++程序设计开发》第4章 重载与模板.ppt
- 《C++程序设计开发》第5章 程序的类层次结构.ppt
- 《C++程序设计开发》第6章 IO流类库.ppt
- 《C++程序设计开发》第7章 Visual C++程序设计.ppt
- 《计算机操作系统》管程monitor的特点.ppt
- 《计算机操作系统》第一章 计算机系统概述.ppt
- 《计算机操作系统》第十章 设备管理.ppt
- 《计算机操作系统》第十一章 文件管理.ppt
- 《计算机操作系统》第二章 操作系统概述.ppt
- 《计算机操作系统》第三章 进程描述和控制.ppt
- 《计算机操作系统》第五章 并发性:互斥和同步.ppt
- 《计算机操作系统》第六章 死锁和饿死.ppt
- 《计算机操作系统》第七章 存储器管理.ppt
- 《计算机操作系统》第八章 虚拟存储器.ppt
- 《计算机操作系统》第九章 单处理器调度(9-1)调度的类型.ppt
- 《计算机操作系统》第九章 单处理器调度(9-2)调度的类型.ppt
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第1章 微型计算机概述(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第10章 微机接口开发技术(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第2章 80x86微处理器及其体系结构(李芷).pps
- 《微机原理与接口技术》课程教学资源(PPT电子教案)第3章 微机存储器(李芷).pps