实验六

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 }

 

posted @ 2022-11-30 17:29  一路走好真君  阅读(25)  评论(0编辑  收藏  举报