首页 > 其他分享 >实验六

实验六

时间:2023-12-13 20:34:58浏览次数:30  
标签:int Vector 实验 output include ptr size

任务四 task4.cpp

 1 #include <iostream>
 2 #include "vector.hpp"
 3 void test() 
 4 {
 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 
13     output(x1);
14 
15     Vector<int> x2(n, 42);
16     Vector<int> x3(x2);
17 
18     output(x2);
19     output(x3);
20 
21     x2.at(0) = 77;
22     output(x2);
23 
24     x3[0] = 999;
25     output(x3);
26 }
27 
28 int main()
29 {
30     test();
31 }
View Code Vector.hpp
 1 #include<iostream>
 2 #include<stdexcept>
 3 #include <cassert>
 4 using namespace std;
 5 template<typename T>
 6 class Vector
 7 {
 8 private:
 9     int size;
10     T* ptr;
11 public:
12     
13     Vector(int size)
14     {
15         if(size<0)
16             throw std::length_error("vector constructor:negative size"); 
17         this->size = size;
18         ptr = new T[this->size];
19     }
20     Vector(int size, T value)
21     {
22         if(size<0)
23             throw std::length_error("vector constructor:negative size");
24         this->size = size; ptr = new T[size];
25         for (auto i = 0; i < size; i++)
26         {
27             ptr[i] = value;
28         }
29 
30     }
31     Vector(const Vector<T>& x)
32     {
33         size = x.size;
34         ptr = new T[size];
35         for (auto i = 0; i < size; i++)
36         {
37             ptr[i] = x.ptr[i];
38         }
39     }
40     ~Vector()
41     {
42         delete[] ptr;
43     }
44     int get_size() { return size; }
45     T& at(int i)
46     {
47         assert(i >= 0 && i < size);
48         return(ptr[i]);
49     }
50     T& at(int i) const
51     {
52         assert(i >= 0 && i < size);
53         return(ptr[i]);
54     }
55      T& operator[](int i)
56     {
57         return ptr[i];
58     }
59      friend void output(Vector<T> x)
60      {
61          for (auto i = 0; i < x.get_size(); i++)
62              cout << x.at(i) << ",";
63          cout << "\b\b\n";
64      }
65 };
View Code

任务五

task5.cpp

 1 #include<fstream> 
 2 #include<iostream>
 3 #include<stdexcept>
 4 #include<string>
 5 #include <iomanip>
 6 using namespace std;
 7 void output(ostream &out)
 8 {
 9     int i,j;
10     string a[27][27];
11     for( i=0;i<27;i++)
12     {
13         for( j=0;j<27;j++)
14         {
15             if(i==0&&j==0)
16             {
17                 a[i][j]=' ';
18                 out<<a[i][j];
19             }
20             else if(i==0)
21             {
22                 a[i][j]='a'+j-1;
23                 out<<a[i][j];
24             }
25             else if(j==0)
26             {
27                 a[i][j]='1'+i-1;
28                 out<<i; 
29             }
30             else
31             {
32                 a[i][j]='A'+(i+j+26)%26;
33                 out<<a[i][j];
34             }
35         }
36     }
37 }
38 int main()
39 {
40     cout<<setiosflags(ios::left);
41     int i,j;
42     string a[27][27];
43     for( i=0;i<27;i++)
44     {
45         for( j=0;j<27;j++)
46         {
47             if(i==0&&j==0)
48             {
49                 a[i][j]=' ';
50                 cout<<a[i][j]<<"  ";
51             }
52             else if(i==0)
53             {
54                 a[i][j]='a'+j-1;
55                 cout<<a[i][j]<<"  ";
56             }
57             else if(j==0)
58             {
59                 a[i][j]='1'+i-1;
60                 cout<<i<<"\t\b\b\b\b\b"; 
61             }
62             else
63             {
64                 a[i][j]='A'+(i+j+26)%26;
65                 cout<<a[i][j]<<"  ";
66             }
67         }
68         cout<<endl;
69     }
70     cout<<endl;
71     ofstream out;
72     out.open("cipher_key.txt");
73     if(!out.is_open()) 
74     {
75         std::cout << "fail to open file " << std::endl;
76         return 0;
77     }
78     output(out);
79     out.close();
80 
81 }
View Code

 

 

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

相关文章

  • 实验六
    #include<stdio.h>#include<string.h>#include<stdlib.h>typedefstruct{charname[20];//姓名charphone[12];//手机号intvip;//是否为紧急联系人,是取1;否则取0}Contact;//函数声明voidset_vip_contact(Contactx[],......
  • 实验7
    //P286例8.17//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块//打印不及格学生信息和所有学生信息程分别调用#include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试typedefstructstu......
  • 实验四
    task5源代码:1#pragmaonce23#include<iostream>4#include<string>56usingnamespacestd;78classTextCoder{9public:10TextCoder()=default;11TextCoder(stringstr);12stringget_ciphertext(......
  • TSINGSEE青犀基于EasyCVR与AI技术的高校实验室视频可视化监管方案
    一、行业背景实验室作为科研、教学过程中的一个重要场所,其管理也十分至关重要。尤其是高校实验室安全问题,教育部《高等学校实验室安全规范》中说明,需要进一步加强高校实验室的安全管理工作,实现规范化、常态化的管理体制,以最大限度地减少实验室安全事故的发生,保障校园师生的生命安......
  • 实验6 模板类、文件I/O和异常处理
    实验任务1源代码:#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},im......
  • 实验6 C语言结构体、枚举应用编程
    1.实验任务1源代码1//P286例8.172//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块3//打印不及格学生信息和所有学生信息程分别调用45#include<stdio.h>6#include<string.h>7#defineN3//运行程序输入测试时,可......
  • 实验 2 处理机调度算法
    1.实验任务1)回顾课本第三章中介绍过的作业或进程调度算法,包括先来先服务、最短作业优先、时间片轮转、多级队列调度和多级反馈队列调度等,介绍上述调度算法的设计原理并分析各自的特点;2)采用高级编程设计语言实现任意一种处理机调度算法;3)下面提供了实现先来先服务调度算法的参考......
  • 实验6
    task1源码//P286例8.17//对教材上的程序作了微调整,把输出学生信息单独编写成一个函数模块//打印不及格学生信息和所有学生信息程分别调用#include<stdio.h>#include<string.h>#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试typedef......
  • 实验6
    任务1源码1#define_CRT_SECURE_NO_WARNINGS2#include<stdio.h>3#include<string.h>4#defineN3//运行程序输入测试时,可以把这个数组改小一些输入测试56typedefstructstudent{7intid;//学号8charname......
  • 实验六
    task4源代码:#include<stdio.h>#defineN10typedefstruct{charisbn[20];//isbn号charname[80];//书名charauthor[80];//作者doublesales_price;//售价intsales_count;//销售册数}Book;......