c++上机实验答案实验十(共5页)_第1页
c++上机实验答案实验十(共5页)_第2页
c++上机实验答案实验十(共5页)_第3页
c++上机实验答案实验十(共5页)_第4页
c++上机实验答案实验十(共5页)_第5页
全文预览已结束

下载本文档

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

文档简介

1、中国矿业大学计算机学院实验报告课程名称 高级程序设计语言 实验名称_实验十 C+ I/O流实验报告要求:1.实验目的 2.实验内容 3.实验步骤 4.运行结果 5.流程图 6.实验体会 一、实验目的1 熟悉流类库中常用的类及其成员函数的用法;2 掌握磁盘文件的打开、关闭及使用的使用方法;3 掌握文本文件流与二进制文件流在操作上的区别。二、实验要求1.结合上课内容,写出程序,并调试程序,要给出测试数据和实验结果。2.整理上机步骤,总结经验和体会。3.完成实验报告和上交程序。三、实验内容1. 数组中的数据经常可以用多种不同的格式显示。当用户向数组输入整数时,则分别用二进制、八进制、十进制和十六进制

2、的格式输出表中的数。编写函数convertBinary来实现将一个数转换为其二进制表示的函数这一功能。#includeusing namespace std;void main()int a50,b50;int i=0,j,x;cinx;while(ai-1!=0)ai=x/2;bi=x%2;x=ai;i+;for(j=i-1;j=0;j-)coutbj;coutendl;2. 建立两个磁盘文件f1.dat和f2.dat要求:(1)从键盘输入20个整数,存放在磁盘文件f1.dat中;(2)从f1.dat中读入10个数,存放到f2.dat文件中;(3)将f2.dat中的数据按由小到大的顺序存放,

3、不保留原有文件内容#include #include using namespace std; void fun1()int a10; ofstream outfile1(f1.dat),outfile2(f2.dat); if(!outfile1) cerropen f1.dat error!endl; exit(1); if(!outfile2) cerropen f2.dat error!endl; exit(1); coutenter 10 integer numbers:endl; for(int i=0;iai; outfile1ai ; coutenter 10 integer

4、numbers:endl; for(i=0;iai; outfile2ai ; outfile1.close(); outfile2.close(); /从f1,dat读入10个数,然后存放到f2.dat文件原有数据的后面void fun2()ifstream infile(f1.dat); if(!infile) cerropen f1.dat error!endl; exit(1); ofstream outfile(f2.dat,ios:app); if(!outfile) cerropen f2.dat error!endl; exit(1); int a; for(int i=0;i

5、a; outfilea ; infile.close(); outfile.close(); void fun3()ifstream infile(f2.dat); if(!infile) cerropen f2.dat error!endl; exit(1); int a20; int i,j,t; for(i=0;iai; for(i=0;i19;i+) for(j=0;jaj+1) t=aj;aj=aj+1;aj+1=t; infile.close(); ofstream outfile(f2.dat,ios:out); if(!outfile) cerropen f2.dat erro

6、r!endl; exit(1);coutdata in f2.dat:endl; for( i=0;i20;i+) outfileai ; coutai ; coutendl; outfile.close();int main()fun1(); fun2(); fun3(); return 0;3设计一个管理图书的简单程序,提供的基本功能包括:可连续将新书存入文件“book.dat”中,新书信息加入到文件的尾部;也可以根据输入的书名进行查找;把文件“book.dat”中同书名的所有书显示出来。为简单起见,描述一本书的信息包括:书号,书名,出版社和作者。/图书馆书目检索的源程序#include

7、#include #include class Bookprivate:long int num;/书号char bookname40;/书名char publicname40;/出版社char name20;/作者public:Book() num=0; bookname0 =0;publicname0 =0; name0 =0;char * Getbookname(void) return bookname ;long Getnum(void ) return num;void Setdata(long , char *,char *,char *);void Show(void );Bo

8、ok(long , char *,char *,char *);void Book:Setdata(long nu , char *bn,char *p,char *n)num = nu; strcpy(bookname,bn);strcpy(publicname,p); strcpy(name,n);void Book:Show(void )cout书号:numt书名:booknamet;cout出版社:publicnamet作者:namen;Book:Book(long nu, char * bp,char *p,char *n)Setdata(nu , bp, p, n); void m

9、ain(void)Book b1,b2;long nu;char bn40;/书名char pn40;/出版社char na20;/作者ifstream file1;ofstream file3;char flag = y;while( flag=y |flag=Y) /由flag控制循环cout 1: 按书名查找一本书!endl;cout 2: 加入一本新书!endl;cout 3: 退出!endl;coutf;switch(f)case 1:coutbn;file1.open(book.dat,ios:in | ios:binary);/按读方式打开文件while(!file1.eof()

10、int n;file1.read(char *)&b1,sizeof(Book);n=file1.gcount();if(n=sizeof(Book)if(strcmp(b1.Getbookname(),bn)=0)/显示书的信息b1.Show();file1.close();break;case 2:coutnu;coutbn;coutpn;coutna;b1.Setdata(nu,bn,pn,na);file3.open(book.dat,ios:app|ios:binary);/增补方式打开文件file3.write(char*)&b1,sizeof(b1);file3.close();

11、break;default: flag = n;4传说婆罗门庙中有一个塔台,台上有三根用钻石镶嵌的柱子,分别记作A柱、B柱和C柱,在A柱上放着64个金盘,每个金盘的大小都不一样,并且小金盘子放在大金盘的上面,显然,最大的金盘位于最下面,最小的金盘位于最上面。现在,试着把A柱上的盘子移到C柱上,移动规则是一次只能移动一个金盘,并且在移动过程中大金盘不能位于小金盘的上面。据说,当A柱上的所有金盘都移到C柱上的那一天,就是世界末日。试着用递归法编写一个程序,输入A柱上的盘子数量,输出正确的移动步骤和总的步数。/汉诺塔问题的源程序#include using namespace std;int main()void hanoi(int n,char one,char two,char three); int m; coutm; coutThe steps of moving m disks:endl; hanoi(m,A,B,C); return 0;void hanoi(int n,char one,char two,char three) /将n个盘从one座借助two座,移到th

温馨提示

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

评论

0/150

提交评论