C++面向对象程序设计课程实验报告
课程名称 C++面向对象程序设计 姓名 实验名称 实 验 目 的 及 要 求 班级 学号 实验日期 实验成绩 2014.5.16 实验四 I/O流及模板 1. 正确理解C++输入/输出的含义,熟悉流及流类库的作用。 2. 掌握流类库中常用的类及其成员函数的使用方法,掌握C++流输入和流输出 的使用方法。 3. 掌握C++格式输入/输出的方法,了解常用控制符的使用。 4. 学习文本文件和二进制文件的输入/输出方法。 5. 掌握类模板与函数模板的定义,能够使用类模板和函数模板进行编程。 6. 理解类模板与模板类以及函数模板和模板函数的区别。 7. 了解STL库。 实 验 环 境 实 验 内 容 算 法 描 述 及 实 验 步 骤
硬件平台:普通PC机 软件平台:Windows操作系统 编程环境:Visual C++ 6.0或Dev-cpp 1. 文件数据的读取。编制一程序来显示并保存[2,1000]内的所有素数。显示 保存素数的格式为:每行10个素数,每一个素数占7个字符,右对齐,最 后一行不足10个素数时按一行输出。 2. 编写一个单向链表的类模板,分别实现增加、删除、查找和打印操作。 各题目算法描述及实验步骤: 题目1:主要考察文件中数据的读取,还包括格式化输入/输出的简单应用(右对齐)。 算法描述及实验步骤:首先定义一个ofstream类的对象output,然后打开文件,再分别编写判断素数、每行输出10个数以及保证辖域为7的代码,最后关闭文件,这些都可以在main函数中编写。 题目2:主要考察C++与数据结构相结合,单向链表内各种功能的实现。 算法描述及实验步骤:首先定义一个类,然后利用前插入法初始化链表,编写类模板的成员函数,再分别进行增加、删除、查找和打印的操作。 将两段代码分别在Visual C++ 6.0中进行程序调试,更改代码错误后编译通过,并输出调试后的最终结果。 输出结果如下: 题目1: 1
调 试 过 程 及 实 验 结 果 题目2: 总 结
实验四主要考察了输入/输出流的概念及类模板的应用。通过实验四的再学习现作如下总结:一旦文件被打开,文件中的文本数据信息的读/写操作与控制台文件信息的输入/输出操作就完全一致。定义ifstream、ofstream、fstream流类对象时,应用对象名替代控制台文本信息输入/输出使用的输入流类对象(如cin)和输出流类对象(如cout)。在编程时应注意不要有拼写错误。 实验四各题目程序代码如下: 题目1: #include
附 录 #include
3
ListNode
cout<<\插入位置不存在\return ; } ListNode *s,*p; int count=0; s=(ListNode *)malloc(sizeof(ListNode)); s->data=e; p=this; count++; while(p!=NULL && count
} 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
5
while(p->next!=NULL) { cout< int main() { int a[10]={2,6,9,0,4,5,1,7,8,3}; } cout<<\初始化链表类模板并显示\ListNode