精华内容
下载资源
问答
  • 2021-11-07 15:08:17

    实验四:流运算符的重载及文件的使用

    实验题目1: 在多态性实验第2题的基础上,在复数类中增加输入流运算符>>和输出流运算符<<的重载,主函数通过“cin>>对象名”输入对象的值,通过“cout<<对象名”输出对象的值,输出复数值时将原来主函数中“对象名.print( )”改成“cout<<对象名”形式。

    在上一步完成的基础上,将复数类改成一个类模板,只设一个模板参数,即实部和虚部用同一种类型,修改相应的代码,完成输入、输出功能。

    实验解答:

        (1)源代码参考多态性实验第2题。

    (2)记录重载operator<<函数的代码

    类内:
    template <class T>
    	friend ostream & operator << (ostream & out , Complex <T> a);
    类外定义:
    template <class T>
    ostream & operator << (ostream & out , Complex <T> a)
    	{
    		out<<a.real;
    		if(a.imag>0)
    			out<<"+";
    		out<<a.imag<<"i";
    		out<<endl;
    		return out;
    	}

    (3) 将类改写成类模板后程序的完整代码:(说明:多态性实验代码中的重载符号仅保留加法+,其他可省略)

    # include <iostream>
    # include <string>
    using namespace std;
    template <class T>
    class Complex
    {
    private:
    	T real;
    	T imag;
    public:
    	Complex (T r=0, T i=0)
    	{
    		real=r;
    		imag=i;
    	}
    	/*Complex operator - (const Complex <T> a)
    	{
    		Complex temp;
    		temp.real=real-a.real;
    		temp.imag=imag-a.imag;
    		return temp;
    	}*/
    	template <class T>
    	friend Complex operator +(const Complex <T>a,const Complex <T>b)
    	{
    		Complex temp;
    		temp.real=a.real+b.real;
    		temp.imag=a.imag+b.imag;
    		return temp;
    	}
    	template <class T>
    	friend ostream & operator << (ostream & out , Complex <T> a);
    };
    template <class T>
    ostream & operator << (ostream & out , Complex <T> a)
    	{
    		out<<a.real;
    		if(a.imag>0)
    			out<<"+";
    		out<<a.imag<<"i";
    		out<<endl;
    		return out;
    	}
    	int main()
    	{
    		Complex <int> c1(1,5),c2(5,6),c3;
    		Complex <double> c4(1.4,6.8),c5(5.8,9.7),c6;
    		cout<<"c1="<<c1<<endl;
    		cout<<"c2="<<c2<<endl;
    		cout<<"c4="<<c4<<endl;
    		cout<<"c5="<<c5<<endl;
    		c3=c1+c2;
    		cout<<"c3="<<c3<<endl;
    		c6=c4-c5;
    		cout<<"c6="<<c6<<endl;
    		return 0;
    	}

    实验题目2事先用Windows的记事本建立一个文本文件ff.txt。

    ① 编写一个函数void ReadFile(char* s)实现读取以s串为文件名的文本文件的内容在屏幕上显示。

    ② 编写一个函数void Change(char *s1,char *s2)将文本文件中的小写字母全部改写成大写字母生成一个新文件ff2.txt。

    ③ 主函数中调用ReadFile("ff.txt");显示ff.txt的内容,调用Change ("ff.txt" ,"ff2.txt");根据ff.txt文件作修改生成一个新的文件ff2.txt,最后再调用ReadFile("ff2.txt");显示新文件的内容。

    实验解答:

    void ReadFile(char *s)   //请完成代码

    char str [200];
    	ifstream inf (s);
    	if (!inf)
    	{
    		cout<<"Cannot open the file\n";
    		return ;
    	}
    	inf.getline(str,200);
    	cout<<str<<endl;
    	inf.close();

    }

    void Change(char *s1,char *s2)  //请完成代码

    {

    ifstream ifile(s1);
    	if(!ifile)
    	{
    		cout<<"cannot open the file"<<endl;
    		return ;
    	}
    	ofstream ofile(s2);
    	if(!ofile)
    	{
    		cout<<"cannot open the file"<<endl;
    		return;
    	}
    	char ch;
    	while(ifile.get(ch))
    	{
    		if(ch>='a'&&ch<='z')
    		{
    			ch=ch-32;
    		}
    		ofile.put(ch);
    	}
    	ifile.close();
    	ofile.close();

    }

    实验题目3(选做):定义学生类,该类包含学生的一些基本信息:学号、姓名、性别、成绩。定义流对象,实现用write函数将学生信息以二进制方式写到磁盘文件stu.dat中。再用read将磁盘中的学生信息读到内存显示在屏幕上。

    实验解答:

    Student::Student(char *nu,char *na,char *se,int s)    //构造函数
    {
    		strcpy(num,nu);
    		strcpy(name,na);
    		strcpy(sex,se);
    		score=s;
    }
    ostream & operator<<(ostream &out,const Student &s)  //重载输出运算符<<
    {out<<s.num<<endl;
    		out<<s.name<<endl;
    		out<<s.sex<<endl;
    		out<<s.score<<endl;
    		return out;
    }
    void CreateBiFile(char *filename)
    {
    ofstream out(filename);
    Student stu[3]= _Student("B11111111","C","female",90),
    		Student("B11111122","M","female",100),
    Student("B11111133","H","male",80)_ ___//对象数组的初始化
    out.write(_(char*)stu,sizeof(Student)*3___);      //两个实在参数自己填写
    out.close( );
    }
    void ReadBiFile(char *filename)
    {
    	Student stu[num];
    	int i=0;
        ifstream in(filename);
    	while (!in.eof( )) //读出记录并显示
    	in.read((char *)&stu[i++],sizeof(Student));
    	for(int j=0;j<i-1;j++)
    		cout<<stu[j];
    	in.close( );
    }
    int main()  //主函数代码
    {
    	CreatFile("stu.dat");
    	ReadFile("stu.dat");
    	return 0;
    }
    更多相关内容
  • c++实验报告

    2019-04-01 11:19:24
    c++实验报告内容:编写一个程序,从数据文件中读取数据,并计算数据的统计特性。在显示器上输出数据的总数、均值和标准差。
  • C++实验报告多态性.doc

    2021-08-04 21:45:34
    面向对象程序设计及C++(多态性实验实验报告
  • C++实验报告.doc

    2019-05-11 14:56:50
    为了方便,把代码放在Word里面了,每次上机实验的题目代码都在。 第一次: 对如下多项式编写类定义: + + +…+ 其中,n为多项式的次数。完成如下功能: (1) 可存储任意大的多项式(提示:可用动态数组实现)。 ...
  • 计算机程序设计基础 C++ 实 验 报 告 信息学院计算机教育中心 二零一二年三月 目录 实验_1_实验报告 3 实验_2_实验报告 5 实验_3_实验报告 6 实验_4_实验报告 7 实验_5_实验报告 11 实验_6_实验报告 14 实验_7_实验...
  • 课 程 实 验 报 告 课程名称面向对象程序设计 实验名称面向对象的整型栈编程 院 系 计算机科学与技术 专业班级 CS1209 班 学 号 姓 名 指导教师 李春花 2014 年 1 月 22 日 精品文档 一需求分析 1. 题目要求 整型栈...
  • C++实验报告.docx

    2020-02-19 10:33:25
    c++学分制管理系统实验报告 1.1 概要: 学生信息管理的需要,建立一个“学生信息管理系统”,以方便对学校信息数据的录入、修改、删除、查询等一系列功能。 1.2功能要求: (1)有菜单界面并且可以对功能...
  • 北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告。北科C++课程实现个人银行账户管理系统的实验报告
  • C++实验报告

    2017-12-27 11:06:24
    实验报告5-6,中南大学软件学院,2016-2017年上学期实验报告
  • 燕山大学C++实验报告

    2021-05-15 08:54:31
    燕山大学C++实验报告
  • (1)掌握类与对象的定义与使用方法,理解面向对象方法中通过对象间传递消息的工作机制。(2)正确掌握类的不同属性成员的使用方法。(3)掌握构造函数与析构函数的概念,理解构造函数与析构函数的执行过程。...
  • (一)新文件,头文件,源文件,并给出合适的文件名; (二)在新文件中编写代码,开发一个3维矢量类,定义相应的构造函数、复制构造函数; (三)重载运算符“+”和“-”实现矢量的相应运算;...
  • 华中科技大学 计算机学院C++实验报告,包含最短路径算法实现以及K路归并算法实现。
  • 计算机程序设计基础 C++ 实 验 报 告 信 息 学 院 计 算 机 教 育 中 心 二零一二年三月 目录 1 2 3 实验_1_实验报告 教学班级_ 土木 13 班_ 学生学号_20120391_ 学 生姓名_ 彭祖昭_ 实验日期_ 实验地点(机房) 指导...
  • Visual C++实验报告

    2022-01-19 17:42:24
    实验报告(包含:10086查询系统、MFC实现模拟用户登录、滚动条实现调色板、基于MFC的动画居中设计、求均方差、实现滚动字幕、使用按钮控件) 软件用的是Visual Studio 2019社区版
  • cg平台c++实验报告

    2022-05-13 09:42:17
    cg平台c++实验报告
  • 东北大学c++实验报告

    2016-04-27 09:26:20
    东北大学软件学院c++实验报告
  • 东北大学C++实验报告

    2013-04-04 18:20:57
    东北大学C++选修实验报告,希望对同学们有帮助
  • C++试验报告从第一章到第八章的都有。。。
  • c++实验报告.doc

    2019-08-30 18:06:23
    c++实验报告 包括几个c++的小实验及运算结果,截图,描述……
  • 包含实验目的要求,实验内容,实验代码,实验结果分析与思考。 实验一 面向过程的简单程序设计 1.实验目的要求 (1)使用C++语言编写简单的计算机程序,掌握C++程序从编辑、编译到运行的全过程,初步了解C++程序...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 25,461
精华内容 10,184
关键字:

c++实验报告

c++ 订阅
友情链接: bmp.zip