实验 5 类和对象-3
Posted sjcnb
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了实验 5 类和对象-3相关的知识,希望对你有一定的参考价值。
vector3.cpp
#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 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"); // 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) // 补足代码 // 。。。 cout << "-----I like these-----" << endl; output1(likes); // 调用子函数输出vector<string>数组对象likes的元素值 // 补足代码 // 。。。 dislikes.push_back(" ") ; // 为vector<string>数组对象dislikes添加元素值 // 补足代码 // 。。。 cout << "-----I dislike these-----" << endl; output1(dislikes); // 调用子函数输出vector<string>数组对象dislikes的元素值 // 补足代码 // 。。。 likes.swap(dislikes); // 交换vector<string>对象likes和dislikes的元素值 // 补足代码 // 。。。 cout << "-----I likes these-----" << endl; output2(likes); // 调用子函数输出vector<string>数组对象likes的元素值 // 补足代码 // 。。。 cout << "-----I dislikes these-----" << endl; output2(dislikes); // 调用子函数输出vector<string>数组对象dislikes的元素值 // 补足代码 // 。。。 return 0; } // 函数实现 // 以下标方式输出vector<string>数组对象v的元素值 void output1(vector<string> &v) { for(int i=0;i<v.size();i++){ cout<<v[i]<<‘ ‘<<endl; } // 补足程序 // 。。。 } // 函数实现 // 以迭代器方式输出vector<string>数组对象v的元素值 void output2(vector<string> &v) { for ( vector<string>::iterator it = v.begin(); it != v.end(); it++ ) cout << *it << ‘ ‘<<endl; // 补足程序 // 。。。 }
6-17
#include<iostream> using namespace std; int main(){ int *p; *p=9;//指针尚未被赋予地址值,此时不能被赋值 int i=9; p=&i;//改正 cout<<"The value at p : "<<*p; return 0; }
6-18
#include<iostream> using namespace std; int fnl(){ int *p=new int (5); return *p;//没有释放内存 delete p;//改正 } int main(){ int a=fnl(); cout<<"the value of a is : "<<a; return 0; }
Matrix
#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 "stdafx.h" #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*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 { cout << "The Matrix is:" << endl; 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; } inline int Matrix::getLines() const{ cout<<lines<<endl; } inline int Matrix::getCols() const{ cout<<cols<<endl; } #include "stdafx.h" #include <iostream> #include "matrix.h" using namespace std; int main() { int b; cin>>b; Matrix x1(b); float a[b*b]; for(int c=0;c<b*b;c++) { cin>>a[c]; } x1.setMatrix(a); x1.printMatrix(); x1.setElement(2,3,100); x1.printMatrix(); return 0; }
1
#include<iostream> #include<stdlib.h> #include<time.h> using namespace std; class Dice { public: Dice(int n); int cast(); private: int sides; }; Dice::Dice(int n) { sides=n; } int Dice::cast() { int val; val=(rand() % (sides + 1) + 1); return val; } int main() { srand((unsigned)time(NULL)); int a,b,c,d; cout<<"请输入班级人数及你的学号"<<endl; cin>>a>>b; Dice x1(a); for(int i=0;i<500;i++){ c=x1.cast(); if(c==b){ d++;} } cout<<"学号被抽中的概率为"<<endl; cout<<d<<"/500"<<endl; return 0; }
2
#ifndef USER_H #define USER_H #include<string> using namespace std; class User { public: User(int n); void print(); void change(); void printC(); private: int id; string name; string password; int CurrentID=999; }; #endif #include<iostream> #include<string> #include"User.h" using namespace std; User::User(int n) { cout<<"请输入用户名"<<endl; cin>>name; password="111111"; CurrentID=999+n; id=CurrentID; } void User::print() { cout<<"id是"<<id<<endl; cout<<"name是"<<name<<endl; cout<<"password是"<<password<<endl; } void User::change() { string z; int i=0; while(i<3) { cout<<"请输入原密码"<<endl; cin>>z; if(z==password) { cout<<"密码正确"<<endl; cout<<"请输入新密码"<<endl; cin>>z; password=z; cout<<"改密成功"<<endl; break; } if(z!=password) { cout<<"密码错误"<<endl; i++; } } if(i=3&&z!=password) { cout<<"请稍后再试"<<endl; } } void User::printC(){ for(int k=1000;k<=id;k++){ cout<<k<<endl; } cout<<"id是"<<id<<endl; cout<<"name是"<<name<<endl; cout<<"password是"<<password<<endl; } #include<iostream> #include"User.h" using namespace std; int main() { int a,b; cout<<"请输入用户个数"<<endl; cin>>a; User x1(a); for(int j=1;j!=0;j++){ cout<<"输入0打印,输入1改密,输入2打印id,输入3关闭"<<endl; cin>>b; switch(b) { case 0:x1.print();break; case 1:x1.change();break; case 2:x1.printC();break; case 3:j=-1;break; } } return 0; }
3
#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:"<<isbn<<" "<<"title:"<<title<<" "<<"price:"<<price<<endl; } // 构造函数 // 补足程序 // ... // 打印图书信息 // 补足程序 // ... #include "book.h" #include <vector> #include <iostream> using namespace std; int main() { vector<Book>book; // 定义一个vector<Book>类对象 // 补足程序 // ... string isbn,title,a,b; float price,c; for(int i=2;;i++) { cin>>a; if(a=="stop") break; cin>>b>>c; Book Book(a, b, c); book.push_back(Book); } // 录入图书信息,构造图书对象,并添加到前面定义的vector<Book>类对象中 // 循环录入,直到按下Ctrl+Z时为止 (也可以自行定义录入结束方式) // 补足程序 // ... for(int j=0;j<book.size();j++){ book[j].print(); } // 输出入库所有图书信息 // 补足程序 // ... return 0; }
以上是关于实验 5 类和对象-3的主要内容,如果未能解决你的问题,请参考以下文章