(因为计软院街舞比赛而质量很低希望不要被喷的)实验5QAQ(捂脸)

实验5。。因为时间紧凑,我就直接放代码啦。。。就不多bb啦。。。

这是第一个实验,大概就是对vector的一个运用吧,这里有一个迭代器的新概念,总之不是很难理解

#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("white night");
	likes.push_back("心做し");
	likes.push_back("have no");
	likes.push_back("ai");
	likes.push_back("basketball");
	likes.push_back("Iverson");// 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc) 
	// 补足代码 
	// 。。。 
	
	
	cout << "-----I like these-----" << endl;
    output1(likes);
    output2(likes);
	// 调用子函数输出vector<string>数组对象likes的元素值 
	// 补足代码
	// 。。。 
	
	
	dislikes.push_back("homework");
	dislikes.push_back("raining");
	dislikes.push_back("defeat");
	dislikes.push_back("being alone");// 为vector<string>数组对象dislikes添加元素值 
	// 补足代码 
	// 。。。 
	
	cout << "-----I dislike these-----" << endl;
	output1(dislikes);
    output2(dislikes);// 调用子函数输出vector<string>数组对象dislikes的元素值 
	// 补足代码
	// 。。。 
	
	
	likes.swap(dislikes);
	// 交换vector<string>对象likes和dislikes的元素值 
	// 补足代码
	// 。。。 
	
	
	cout << "-----I likes these-----" << endl;
	output1(likes);// 调用子函数输出vector<string>数组对象likes的元素值 
	// 补足代码
	// 。。。 
	
	cout << "-----I dislikes these-----" << endl;
	output1(dislikes);// 调用子函数输出vector<string>数组对象dislikes的元素值 
	// 补足代码
	// 。。。 
		
						
	return 0;
}


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

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

好的然后是两道书上的题目,这两题的难度不算大,完成如下

#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>
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;
 } 

接下来是一道。。。。我觉得我做出来的但是系统一直出现“xxx”is used but never defined,这样子错误的一个题。。。emmmm到现在也没有解决,希望大佬们可以帮我看看错误在哪里

matrix.cpp:

#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[X.lines*X.cols];
    for (int i = 0; i < (X.lines*X.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*cols + j]<<" ";
                }
            cout << endl;
        }
}

inline float &Matrix::element(int i, int j) 
{
    return p[i*cols + j];
}

inline float Matrix::element(int i, int j) const 
{
    return p[i*cols + j];
}

void Matrix::setElement(int i, int j, int value) 
{
    p[i*cols + j] = value;
}

inline int Matrix::getLines() const
{
    return lines;
}

inline int Matrix::getCols() const
{
    return cols;
}

and main.cpp

#include<iostream>
#include<iomanip>
#include"matrix.h"
using namespace std;

int main() {
    Matrix a1(4);
    Matrix a2(3, 4);
    float b1[16], b2[12];
    for (int i = 1; i <= 16; i++)
        b1[i-1] = (float)i / (float)10;
    for (int i = 0; i < 12; i++)
        b2[i] = (float)(12 - i) / (float)10;
    float *p1 = b1;
    float *p2 = b2;
    a1.setMatrix(p1);
    cout << "a1为" << a1.getLines() << "行" << a1.getCols() << "列的矩阵" << endl;
    a1.printMatrix();
    a2.setMatrix(p2);
    cout << "a2为" << a2.getLines() << "行" << a2.getCols() << "列的矩阵" << endl;
    a2.printMatrix();

    Matrix a3(a1);
    cout << "a3为" << a3.getLines() << "行" << a3.getCols() << "列的矩阵" << endl;
    a3.printMatrix();
    cout << "------------------" << endl;
    a3.setElement(2, 1, 5);
    a3.printMatrix();
    cout << "改变的元素是" << a3.element(2, 1) << endl;

    system("pause");
    return 0;
}

因为种种原因(虽然我知道这不能成为借口),这次实验的完成度很低。。。。但是还是希望各位大佬可以不嫌弃我,为我稍微解答一下,靴靴!!

发布了39 篇原创文章 · 获赞 0 · 访问量 1450

猜你喜欢

转载自blog.csdn.net/Z3Djoker/article/details/80426153