zoukankan      html  css  js  c++  java
  • C++程序设计实验-2

    南京信息工程大学实验报告

    实验名称 C++简单程序设计-1 实验日期 2018-3-13 得分  指导教师  耿学华     

       计软院   专业计科    年级  2016     班次  (2)  姓名    余佳奇    学号  20161326022    

    一、实验内容及结论。

    1.函数的声明和函数的定义:

    函数声明表示有这么个函数了,函数定义就是具体实现了。函数声明,只有函数头,比如主函数main里要调用add函数,可是add函数的定义放在main后面。就要在主函数先声明下。

    2.函数的形参和实参,函数参数和返回值在函数中的作用:

    形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值,以便把这些值传送给形参。函数调用中发生的数据传送是单向的。即只能把实参的值传送给形参。返回值用于返回一个值给函数或用来结束函数。

    3.值传递和引用传递:

    引用传递会影响当作参数的对象,而值传递不会影响当作参数的对象。引用传递就相当与对原件进行处理,而值传递相当于对备份进行处理,因而对原件无影响。

    4.实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selcet one:”提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示“数据已经增加、删除、排序。”输入为Q时程序结束。

    (1)要求使用if…else语句进行判断,用break,continue控制程序流程。

    (2)要求使用switch语句。

    (1)

    Code:

    #include<iostream>

    using namespace std;

    int main(){

        while(1){

            char ans;

            cout<<"Menu:A(dd) D(elete) S(ort) Q(uit) Select One:"<<endl;

            cin>>ans;

            if(ans=='A'){cout<<"数据已经增加"<<endl;continue;}

            else if(ans=='D'){cout<<"数据已经删除"<<endl;continue;}

            else if(ans=='S'){cout<<"数据已经排序"<<endl;continue;}

            else if(ans=='Q'){break;}

            else continue;

        }

        return 0;

    }

    运行结果:

    (2)

    Code:

    #include<iostream>

    using namespace std;

    int main(){

        while(1){

            char ans;

            cout<<"Menu:A(dd) D(elete) S(ort) Q(uit) Select One:"<<endl;

            cin>>ans;

            switch(ans){

            case 'A':

                cout<<"数据已经增加"<<endl;break;

            case 'D':

                cout<<"数据已经删除"<<endl;break;

            case 'S':

                cout<<"数据已经排序"<<endl;break;

            case 'Q':

                return 0;

            default:

                break;

            }

        }

        return 0;

    }

    运行结果:

    5.用穷举法找出1~100间的质数并显示出来。分别使用while,do…while,for循环语句实现。

      算法思路:用穷举法,从2开始到100,分别对每一个数进行检验,检验方法是若存在比2大且比该数字的一半小的数,那么从2开始直到该数字的一半一次与该数进行取余运算,若存在余数为0的数,即该数有因数,因此不是质数。若不存在这样的因数,即该数为质数直接输出。

    Code:

    #include<iostream>

    using namespace std;

    int main(){

        int i,j,n,m;

        i=2;

        while(i<101)

        {

            m=1,n=i/2,j=2;

            while(j<=n)

            {

                if(i%j==0)

                {

                    m=0;

                    break;

                }

                j++;

            }

            if(m)

                cout<<i<<" ";

            i++;

        }

    }

    运行结果:

    6.在程序中定义一个整型变量,赋予1~100的值。要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while,do…while语句实现循环。

    (1)while

    Code:

    #include<iostream>

    #include<Ctime>

    using namespace std;

    int main(){

    srand((unsigned)time(NULL));

    int n=rand()%100;

    int guess=101;

    while(guess!=n)

    {

        cin>>guess;

        if(guess<n)cout<<"Answer is larger than ur guess number!"<<endl;

        else if(guess>n)cout<<"Answer is smaller than ur guess number!"<<endl;

    }

    cout<<"True Answer!"<<endl;

    return 0;

    }

    运行结果:

    (2)do…while

    Code:

    #include<iostream>

    #include<Ctime>

    using namespace std;

    int main(){

    srand((unsigned)time(NULL));

    int n=rand()%100;

    int guess=101;

    do{

        cin>>guess;

        if(guess<n)cout<<"Answer is larger than ur guess number!"<<endl;

        else if(guess>n) cout<<"Answer is smaller than ur guess number!"<<endl;

    }while (guess!=n);

    cout<<"True Answer!"<<endl;

    return 0;

    }

    运行结果:

    7.口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋中取出3个不同颜色的球,问有多少中取法?

      算法思路:计算出所有得颜色组合类型存放到数组中,再从中选择出没有相同颜色的结果,用一个n来计算其数量。最后输出n即可。

    Code:

    #include<iostream>

    using namespace std;

    void main()

    {

     int i,j,k,n=0;

     char c[5][7]={"red","yellow","blue","white","black"};

     for (i=0;i<5;i++)

      for (j=i+1;j<5;j++)

       for (k=j+1;k<5;k++)

       {

        if (i != j && j !=k && k!=i)

        cout<<c[i]<<" "<<c[j]<<" "<<c[k]<<endl;

        n++;

       }

        cout<<n<<endl;

    }

    运行结果:

    二、 实验总结和体会

       本次实验过程中我理解了C++中函数的定义和使用方法。了解了值传递和引用传递的区别,也更熟悉灵活运用了while,do…while,switch等语句。在编程过程中,我感受到了编程与数学逻辑的关系,首先得构思出一个算法过程,再将其对应转换为代码,这是编程的关键步骤。此外,在编程过程中我也发现自己不够灵活,很多时候比较刻板。整体来讲,这次实验对我的编程能力有很大帮助,能够较为轻松的完成这些简单程序的编写了。

  • 相关阅读:
    robotframework框架
    pytest系列(四)- pytest+allure+jenkins
    robotframework框架
    接口测试时遇到 java 代码加密请求数据,用 python 的我该怎么办?
    selenium原理应用
    pytest系列(一):什么是单元测试界的高富帅?
    python appium搭建app自动化测试环境
    python selenium
    python3.4 + pycharm 环境安装 + pycharm使用
    requests(三):json请求中中文乱码处理
  • 原文地址:https://www.cnblogs.com/yjqi/p/8595786.html
Copyright © 2011-2022 走看看