基本控制结构程序设计-枚举与.ppt_第1页
基本控制结构程序设计-枚举与.ppt_第2页
基本控制结构程序设计-枚举与.ppt_第3页
基本控制结构程序设计-枚举与.ppt_第4页
基本控制结构程序设计-枚举与.ppt_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C+程序设计(第2版),第2章 基本控制结构程序设计-枚举与文件,如果一个变量只有几种可能的值,可以定义为枚举类型。所谓“枚举”是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。,定义一个枚举类型 enum color_name red, yellow, blue, white, black; enum color_name color;,(1)C+语言在编译时按顺序赋值为0,1,2,。 (2)可以在定义枚举类型时,改变枚举元素的值。例如 enum weekdaysun=7,mon=1,tue,wed,thu,fri,sat week1, week2; (3)枚举变量可以用来作比较判断 if(week1 = sun) break;,2.7 枚举类型(enum),【例319】 口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取三种不同颜色的球,统计并输出所有的取法。 分析:每个球的颜色都是这五种颜色之一,因此可以使用枚举类型来定义球的颜色。假设所取三个球的颜色分别为i, j, k, 每个量都有5种取值,其中ijk就是满足要求的取法,因此用穷举算法可以解决。,/文件名:Ex3_19.cpp #include #include void main( ) enum color_set red,yellow,blue,white,black; color_set color; int i,j,k,counter=0,loop;,for(i=red;i=black;i+) for(j=red;j=black;j+) if(i!=j)/前两个球颜色不同 for(k=red;k=black;k+) if(k!=i,运行结果为: 1 red yellow blue 2 red yellow white 3 red yellow black 4 red blue yellow 共有60种取法,2.8 简单的文件操作,“文件”,一般是指内存以外的存储介质上一批数据的集合。C+在语言层次上提供了文件操作的一系列函数用于完成文件的操作,打开文件,读取或写入文件数据,关闭文件。,1. 内部文件与外部文件,内部文件:指在程序中运行的文件,由程序进行控制和操作。 外部文件:指存放在外部存储设备中的文件(如磁盘、光盘等) 计算机将处部设备也作为文件进行管理。键盘就是标准的输入文件(cin),显示器就是标准的输出文件(cout)。,字符文件:又称ASCII文件或文本TEXT文件,它是一个字节存放一个ASCII码,代表一个字符。例如,32767需要使用5个字节表示,即: 51 50 55 54 55 (十进制表示的ASCII),而浮点数136.56需要使用6个字节表示,即49 51 54 46 53 54。,二进制文件:是指以数据在内存中存储形式原样输出(存放)到文件上去。例136.56是一个float型实数,它在内存中占有4个字节长度。将该4个字节按其在内存中的原来形式存放到文件中。无论该float型数有多大,都只占用4个字节。,2. 字符文件与二进制文件,缓冲文件系统是指:系统自动地在内存区为每一个正在使用的文件开辟一个缓冲区。从内存向磁盘输出数据必须先送到内存中的缓冲区,装满缓冲区后才一起送到磁盘文件中去。如果从磁盘向内存读入数据,则一次从磁盘文件中将一批数据输入到内存缓冲区,然后再从缓冲区逐个地将数据送到程序数据区。 非缓冲文件系统是指:系统不自动开辟确定大小的缓冲区,而由程序员为每个文件设定缓冲区。,磁盘,3. 缓冲文件系统和非缓冲文件系统,4. 文件和操作步骤,(1)说明一个文件对象(内部文件) 文件类型ifstream:支持从输入文件提取数据的操作(输入指以文件为信息源,从文件进入程序,相当于提取,是读操作) 文件类型ofstream:支持将数据写入到输出文件的操作(输出是指以文件为信息的汇,信息从程序插入文件到达磁盘的过程,是写操作,相当于插入) 例: ifstream ifile; /定义输入文件ifile, ofstream ofile; /定义输出文件ofile;,(2)打开文件 必须使用特殊的函数来打开文件:open( ); 例: ifile.open(“d:my_in_file.txt”); /在d盘上打开文件名为:my_in_file.txt的文本文件,用于读(输入),该文件必须已经存在; ofile.open(“d:my_out_file.txt”); /在d盘上打开文件名为:my_out_file.txt的文本文件,用于写(输出),如果磁盘文件不存在,则会自动建立新文件。如果原来已经有同名文件存在,则清空原来的文件内容。,(3)对文件进行读/写操作 从文件头到文件尾的顺序读/写的操作,可以用C+的提取运算符和插入运算符进行,也可以用读字符的get( )和读字符串的getline( )等函数。 读写文件是在文件缓冲区中进行的。,(4)关闭文件 关闭文件时,系统把与该文件相关联的文件缓冲区中的数据写到磁盘文件中,以保证文件的完整。同时把磁盘文件名与文件对象之间的关联断开,防止由于误操作修改磁盘文件。 例: ifile.close( ); ofile.close( );,#include #include void main( ) int i,j,k; ofstream ofile; /定义输出文件 ofile.open(“d:myfile.txt“); /打开文件 ofile“ 公鸡 母鸡 小鸡“endl; for(i=0;i=20;i+) for(j=0;j=33;j+) k=100-i-j; if(5*i+3*j+k/3=100),【例3.20】将百鸡问题计算结果存入文件,然后读出。,ifstream ifile; ifile.open(“d:myfile.txt“); i=0; while(ifile.get(ai) /不可用,它不能读 /白字符包括空格,制表,backspace和回车等) if(ai=n) break;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论