首页 > 其他分享 >实验6 模板类、文件I/O和异常处理

实验6 模板类、文件I/O和异常处理

时间:2023-12-17 17:11:32浏览次数:42  
标签:文件 int Vector 实验 output include data 模板 size

task4

vector.hpp

#include <iostream>
#include <stdexcept>
using namespace std;

template <typename T>
class Vector {
private:
    T* data;
    int size;
public:
    Vector() : data(nullptr), size(0) {}
    Vector(int n) : size(n) {
        data = new T[n];
        for (int i = 0; i < n; i++) {
            data[i] = T();
        }
    }
    Vector(const Vector& other) : size(other.size) {
        data = new T[size];
        for (int i = 0; i < size; i++) {
            data[i] = other.data[i];
        }
    }
    Vector(int n, T t):size{n} {
    data= new T[n];
    for (int i = 0; i < n; i++)
         data[i] = t;
 }
    ~Vector() {
        delete[] data;
    }
    int get_size() const {
        return size;
    }
    T& at(int i) {
        if (i < 0 || i >= size) {
            throw out_of_range("Index out of range");
        }
        return data[i];
    }
    T& operator[](int i) {
        return at(i);
    }
    friend void output(const Vector& v) {
        for (int i = 0; i < v.size; i++) {
            cout << v.data[i] << " ";
        }
        cout << endl;
    }
};
View Code

task4.cpp

#include <iostream>
#include "Vector.hpp"

void test() {
    using namespace std;

    int n;
    cin >> n;

    Vector<double> x1(n);
    for(auto i = 0; i < n; ++i)
        x1.at(i) = i * 0.618;

    output(x1);

    Vector<int> x2(n, 777);
    Vector<int> x3(x2);

    output(x2);
    output(x3);

    x2.at(0) = 42;
    output(x2);

    x3[0] = 666;
    output(x3);
}

int main() {
    test();
}
View Code

运行结果

task5

#include<iostream>
#include<fstream>

void output(std::ostream &out) {
    for (int i = 0; i <= 26; i++) {
        out.width(2);
        if (i == 0) out << ' ';
        else out << i;
        for (int j = 0; j <= 26; j++) {
            out << ' ';
            if (i == 0) out << (char)('a' + (i + j) % 26);
            else out << (char)('A' + (i + j) % 26);
        }
        out << '\n';
    }
}
void output() {
    output(std::cout);
    std::ofstream ofile;
    ofile.open("cipher_key.txt");
    output(ofile);
    ofile.close();
}
int main() {
    output();
}
View Code

 

标签:文件,int,Vector,实验,output,include,data,模板,size
From: https://www.cnblogs.com/PerfectAllKill/p/17909333.html

相关文章

  • linux查找文件
    linux查找文件常用的有find和whereis两种方式.find适用于复杂的查询,指定目录和文件名,通常可以找到你想要的文件.不要指定从根目录开始找,与其这样不如先推测一下这个文件可能在什么地方.whereis通常用来定位二进制文件,帮助文件,源码文件,默认情况下是在包管理......
  • 实验六_OOP_张文瑞_202213260018
    实验任务4Vector.hpp源代码1#include<iostream>2#include<stdexcept>34template<typenameT>5classVector{6private:7intsize;8T*vec;9public:10Vector<T>()=default;11......
  • 实验六
    1.task4#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;void......
  • 实验6
    test4#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;voidoutput(Bookx[],intn);voidsort(Book......
  • 实验6 模板类、文件I/O和异常处理
    实验任务1Complex.hpp#pragmaonce#include<iostream>#include<stdexcept>template<typenameT>classComplex{public:Complex(Tr=0,Ti=0):real{r},imag{i}{}Complex(constComplex<T>&c):real{c.real},imag{c.......
  • 实验六
    4、试验任务4源代码1#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];//isbn号6charname[80];//书名7charauthor[80];//作者8doublesales_price;//售价9intsales......
  • 23种设计模式——模板模式
    今天我们来学习23种设计模式中的模板模式。模板模式需要注意抽象类与具体子类之间的协作。它用到了虚函数的多态性技术以及“不用调用我,让我来调用你”的反向控制技术。概念:模板模式是定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。模板方法使得子类可以不改变一个算法......
  • 实验7
    test4代码#include<stdio.h>#defineN2intmain(){char*x[N]={"0123456789-0123456789","nuist2023-nuist2024"};inti;FILE*fp;fp=fopen("data4.txt","w");......
  • 实验6
    1#include<stdio.h>2#defineN1034typedefstruct{5charisbn[20];//isbn号6charname[80];//书名7charauthor[80];//作者8doublesales_price;//售价9intsales_count;//销售......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献1简述你完成的工作作为组长,分配任务到各个小组组员上,组织统筹组员完成各项工作。参与组内博客和文档的编写工作。参与后端设计的代码编写和加密通信过程的实现2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?总共代码行数为5535......