实验四 输入输出流程序设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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)
附
录
#include
ofstream output;
output.open("D:\\aaa.txt"); for(int i = 2;i <= 1000;i++) {
count = 0; for(int j = 2;j < i;j++){ if((i%j) == 0) { count++;break; } } if(count > 0)continue; else{ a++; cout< output.close(); return 0; } 2. #include template ListNode(T x[],int n); void addnode(T e,int n); int deletenode(T e); int searchnode(T e); void disp(); private: T data; ListNode *next; }; template ListNode template void ListNode } if(p==NULL) { cout<<"插入位置不存在"< return ; } s->next=p->next; p->next=s; } template int ListNode { ListNode *p=this,*q; q=p->next; while(q!=NULL && q->data!=e) { p=q; q=q->next; } if(q!=NULL) { p->next=q->next; free(q); return 1; } else { cout<<"不存在要删除的元素"< return 0; } } template int ListNode //查找元素,返回位置 { ListNode *p=this; int count=0; while(p!=NULL && p->data!=e) { p=p->next; count++; } if(p!=NULL) return count; else return 0; } template void ListNode { ListNode *p=this->next; while(p->next!=NULL) { cout< p=p->next; } cout< } int main() { int a[10]={2,12,69,0,54,97,11,67,88,30}; cout<<"初始化链表类模板并显示"< ListNode head.disp(); cout<<"下面执行增加操作,增加元素'45' ,位置为'3'"< head.addnode(45,3); head.disp(); cout<<"下面执行删除操作,删除元素'11'" < head.deletenode(11); head.disp(); int location=head.searchnode(88); if(location>0) { cout<<"要查找的元素88是链表 的第"< } else cout<<"没有查找的元素"< return 0; }