#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("sportman")  ;  
	
	cout << "-----I like these-----" << endl;
	// 调用子函数输出vector<string>数组对象likes的元素值 
	// 补足代码
	// 。。。 
	output1(likes);
	
	// 为vector<string>数组对象dislikes添加元素值 
	// 补足代码 
	// 。。。 
	dislikes.push_back("suan");
	dislikes.push_back("cong");  
	cout << "-----I dislike these-----" << endl;
	// 调用子函数输出vector<string>数组对象dislikes的元素值 
	// 补足代码
	// 。。。 
	output2(dislikes);
	
	// 交换vector<string>对象likes和dislikes的元素值 
	// 补足代码
	// 。。。 
	likes.swap(dislikes);
	
	cout << "-----I likes these-----" << endl;
	// 调用子函数输出vector<string>数组对象likes的元素值 
	// 补足代码
	// 。。。 
	output1(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 it;
    for(it=v.begin();it!=v.end();++it)
    cout<<*it<<" ";
    cout<<endl;
}

  

#include<iostream>
using namespace std;
int main(){
//	int *p;//没有给指针指向一个有效的地址 
    int n; 
    int *p=&n;
	*p=9;
	cout<<"The value at p:"<<*p;
	return 0; 
} 

  

#include<iostream>
using namespace std;
int fn1(){
	int *p=new int(5);//申请了没有释放 
	return *p;
	delete p;
}
int main(){
	int a=fn1();
	cout<<"the value is:"<<a;
	return 0;
} 

  

#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{return lines;}; //返回矩阵行数 
		inline int  getCols() const{return cols;}; //返回矩阵列数 
	private:
		int lines;    // 矩阵行数
		int cols; 	 // 矩阵列数 
		float *p;   // 指向存放矩阵数据的内存块的首地址 
};
#endif

  

#include"matrix.h"
#include<iostream>
using namespace std;
Matrix::Matrix(int n):lines(n),cols(n){
    p=new float[lines*cols];
}
Matrix::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;i++){
		for(int j=0;j<cols;j++)
		p[i]=x.p[i] ;
	}
} 
void Matrix::printMatrix() const{
     for(int i=0;i<lines;i++){
     for(int j=0;j<cols;j++)
     cout<<element(i,j)<<" ";
     cout<<endl;
    }
}
float& Matrix::element(int i,int j)  {
	return p[i*lines+j];
}
float Matrix::element(int i,int j) const{
    return p[i*lines+j];
} 
void Matrix::setElement(int i,int j,int value){
    p[(i-1)*lines+j-1]=value;
} 
void Matrix::setMatrix(const float pvalue) {
	for(int i=0;i<lines*cols;i++){
		p[i]=pvalue;
	}
} 
Matrix::~Matrix(){
	delete[] p;
}

  

#include"matrix.h"
#include<iostream>
using namespace std;
int main(){
	Matrix a(4);
	Matrix b(3,4);
	Matrix c(a);
	a.printMatrix();
	a.setMatrix(1);
	b.setMatrix(2);
	a.printMatrix();
	b.printMatrix();
	c.printMatrix();
	a.setElement(1,1,6);
	a.printMatrix(); 
	cout<<a.getLines()<<" "<<b.getCols()<<endl;
	return 0;
}

  

用指针

void setMatrix(const float *pvalue); 

void Matrix::setMatrix(const float *pvalue) {
	for(int i=0;i<lines*cols;i++){
		p[i]=*pvalue++;
	}
} 


	float s[20]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20} ;
	a.setMatrix(s);
	b.setMatrix(s);

  

class Dice{
	private:
		int sides;
		static int count;
	public:
		Dice(int n);
		int cast();
};
#include"dice.h"
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int Dice::count=0;
Dice::Dice(int n):sides(n){} 
int Dice::cast(){
	srand(time(NULL));
	for(int i=0;i<500;i++){
		if(rand()%40+1==28)
		++count;
	}
	return count;
}

  

#include"dice.h"
#include<iostream>
using namespace std;
int main(){
	Dice a(40);
//	for(int i=0;i<500;i++){ 
//		if(a.cast()==28)
	cout<<(float)a.cast() /500;
	return 0;
}

  

#include<string>
using namespace std;
class User{
	private:
		int id;
		string name;
		string password;
		static int CurrentID;
		static int count;
	public:
		User(string mz,string mm="111111");
		void print();
		void change();
		void printf();
};

  

#include"user.h"
#include<iostream>
#include<string>
using namespace std;
int User::CurrentID=999;
int User::count=0; 
User::User(string mz,string mm)
{
	id=CurrentID++;
	name=mz;
	password=mm;
}
void User::print(){
	cout<<id<<" "<<name<<" "<<password<<endl;
}
void User::change(){
	cout<<"请输入原密码"<<endl; 
	string mm2,mm3;
	cin>>mm2;
	if(mm2==password){
	cout<<"请输入修改的密码"<<endl;
	cin>>mm3;
	password=mm3;
	--CurrentID;
	
}
    else{
    	cout<<"密码错误,请从新输入"<<endl;
		++count; 
		if(count==3){
			count=0;
			cout<<"请稍后再试"<<endl;
			exit(0); 
		}
		change();
	}
	 
}
void User::printf(){
	cout<<CurrentID<<endl;
	cout<<id<<" "<<name<<" "<<password<<endl;
}

  

#include"user.h"
#include<iostream>
using namespace std;
int main(){
	User user1("yj");
	user1.print();
	User user2("yyw");
	user2.print();
	user1.change();
	user1.print();
	user2.printf();
	return 0;
}

  

#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 <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<<" "<<title<<" "<<price<<endl;
}

  

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

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