首页 > 其他分享 >实验六

实验六

时间:2023-12-17 12:22:16浏览次数:23  
标签:int Vector 实验 output include ptr size

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.7;

    output(x1);

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

    output(x2);
    output(x3);

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

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

int main()
{
    test();
}

vector.hpp:

点击查看代码
#include<iostream>
#include<stdexcept>
#include <cassert>
using namespace std;
template<typename T>
class Vector
{
private:
    int size;
    T* ptr;
public:

    Vector(int size)
    {
        if (size < 0)
            throw std::length_error("vector constructor:negative size");
        this->size = size;
        ptr = new T[this->size];
    }
    Vector(int size, T value)
    {
        if (size < 0)
            throw std::length_error("vector constructor:negative size");
        this->size = size; ptr = new T[size];
        for (auto i = 0; i < size; i++)
        {
            ptr[i] = value;
        }

    }
    Vector(const Vector<T>& x)
    {
        size = x.size;
        ptr = new T[size];
        for (auto i = 0; i < size; i++)
        {
            ptr[i] = x.ptr[i];
        }
    }
    ~Vector()
    {
        delete[] ptr;
    }
    int get_size() { return size; }
    T& at(int i)
    {
        assert(i >= 0 && i < size);
        return(ptr[i]);
    }
    T& at(int i) const
    {
        assert(i >= 0 && i < size);
        return(ptr[i]);
    }
    T& operator[](int i)
    {
        return ptr[i];
    }
    friend void output(Vector<T> x)
    {
        for (auto i = 0; i < x.get_size(); i++)
            cout << x.at(i) << ",";
        cout << "\b\b\n";
    }
};

task5.cpp

点击查看代码
#include<fstream>
#include<iostream>
#include<stdexcept>
#include<string>
#include <iomanip>
using namespace std;
void output(ostream& out)
{
    int i, j;
    string a[27][27];
    for (i = 0;i < 27;i++)
    {
        for (j = 0;j < 27;j++)
        {
            if (i == 0 && j == 0)
            {
                a[i][j] = ' ';
                out << a[i][j];
            }
            else if (i == 0)
            {
                a[i][j] = 'a' + j - 1;
                out << a[i][j];
            }
            else if (j == 0)
            {
                a[i][j] = '1' + i - 1;
                out << i;
            }
            else
            {
                a[i][j] = 'A' + (i + j + 26) % 26;
                out << a[i][j];
            }
        }
    }
}
int main()
{
    cout << setiosflags(ios::left);
    int i, j;
    string a[27][27];
    for (i = 0;i < 27;i++)
    {
        for (j = 0;j < 27;j++)
        {
            if (i == 0 && j == 0)
            {
                a[i][j] = ' ';
                cout << a[i][j] << "  ";
            }
            else if (i == 0)
            {
                a[i][j] = 'a' + j - 1;
                cout << a[i][j] << "  ";
            }
            else if (j == 0)
            {
                a[i][j] = '1' + i - 1;
                cout << i << "\t\b\b\b\b\b";
            }
            else
            {
                a[i][j] = 'A' + (i + j + 26) % 26;
                cout << a[i][j] << "  ";
            }
        }
        cout << endl;
    }
    cout << endl;
    ofstream out;
    out.open("cipher_key.txt");
    if (!out.is_open())
    {
        std::cout << "fail to open file " << std::endl;
        return 0;
    }
    output(out);
    out.close();

}

标签:int,Vector,实验,output,include,ptr,size
From: https://www.cnblogs.com/liujiandong66da/p/17908922.html

相关文章

  • 实验7
    任务4#define_CRT_SECURE_NO_WARNINGS#include<stdio.h>intmain(){   longi=0;   charch;   FILE*fp;   fp=fopen("c://data//data4.txt","r");   while(!feof(fp))   {       ch=fgetc(fp);       if(ch!=''&......
  • 实验七
    任务1:#include<stdio.h>#defineN80typedefstruct{charname[N];//书名charauthor[N];//作者}Book;intmain(){Bookx[]={{"《雕塑家》","斯科特.麦克劳德"},{"《灯塔》","克里斯多夫.夏布特&quo......
  • 实验7 文件应用编程
    1.实验任务1源代码1//将图书信息写入文本文件data1.txt23#include<stdio.h>45#defineN8067typedefstruct{8charname[N];//书名9charauthor[N];//作者10}Book;1112intmain(){13Bookx[]={{"《雕塑家》",......
  • 实验7
    task41#include<stdio.h>23intmain(){45inti=0;6chars;78FILE*fp;9fp=fopen("data4.txt","r");1011while(1){12s=fgetc(fp);13if(s==EOF){14......
  • 实验6
    任务41#include<iostream>2#include"Vector1.hpp"34voidtest(){5usingnamespacestd;67intn;8cin>>n;910Vector<double>x1(n);11for(autoi=0;i<n;++i)12x1......
  • 实验6 模板类、文件I/O和异常处理
    实验任务41#defineVECTOR_HPP2#include<iostream>3#include<stdexcept>4usingnamespacestd;5template<typenameT>6classVector{7private:8T*data;9size_tsize;10public:11Vector(size_ta):size(a......
  • 实验三-电子公文传输系统1-个人贡献
    实验三-电子公文传输系统1-个人贡献任务详情1简述你完成的工作2你们小组总共的代码行数,你贡献的代码行数?相关代码链接?3你们小组总共的文档数?你贡献的文档数?相关链接?主要完成的工作个人主要完成的工作是扮演了项目经理和产品经理的角色,具体工作如下:项目经理:根据项目......
  • 实验六 模板类、文件I/O和异常处理
    实验任务4Vector.hpp:1#pragmaonce23#include<iostream>4#include<stdexcept>56usingnamespacestd;78template<typenameT>9classVector10{11private:12intsize;13T*ptr;14public:1516Vector(in......
  • 实验三-电子公文传输系统-个人贡献
    (一)简述你完成的工作我的工作主要是项目整体结构的搭建设计,和公文系统功能的实现一mvc模式和服务实现逻辑链设计在设计初期,我们确定好了分工和系统编写的基调。我认为电子公文系统中,可以采用MVC模式进行设计,得到了其他组员的支持,我们的分工也基本根据这个方式而来。其中我主要......
  • 实验6 模板类、文件I/O和异常处理
    任务4#include<iostream>#include<stdexcept>#include<stdlib.h>template<typenameT>classVector{public:friendvoidoutput(constVector<T1>&v);Vector<T>()=default;Vector<T......