实验六
task4
Vector.hpp:
1 #pragma once 2 #include<bits/stdc++.h> 3 using namespace std; 4 template<typename T> 5 class Vector 6 { 7 private: 8 int size; 9 T* value; 10 public: 11 Vector(int s) :size{ s } { value = new T[s]; } 12 Vector(int s, T v); 13 Vector(const Vector<T> &v); 14 ~Vector() = default; 15 int get_size() const { return size; } 16 T& at(int n) { return value[n]; } 17 T& operator[](int n) const { return value[n]; } 18 template<typename T> 19 friend void output(Vector<T>); 20 }; 21 template<typename T> 22 Vector<T>::Vector(int s, T v) { 23 size = s; 24 value = new T[size]; 25 for (int i = 0; i < size; i++) 26 value[i] = v; 27 } 28 template<typename T> 29 Vector<T>::Vector(const Vector<T>& v) { 30 size = v.size; 31 value = new T[size]; 32 for (int i = 0; i < size; i++) 33 value[i] = v.value[i]; 34 } 35 template<typename T> 36 void output(Vector<T> v) { 37 for (int i = 0; i < v.size; i++) 38 cout << v.value[i] << ", "; 39 cout << "\b\b \n"; 40 }
Vector.cpp:
1 #include <iostream> 2 #include "Vector.hpp" 3 4 void test() { 5 using namespace std; 6 int n; 7 cin >> n; 8 9 Vector<double> x1(n); 10 for (auto i = 0; i < n; ++i) 11 x1.at(i) = i * 0.7; 12 output(x1); 13 Vector<int> x2(n, 42); 14 Vector<int> x3(x2); 15 output(x2); 16 output(x3); 17 x2.at(0) = 77; 18 output(x2); 19 x3[0] = 999; 20 output(x3); 21 } 22 23 int main() { 24 test(); 25 }
task5
1 #include<iostream> 2 #include<fstream> 3 #include<iomanip> 4 using namespace std; 5 #define N 27 6 char words[N][N]; 7 int number[N]; 8 void Init_words(char words[][N], int n) { 9 words[0][0] = ' '; 10 for (int i = 1; i < N; i++) { 11 words[0][i] = 'a' + i - 1; 12 words[i][0] = i+'0'; 13 number[i] = i; 14 } 15 for(int i=1;i<N;i++) 16 for (int j = 1; j < n; j++) { 17 words[i][j] = words[0][j] + i + 'A' - 'a'; 18 if (words[i][j] > 'Z') 19 words[i][j] -= 26; 20 } 21 } 22 void output(char words[][N], int n,ostream& out) { 23 for (int i = 0; i < N; i++) { 24 if (i == 0) 25 cout << " "; 26 else 27 cout <<setw(2)<< number[i] << ' '; 28 for (int j = 1; j < N; j++) { 29 cout << words[i][j] << " "; 30 } 31 cout <<endl; 32 } 33 for (int i = 0; i < N; i++) { 34 if (i == 0) 35 out << " "; 36 else 37 out << setw(2) << number[i] << ' '; 38 for (int j = 1; j < N; j++) { 39 out << setw(2)<< words[i][j] ; 40 } 41 out << endl; 42 } 43 } 44 int main() { 45 ofstream out; 46 out.open("cipher_key.txt"); 47 Init_words(words,N); 48 output(words,N,out); 49 }