• 实验5


    ex3

    • 代码补充如下
    #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
    	string ch,ch1;
    	// 为vector<string>数组对象likes添加元素值 ( favorite book, music, film, paintings,anime,sport,sportsman,etc)
    	cout<<"为likes添加元素,输入-1结束"<<endl; 
    	while(cin>>ch,ch!="-1")
    	{
    		likes.push_back(ch);
    	 } 
    	// 补足代码 
    	cout << "-----I like these-----" << endl;
    	// 调用子函数输出vector<string>数组对象likes的元素值 
    	output1(likes);
    	// 补足代码
    	// 为vector<string>数组对象dislikes添加元素值
    	cout<<"为dislikes添加元素,输入-1结束"<<endl;
    	while(cin>>ch1,ch1!="-1"){
    		dislikes.push_back(ch1);
    	} 
    	// 补足代码
    	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]<<endl;
    	}
    }
    // 函数实现
    // 以迭代器方式输出vector<string>数组对象v的元素值 
    void output2(vector<string> &v) {
    	// 补足程序
    	// 。。。 
    	for(auto e:v)
    	{
    		cout<<e<<endl;
    	}
    } 
    

    习题6-17

    • 源码
    #include<iostream>
    using namespace std;
    int main(){
    	int *p;//指针指向地址不明,应该赋初始地址 
    	*p=9;
    	cout<<"The value at p:"<<*p;
    	return 0;
    } 
    
    • 修改
    #include<iostream>
    using namespace std;
    int main(){
            int a;
    	int *p=&a;
    	*p=9;
    	cout<<"The value at p:"<<*p;
    	return 0;
    } 
    

    习题6-18

    • 源码
    #include<iostream>
    using namespace std;
    int fn1(){
    	int *p=new int(5);//分配的内存没有释放
    	return *p;
    } 
    int main()
    {
    	int a=fn1();
    	cout<<"The value of a is:"<<a;
    	return 0;
    } 
    
    • 修改
    #include<iostream>
    using namespace std;
    int* fn1(){
    	int *p=new int(5);
    	return p;
    } 
    int main()
    {
    	int *a=fn1();
    	cout<<"The value of a is:"<<*a;
    	delete a;
    	return 0;
    } 
    

    Matrix类

    • Matrix.h
    #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列元素的引用
    	{
    		float& num = p[(i - 1)*cols + j - 1];
    		return num;
    	}
    	inline float element(int i, int j) const// 返回矩阵第i行第j列元素的值 
    	{
    		return p[(i - 1)*cols + j - 1];
    	}
    	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
    
    • Matrix.cpp
    #include "matrix.h"
    #include<iostream>
    #include<vector>
    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];
    	}
    }
    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*cols + j]<<" ";
    		}
    		cout << endl;
    	}
    }
    void Matrix::setElement(int i, int j, int value) {
    	p[(i - 1)*cols + j - 1] = value;
    }
    Matrix::~Matrix()
    {
    	delete[] p;
    }
    
    • main.cpp
    #include<iostream>
    #include"matrix.h"
    using namespace std;
    int main()
    {
    	Matrix m1(5), m2(3, 4);
    	float num[12], num1[25];
    	for (int i = 0; i < 12; i++)
    	{
    		num[i] = i + 1;
    	}
    	for (int i = 0; i < 25; i++)
    	{
    		num1[i] = i + 1;
    	}
    	m1.setMatrix(num1);
    	m2.setMatrix(num);
    	cout << "矩阵m1为" << m1.getLines() << "行" << m1.getCols() << "列矩阵:"<<endl;
    	m1.printMatrix();
    	cout << "矩阵m2为" << m2.getLines() << "行" << m2.getCols() << "列矩阵:" << endl;
    	m2.printMatrix();
    	m1.setElement(1, 2, 10);
    	m1.setElement(3, 4, 20);
    	m2.setElement(2, 2, 22);
    	m2.setElement(3, 4, 19);
    	cout << "矩阵m1为" << m1.getLines() << "行" << m1.getCols() << "列矩阵:" << endl;
    	m1.printMatrix();
    	cout << "矩阵m2为" << m2.getLines() << "行" << m2.getCols() << "列矩阵:" << endl;
    	m2.printMatrix();
        return 0;
    }
    

    期中

  • 相关阅读:
    Android框架种类
    ASP.NET MVC 入门系列教程
    Jquery相关总结
    使用EF To Linq执行类似sql的in语句
    C#通过执行sql语句的方式执行存储过程,得到输出参数
    C#通过webapi中转上传文件到文件服务器
    sql中去除重复的数据
    web打印
    NPOI导出数据,设置格式,锁定单元格
    Uncaught SyntaxError: Invalid or unexpected token
  • 原文地址:https://www.cnblogs.com/flyingbrid-nest/p/9062616.html
Copyright © 2020-2023  润新知