实验5

Posted 20178303027zl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验5相关的知识,希望对你有一定的参考价值。

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

// 函数声明 
void output1(vector<string> &);  
void output2(vector<string> &);  

int main()
{
    vector<string>likes, dislikes; // 创建vector<string>对象likes和dislikes
    
    // 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
    // 补足代码 
    likes.push_back("favorite book");
    likes.push_back("music");        
    likes.push_back("film");
    likes.push_back("paintings");
    likes.push_back("anime");
    likes.push_back("sport");
    likes.push_back("sportsman");
    likes.push_back("etc");    
    
    
    cout << "-----I like these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    output1(likes);
    
    
    // 为vector<string>数组对象dislikes添加元素值 
    // 补足代码 
    dislikes.push_back("favorite book");
    dislikes.push_back("music");        
    dislikes.push_back("film");
    dislikes.push_back("paintings");
    dislikes.push_back("anime");
    dislikes.push_back("sport");
    dislikes.push_back("sportsman");
    dislikes.push_back("etc");    
    
    cout << "-----I dislike these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    output1(dislikes);
    
    
    // 交换vector<string>对象likes和dislikes的元素值 
    // 补足代码
    likes.swap(dislikes); 
    
    
    cout << "-----I likes these-----" << endl;
    // 调用子函数输出vector<string>数组对象likes的元素值 
    // 补足代码
    output2(likes);
    
    cout << "-----I dislikes these-----" << endl;
    // 调用子函数输出vector<string>数组对象dislikes的元素值 
    // 补足代码
    output2(dislikes);
        
                        
    return 0;
}


// 函数实现 
// 以下标方式输出vector<string>数组对象v的元素值  
void output1(vector<string> &v) {
    // 补足程序
    for(int i=0;i<v.size();i++)
        cout<<v[i]<<" ";
    cout<<endl;

}

// 函数实现
// 以迭代器方式输出vector<string>数组对象v的元素值 
void output2(vector<string> &v) {
    // 补足程序
    vector<string>::iterator i;
    for (i = v.begin(); i < v.end(); i++)
        cout << *i << " ";
    cout << endl;
}


技术分享图片



#include<iostream>
using namespace std;
int main()
{
    int *p;
//    *p=9;//指针没有分配空间,没有指向地址 
    p=new int (2);
    *p=9 ;
    cout<<"The value at p:"<<*p;
    delete p;
    return 0;
 } 




#include<iostream>
using namespace std;
int fn1()
{
    int *p=new int(5);
    int b=*p;
    delete p; //未释放内存 
    return b;
}
int main()
{
    int a=fn1();
    cout<<"the value of a is :"<<a;
    return 0;
}

 

 

#include <iostream>
#include "matrix.h"

using namespace std;
int main()
{
    Matrix x1(3,3);
    x1.printMatrix();
    float a[3*3];
    x1.setMatrix(a);
     x1.printMatrix();
    
 } 

 


#include <iostream>
#include "matrix.h"
using namespace std;
Matrix::Matrix(int n):lines(n),cols(n)
{
    p = new float[lines*cols];
}

Matrix::(int n,int m):lines(n),cols(m)
{
    p = new float[lines*cols];
}
Matrix::Matrix(const Matrix &X)
{
    lines=X.lines;
    cols=X.cols;
    p=new float[lines*cols];
    for(int i=0;i<lines*cols;i++)
    p[i]=X.p[i];
}
Matrix::~Matrix()
{
    delete[] p;
}
void Matrix::setMatrix(const float *pvalue)
{
    for (int i = 0; i < lines*cols; i++)
       p[i] = pvalue[i];
}
void Matrix::printMatrix() const
{
    for (int i=0;i<lines;i++)
    {
        for (int j=0;j<cols;j++)
        {
            cout<<p[i*lines+j]<<" ";
        }
        cout<<endl;
    }
}
void Matrix::setElement(int i, int j, int value)
{
    p[i*j-1] =value;
}


 int Matrix::getLines() const{
    cout<<lines<<endl;
}
 int Matrix::getCols() const{
    cout<<cols<<endl;
}

#ifndef MATRIX_H
#define MATRIX_H
class Matrix {
    public:
        Matrix(int n); // 构造函数,构造一个n*n的矩阵 
        Matrix(int n, int m); // 构造函数,构造一个n*m的矩阵 
        Matrix(const Matrix &X); // 复制构造函数,使用已有的矩阵X构造 
        ~Matrix(); //析构函数 
        void setMatrix(const float *pvalue); // 矩阵赋初值,用pvalue指向的内存块数据为矩阵赋值 
        void printMatrix() const; // 显示矩阵
        inline float &element(int i, int j); //返回矩阵第i行第j列元素的引用
        inline float element(int i, int j) const;// 返回矩阵第i行第j列元素的值 
        void setElement(int i, int j, int value); //设置矩阵第i行第j列元素值为value
        inline int getLines() const; //返回矩阵行数 
        inline int  getCols() const; //返回矩阵列数 
    private:
        int lines;    // 矩阵行数
        int cols;      // 矩阵列数 
        float *p;   // 指向存放矩阵数据的内存块的首地址 
};
#endif

 

编译时说#include matrix.h发生错误,不知道为什么;


#include<iostream>
#include<cstdlib>
using namespace std;
class Dice{
    public:
        Dice (int n); 
        int cast();
    private:
        int sides;
    
};
Dice::Dice(int n):sides(n) {}

int Dice::cast(){
    int a=rand()%sides+1;
    return a;
}
int main(){
    Dice p(40);
    int m;
    for(int i=0;i<500;i++)
    {
        m=p.cast();
        if(m==27) 
        m++;
    }
    float n=m/500.0; 
    cout<<n<<endl;
    return 0;
} 

技术分享图片

 

 

#include "book.h"
#include <iostream> 
#include <string>
using namespace std;

// 构造函数
// 补足程序 
// ...
Book::Book(string isbnX, string titleX, float priceX):isbn(isbnX),title(titleX),price(priceX){}
   


// 打印图书信息
// 补足程序 
// ...
void Book::print()
{
    cout<<"isbn:"<<isbn<<" "<<"title:"<<title<<" "<<"price:"<<price<<endl;    
}
#ifndef BOOK_H
#define BOOK_H

#include <string>
using std::string;

class Book {
    public:
        Book(string isbnX, string titleX, float priceX);  //构造函数  
        void print(); // 打印图书信息 
    private:
        string isbn;
        string title;
        float price;
};
#endif
#include "book.h"
#include <vector>
#include <iostream>
using namespace std;

int main()
{
    // 定义一个vector<Book>类对象
    // 补足程序
    // ... 
     vector<Book>book;
     
    string isbn, title;
    float price;
    
    // 录入图书信息,构造图书对象,并添加到前面定义的vector<Book>类对象中
    // 循环录入,直到按下Ctrl+Z时为止 (也可以自行定义录入结束方式) 
    // 补足程序
    // ... 
    while(cin>>isbn>>title>>price)
    {
        Book b(isbn,title,price);
        book.push_back(b);
    }
    
    // 输出入库所有图书信息
    // 补足程序
    // ... 
    for(int i=0;i<book.size();i++)
        book[i].print();
    
    return 0;
}

技术分享图片





 




















以上是关于实验5的主要内容,如果未能解决你的问题,请参考以下文章

[NTUSTISC pwn LAB 7]Return to libc实验(puts泄露libc中gadget片段定位)

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

VSCode自定义代码片段5——HTML元素结构

使用 React 实验性中继片段:缺少属性 '"$fragmentRefs"'

[NTUSTISC pwn LAB 5]rop入门实验