实验六

task3_1.cpp

#include<iostream>
#include<fstream>
#include<array>
#define N 5
int main(){
    using namespace std;
    array<int,N> x{97,98,99,100,101};
    ofstream out;
    out.open("data.txt",ios::binary);
    if(!out.is_open()){
        cout<<"fail to open data1.dat\n";
        return 1;
    }
    out.write(reinterpret_cast<char *>(&x),sizeof(x));
    out.close();
} 

task3_2.cpp

#include<iostream>
#include<fstream>
#include<array>
#define N 5
int main(){
    using namespace std;
    array<char,N>x;
    ifstream in;
    in.open("data.dat1",ios::binary);
    if(!in.is_open()){
        cout<<"fail to open data1.dat\n";
        return 1;
    }
    in.read(reinterpret_cast<char *>(&x),sizeof(x));
    in.close();
    for(auto i=0;i<N;i++)
    cout<<x[i]<<",";
    cout<<"\b\b\n";
}

 

 

 task4.cpp

#include<iostream>
#include"vector.h"
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.6;
    
    output(x1);
    
    Vector<int> x2(n,88);
    Vector<int> x3(x2);
    
    output(x2);
    output(x3);
    
    x2.at(0)=66;
    output(x2);
    
    x3[0]=666;
    output(x3);
}
int main(){
    test();
}

vector.hpp

#pragma once
#include<iostream>
using namespace std;
template<typename T>
class Vector{
    public:
        Vector(int n):size{n}{
        value=new T[n];        
        }
        Vector(int n,T v):size{n}{
        value=new T[n];
        for(int i=0;i<n;i++)
        value[i]=v;
        }
        Vector(const Vector<T> &a):size{a.size}{
            value=new T[size];
            for(int i=0;i<size;i++)
            value[i]=a.value[i];
        }
        T &operator[](int i){
            return value[i];
        }
        int get_size() const{
        return size;
        }
        T &at(int index){
            return value[index];
        }
        friend void output(const Vector<T> &a){
        for(int i=0;i<a.size;i++)
        cout<<a.value[i]<<",";
        cout<<"\b\b\n";
        }
    private:
        int size;
        T *value;
};

 

 task5.cpp

#include<iostream>
#include<fstream>
#include<iomanip>
using namespace std;
char password[27][27];

void output(std::ostream &out){
    for(int i=0;i<=26;i++){
        for(int j=0;j<=26;j++){
            if(j==0&&i!=0)
                cout<<left<<setw(2)<<password[i][j]-'0'<<" ";
            else
                cout<<left<<setw(2)<<password[i][j]<<" ";
        }
            cout<<endl;
    }
    for(int i=0;i<=26;i++){
        for(int j=0;j<=26;j++){
            if(j==0&&i!=0)
                out<<left<<setw(4)<<password[i][j]-'0'<<" ";
            else
                out<<left<<setw(4)<<password[i][j]<<"  ";
        }
            out<<endl;
    }
}
int main(){
    ofstream out;
    
    password[0][0]=' ';
    for(int i=0,j=1;j<=26;j++)
        password[i][j]='a'+j-1;
    for(int i=1,j=0;i<=26;i++)
        password[i][j]=i+'0';
    for(int i=1;i<=26;i++){
        for(int j=1;i+j<=26;j++)
            password[i][j]='A'+i+j-1;
    }
    for(int i=26;i>=1;i--)
        for(int j=26;i+j>26&&j>=1;j--)
            password[i][j]='A'+i+j-27;
    out.open("cipher_key.txt", ios::binary);
    if(!out.is_open()) {
        cout << "fail to open cipher_key.txt\n";
        return 1;
    }
    output(out);
    system("pause");
}

 

 

posted @ 2022-12-03 15:36  yzhag  阅读(22)  评论(0)    收藏  举报