首页 > 其他分享 >实验一

实验一

时间:2023-10-17 17:44:26浏览次数:31  
标签:real const cout int void 实验 Rect

#include <iostream> #include <string> #include <vector> #include <array>
template<typename T> void output1(const T &obj) { for(auto i: obj) std::cout << i << ", "; std::cout << "\b\b \n"; }
template<typename T> void output2(const T &obj) { for(auto p = obj.begin(); p != obj.end(); ++p) std::cout << *p << ", "; std::cout << "\b\b \n"; }
void test_array() { using namespace std; array<int, 5> x1; cout << "x1.size() = " << x1.size() << endl; x1.fill(42); x1.at(0) = 999; x1[4] = -999; cout << "x1: "; output1(x1); cout << "x1: "; output2(x1); array<int, 5> x2(x1); cout << boolalpha << (x1 == x2) << endl; x2.fill(22); cout << "x2: "; output1(x2); swap(x1, x2); cout << "x1: "; output1(x1); cout << "x2: "; output1(x2); }
void test_vector() { using namespace std; vector<int> v1; cout << v1.size() << endl; cout << v1.max_size() << endl; v1.push_back(55); cout << "v1: "; output1(v1); vector<int> v2 {1, 0, 5, 2}; v2.pop_back(); v2.erase(v2.begin()); v2.insert(v2.begin(), 999); v2.insert(v2.end(), -999); cout << v2.size() << endl; cout << "v2: "; output2(v2); vector<int> v3(5, 42); cout << "v3: "; output1(v3); vector<int> v4(v3.begin(), v3.end()-2); cout << "v4: "; output1(v4); }
void test_string() { using namespace std; string s1{"oop"}; cout << s1.size() << endl; for(auto &i: s1) i -= 32; s1 += "2023"; s1.append(", hello"); cout << s1 << endl; }
int main() { using namespace std; cout << "===========测试1: array模板类基础用法===========" << endl; test_array(); cout << "\n===========测试2: vector模板类基础用法===========" << endl; test_vector(); cout << "\n===========测试3: string类基础用法===========" << endl; test_string(); }

 

 

#include<iostream> #include<complex> void test_std_complex(){     using namespace std;     complex<double> c1{3,4},c2{4.5};     const complex<double> c3{c2};     cout<<"c1="<<c1<<endl;     cout<<"c2="<<c2<<endl;     cout<<"c3="<<c3<<endl;     cout<<"c3.real="<<c3.real()<<","<<"c3.imag="<<c3.imag()<<endl;     cout<<"c1+c2="<<c1+c2<<endl;     cout<<"c1-c2="<<c1-c2<<endl;     cout<<"abs(c1)= "<<abs(c1)<<endl;     cout<<boolalpha;     cout<<"c1==c2:"<<(c1==c2)<<endl;     cout<<"c3==c2:"<<(c3==c2)<<endl;     complex<double> c4=2;     cout<<"c4="<<c4<<endl;     c4+=c1;     cout<<"c4="<<c4<<endl; } int main(){     test_std_complex(); }

 

 

 

#include<iostream> #include<string> using namespace std; class T{     public:     T(int x=0,int y=0);     T(const T &t);     T(T &&t);     ~T();
    void set_m1(int x);     int get_m1() const;     int get_m2() const;     void display() const;     friend void func();     private:     int m1,m2;     public:     static void disply_count();     public:     static const string doc;     static const int max_count;     private:     static int count;     }; const string T::doc{"a simple class"}; const int T::max_count=99; int T::count=0; T::T(int x,int y):m1{x},m2{y}{     ++count;     cout<<"constructor called.\n"; } T::T(const T &t):m1{t.m1},m2{t.m2}{     ++count;     cout<<"copy constructor called.\n"; } T::T(T &&t):m1{t.m1},m2{t.m2}{     ++count;     cout<<"move constructor called.\n"; } T::~T(){     --count ;     cout<<"destructor called.\n"; } void T::set_m1(int x){     m1=x; } int T::get_m1() const {     return m1; } int T::get_m2() const {     return m2; } void T::display() const{     cout<<m1<<","<<m2<<endl; } void T::disply_count(){     cout<<"T objects:"<<count<<endl; } void func(){     T t1;     t1.set_m1(55);     t1.m2=77;     t1.display(); } void test(){     cout<<"T class info:"<<T::doc<<endl;     cout<<"T objects max_count:"<<T::max_count<<endl;     T::disply_count();     T t1;     t1.display();     t1.set_m1(42);     T t2{t1};     t2.display();     T t3{std::move(t1)};     t3.display();     t1.display();     T::disply_count(); } int main(){     cout<<"===========测试类T====================="<<endl;     test();     cout<<endl;     cout<<"=============测试友元函数funC()============="<<endl;     func(); }

 

 

#include<iostream> #include<string> #include<iomanip> using namespace std;

class Rect{ public: Rect(); Rect(int l,int w); Rect (const Rect &r);


 int len() const  {         return length;     }     int wide() const     {         return width;     }     int circumference() const     {         return 2*(length+width);     }     int area() const     {         return width*length;     }     void resize(double times);     void resize(double l_times,double w_times); static  string doc ; static int size_info() {     return count; } ~Rect(){     count--;     }


private: int length,width; static int count; }; Rect::Rect() {     length=2;     width=1;     count++; } Rect::Rect(int l,int w) {     length=l;     width=w;     count++; } Rect::Rect(const Rect &r) {     length=r.length;     width=r.width;     count++; } void Rect::resize(double times){     length=length*times;     width=width*times; } void Rect::resize(double l_times,double w_times){     length=length*l_times;     width=width*w_times; } int Rect::count=0; string Rect::doc="a simple Rect class";

void output(const Rect &r){     cout<<"矩形信息:"<<endl;     cout<<fixed<<setprecision(2);     cout<<"长:"<<r.len()<<endl;     cout<<"宽:"<<r.wide()<<endl;      cout<<"面积:"<<r.area()<<endl;      cout<<"周长:"<<r.circumference()<<endl;     } void test(){     cout<<"矩形类信息:"<<Rect::doc<<endl;     cout<<"当前矩形对象数目:"<<Rect::size_info()<<endl;     Rect r1;     output(r1);     Rect r2(4,3);     output(r2);     Rect r3(r2);     r3.resize(2);     output(r3);     r3.resize(5,2);     output(r3);     cout<<"当前矩形对象数目:"<<Rect::size_info()<<endl; } int main(){     test();     cout<<"当前矩形对象数目:"<<Rect::size_info<<endl; }

 

 

#include<iostream> #include<cmath> class Complex{ public :     Complex(double r=0,double i=0){         real=r;imag=i ;}         Complex(const Complex &x){             real=x.real;             imag=x.imag;         }               double get_real() const{         return real;     }     double  get_imag() const{         return imag;     }     void show() const{         using namespace std;         if(real==0&&imag==0){cout<<0;}         else if(real==0){cout<<imag<<"i";}         else if(imag==0){cout<<real;}         else{             if(imag>0){                 cout<<real<<"+"<<imag<<"i";             }                 else if(imag<0){             cout<<real<<"-"<<-imag<<"i";         }         } }                 void add( const Complex &x) {real+=x.real;     imag+=x.imag;}      friend Complex add(const Complex &c1,const Complex &c2);         friend bool is_equal(const Complex &c1,const Complex &c2);         friend double abs(const Complex &c1);         private:         double real;         double imag;
    }; Complex add(const Complex &c1,const Complex &c2){     double real=c1.real+c2.real;     double imag=c1.imag+c2.imag;     return Complex(real,imag); } bool is_equal(const Complex &c1,const Complex&c2){     if(c1.real==c2.real&&c1.imag==c2.imag)     return true;     else return false; } double abs(const Complex &c1){     return sqrt(c1.real*c1.real+c1.imag*c1.imag); }     void test(){     using namespace std;     Complex c1(3,-4);     const Complex c2(4.5);     Complex c3(c1);     cout<<"c1=";     c1.show();     cout<<endl;     cout<<"c2.imag="<<c2.get_imag()<<endl;     cout<<"c3=";     c3.show();     cout<<endl;     cout<<"abs(c1)=";     cout<<abs(c1)<<endl;     cout<<boolalpha;     cout<<"c1==c3:"<<is_equal(c1,c3)<<endl;     cout<<"c1==c2:"<<is_equal(c1,c2)<<endl;     Complex c4;     c4=add(c1,c2);     cout<<"c4=c1+c2=";     c4.show();     cout<<endl; } int main(){     test(); }

 

标签:real,const,cout,int,void,实验,Rect
From: https://www.cnblogs.com/shaoshuai-nuist/p/17770294.html

相关文章

  • 实验五 队列的基本操作及应用
    实验五队列的基本操作及应用作业要求:实验时间:第7、8周实验目的:掌握队列的初始化、判空、取队头元素、出队、入队、输出队列元素等基本操作实验要求:1、认真阅读和掌握教材上和本实验相关的算法。2、上机将链队列或循环队列的相关算法实现。3、实现下面实验内容要求的功能,并......
  • 实验一 类与对象_基础编程1
    task1.cpp1#include<iostream>2#include<string>3#include<vector>4#include<array>56template<typenameT>7voidoutput1(constT&obj){8for(autoi:obj)9std::cout<<i<<","......
  • 实验2
    任务一源代码 任务一运行结果 任务一问题回答 任务二源代码  任务二运行结果 任务三源代码  任务三运行结果 任务四源代码  任务四运行结果  任务五源代码  任务五运行结果  任务六源代码  任务六运行结果 ......
  • 实验一
    #include<iostream>#include<string>#include<vector>#include<array>//函数模板//对满足特定条件的序列类型T对象,使用范围for输出template<typenameT>voidoutput1(constT&obj){for(autoi:obj)std::cout<<i<<",";......
  • 实验2
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1374#defineN2465intmain(){ intnumber; inti; srand(time(0)); for(i=0;i<N;++i){ number=rand()%(N2-N1+1)+N1; printf("2......
  • 实验二
    task1.c1#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13746#defineN24657intmain()8{9intnumber;10inti;11srand(time(0));//以当前系统时间作为随机种子12for(i=0;i<N;++i......
  • 实验2
    task11#include<stdio.h>2#include<stdlib.h>3#include<time.h>4#defineN55#defineN13746#defineN24657intmain()8{9intnumber;10inti;11srand(time(0));//以当前系统时间作为随机种子12for(i=0;i<N;++i){......
  • 实验2
    #include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1374#defineN2465intmain(){intnumber;inti;srand(time(0));for(i=0;i<N;i++){number=rand()%(N2......
  • 第二次实验
    任务1#include<stdio.h>#include<stdlib.h>#include<time.h>#defineN5#defineN1374#defineN2465intmain(){ intnumber; inti; srand(time(0));//以当前系统时间作为随机种子 for(i=0;i<N;++i){ number=rand()%(N2-N1+1)+N1; printf("......
  • 实验二
    #include<stdio.h>#include<math.h>intmain(){intn,a,up,down,i=1;doubles;while(scanf("%d%d",&n,&a)==2){while(i<=n){up=i;down+=a*pow(10,i-1);s+=up*1.......