文档视界 最新最全的文档下载
当前位置:文档视界 › 实验十一 流类库与输入/输出

实验十一 流类库与输入/输出

实验十一 流类库与输入/输出
实验十一 流类库与输入/输出

实验十一流类库与输入/输出(2学时) 一、实验目的

1.熟悉流类库中常用的类及其成员函数的用法。

2.学习标准输入输出及格式控制。

3.学习对文件的应用方法(二进制文件、文本文件)。

二、实验任务

1.观察以下程序的输出,注意对输出格式的控制方法;

//labll—1.cpp

#include

Using namespace std;

#define D(a)<<#a<

ofstream T("output.out”)。

void main(){

D(int i=53;)

D(float f=4700113.141593;)

Char*S=”Is there any more?”;

D(T.setf(ios::unitbuf);)

D(T.setf(ios::showbase);)

D(T.setf(ios::uppercase);)

D(T.setf(ios::showpos);)

D(T<

D(T.setf(ios::hex,iOS::basefield);)

D(T<

D(T.unsetf(ios::uppercase);)

D(T.setf(ios::oct,iOS::basefield);)

D(T<

D(T.unsetf(ios::showbase);)

D(T.setf(ios::dec,iOS::basefield);)

D(T.serf(ios::1eft,iOS::adjustfield);)

D(T.fill(’O’);)

D(T<<”fill char:”<

D(T.width(8);)

T<

D(T.setf(ios::right,ios::adjustfield);)

D(T.width(8);)

T<

D(T.setf(ios::internal,ios::adjustfield);)

D(T.width(8);)

T<

D(T<

D(T.unsetf(ios::showpos);)

D(T.serf(ios::showpoint);)

D(T<<”prec=”<

D(T.setf(ios::scientific,iOS::floatfield);)

D(T<

D(T.setf(ios::fixed,iOS::floatfield);)

D(T<

D(T.setf(0,iOS::floatfield);)∥Automatic

D(T<

D(T.precision(1 6);)

D(T<<”prec=”<

D(T<

D(T.setf(ios::scientific,iOS::floatfield);)

D(T<

D(T.setf(ios::fixed,iOS::floatfield);)

D(T<

D(T.setf(0,iOS::floatfield);)∥Automatic

D(T<

D(T.width(8);)

T<

D(T.width(3 6);)

T<

D(T.setf(ios::1eft,iOS::adjustfield);)

D(T.width(36);)

T<

D(T.unsetf(ios::showpoint);)

D(T.unsetf(ios::unitbuf);)

)

2.编写程序,用二进制方式打开指定的一个文件,在每一行前加行号。

3.(选做)使用实验1 0中的学生类数组,输入数据并显示出来,使用I/O流把此数组的内容写入磁盘文件,再显示出文件内容。

三、实验步骤

1.观察题目中程序的输出,学习对输出格式的控制方法;尝试更改输出语句中的参数,以加深对输出格式的理解;

2.编写程序labll_2.cpp。使用void main(int argc,char * argv[])函数中的参数传递操作的文件名,定义ofstream的对象对文件进行操作,使用getline成员函数读人数据,使用cout输出字符到文件。

Java 输入输出流及文件读写详解

I/O类体系 在JDK API中,基础的IO类都位于java.io包,而新实现的IO类则位于一系列以java.nio开头的包名中,这里首先介绍java.io包中类的体系结构。 按照前面的说明,流是有方向的,则整个流的结构按照流的方向可以划分为两类: 1、输入流: 该类流将外部数据源的数据转换为流,程序通过读取该类流中的数据,完成对于外部数据源中数据的读入。 2、输出流: 该类流完成将流中的数据转换到对应的数据源中,程序通过向该类流中写入数据,完成将数据写入到对应的外部数据源中。 而在实际实现时,由于JDK API历史的原因,在java.io包中又实现了两类流:字节流(byte stream)和字符流(char stream)。这两种流实现的是流中数据序列的单位,在字节流中,数据序列以byte为单位,也就是流中的数据按照一个byte一个byte的顺序实现成流,对于该类流操作的基本单位是一个byte,而对于字节流,数据序列以char为单位,也就是流中的数据按照一个char一个插入的顺序实现成流,对于该类流操作的基本单位是一个char。 另外字节流是从JDK1.0开始加入到API中的,而字符流则是从JDK1.1开始才加入到API中的,对于现在使用的JDK版本来说,这两类流都包含在API的内部。在实际使用时,字符流的效率要比字节流高一些。 在实际使用时,字符流中的类基本上和字节流中的类对应,所以在开始学习IO类时,可以从最基础的字节流开始学习。 在SUN设计JDK的IO类时,按照以上的分类,为每个系列的类设计了一个父类,而实现具体操作的类都作为该系列类的子类,则IO类设计时的四个体系中每个体系中对应的父类分别是: 字节输入流InputStream 该类是IO编程中所有字节输入流的父类,熟悉该类的使用将对使用字节输入流产生很大的帮助,下面做一下详细的介绍。 按照前面介绍的流的概念,字节输入流完成的是按照字节形式构造读取数据的输入流的结构,每个该类的对象就是一个实际的输入流,在构造时由API完成将外部数据源转换为流对象的操作,这种转换对程序员来说是透明的。在程序使用时,程序员只需要读取该流对象,就可以完成对于外部数据的读取了。

Microsoft Word - 输入输出流类库编程练习题 - 首都

注意:每道题的难度等级不同,*越多,难度等级越高。可以根据自己的能力,选做恰当难度的题。 8.1改写第五章编程练习5.4题的程序,使该程序在程序结束之前,先判断字典内容是否发 生了变化(单词的添加、修改、删除)。如果字典内容已经被修改,则提示是否保存修改后的新字典;若选择保存,则将字典的全部内容写入一个纯文本文件,该文件可以命名为dictionary.txt。每次程序重新运行时,先尝试打开dictionary.txt。如果该文件存在,则打开文件,并从该文本文件中输入产生一个字典。 难度等级:** 8.2编写一个用于统计英文纯文本文件的各项信息:文件内容的总字符数(包括标点符号), 单词个数,文本行数。 要求: 1.提示用户输入一个扩展名为.txt的纯文本文件名,如果指定文件存在,则打开该文 件,否则显示错误提示信息。 2.统计文件内容的上述信息,并显示所统计的信息。信息的显示格式自行确定,例如 可以按如下格式显示: 文件名:Information.txt 字符数:4854 单词数:853 文本行数:56 3.每个文件的信息显示后,提示用户是否继续统计其他文本文件,如果继续,则重复 1和2中的操作。 提示: 1.判断文本行的依据可以是每行的结尾应为‘\n’。 难度等级:*

8.3编写一个程序用于某大学的某信息专业学生的基础课成绩的录入、显示和相应数据文件 的读写。 要求: 1.成绩的按如下顺序录入: ⑴在学生成绩录入之前,先通过输入确定基础课程的门数和课程名称。例如: 基础课程1:高等数学 基础课程2:大学物理 基础课程3:大学英语 基础课程4:C语言程序设计 基础课程5:数据结构 … ⑵每个学生的成绩录入的内容包括学生的姓名、学号、性别和各门课程的成绩。成 绩按照A,B,C,D四个等级划分。录入格式可以参照如下: 姓名:李建国 学号:200410001 性别:男 高等数学:C 大学物理:B 大学英语:C C语言程序设计:B 数据结构:A … 2.保存学生成绩数据的文件的种类和结构、内容如下 ⑴课程信息索引文件courses.inx用于保存所有课程的索引信息,每门课程的索 引信息由课程索引序号和课程名组成。例如: 课程序号课程名 1高等数学 2大学物理 3大学英语 4C语言程序设计 5数据结构 … 注意,课程门数不得少于5门。 ⑵学生信息文件student.inx用于保存所有学生的索引信息,每个学生的索引信息 由学号和学生基本信息(姓名、性别)组成。例如: 学生学号学生基本信息 200410001李建国,男 … ⑶分课程成绩数据索引文件XXX.inx用于保存一门课程的所有学生成绩的索引信 息,每个学生的成绩索引信息由学号和成绩等级组成。每门课程有一个成绩数据 索引文件,文件名XXX由课程名确定。例如: 文件名:“高等数学.inx” 学生学号成绩等级 200410001C

数据类型与输入输出

学生实验报告 学号 : 日期 : 2014-06-22 系别计算机科 学与技术 专业 计算机科学与 技术(师) 班级姓名 课程名称C语言程序设计 课程 类型 专业课学时数2 实验 名称 数据类型与输入\输出函数 实验目的 进一步熟悉VC++6.0集成开发环境的使用方法; 掌握C语言三种基本数据类型的特点; 掌握基本输入/输出函数的功能和使用要求; 积累VC++6.0进行程序调试经验。 实验要求: 熟悉如何定义一个整型、字符型、实型: 掌握不同的类型数据之间赋值的规律; 掌握scanf,printf函数的使用方法; 实验内容 。1.新建工程EXP2_1并编辑下列程序,编译连接运行。/*C source program example*/ #include"stdio.h" main() { int a,b,sum; printf("Hello, C! "); a=123;b=456; sum=a+b; printf("sum is %d\n",sum); }

运行结果: 2 .练习程序的简单调试 去掉程序EXP2_1.c中语句 sum=a+b; 的分号,观察编译错误并记录和分析说明。 把EXP2_1.c程序中的main改为mian,观察程序出错情况并记录分析。将程序EXP2_1.c中语句 printf("sum is %d\n",sum); 中" 换为”,观察编译错误并记录和分析说明。

分析结果:不管是将“sum=a+b;”改为“sum=a+b”,还是将“main”函数改为“mian”,都出现错误,因而得不到正确的运行结果。 3.新建工程EXP2_2,按下列要求在该工程工作空间编写一个文件名为:EXP2_2.c 的程序。 定义3个int变量和一个实数型变量average,计算并输出3个整数的平均值average,即average=(x+y+z)/3,其中x,y,z的值通过变量初始化方式赋值x=5,y=4,z=2,输出average的值。 实验要求: 1)调试运行程序并观察运行结果。

第2章 基本数据类型与输入输出

第2章基本数据类型与输入输出 2·1字符集与关键字 组成C语言的字符(字符集)包括: 26个小写字母a~z 26个大写字母A~Z 10个数字0~9 其它可以显示的字符+-*/=,._:;?\”’~|!#%&()[]{}^<> 空白字符空格、制表、换行、回车等等 在C源程序中,编译器识别的基本元素是“语言符号“,包括: 关键字 标识符 常量(文字常量) 运算符 标点字符 关键字是C编译器中具有特定意义的单词。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while 2·2基本数据类型 整形 字符型单精度型 实型(浮点型) 枚举型双精度型 数组类型 数据类型构造类型结构体类型 公用体型 指针类型

当声明一个对象(变量或常量)时,必须说明是什么数据类型(简称“类型“); 对象类型的描述确定了其内存所占空间大小,也确定了其表示范围; 对象类型的描述确定了其所能进行的操作; 在不同的计算机上,每个对象类型所占用的内存空间的长度不一定相同。 基本数据类型的分类 整数类型 符号表现形式数据长度数值范围 带符号int 32 -2147483648~2147483647 short 16 -32768~32767 long 32 -2147483648~2147483647 无符号unsigned int 32 0~4294967295 unsigned short 16 0~65535 unsigned long 32 0~4294967295 实数类型 符号表现形式数据长度数值范围 带符号float 32 7位精度 double 64 15~16位精度 字符类型 符号表现形式数据长度数值范围 带符号char 8 -128~127 无符号unsigned char 8 0_255 2·3变量 在程序运行过程中,其值可以改变的量称为变量。一个变量有一个名字,在内存中占据一定的存储空间。

第9章输入输出流与文件操作

什么是流?流有什么用?面向对象语言为什么需要流?哪些场合需要流? 答:流是指一组有顺序、有起点和终点地字节集合,是对数据传输地总称或抽象(也就是数据在两个对象之间地传输称为流).个人收集整理勿做商业用途 流地作用就是使数据传输操作独立于相关设备. 在面向对象地程序设计中,数据地传输和流动具有广泛性,可以在内存与外部设备之间传输,还可以从内存到内存,甚至可以从一台计算机通过网络流向另一台计算机等,故面向对象语言采用流机制.个人收集整理勿做商业用途 在标准输入输出、在文件地读写等操作中都需要流. 提供了哪些流类?各种流类之间地关系是怎样地?什么场合需要使用什么流类? 答:中按照流地方向性,流分为输入流和输出流两大类.按照流中元素地基本类型,流分为字节流和字符流两大类.字节流类按照流地方向分为字节输入流类和字节输出流类,字符流类方向性分为字符输入流类和字符输出流类.以及文件操作类,随机存取文件类.个人收集整理勿做商业用途 其中类是所有字节输入流地根类,类是所有字节输出流地根类;类是所有字符输入流地根类,类是所有字符输出流地根类.个人收集整理勿做商业用途 操作系统中文件和目录概念是怎么样地?提供了哪些对文件和目录操作地类?程序中对文件和目录能够进行哪些操作?如何操作?个人收集整理勿做商业用途 答:文件是信息地一种组织形式,是存储在外部存储介质上地具有标识名地一组相关地信息集合.目录是文件系统组织和管理文件地基本单位,保存它所管理地每个文件地基本属性信息(称为文件目录项或文件控制块).个人收集整理勿做商业用途 直接对文件地顺序存取和随机存取操作,提供了类记载文件属性信息,对文件读写操作时以流地形式.类以随机存取方式进行文件读写操作.但在对文件操作过程中还需要使用文件过滤器接口和文件对话框类.在操作系统中,目录也是以文件地形式保存地,称为目录文件.故一个对象也可以表示一个目录.个人收集整理勿做商业用途 可以对文件进行读、写、删除、创建等操作,对目录可以读取、创建、删除等操作.应用程序通过调用操作系统提供地系统调用能够对文件及目录进行各种操作.个人收集整理勿做商业用途 再打开、保存、复制文件时,需要读写文件中地数据内容,这些操作由流实现,不同类型地文件需要使用不同地流泪.个人收集整理勿做商业用途 流与文件操作有什么关系?实际应用中将流类与文件操作结合起来能够实现哪些复杂问题?如何实现?个人收集整理勿做商业用途 答:对文件地操作时通过流这个工具进行地.再打开、保存、复制文件时,需要读写文件中地数据内容,这些操作由流实现,不同类型地文件需要使用不同地流泪.个人收集整理勿做商业用途 什么是输入输出?什么是标准输入输出?怎样实现标准输入输出功能? 答:数据由外部设备流向内存,这个过程称为输入;数据有内存流向外部设备,这个过程称为输出. 在计算机系统中,标准输入是从键盘等外部输入设备中获得数据,标准输出是向显示器或打印机等外部输出设备发送数据.个人收集整理勿做商业用途 在类中声明了个常量、和用于实现标准输入输出功能.个人收集整理勿做商业用途除了标准输入输出及文件操作之外,还有那些应用中需要使用流? 答:在面向对象地程序设计中,数据地传输和流动具有广泛性,不仅可以在内存与外部设备之间传输,还可以从内存流向内存,甚至可以从一台计算机通过网络流向另一台计算机,因此各种不同地数据源地传输都需要采取不同地流机制来实现.个人收集整理勿做商业用途

实验十一 流类库与输入/输出

实验十一流类库与输入/输出(2学时) 一、实验目的 1.熟悉流类库中常用的类及其成员函数的用法。 2.学习标准输入输出及格式控制。 3.学习对文件的应用方法(二进制文件、文本文件)。 二、实验任务 1.观察以下程序的输出,注意对输出格式的控制方法; //labll—1.cpp #include Using namespace std; #define D(a)<<#a<

第9章流类库与输入输出

第9章流类库与输入输出 9.1 本章提要 (1)C++语言提供一个用于输入/输出(I/O)操作的类族,这些操作是以对数据敏感 的方式实现的。类族提供了对预定义类型进行输入/输出操作的能力,程序员也 可以利用这个类族进行自定义类型的输入/输出操作。 (2)标准输出操作方法 ①将插入符作用在流对象cout上,可输出显示整型数、浮点数,字符和字符串。 ②使用成员函数put( )可输出一个字符 ③使用成员函数write( )可输出一个字符串 (3)标准输入操作方法 ①将提取符作用在流对象cin上,可输入整型数、浮点数、字符和字符串。 ②使用成员函数get( )可输入一个字符,使用成员函数getline( )可输入—行字符。 ③使用成员函数read( )可读取一个字符串。 (4)格式化输入输出的两种方式 ①使用标志字和成员函数 ②使用操作子 (5)磁盘文件的输入和输出,包括: ①磁盘文件的打开和关闭操作 ②文本文件的读写操作 ③二进制文件的读写操作 ④随机访问数据文件 9.2 程序举例 下面是一个展示用不同方法(使用重载运算符和成员函数)对标准的输入输出流对象(cin和cout)进行操作的例子。 例9-1 用不同方法操作流对象 //ch9_1.cpp 标准设备的输入输出 #include void main() { char buffer1[80],buffer2[80],buffer3[80];

cout<<"Please enter a sentence:"<>buffer1; cout< void main() { //设置整数流的格式和基数 int x=123; cout<<"dec: "<

文件流是以外存文件为输入输出对象的数据流

文件流是以外存文件为输入输出对象的数据流,字符串流不是以外存文件为输入输出的对象,而以内存中用户定义的字符数组(字符串)为输入输出的对象,即将数据输出到内存中的字符数组,或者从字符数组(字符串)将数据读入。字符串流也称为内存流。 字符串流也有相应的缓冲区,开始时流缓冲区是空的。如果向字符数组存入数据,随着向流插入数据,流缓冲区中的数据不断增加,待缓冲区满了(或遇换行符),一起存入字符数组。如果是从字符数组读数据,先将字符数组中的数据送到流缓冲区,然后从缓冲区中提取数据赋给有关变量。 在字符数组中可以存放字符,也可以存放整数、浮点数以及其他类型的数据。在向字符数组存入数据之前,要先将数据从二进制形式转换为ASCII代码,然后存放在缓冲区,再从缓冲区送到字符数组。从字符数组读数据时,先将字符数组中的数据送到缓冲区,在赋给变量前要先将ASCII代码转换为二进制形式。总之,流缓冲区中的数据格式与字符数组相同。这种情况与以标准设备(键盘和显示器)为对象的输入输出是类似的,键盘和显示器都是按字符形式输入输出的设备,内存中的数据在输出到显示器之前,先要转换为ASCII码形式,并送到输出缓冲区中。从键盘输入的数据以ASCII码形式输入到输入缓冲区,在赋给变量前转换为相应变量类型的二进制形式,然后赋给变量。对于字符串流的输入输出的情况,如不清楚,可以从对标准设备的输入输出中得到启发。 文件流类有ifstream,ofstream和fstream,而字符串流类有istrstream,ostrstream和strstream。文件流类和字符串流类都是ostream,istream和iostream类的派生类,因此对它们的操作方法是基本相同的。向内存中的一个字符数组写数据就如同向文件写数据一样,但有3点不同: 1. 输出时数据不是流向外存文件,而是流向内存中的一个存储空间。输入时从内存中的存储空间读取数据。在严格的意义上 说,这不属于输入输出,称为读写比较合适。因为输入输出一般指的是在计算机内存与计算机外的文件(外部设备也视为文件)之间的数据传送。但由于C++的字符串流采用了C++的流输入输出机制,因此往往也用输入和输出来表述读写操作。 2. 字符串流对象关联的不是文件,而是内存中的一个字符数组,因此不需要打开和关闭文件。 3. 每个文件的最后都有一个文件结束符,表示文件的结束。而字符串流所关联的字符数组中没有相应的结束标志,用户要指定 一个特殊字符作为结束符,在向字符数组写入全部数据后要写入此字符。 字符串流类没有open成员函数,因此要在建立字符串流对象时通过给定参数来确立字符串流与字符数组的关联。即通过调用构造函数来解决此问题。建立字符串流对象的方法与含义如下。 建立输出字符串流对象 ostrstream类提供的构造函数的原型为: ostrstream::ostrstream(char *buffer,int n,int mode=ios::out); buffer是指向字符数组首元素的指针,n为指定的流缓冲区的大小(一般选与字符数组的大小相同,也可以不同),第3个参数是可选的,默认为ios::out方式。可以用以下语句建立输出字符串流对象并与字符数组建立关联: ostrstream strout(ch1,20); 作用是建立输出字符串流对象strout,并使strout与字符数组ch1关联(通过字符串流将数据输出到字符数组ch1),流缓冲区大小为20。 建立输入字符串流对象 istrstream类提供了两个带参的构造函数,原型为: istrstream::istrstream(char *buffer); istrstream::istrstream(char *buffer,int n); buffer是指向字符数组首元素的指针,用它来初始化流对象(使流对象与字符数组建立关联)。可以用以下语句建立输入字符串流对象: istrstream strin(ch2); 作用是建立输入字符串流对象strin,将字符数组ch2中的全部数据作为输入字符串流的内容。 istrstream strin(ch2,20); 流缓冲区大小为20,因此只将字符数组ch2中的,20个字符作为输入字符串流的内容。 建立输入输出字符串流对象 strstream类提供的构造函数的原型为: strstream::strstream(char *buffer,int n,int mode); 可以用以下语句建立输入输出字符串流对象:

C语言数据的输入与输出

C语言数据的输入与输出 一.Printf函数 函数原型在头文件stido.h中(使用时可以不包括) printf函数的返回值等于成功输入得数据的个数 1.printf函数得一般调用形式 printf(格式控制字符串,输出项列表) 格式控制字符串包括: (1)格式指示符 格式:%[标志][宽度][.精度][ [ h|l ] <类型>] (2)转义字符 如:'\n' , '\0' (3)普通字符 如:printf("max=%d,min=%d\n", a, b); “max=”和“,min=”是普通字符;“%d”是格式指示符;“\n”是转义字符; a和b是输出类表中的输出项(可以是常量、变量、或表达式)。 2.print函数中常用得格式控制说明 (1)数据类型控制字符 (2)数据类型修饰符 数据类型修饰符在%和数据类型控制符之间 如:长整型 "%ld" ,短整型 "%hd" (3)输出数据所占得宽度与精度

1)在%与格式字符之间插入一个整数来指示输出宽度。 若指定得输出宽度不够,系统自动以数据实际值得宽度作为输出宽度;如果指定的输出宽度多于数据实际所需宽度,数据右对齐,左边补以空格。 如:printf("%5d\n",42); \*输出结果: 42*\ 2)float或double类型得实型数可以用“整数1.整数2”的形式在指定总宽度的同时指定小数位得宽度。“整数1”指定输出数据得总宽度(小数点也要计算在内),“整数2”称之为精度,即小数位的位数。 注意:输出数据得实际精度并补取决与格式控制中的域宽和小数得位宽,而是取决于数据在计算机内的存储精度。 (4)标志控制字符 1)输出数据左对齐的标志字符“-”,在指定输出宽度之前。 如:printf("%-5d##\n",24); \*输出结果:24 ##*\ 2)输出数字总是带正负号得标志字符“+”,在%和格式字符之间(或指定得输出宽度前) 如:printf("%+d,%+d\n",100,-200); \*输出结果:+100,-200*\ 3)在输出数据前加前导0,可以在指定输出宽度得同时,在数据前面得多于空格处填以数字0。 如:printf("%05d\n",59); \*输出结果:00059*\ 二.Scanf函数 函数原型在头文件stdio.h中(使用时可以不包括) Scanf函数的返回值等于成功输入得数据的个数。 1.scanf函数得一般调用形式 scanf(格式控制字符串,地址列表) 格式控制字符串:%[*][输入数据宽度][ h|l ]<类型> 地址列表是各变量得地址,如:&a,&b

实验五 输入输出流

实验五输入输出流 一、实验目的 1.掌握文件的使用 2.掌握字节I/O流、字符类I/O流、缓冲流、数据流等常用流的使用。 3.熟悉对象流、RandomAccessFile类的使用。 二、实验内容 1.利用各种常用IO流的处理方法,编写Java应用程序。 三、实验步骤与要求 第1题文件加密 编写一个Java应用程序,将已存在的扩展名为.txt的文本文件加密后存入另一个文本文件中。 package four; import java.io.*; public class file { public static void main(String args[]) { File readFile =new File("Student.txt"), writeFile =new File("Hello.txt"); String s="欢迎来到北京 welcome"; char b[]=s.toCharArray(); try{ FileWriter out=new FileWriter(readFile,true); out.write(b); out.close(); FileWriter tofile=new FileWriter ("hello.txt"); for(int i=0;i

tofile.write(secret); tofile.close(); FileReader inOne=new FileReader("Hello.txt"); int t=0; System.out.println("存入后:"); while((t=inOne.read(b,0,2))!=-1) { String str=new String(b,0,2); System.out.println(str); } inOne.close(); } catch (IOException e){ System.out.println(e); } } } 第2题读写基本类型数据 编写一个Java应用程序,将若干基本数据写入到一个文件,然后再按顺序读出。

第十四章:数据流图

数据流图 您现在的位置:希赛网 > 云阅读 > 软件设计师考试试题分类精解(2018版) > 试题1(2017年下半年试题1) 第14 章:数据流图作者:希赛软考学院来源:希赛软考学院 2017年11月21日 试题1(2017年下半年试题1) 阅读下列说明和图,回答问题1 至问题4 ,将解答填入答题纸的对应栏内。 【说明】 某公司拟开发一个共享单车系统,采用北斗定位系统进行单车定位,提供针对用户的APP以及微信小程序、基于Web 的管理与监控系统。该共享单车系统的主要功能如下。 1)用户注册登录。用户在APP端输入手机号并获取验证码后进行注册,将用户信息进行存储。用户登录后显示用户所在位置周围的单车。 2)使用单车。 ①扫码/手动开锁。通过扫描二维码或手动输入编码获取开锁密码,系统发送开锁指令进行开锁,系统修改单车状态,新建单车行程。 ②骑行单车。单车定时上传位置,更新行程。 ③锁车结账。用户停止使用或手动锁车并结束行程后,系统根据己设置好的计费规则及使用时间自动结算,更新本次骑行的费用并显示给用户,用户确认支付后,记录行程的支付状态。系统还将重置单车的开锁密码和单车状态。 3)辅助管理。 ①查询。用户可以查看行程列表和行程详细信息。 ②报修。用户上报所在位置或单车位置以及单车故障信息并进行记录。 4)管理与监控。 ①单车管理及计费规则设置。商家对单车基础信息、状态等进行管理,对计费规则进行设置并存储。 ②单车监控。对单车、故障、行程等进行查询统计。

③用户管理。管理用户信用与状态信息,对用户进行查询统计。 现采用结构化方法对共享单车系统进行分析与设计,获得如图1-1 所示的上下文数据流图和图1-2 所示的0 层数据流图。

C语言数据类型及输入输出函数

实验二C语言数据类型及输入输出函数 一、实验目的 1、熟悉C语言编译环境Turbo C 2.0; 2、熟悉C语言的基本数据类型; 3、熟悉C语言的基本输入及输出函数; 4、使用TC编写简单的程序。 二、预习并思考 1.C语言所包括的基本数据类型 1)整型 整型数据可以有哪几种表示形式?(十进制,八进制,十六进制) 基本整型,短整型,长整型,字符型 两种表现形式 1在定义时使用: 比如十进制表示: int a=12; 八进制表示: int a=012; 十六进制表示:int a=0x12; 2 在输出时使用: Printf(“%d”,a);/*十进制数*/ Printf(“%o”,a);/*八进制数*/

Printf(“%h”,a);/*十六进制数*/ 这几种类型的数据应该如何定义?怎么区分? 整型 int “%d” 长整型 long int “ %ld” 字符型 char “%c” 整型数据的范围是多少?超出以后会如何? 整型数据范围:-32768~32767 超出后,依次从最小开始计数 比如32768 显示出来是-32768 2)实型

实型数据分为单精度float和双精度double两种,它们存储时分别占据多大的内存空间? Float -2^32~2^31-1,占四个字节 Double -2^64~2^63-1,占八个字节 3)字符型 一个字符的数据范围有多大? 0~256 如何理解字符数据和整型数据之间的关系?字符和字符串之间的关系是什么,存储时有何区别? 字符人们使用的记号,抽象意义上的一个符号。 '1', '中', 'a', '$', '¥', …… 字符串在内存中,如果“字符”是以 ANSI 编码形式存在的,一个字符可能使用一个字节或多个字节来表

第12章流类库和输入输出概论

第12章流类库和输入输出 【内容提要】 流的概念及流类库 输入输出的格式控制 输入与输出运算符的重载 文件操作 【重点与难点】 12.1 流的概念及流类库 12.1.1 流的概念 C++中的流是指数据从一个对象传递到另一个对象的操作。从流中读取数据称为提取操作,向流内添加数据称为插入操作。流在使用前要建立,使用后要删除。如果数据的传递是在设备之间进行,这种流就称为I/O流。C++专门内置了一些供用户使用的类,在这些类中封装了可以实现输入输出操作的函数,这些类统称为I/O流类。 C++流预定义了4个标准流类对象,它们可以直接用来输入输出。这些标准流类对象都包含在头文件iostream.h中。 istream cin; //与标准输入设备相关联的标准输入流。 ostream cout; //与标准输出设备相关联的标准输出流。 ostream cerr; //与标准错误输出设备相关联的非缓冲方式的标准输出流。ostream clog; //与标准错误输出设备相关联的缓冲方式的标准输出流。12.1.2 流类库 C++的流类库有两个平行的基类streambuf和ios,其它的流类都是从这两个基类直接或间接派生的。使用这些流类库时,必须包含相应的头文件。 ios类及其派生类为用户提供了使用流类的接口。以下给出ios类及其派生类的层次结构图。 ios istream ifstream istream_withassign iostream istrstream fstream ostream strstream ofstream sdiostream ostream_withassign ostrstream 图12.1 ios类的层次关系 12.2 输入输出的格式控制 C++仍可使用C中的printf()和scanf()进行格式化控制,同时又提供了两种格式化控制的方法,一是使用ios类中的有关格式控制的成员函数,二是使用执行格式化输入/输出的格式控制符。 12.2.1 用ios类的成员函数进行格式控制 使用这种方式进行格式控制主要是通过设置及清除格式状态标志、设置域宽、设置填充字符和设置输出精度的操作来完成的。 设置及清除格式状态标志 格式状态标志说明 ios::skipws跳过输入中的空白,用于输入 ios::left左对齐输出,用于输出

实验六 输入输出流与文件

实验六输入输出流与文件 一、实验目的 1.理解数据流的概念 2.理解Java流的层次结构 3.理解文件的概念 二、实验要求 1.掌握字节流的基本使用方法 2.掌握字符流的基本使用方法 3.能够创建、读写、更新文件 三、实验内容 (一)运行以下程序 1.使用标准数据流的应用程序 标准数据流指在字符方式下(如DOS 提示符)程序与系统进行输入输出的方式,键盘和显示器屏幕是标准输入输出设备,数据输入的起点为键盘,数据输出的终点是屏幕,输出的数据可以在屏幕上显示出来。 1.程序功能:将键盘上输入的字符在屏幕上显示出来 2.编写KY10_1.java 程序文件,源代码如下。 class KY10_1{ public static void main(String[] args) throws java.io.IOException { byte buffer[]=new byte[10]; System.out.println("从键盘输入不超过10 个字符,按回车键结束输入:"); int count =System.in.read(buffer);//读取输入的字符并存放在缓冲区buffer 中 System.out.println("保存在缓冲区buffer 中元素的个数为:"+count); System.out.println("buffer 中各元素的值为:"); for (int i=0;i

实验六C++的流类库与输入输出

实验 6 C++的流类库与输入输出 一、实验目的 1. 掌握C++格式化的输入输出方法。 2. 掌握重载运算符“<<”和“>>”的方法。 3. 掌握磁盘文件的输入输出方法。 二、实验准备及要求 在开始实验前,应回顾或复习相关内容。 需要一台主算机,其中安装有Visual C++ 6.0集成开发环境软件。 三、实验内容与结果 1. 下面给出的test7_1_1.cpp程序用于打印九九乘法表,但程序中存在错误。请上机调试,使得此程序运行后,能够输出如下所示的九九乘法表。 * 1 2 3 4 5 6 7 8 9 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 25 6 6 12 18 24 30 36 7 7 14 21 28 35 42 49 8 8 16 24 32 40 48 56 64 9 9 18 27 36 45 54 63 72 81 //test7_1_1.cpp #include #include using namespace std; int main() { int i,j; cout<<"*"<<"\t"; for(i=1;i<=9;i++)

cout< #include using namespace std; int main() { char ch; int i=0; ifstream file; file.open(“xyz.txt”,ios::in); if( !file ) { cout<<”xyz.txt cannot open”<

第9章 输入输出流与文件操作

第9章输入/输出流与文件操作 9.1 什么是流?流有什么用?面向对象语言为什么需要流?哪些场合需要流? 答:流是指一组有顺序、有起点和终点的字节集合,是对数据传输的总称或抽象(也就是数据在两个对象之间的传输称为流)。 流的作用就是使数据传输操作独立于相关设备。 在面向对象的程序设计中,数据的传输和流动具有广泛性,可以在内存与外部设备之间传输,还可以从内存到内存,甚至可以从一台计算机通过网络流向另一台计算机等,故面向对象语言采用流机制。 在标准输入/输出、在文件的读/写等操作中都需要流。 9.2 Java提供了哪些流类?各种流类之间的关系是怎样的?什么场合需要使用什么流类? 答:Java中按照流的方向性,流分为输入流和输出流两大类。按照流中元素的基本类型,流分为字节流和字符流两大类。字节流类按照流的方向分为字节输入流类和字节输出流类,字符流类方向性分为字符输入流类和字符输出流类。以及文件操作类File,随机存取文件类RandomAccessFile. 其中InputStream类是所有字节输入流的根类,OutputStream类是所有字节输出流的根类;Reader类是所有字符输入流的根类,Writer类是所有字符输出流的根类。 9.3 操作系统中文件和目录概念是怎么样的?Java提供了哪些对文件和目录操作的类?程序中对文件和目录能够进行哪些操作?如何操作? 答:文件是信息的一种组织形式,是存储在外部存储介质上的具有标识名的一组相关的信息集合。目录是文件系统组织和管理文件的基本单位,保存它所管理的每个文件的基本属性信息(称为文件目录项或文件控制块)。 Java直接对文件的顺序存取和随机存取操作,提供了File类记载文件属性信息,对文件读/写操作时以流的形式。RandomAccessFile类以随机存取方式进行文件读/写操作。但在对文件操作过程中还需要使用文件过滤器接口和文件对话框类。在操作系统中,目录也是以文件的形式保存的,称为目录文件。故一个File对象也可以表示一个目录。可以对文件进行读、写、删除、创建等操作,对目录可以读取、创建、删除等操作。应用程序通过调用操作系统提供的系统调用能够对文件及目录进行各种操作。 再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。 9.4 流与文件操作有什么关系?实际应用中将流类与文件操作结合起来能够实现哪些复杂问题?如何实现? 答:对文件的操作时通过流这个工具进行的。再打开、保存、复制文件时,需要读/写文件中的数据内容,这些操作由流实现,不同类型的文件需要使用不同的流泪。 9.5 什么是输入/输出?什么是标准输入/输出?Java怎样实现标准输入/输出功能?答:数据由外部设备流向内存,这个过程称为输入;数据有内存流向外部设备,这个过程称为输出。 在计算机系统中,标准输入是从键盘等外部输入设备中获得数据,标准输出是向显示器或打印机等外部输出设备发送数据。 Java在https://www.docsj.com/doc/2d8994915.html,ng.System类中声明了3个常量in、out和err用于实现标准输入/输出功能。 9.6 除了标准输入/输出及文件操作之外,还有那些应用中需要使用流?

c++流类库与输入输出习题答案

1.概念填空题 1.1头文件iostream中定义了4个标准流对象cin,cout,cerr,clog。其中标准输入流对象为cin,与键盘连用,用于输入;cout为标准输出流对象,与显示器连用,用于输出。 1.2用标准输入流对象cin与提取操作符>>连用进行输入时,将空格与回车当作分隔符,使用get()成员函数进行输入时可以指定输入分隔符。 1.3每一个输入输出流对象都维护一个流格式状态字,用它表示流对象当前的格式状态并控制流的格式。C++提供了使用格式控制函数与操作子函数来控制流的格式的方法。 1.4 C++根据文件内容的数据格式可分为两类:文本文件和二进制文件。前者存取的最小信息单位为字节,后者记录。 1.5文件输入是指从文件向内存读入数据;文件输出则指从内存向文件输出数据。文件的输入输出首先要打开文件;然后进行读写;最后关闭文件。 1.6文本文件是存储ASCII码字符的文件,文本文件的输入可用cin从输入文件流中提取字符实现。文本文件的输出可用cout将字符插入到输出文件流来实现。程序在处理文本文件时需要(需要/不需要)对数据进行转换。 1.7二进制文件是指直接将计算机内的数据不经转换直接保存在文件中。二进制文件的输入输出分别采用read()、write() 成员函数。这两个成员函数的参数都是2个,分别表示读写缓冲区和字节数。 1.8设定、返回文件读指针位置的函数分别为seekg,tellg;设定、返回文件写指针位置的函数分别为seekp,tellp。 2 简答题 2.1 为什么cin输入时,空格和回车无法读入?这时可改用哪些流成员函数? 2.2 文件的使用有它的固定格式,试做简单介绍。 2.3 在ios类中定义的文件打开方式中,公有枚举类型open_mode的各成员代表什么文件打开方式? 2.4 简述文本文件和二进制文件在存储格式、读写方式等方面的不同,各自的优点和缺点。 2.5 文本文件可以按行也可以按字符进行复制,在使用中为保证能完整复制要注意哪些问题? 2.6 文件的随机访问为什么总是用二进制文件,而不用文本文件? 2.7 怎样使用istream和ostream的成员函数来实现随机访问文件? 3.选择题 3.1要进行文件的输出,除了包含头文件iostream外,还要包含头文件(C )。 A.ifstream B.fstream C.ostream D.cstdio 3.2执行以下程序: char *str; cin>>str; cout<

相关文档
相关文档 最新文档