实验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片段定位)