当前位置:文档之家› 输入、输出流程序设计实验

输入、输出流程序设计实验

输入、输出流程序设计实验
输入、输出流程序设计实验

实验五输入、输出流程序设计实验

【实验目的】

1.理解输入/输出流相关概念

2.掌握输入/输出流的常用操作

3.理解文件概念

4.掌握文件流的常用操作

【实验内容】

2.打开指定的一个文本文件,在每一行前面加上行号。(1.2题二选一)程序如下:

#include

#include

#define BUFF_SIZE 50

int main()

{

char file[256],buff[BUFF_SIZE+1];

FILE* fin = NULL;

int bL = 1;

int iLN = 0; // line number

printf("请输入需要处理的文件名路径:\n");

scanf("%s",file);

if (NULL == (fin = fopen(file,"r")))

{

printf("错误. \n");

return -1;

}

while (NULL != fgets(buff,BUFF_SIZE,fin))

{

if (bL) printf("%3d:%s",++iLN,buff);

else printf("%s",buff);

if (buff[strlen(buff)-1] == '\n') bL = 1;

else bL = 0;

}

fclose(fin);

}

运行结果:

3.编写程序,从键盘输入5个学生的学生信息,包括学号、姓名、3门课程的成绩,计算3门课的平均成绩,将全部信息以二进制方式保存到文件中。

程序如下:

#include

#include

#define N 5

struct student

{

int num;

char name[10];

float score[3];

float aver;

}stu[N];

void save()

{

FILE *fp;

int i;

if((fp=fopen("stud","wb"))==NULL)

{

printf("cannot open the file stud!\n");

exit(0);

}

for(i=0;i

{

if((fwrite(&stu[i],sizeof(struct student),1,fp))!=1)

printf("flie write error!\n");

}

fclose(fp);

}

int main()

{

int i;

printf("请输入学号、姓名、三门课程成绩:\n");

for(i=0;i

{

scanf("%d %s %f %f %f",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].s core[2]);

stu[i].aver=(stu[i].score[0]+stu[i].score[1]+stu[i].score[2])/3.0;

}

save();

FILE *fp;

if((fp=fopen("stud","rb"))==NULL)

{

printf("cannot open the file stud!\n");

exit(0);

}

printf("the data:\n");

printf("num name score1 score2 score3 average\n");

for(i=0;i

{

fread(&stu[i],sizeof(struct student),1,fp);

printf("%-2d%5s%7.1f%7.1f%7.1f%7.1f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score [1],stu[i].score[2],stu[i].aver);

} //输出从文件中读取的数据在屏幕上以验证

fclose(fp);

return 0;

}

运行结果:

【思考题】

1.什么叫流?流的提取和插入指的是什么?

2.C++有哪4个预定义的流?它们分别与什么具体设备相关联?

3.标准输出与标准错误在输出方面有那些异同?

4.为什么在不为每个类型提供明确指示的情况下,cout仍能够显示不同的C++类型?

5.C++进行文件输入/输出的基本过程是什么?

6.C++中顺序文件和随机文件有什么区别?

1.

流是一种抽象,它负责在数据的生产者和数据的消费者之间建立联系,并管理数据的流动,一般意义下的读操作在流数据抽象中被称为(从流中)提取,写操作被称为(向流中)插入。

2.

C++中包含几个预定义的流对象,它们是标准输人流对象cin、标准输出流对象cout、非缓冲型的标准出错流对象cerr和缓冲型的标准出错流对象clog。这4个流所关联的具体设备为:cin 与标准输人设备相关联,通常指键盘

cout 与标准输出设备相关联,通常指显示器

cerr 与标准错误输出设备相关联(非缓冲方式),通常指显示器

clog 与标准错误输出设备相关联(缓冲方式),通常指显示器

3.

标准错误句柄编号为2, 常用于输出错误信息,标准输出句柄编号为1, 常用于输出信息,其他都一样。

4.

ostream已经重载了各种基础类型的标准输出。

5.

CFile file("文件的具体路径名:",CFile::modeRead);

char buf[1024] = {0};

file.read(buf,1024);

基本过程就是这样的。

6.

数组在内存中是按顺序存放的,可以通过下标直接定位到某一个元素,这是随机存取,链表在内存中不是按顺序存放的,而是通过指针连在一起,为了访问某一元素,必须从链头开始顺着指针才能找到某一个元素,是顺序存取。

微机原理简单输入输出实验报告

东南大学 《微机实验及课程设计》 实验报告 实验四(1)简单输入输出 一. 实验目的与内容 (一)实验目的 1)进一步掌握TPC实验装置的基本原理和组成结构; 2)掌握利用I/O指令单步调试检查硬件接口功能,学会利用示波器检测I/O指令执行时总线情况; 3)掌握简单并行输入输出接口的工作原理及使用方法,进一步熟悉掌握输入输出单元的功能

和使用。 (二)实验内容及要求 1、输出接口输出,根据8个发光二极管发光的情况验证编程从键盘输入一个字符或数字,将其ASCII码通过正确性。(输出端口实验必做) 2、用逻辑电平开关预置某个字母的ASCII码,编程输入这个ASCII码,并将其对应字母在屏幕上显示出来。(输入端口实验必做) 3、利用基本实验(1)中的输出锁存电路,设计L0~L7为流水灯,流水间隔时间由软件产生。(输出端口实验) 4、利用基本实验(2)中的输入电路,监测逻辑电平开关K0~K7的变换,当开关状态为全开时,在屏幕上显示提示信息并结束程序。(输入端口实验) 要求: 1、输入输出端口应该可以响应外设的连续变化。 2、输出按ESC键退出;输入按任意键退出。 3、内容3、4比做一题,选做一题 二. 实验基本原理 (一)基本原理 简单并行输出实验:八D触发器74LS273的八个输入端接数据总线D0~D7,从键盘输入一个字符或数字,通过2A8H~输出接口输出该字符或者数字代表的ASCII码,再通过8个发光二极管发光显示二进制数码,从而验证编程以及电路的正确性。 简单并行输入实验:八缓冲器74LS244的八个输出端接数据总线D0~D7,8个输入端分别接逻辑电平开关K0~K7,在逻辑电平开关上预置任意字符的ASCII码,编程将此ASCII码通过2A0H~输入,ASCII码对应字符显示在屏幕上,从而验证编程及电路的正确性。 (二)实验接线图

实验一 数字量输入输出实验

实验一数字量输入输出实验 一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机 程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验准备 1.阅读实验讲义附录一、实验教学板电路图和附录二、μVision软件使用说明 2.按实验题目要求设计好硬件电路,画出电路原理图,设计出相应程序,并给程序加 上较详细的注释。 四、实验内容 1. 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经 NPN三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P3.4~P3.7 供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 2.实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点 亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 五、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 3.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲 区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。

实验四 输入输出流程序设计

C++面向对象程序设计课程实验报告 课程名称C++面向对象程序设计班级实验日期2014.5.16-2012 .5.23 姓名学号实验成绩实验名称实验四输入输出流程序设计 实验目的及要求1.理解输入输出流的基本概念,明确流是一个类 2.了解输入输出流类库基本结构和主要类,掌握主要层次,其中重 点理解fstream,iostream和iomanip 3.理解流缓冲区类的派生关系以及设备缓冲、文件缓冲和流缓冲 4.熟悉格式化的输入和输出,记住主要的常用的操作符,以及各种 应用(对齐) 掌握文件的输入和输出,区别C语言中的文件写入、打开等操作,会对一个文件进行I/O操作 实验环境硬件平台:普通的PC机 软件平台:Windows 操作系统编程环境:VisualC++ 6.0 实验内容1.文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示、保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最后一行不足10个素数时按一行输出 2.编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作 算法描述及实验步骤1、这个题主要考察了文件中数据的读取,还包括数据格式化输入输出。首先定义一个ofstream类的对象output,在main函数中打开文件后,再分别编写判断素数、每行输出10个数以及使辖域为7的代码,最后关闭文件。 2 这个题是C++与数据结构的结合,实现单向链表内各种功能。首先定义一个类ListNode,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除和查找的操作

调试过程及实验结果 总结1.一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致 2.定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)

汇编语言-实验五 输入输出程序设计

实验五输入输出程序设计 一、实验目的 1) 掌握输入输出程序的编写方法。 2) 熟悉系统功能调用的方法。 3) 熟悉动画程序的编写方法。 二、实验内容 1)在CRT上每隔一秒连续显示字符0-9。 编程提示 为了使输出的字符之间有空格,在每一个循环中输出一个0-9的字符和一个空格。为了输出0-9,置寄存器BL初值为0,每循环一次使其增量。为了保证输出是十进制,增量后用DAA调整指令。由于输出为一位十进制数,用AND 0FH 指令屏蔽高4位。 2)用系统功能调用将‘HELLO’由键盘输入,再从屏幕输出‘***HELLO***’。 3)编制在屏幕上画线的子程序,调用该子程序画一矩形。 4)编制字母下落一行的子程序,调用该子程序使字母从屏幕顶部下落到底部。 5)创建一磁盘文件,保存从键盘输入的字符串。 6)编写程序用设置系统时间,首先从键盘以十进制数形式输入时间,然后修改系统时间,并重新以十进制形式显示时间。 7)编写程序将屏幕分割成格状,每一格涂上不同颜色,格数从键盘输入。 8)编写程序在屏幕上显示菜单,输入相应菜单的序号后,选种该菜单项。 三、源程序 EXAM5-1 STACK SEGMENT STACK DB 1024 DUP(0)

STACK ENDS CODE SEGMENT ASSUME CS:CODE,SS:STACK START:MOV BL,0 LP:MOV DL,20H MOV AH, 2 INT 21H MOV AL,BL ADD AL, 0 DAA AND AL,0FH MOV BL,AL PUSH BX OR AL,30H MOV DL,AL MOV AH, 2 INT 21H MOV BX,3E8H LP2:MOV CX,176H ;延时1ms LP1:PUSHF POPF LOOP LP1 DEC BX JNZ LP2 POP BX INC BL JMP LP CODE ENDS END START 执行程序EXAM5-1·EXE,屏幕上依次循环显示一个数字一个空格: 0 1 2 3 4 5 6 7 8 9 …… EXAM5-2 STACK SEGMENT STACK DB 1024 DUP(0) STACK ENDS DA TA SEGMENT BUFF DB 6,7 DUP(?),‘$’ DA TA ENDS INPUT MACRO BUFE MOV DX,OFFSET BUFE MOV AH,0AH INT 21H ENDM

实验04Java输入输出流报告材料

实验四 Java 输入输出流 1.实验目的 (1) 掌握输入输出流的总体结构; (2) 掌握流的概念; (3) 了解各种流(包括文件流、过滤流、对象的序列化、随机访问)的使用。2.实验内容 实验题1 编写一个Java Application程序,打印命令行输入的所有参数。 [基本要求] 编写完整程序。 运行结果: 代码如下: import java.util.Scanner; public class CommandOutPut { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Please input :"); Scanner in = new Scanner(System.in);

String str = in.nextLine(); System.out.println("The output results :"); System.out.println(str); in.close(); } } 实验题2 通过键盘输入路径,搜索指定路径下的全部内容。 运行结果: 代码如下: package https://www.doczj.com/doc/219098607.html,.output; import java.io.File; import java.io.FileInputStream; import java.io.IOException; public class Output { /** * @param args * @throws IOException */ public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String fileName = "d:\\xxx.txt"; File file = new File(fileName); byte[] b=new byte[(int)file.length()]; FileInputStream out=new FileInputStream(file);

单片机数字量输入输出实验

一、实验目的 1.熟悉教学板电路及其结构。 2.掌握利用μVision C51 软件编辑、调试(包括仿真调试、单步调试)、运行单片机程序的步骤和方法,掌握利用STC-ISP V39软件和下载线将程序写入单片机的方 法。 3.通过实验熟悉51单片机的并行I/O口,并掌握它们的应用。 4.掌握矩阵键盘、LED动态显示的工作原理。 二、实验设备 PC机一台、实验教学板一块。 三、实验内容 1.实验线路如附图所示,51单片机的P0口输出接8个发光二极管的阴极,P 2.4经NPN 三极管9011控制发光管的阳极。P3口支持一个8位行列式键盘,其中P 3.4~P3.7供键盘扫描输出,P3.2、P3.3作键盘扫描输入。 实验要求:编程实现键盘对发光二极管的控制,每按一个按键,使对应的二极管点亮。 2.51单片机P0口输出同时接4个数码管的阴极,P2.0~P2.3,经NPN三极管9011接数码管的阳极,该端口用于分别控制相应数码管的导通。 实验要求:编程实现对任意按键动作的次数进行计数(最大99次),同时将计数值实时显示。 四、实验步骤 1.将实验板与PC机通过COM口连接。启动PC机,进入μVision软件环境,选择建立 新工程文件,即可开始输入源程序。 2.完成汇编、编译、连接,若有错误,则修改源程序,直至编译、连接通过为止。 3.接上实验板上的电源。 4.运行“STC-ISP V39.EXE”,将程序代码下载到实验板的单片机中。操作的顺序是:1)选择单片机(MCU TYPE)型号。 如:“STC89C51RC”要与实验板上所装单片机的型号一至。 2)打开文件(Open File)。 即把要下载到单片机的程序文件(已通过编译了的机器码文件——二进制(.Bin)或十六进制(.Hex)的)调到“文件缓冲区”,这时可看到右边的“文件缓冲区”有数字变化。 3)选择串行通信口。 选对时,软件上的小灯会变绿。否则小灯是灰色。且在左下窗口提示“出错信息”。 4)下载:按“Download/下载”按键下载。 5)把实验板上的供电的直流电源拔掉或关掉3秒钟再插入或打开电源(为单片机上电复位)。 5.观察单片机运行情况,验证程序是否能完成题目给出的控制要求,若不能达到要求,分析原因、查找错误,修改源程序,再次汇编、连接,重新下载、运行,直至达到题目的控制要求。 五、遇到的问题及原因: 1.实验一,把程序烧进单片机后,发现按键时,LED灯乱亮,经检查是LED等亮的数

C++输入输出流实验报告

深圳大学实验报告 实验课程名称:程序设计实验与课程设计 实验项目名称:实验10 C++流输入与流输出 学院:计软专业:计科 报告人:学号:班级: 3 同组人:无 指导教师:朱安民 实验时间:2014年6月16日提交时间:2014年6月16 声明: 本次实验内容由报告人和同组人独立完成,所有涉及到他人的工作均已说明。报告人和同组人均同意教师及学校为教学活动而引用本实验的内容,且无需事先征得同意和特别说明。 教务处制

一、实验目的 1.掌握标准输入输出(iostream库中标准对象cin、cout)的使用 2.掌握IO流类成员函数输入输出(cin.get, cin.getline, cin.read; cout.put, cout.write)的使用 3.掌握输出格式(标准控制符、IO流类成员函数、iomanip头文件中的控制符)控制方法 4.掌握磁盘文件的输入输出方法 二、实验说明和实验环境 1.在奥特曼类的基础上,编写一个程序,重载运算符“》”和“《”,使得用户可以直接(格式化)输出奥特曼的状态。在主程序中输入若干个(3个)奥特曼的状态,并分别将它们保存到文件RecordU.txt中。然后读取并显示文件中的内容。 2.奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 在奥特曼的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0 在怪兽的初始化中,需要接受外来等级参数,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍 对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 注意:为了实现运算符《重载,需要包含头文件 经常天降怪石会砸中奥特曼或怪兽,如果被幸运石砸中,就会处于“鸿运当头”状态,被砸对象除等级外其它属性全部翻倍;如果被厄运石砸中,就会陷入“倒霉透顶”状态,被砸对象除等级外其它属性全部减半。把“鸿运当头”封装成操作,并用重载运算符++来实现;“倒霉透顶”封装成操作,并用重载运算符--来实现。两个重载都需要用友元方法。 3.奥特曼和怪物经过一番战斗斗,需要中场休息,休息时把各自的属性值存放到一个文件中,休息结束时需要从文件中读取之前的状态继续战斗。 奥特曼和怪物都具有属性:等级, 生命, 攻击, 经验, 金钱,都具有方法:初始化initial和显示状态display 奥特曼和怪兽的属性值均来自于文件(文件的第一行是奥特曼的数据,初始状态为:等级是8,生命, 攻击的数值初始化为等级的10倍,金钱为等级的100倍,经验恒为0,文件的第二行是怪兽的数据,初始状态为等级是4,生命, 攻击的数值初始化为等级的8倍,经验为等级的80倍,金钱为等级的800倍)对怪兽和奥特曼的状态输出采用运算符《重载的方法,并结合display方法使用,注意本题目要求怪兽和奥特曼的状态输出必须使用重载运算符《,不能直接使用display方法。 把信息直接从文件读出来并赋值给奥特曼和怪兽,需要重载》运算符作为友元; 把奥特曼和怪兽的值写入文件,要求重载《运算符作为友元

实验四:串行接口输入输出实验

实验四串行接口输入输出实验 一、实验目的 1、学习TEC-2000教学计算机I/O接口扩展的方法; 2、学习串行通信的基本知识,掌握串行通信接口的设置和使用方法。 二、实验说明 1、TEC-2000教学机配置了两个串行接口COM1和COM2,其中COM1口是系统默认的串行接口,上电复位后,监控程序对其进行初始化,并通过COM1与PC机终端相连,监控程序负责对COM1进行管理。COM2口预留给实验者扩展使用,监控程序不对COM2进行任何处理,实验者需要对COM2进行初始化、使用和管理。 2、实验前查阅有关资料,了解可编程串行通信接口芯片8251的工作原理,了解8251复位、初始化、数据传输过程控制等方面的知识。注意,①每次对8251复位后(即按了“RESET”键),都需要对其进行初始化,然后再进行正常的数据传输;②每次复位后,只能对8251进行1次初始化,多次初始化将导致串口工作不正常。 3、在使用COM2口时,需要将两片8251芯片之间的跳线短接(缺省状态),以便为COM2正常工作提供所需的控制信号和数据;此外,还需要为其分配端口地址。教学机已将COM2口的C/(/D)与地址总线的最低位A0相连,但片选信号/CS未连,只引出1个插孔,实验时,应将该插孔与标有“I/O /CS”的7个插孔中的1个相连。 三、实验内容 1、为扩展I/O口选择一个地址,即将8251的/CS与标有I/O /CS的一排插孔中的一个相连。 2、将COM2口与终端或另一台运行有PCEC16的PC机的串口相连。 3、用监控程序的A命令,编写一段小程序,先初始化COM2口,再向COM2口发送一些字符,也可从COM2口接收一些字符,或实现两个串口的通信。 四、实验要求 应了解监控程序的A命令只支持基本指令,扩展指令应用E命令将指令代码写入到相应的存储单元中。 五、实验步骤 1、为扩展I/O接口选择一个地址,将8251的/CS与标有I/O /CS的插孔中地址为90~9F的插孔相连; 2、将教学机COM1口与微机PC1相连,在PC1上运行PCEC16.EXE,进入联机状态后保持PCEC的运行状态; 3、断开教学机COM1与PC1的串口线,将其连接到另一台微机PC2的串口上,在PC2上运行PCEC16.EXE联机; 4、用另一条串口线将PC1与教学机的COM2接口相连。 5、与COM1相连的PC2作为主PC,在主PC2上输入程序,和COM2连接的从PC1只作数据输入输出; 6、在主PC上用A、E命令编程对实验机的COM2口进行操作。 1)程序1:初始化COM2口 主PCEC在命令行提示符状态下输入: A 2000 从2000H单元开始输入下面的程序: 2000:MVRD R0,004E ;给R0赋值004E(8251模式寄存器参数) 2002:OUT 91 ;将R0的值输出到COM2口中8251的模式寄存器(地址为0091H) 2003:MVRD R0,0037 ;给R0赋值0037(8251控制寄存器参数) 2005:OUT 91 ;将R0的值输出到COM2口中8251的控制寄存器(地址同为0091H) 2006:RET 在命令行提示符状态下输入G 2000运行初始化程序,完成对COM2口的初始化。注意:每次按“RESET”按键后,在对COM2进行读写操作之前,都应运行该程序。注意,按一次“RESET”按键后,只能对COM2口进行一次初始化操作。 2)程序2:从与COM2口相连的PC输入字符串,在与COM1口相连的PC上显示该字符串。 主PCEC在命令行提示符状态下输入:

微机原理实验五输入与输出程序设计

实验六输入与输出程序设计 一、实验目的 1.掌握常用DOS中断调用的功能以及在应用程序中的使用方法。 2.学习键盘输入和屏幕输出的基本方法。 3.宏指令、子程序在应用程序中的使用。 4.汇编语言程序设计的调试与完善。 二、设计指标与实验要求 1.设计内容 本实验要求设计完成:①屏幕输出提示(如“Want input(Y/N)?”),若键入N 则结束程序返回操作系统;键入Y则转2步;键入的是其它字母则回①步。②换行后输出提示(如“please input a strings:”),且在该提示后键入一字符串(输入到输入缓冲区)。 ③换行后输出提示(如“your inputting is:”),在该提示后输出由②步输入的字符串。 ④换行后输出提示“Want continue(Y/N)? ”,若键入Y则转②步;键入N则结束程序返回操作系统;其它字母则回第④步。 2.设计要求 ①按屏幕提示要求输入,从屏幕上获得正确结果。 ②把程序中常用的中断调用定义成宏指令(至少定义2个)。 ③字符串回显部分设计成子程序,可以选择用21H中断的2号或9号功能来实现,应 能显示由主程序指定的任一字符串。要注意这两种方法实现的设计过程是不同的。 采用2号功能的,子程序输入参数为“回显字符串地址”和“回显字符数”;采用 9号功能的,子程序输入参数为“回显字符串地址”。 ④屏幕的提示信息显示格式尽量做到兼顾美观。 3.实验步骤 ①.选用合适的程序文本编辑软件编辑源程序,并为文件取以.ASM为扩展名的文件存盘。 ②.用宏汇编软件MASM对源程序文件进行汇编,若有错误,根据提示(行号,错误类型)回源程序文件中修改。 ③.用LINK对由MASM汇编后产生的目标文件做连接,生成可执行文件;若有错误(同

实验四:输入输出实验

课程名称:计算机组成原理 实验项目:输入输出实验 姓名:李翠超 专业:计算机科学与技术 班级:计算机6班 学号:1609040307 计算机科学与技术学院 实验教学中心 2017年12 月13 日

实验项目名称:输入输出实验 一、实验目的 1、掌握计算机的I/O端口原理,注意实践观察 2、掌握程序编制及指令格式 二、实验内容 1、移位实验 2、数据传送实验/输入输出实验 三、实验原理及接线 1、COP2000 中有7 个寄存器可以向数据总线输出数据, 但在某一特定时刻只能有一个寄存器输出数据. 由X2,X1,X0 决定那一个寄存器输出数据. 图1 数据输出选择器原理图 表1 连接线表

置下表的控制信号, 检验输出结果

2、移位实验 ALU直接输出和零标志位产生原理图 ALU左移输出原理图

ALU右移输出原理图 直通门将运算器的结果不移位送总线。当X2X1X0=100时运算器结果通过直通门送到数据 总线。同时,直通门上还有判0电路,当运算器的结果为全0时,Z=1 右移门将运算器的结果右移一位送总线。当X2X1X0=101时运算器结果通过右通门送到数 据总线。具体连线是: Cy与CN-->DBUS7 ALU7-->DBUS6 ALU6-->DBUSS ALUS-->DBUS4 ALU4-->DBUS3 ALU3-->DBUS2 ALU2-->DBUS 1 ALU1-->DBUSO Cy与CN-->DBUS7 当不带进位移位时(CN=0): 0-->DBUS7 当带进位移位时(CN=1): Cy-->DBUS7 左移门将运算器的结果左移一位送总线。当X2X1X0=110时运算器结果通过左通门送到数据总线。具体连线是: ALU6-->DBUS7 ALUS-->DBUS6 ALU4-->DBUSS ALU3-->DBUS4 ALU2-->DBUS3 ALU1-->DBUS2 ALUO-->DBUS 1 当不带进位移位时(CN=0): 0-->DBUSO 当带进位移位时(CN=1): Cy-->DBUSO 3、在综合实验中,模型机作为一个整体来工作的,所有微程序的控制信号由微程序存储器uM输出,而不是由开关输出。在做综合实验之前,先用8芯电缆连接J1和J2,这样实验 仪的监控系统会自动打开uM的输出允许,微程序的各控制信号就会接到各寄存器、运算器 的控制端口。此综合实验使用的指令是模型机的缺省指令/微指令系统。等做完木综合实验, 熟悉了此套指令/微指令后,用户可以自己设计的指令/微指令系统,有关自己设计指令/微指 令系统的说明在下一章介绍。 在做综合实验时,可以用COP2000计算机组成原理实验软件输入、修改程序,汇编成机

实验七输入输出流

实验七输入输出流 一、实验目的 (1)了解流式输入输出的基本概念; (2)熟悉Java.io包中常用的基本输入输出类; (3)掌握程序与文件之间的基本输入输出操作; 二、实验内容 1) 把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中, 并读取打印a.txt文件中的内容。 2) 把我们在聊天界面中发送的消息保存到日志文件里面,在界面上添加一个历史按钮,当点击历史按钮时读取日志文件内容。 三、实验步骤 1)把字符串“20102324,张三,男,25,软件工程”,保存到文件”d:\\a.txt”中,并读取打印a.txt文件中的内容。 (1) 定义变量message,值为“20102324,张三,男,25,软件工程”; (2) 创建指向”D:\\a.txt”的文件对象 (3) 创建输出流 (4) 把message写入流(文件)中 (5) 关闭输出流 (6) 创建输入流 (7) 读取文件内容 (8) 打印文件内容 (9) 关闭输入流 import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; public class FileIO { public static void main(String[] args) { String message = "20102324,张三,男,25,软件工程"; File myFile=new File("D:\\a.txt"); //写文件 try { FileOutputStream fout = new FileOutputStream(myFile,true);//不覆盖 try { fout.write(message.getBytes()); } catch (IOException e) { e.printStackTrace(); }finally{ try { fout.close(); } catch (IOException e) { e.printStackTrace();}} } catch (FileNotFoundException e) { e.printStackTrace(); } //读文件 try { FileInputStream fint = new FileInputStream(myFile); byte b[] = new byte[(int) myFile.length()]; try { fint.read(b); String s = new String(b); System.out.println(s); } catch (IOException e) {

C语言程序设计实验报告

《C程序设计》实验教学大纲 一、适用范围 大纲适用信息管理专业本科教学使用。 二、课程名称 C程序设计 三、学时数与学分 总学时:90 总学分: 4 实验学时:28 实验学分:1 四、教学目的和基本要求 目的:通过C程序设计实验,培养学生对学习程序设计的兴趣,加深对讲授内容的理解,尤其是通过上机来掌握语法规则,使学生全面了解 C 语言的特点,熟练掌握C 语言程序设计的基本方法和编程技巧。 基本要求:了解和熟悉C语言程序开发的环境;学会上机调试程序,善于发现程序中的错误,并且能很快地排除这些错误,使程序能正确运行,达到实验知识和理论知识的融会贯通。上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止,上机结束后,应整理出实验报告。 注:带*的实验项目为选做实验项目 六、教材、讲义及参考书 《C程序设计题解与上机指导》谭浩强主编清华大学出版社 七、实验成绩评定办法 实验成绩=平时实验表现+实验报告。实验成绩占总成绩的20%。 实验成绩以等级形式给出,评定等级分优、良、中、及格、不及格五类。 1、平时考核:上机实验前,学生必须事先根据题目的内容编好程序,然后在实验时输入程序、调试程序、直至运行结果正确为止。在实验中,教师可根据学生编程操作能力、观察和分析及运用知识能力、程序编制正确性以及学生的课堂纪律、实验态度、保持实验室卫生等方面的表现进行综合考核。

2、实验报告:学生实验后应按时完成实验报告。 八、实验教学大纲说明 本大纲共安排28学时的实验,其中带*号实验项目为选做实验项目,实际课时为18学时。实验项目多为设计性实验项目,每个设计性实验项目中都包含数个小的设计性题目,其中带*号的题目为选做题目,有时间和有能力的同学可以选做。 九、实验项目 实验一 C程序的运行环境和运行一个C程序的方法 一、实验目的 1.了解Visual C++编译系统的基本操作方法,学会独立使用该系统。 2.了解在该系统上如何编辑、编译、连接和运行一个C程序。 3.通过运行简单的C程序,初步了解C源程序的特点。 二、实验内容 1.用编辑程序,输入教材第一章例程序,并进行编译和运行。应了解所用的系统是用什么命令进行编译和连接运行的。编译和连接后所得到的目标程序的后缀是什么形式的 2.编写一个C程序,输出以下信息: **************************** very good! **************************** 3.输入并运行教材第一章中例,了解如何在运行时向程序变量输入数据。 实验二数据类型、运算符和表达式 一、实验目的 1.掌握C语言数据类型,熟悉如何定义一个整型、字符型、实型变量,以及对它们赋值的方法,了解以上类型数据输出时所用格式转换符。 2.学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。 二、实验内容 1.输入并运行以下程序: main( ) { char c1,c2; c1=97;c2=98; printf(“%c %c\n”,c1,c2); printf(“%d %d\n”,c1,c2); } 在此基础上 ①将第三行、第四行改为: c1=321;c2=353; 再使之运行,分析其运行结果。 ②将第二行改为: int c1,c2; 再使之运行,分析其运行结果。。 2.输入并运行以下程序: main( ) {int i=8,j=10,m,n; m=++i;n=j++;

计算机输入输出系统_接口实验报告

计算机输入输出系统接口实验报告 姓名: 学号: 东南大学计算机科学与工程学院、软件学院 School of Computer Science & Engineering College of Software Engineering Southeast University 二0 16 年 6 月

实验一环境熟悉与I/O地址译码 一、实验目的 掌握I/O地址译码电路的工作原理。 二、实验内容 将接口实验包中所带的EX-138.DSN文件用ISIS 7打开。改变A9~A3的接线方法,从而得到Y0;388H~38FH;Y1:398H~39FH; ……;Y7:3F8H~3FFH。并修改上一问的程序,以同样使得Y4#有效。 1)源程序 .8086 .MODEL SMALL .stack .data address word 3c8h .code start: mov ax,@data mov ds,ax mov dx,address mov al,0 out dx,al jmp $ END start 2)电路原理图(138译码部分)

3)运行结果贴图(138译码及上面两个273的输出)

实验二可编程中断控制器8259 一、实验目的 1.掌握8259的基本工作原理和编程方法。 2.深入了解中断的概念和实地址模式下中断处理程序的编写方法。 二、实验内容 将接口实验包中所带的EX-8259.DSN文件用ISIS 7打开。按手册接线并执行。运行结果贴图(执行三次中断,每次中断后的8086寄存器的截图) ……

实验三可编程定时器计数器8253 一、实验目的 掌握8253的基本工作原理、编程方法及其应用。 二、实验内容 一)研究定时计数器(选) 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX MOV DX,226H MOV AL,00010000B ;T/C0,least significant byte only,mode0,Binary OUT DX,AL MOV AL,5 ;Initial count=5 MOV DX,220H OUT DX,AL MOV AH,4CH INT 21H END START 2)讨论题 如果把方式0改成方式1,电路不动,则按下BUTTON后,计数器值会否减1?为什么? 不会,因为方式1下GATE=1或0没有影响,只有GATE的上升沿才会触发计数器开始计数,而该电路中GATE时钟为1,所以计数器不会减1. 二)信号发生器 1)源程序 .8086 .MODEL SMALL .DATA .CODE START:MOV AX,@DATA MOV DS,AX ;Initailize T/C0 MOV DX,226H MOV AL,00110110B ;T/C0,least significant byte first,mode3,binary OUT DX,AL MOV DX,220H MOV AX,1000 ;Initial count=1000 OUT DX,AL MOV AL,AH

输入输出流实验

深圳大学 实验报告 课程名称: Java 实验序号:上机实践9 实验名称:统计英文单词&读取Zip文件 班级:计算机3 姓名:卢志敏 同组人:实验日期: 2008 年 12 月 29 日 教师签字:

一、实验目的 掌握RandomAccessFile类的使用。 掌握ZipInputStream流的使用。 二、实验环境 WinXp SP 3 三、实验要求 实验1 使用RandomAccessFile流统计一篇英文中的单词,要求如下: (1)一共出现了多少个英文单词。 (2)有多少个互不相同的单词。 (3)给出每个单词出现的频率,并将这些单词按频率大小顺序显示在一个Text--Area中。 实验2 读取,并将中含有的文件重新存放到当前目录中的book文件夹中,即将的内容解压到book文件夹中。 四、实验步骤和内容 实验1 源代码: import .*; import class WordStatistic

{ Vector allWords,noSameWord; WordStatistic() { allWords=new Vector(); noSameWord=new Vector(); } public void wordStatistic(File file) {try { RandomAccessFile inOne=new RandomAccessFile(file,"rw");; import class StatisticFrame extends Frame implements ActionListener { WordStatistic statistic; TextArea showMessage; Button openFile; FileDialog openFileDialog; Vector allWord,noSameWord; public StatisticFrame() { statistic=new WordStatistic(); showMessage=new TextArea(); openFile=new Button("Open File"); (this); add(openFile,; add(showMessage,;

c语言程序设计基本输入输出和简单程序设计

实验3 基本输入输出和简单程序设计 实验目的 1.掌握常用的C语言语句,熟练应用赋值、输入、输出语句。 2.理解C语言程序的顺序结构,掌握顺序结构设计的基本方法。 3.进一步熟悉C程序的编辑、编译、连接和运行以及调试跟踪的过程。 实验内容 1.准备实验环境: (1)启动Visual Studio 201X 或者Codeblocker等C程序开发的IDE (2)如果保留了实验1的工程项目,则可以直接双击工程项目文件夹中的.sln 文件打开它即可。否则,按实验1的做法,创建一个Win32控制台应用程序(即ConsoleApplication)工程,以自己的姓名全拼音为工程名称。可能有些同学已经忘记了,我们再指导一遍: 首先新建项目:

2.理解分析程序,熟悉基本的C程序输入输出。 1)给工程新建一个源程序文件,取名为"你的姓名全拼_3_1.c",并将以下程序编写进该源程序保存: #include int main() { int a=25; double d = 4321.123456789012345; char c = 'T'; printf("你的姓名_3_1:理解输出!\n");/* 改姓名哦*/ printf("a = :%d;%5d;%-5d;%+05d!\n",a,a,a,-a); printf("a = :%5x;%o!\n",a,a); printf("d = :%f;%15f;%8.3f;%20.15f;%.2f!\n",d,d,d,d,d); printf("c = :%c;%5c;%-5c!\n",c,c,c); } 运行该程序,将运行的结果截图放在下面: 程序运行的结果图:

汇编语言——输入输出程序设计实验

实验四输入/输出实验(2学时综合性实验) 1.实验目的 (1) 掌握输入输出程序设计的概念和方法。 (2) 了解PC机外围芯片8259的功能。 (3)学习如何在PC机上编写具有输入输出功能的程序,包括8259芯片的使用方法。 2.实验说明 本实验要求自行编写一个显示器输出处理程序,它可以完成内存中保存的一串字符在屏幕显示, 因此本实验既属于输入输出实验,也属于中断实验。 3.实验内容 编写一个显示器输出处理中断程序(名为NEW09),实现DOS 21H中断的9号功能,在屏幕上输出内存缓冲区BUF中以”$”结束的一串字符串。要求:缓冲区的偏移地址采用DX寄存器进行传递。 4.实验准备 (1) 预习输入输出程序设计的特点和方法。 (2) 仔细阅读参考程序,弄清外围芯片接口初始化的意义和方法。 5.实验步骤 (1) 建立源文件,并通过汇编和连接,产生可执行文件。 (2) 运行程序,观察常规字符键及功能键按下时程序的反应, DATAS SEGMENT buf db'li hongbin','$';此处输入数据段代码 DATAS ENDS STACKS SEGMENT ;此处输入堆栈段代码 STACKS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKS

main proc far START: mov al,68h mov ah,35h int 21h push es push bx push ds mov bx,offset buf mov dx,offset new09 mov ax,seg new09 mov ds,ax MOV AX,DATAS MOV DS,AX pop ds pop bx pop es sti mov al,68h mov ah,25h int 21h main endp

P1口输入输出实验

实验一P1 口输入输出 一.实验目的 (1)进一步熟悉51单片机外部引脚线路连接; (2)验证常用的51指令; (3)学习简单的编程方法; (4)掌握单片机全系统调试的过程及方法; (5)学习P1 口的有关功能作用以及使用方法。 二?实验说明 P1 口由于有内部上拉电阻,没有高阻抗输入状态,称为准双向口。作为输出口时,不需要在片外接上拉电阻,P1 口“读引脚”输入时,必须先向锁存器写1; 三?实验内容 P1 口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序 读取开关状态,将此状态,在发光二极管上显示出来 四?实验原理 以实验机上74LS273做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。循环时间由定时器控制。 五?实验流程 ORG 0000H ;程序入口 AJMP RIGHT ;跳向标号RIGHT处 ORG 0030H ;程序

RIGHT: MOV R0,#08H ;置移位次数

MOV A,#0FFH ;置全 1 CLR C ;将Cy 清零 RIGHT1: RRC A ;由于进位Cy=0 ,所以带进位的循环右移会出现灯的亮灭 MOV P1,A ;输出至P1 口,控制LED CALL DELAY ;调用延时子程序 DJNZ R0,RIGHT1 ;R0-1,不为0则转移到标号 RIGHT1处 AJMP RIGHT ;绝对转移至RIGHT 处 ?***************************************************************************** 5 ; /*延时子程序*/ ?***************************************************************************** DJNZ R5,DELAY1 ;R5-1,不为 0 则转移至 DELAY1,执行 2*10us RET ;退出子程序执行 END 七?硬件设计 (1) P1 口某一 I/O 口线反转输出电路 (2) P1 口输出电路 DELAY: MOV R5,#10 DELAY1: MOV R6,#50 DELAY2: MOV R7,#250 DJNZ R7,$ DJNZ R6,DELAY2 ;R6-1,不为0则转移至 DELAY2,执行2*200*10us H-5V +5V Vcc P1.0 Pl 1 EA XI PL 2 Pl .3 Pl XS Pl.5 Pl.6 Pl .7 R.ST Vss ;使用不停的跳转来实现延时, 30 P 80CS1 LED 360fi + 5V

相关主题
文本预览
相关文档 最新文档