合工大 宣区 程序设计艺术与方法 实验

这篇具有很好参考价值的文章主要介绍了合工大 宣区 程序设计艺术与方法 实验。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实验一 STL 的熟悉与使用

一、实验目的和要求
1.掌握C++中STL的容器类的使用;
2.掌握C++中STL的算法类的使用.
二、实验预习内容
1.预习ICPC讲义,大致了解STL的相关内容。
2.了解STL中一些类 vector list类的使用方法
3.了解泛型算法的使用
三、实验项目摘要
1.练习 vector 和 list 的使用。
定义一个空的 vector,元素类型为 int,生成 10 个随机数插入到 vector 中,用迭代器遍历 vector 并输出其中的元素值。在 vector 头部插入一个随机数,用迭代器遍历 vector并输出其中的元素值。用泛型算法 find 查找某个随机数,如果找到便输出,否则将此数插入 vector 尾部。用泛型算法 sort 将 vector 排序,用迭代器遍历 vector 并输出其中的元素值。删除 vector 尾部的元素,用迭代器遍历 vector 并输出其中的元素值。将 vector 清空。
定义一个 list,并重复上述实验,并注意观察结果。
2.练习泛型算法的使用。
定义一个 vector,元素类型为 int,插入 10 个随机数,使用 sort 按升序排序,输出每个元素的值,再按降叙排序,输出每个元素的值。练习用 find 查找元素。用 min 和max 找出容器中的最小元素个最大元素,并输出。

#include<list>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;

int main(void)
{
   
    list<int> a;
    list<int>::iterator it;
    int r;

    for(int i=0;i<10;i++)
    {
   
        r = rand();
        a.push_back(r);
    }

    cout<<"输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    r = rand();
    a.insert(a.begin(),r);

    cout<<endl<<"在头部插入一个随机数后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    r = rand();

    it = find(a.begin(),a.end(),r);
    if(it!=a.end())
    {
   
        cout<<endl<<"已经查找到"<<r<<endl;
    }
    else
    {
   
        a.push_back(r);
    }

    a.sort();
    cout<<endl<<"排序后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    a.pop_back();
    cout<<endl<<"删除尾部元素后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    cout<<endl;
    a.clear();
    return 0;
}

#include<vector>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;

int main(void)
{
   
    vector<int> a;//定义一个空的 vector,元素类型为 int
    vector<int>::iterator it;
    int r;

    for(int i=0;i<10;i++)//生成 10 个随机数插入到 vector 中
    {
   
        r = rand();
        a.push_back(r);
    }

    cout<<"输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
    }

    r = rand();
    a.insert(a.begin(),r);//在 vector 头部插入一个随机数

    cout<<endl<<"在头部插入一个随机数后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
    }

    r = rand();//用泛型算法 find 查找某个随机数

    it = find(a.begin(),a.end(),r);
    if(it!=a.begin()+a.size())//如果找到便输出
    {
   
        cout<<endl<<"已经查找到"<<r<<endl;
    }
    else//否则将此数插入 vector 尾部
    {
   
        a.push_back(r);
    }

    sort(a.begin(),a.end());//用泛型算法 sort 将 vector 排序
    cout<<endl<<"排序后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
    }

    a.pop_back();//删除 vector 尾部的元素
    cout<<endl<<"删除尾部元素后输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';//用迭代器遍历 vector 并输出其中的元素值
    }

    cout<<endl;
    a.clear();//将 vector 清空
    return 0;
}

#include<vector>
#include<cstdlib>
#include<iostream>
#include<algorithm>
using namespace std;

int main(void)
{
   
    vector<int> a;
    vector<int>::iterator it;
    int r;

    for(int i=0;i<10;i++)
    {
   
        r = rand();
        a.push_back(r);
    }

    sort(a.begin(),a.end());
    cout<<"升序输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    sort(a.rbegin(),a.rend());
    cout<<endl<<"降序输出元素:"<<endl;
    for(it=a.begin();it!=a.end();it++)
    {
   
        cout<<(*it)<<' ';
    }

    cout<<endl<<"最大元素:"<<*max_element(a.begin(),a.end())<<endl;
    cout<<endl<<"最小元素:"<<*min_element(a.begin(),a.end())<<endl;
}

实验二 搜索算法的实现

一、实验目的和要求
1.掌握宽度优先搜索算法。
2.掌握深度优先搜索算法。
二、实验预习内容
1.预习ICPC讲义中的搜索的内容
2. 了解什么是深度优先搜索和广度优先搜索。
三、实验项目摘要
1、 将书上的走迷宫代码上机运行并检验结果,并注意体会搜索的思想。
2、八皇后问题:在一个国际象棋棋盘上放八个皇后,使得任何两个皇后之间不相互攻击,求出所有的布棋方法。上机运行并检验结果。
3、骑士游历问题:在国际棋盘上使一个骑士遍历所有的格子一遍且仅一遍,对于任意给定的顶点,输出一条符合上述要求的路径。
4.倒水问题:给定2 个没有刻度容器,对于任意给定的容积,求出如何只用两个瓶装出L 升的水,如果可以,输出步骤,如果不可以,请输出No Solution。文章来源地址https://www.toymoban.com/news/detail-526807.html

#include<iostream>
#include<vector>
using namespace std;

int maze[4][6] = {
    {
   1, 1, 0, 0, 0, 0},
 {
   0, 1, 1, 1, 0, 0},
 {
   1, 1, 0, 1, 0, 0},
 {
   0, 0, 0, 1, 0, 0}};

vector<pair<int, int> > path;
int dir[4][2] = {
   {
   0, 1}, {
   1, 0}, {
   0, -1}, {
   -1, 0}};
void printvector(vector<pair<int, int> > path)
{
   
    vector<pair<int , int > >::iterator pit;
    for(pit=path.begin();pit != path.end();pit++)
    {
   
        cout<<pit->first<<","<<pit->second<<" -> ";
    }
    cout<<"3,3"<<endl;
}

void search(vector<pair<int, int> > tpath, int x, int y)
{
   
    if(x < 0 || y 

到了这里,关于合工大 宣区 程序设计艺术与方法 实验的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包