实验 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的主要内容,如果未能解决你的问题,请参考以下文章

实验5 类和对象-3(未完)

实验3 类和对象

实验五 类和对象-3 zxt

实验3 类和对象Ⅱ

实验三:类和对象

Java类和对象-学习笔记(超级详细~~~)