热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

实验1:C++简单程序设计(1)

实验目的1.掌握c++中类c部分的编程知识:数据类型,常量,变量,运算符,表达式,分支结构,循环结构2.掌握C++中数据输入和输出的基本方法3.熟练使用c++
实验目的
1. 掌握c++中类c部分的编程知识: 数据类型,常量,变量,运算符,表达式,分支结构,循环结构
2. 掌握C++中数据输入和输出的基本方法
3. 熟练使用c++程序开发环境,掌握c++程序编写、编译、运行、调试的方法
实验准备
实验前,请围绕以下内容结合教材、网络检索学习指定内容。
1. 开发环境使用 devc++中编写、运行c++程序的步骤 code::blocks中编写、运行、调试c++程序的步骤 参考链接 vs2017中编写、运行、调试c++程序的步骤 参考链接
2. 简单的c++程序结构 学习/复习教材「2.1.3 C++程序实例」
3. c++中数据输入输出的基本方法
学习/复习教材2.3节,学习C++中I/O流、预定义的插入符<<和提取符>>的基本用法。
4. if语句、switch语句、while语句、do…while语句的用法 学习/复习教材2.4节,通过示例理解背后简单算法及c++分支语句、循环语句的用法。
5. 自定义数据类型: typedef,枚举类型用法 学习/复习教材2.5节,结合示例理解枚举类型和int型在类型转换时的注意事项。
实验内容
Part1: 验证性内容
   在c++开发环境中编写、编译、运行、调试一个简单的c++程序
   运行2.4节所有编程示例,理解c++编程基础及I/O流对象cin,cout的基本用法
Part2: 编程练习
教材第2章习题2-28     教材第2章习题2-29      教材第2章习题2-32     教材第2章习题2-34

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

(1)使用 if...else 语句

#include
using namespace std;
int main(){
    char m;
    while(1)
    {
    cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
    cin>>m;
    if(m=='A')
      cout<<"Data has added"<<endl;
      else if(m=='D')
      cout<<"Data has deleted"<<endl;
      else if(m=='S')
      cout<<"Data has sorted"<<endl;
      else if(m=='Q')
      break;
      else
      cout<<"Data error"<<endl;
      }           
}

运行结果

(2)使用switch语句

#include 
using namespace std;
int main(){
    char m;
    while(1){
        cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
        cin>>m;
        if(m=='Q')
          break;
        switch(m){
            case 'A':cout<<"Data has added"<break;
            case 'D':cout<<"Data has deleted"<break;
            case 'S':cout<<"Data has sorted"<break;
            default:cout<<"Data error"<break;
        }
    }
return 0;
}

运行结果

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

(1)使用while语句

#include
#include
using namespace std;
int main(){
    int number=2,i;
    while(number<100){
        i=2;
        while(i<=sqrt(number)&&number%i!=0){
              i++;
        }
        if(i>sqrt(number))
           cout<" ";
        number++;
    }
    return 0;
}

运行结果

(2)使用do···while语句

#include
#include
using namespace std;
int main(){
    int number=2,i;
    do{
        i=1;
        do{
           i++;
        }while((i<=sqrt(number)&&number%i!=0));
        if(i>sqrt(number))
           cout<" ";
        number++;
    } 
    while(number<100);
    return 0;
}

运行结果

(3)使用for语句

#include
#include
using namespace std;
int main(){
    int number,i;
    for(number=2;number<100;number++){
        for(i=2;i)
            if(number%i==0)
               break;
        if(i>sqrt(number))
          cout<" ";
    }
    return 0;
}

运行结果

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

(1)使用while语句

#include
#include
#include
using namespace std;
int main(){
     srand(time(NULL));
     int random_number=rand()%100+6;
     cout<<"Enter the number you guess between 1 and 100:";
     int guess_number;
     cin>>guess_number;
     int wrOng=1;
     while(wrong)
     {
         if(random_number>guess_number){
             cout<<"bigger than your guess,guess again:";
             cin>>guess_number;
         } 
        else if(random_number<guess_number){
            cout<<"smaller than your guess,guess again:";
            cin>>guess_number;
        }
        else{
            cout<<"congratulations!Guessed it!"<<endl;
            wrong=0;
        }
    }
     return 0;
} 

运行结果

(2)使用do···while语句

#include
#include
#include
using namespace std;
int main(){
     srand(time(NULL));
     int random_number=rand()%100+6;
     cout<<"Enter the number you guess between 1 and 100:";
     int guess_number;
     cin>>guess_number;
     int wrOng=1;
     do
     {
         if(random_number>guess_number){
             cout<<"bigger than your guess,guess again:";
             cin>>guess_number;
         } 
        else if(random_number<guess_number){
            cout<<"smaller than your guess,guess again:";
            cin>>guess_number;
        }
        else{
            cout<<"congratulations!Guessed it!"<<endl;
            wrong=0;
        }
    } while(wrong); 
     return 0;
} 

运行结果

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

(1)有序的取法

#include
using namespace std;
enum Ball{Red,Yellow,Blue,White,Black};
void transform(int number);
int main(){
    int count=0;
    for(int catch1=Red;catch1<=Black;catch1++)
        for(int catch2=Yellow;catch2<=Black;catch2++)
            for(int catch3=Blue;catch3<=Black;catch3++)
            {
                transform(catch1);
                transform(catch2);
                transform(catch3);
                cout<<endl;
                count++;
            }
    cout<<"There are "<" ways"<<endl;
    return 0;
} 
void transform(int number){
    switch(number){
        case Red:cout<<"Red ";break;
        case Yellow:cout<<"Yellow ";break;
        case Blue:cout<<"Blue ";break;
        case White:cout<<"White "; break;
        case Black:cout<<"Black";break;
    }
}

运行结果

(2)无序的取法

#include
using namespace std;
enum Ball{Red,Yellow,Blue,White,Black};
void transform(int number);
int main(){
    int count=0;
    for(int catch1=Red;catch1<=Black;catch1++)
        for(int catch2=catch1+1;catch2<=Black&&catch2>catch1;catch2++)
            for(int catch3=catch2+1;catch3<=Black&&catch3>catch2;catch3++)
            {
                transform(catch1);
                transform(catch2);
                transform(catch3);
                cout<<endl;
                count++;
            }
    cout<<"There are "<" ways"<<endl;
    return 0;
} 
void transform(int number){
    switch(number){
        case Red:cout<<"Red ";break;
        case Yellow:cout<<"Yellow ";break;
        case Blue:cout<<"Blue ";break;
        case White:cout<<"White "; break;
        case Black:cout<<"Black";break;
    }
}

运行结果


推荐阅读
  • 系数|量纲_机器学习基础一文带你用sklearn做特征工程
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了机器学习基础一文带你用sklearn做特征工程相关的知识,希望对你有一定的参考价值。使用sklearn做特 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • Java的核心库提供了大量的现成的类供我们使用。本节我们介绍几个常用的工具类。Math顾名思义,Math类就是用来进行数学计算的,它提供了大量的静态 ... [详细]
  • 贴图的支持及设置:关于贴图分辨率的支持及设置的用户指南
    http:hi.baidu.comdbfr2011818itemeef1eac8df31a2d69744520b贴图分辨率虚幻引擎3支持的贴图分辨率是从1x1到4096x4096 ... [详细]
  • DFS基本概念步骤优缺点典型例题递推基本概念直接或者间接调用自身的算法称为递归算法一般数据n ... [详细]
  • UILabel的混合显示动画效果
    UILabel的混合显示动画效果 ... [详细]
  • jdk安装与环境变量配置,看这一篇就够了
    文章目录场景jdk下载安装如何环境变量的配置总结场景在做java开发或者android开发,经常会碰到jdk安装与环境变量的配置,每次配置的时候,经常需要去查看一下,而且偶尔还会出 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • STL迭代器的种类及其功能介绍
    本文介绍了标准模板库(STL)定义的五种迭代器的种类和功能。通过图表展示了这几种迭代器之间的关系,并详细描述了各个迭代器的功能和使用方法。其中,输入迭代器用于从容器中读取元素,输出迭代器用于向容器中写入元素,正向迭代器是输入迭代器和输出迭代器的组合。本文的目的是帮助读者更好地理解STL迭代器的使用方法和特点。 ... [详细]
  • 第1章Python语言概述11.1Python概述11.1.1Python的发展历程11.1.2Python的特点11.1.3Python的应用场合21.2Python的安装21. ... [详细]
  • CCNP交换实验(VLAN/VTP/DHCP)
    实验要求:本拓扑按典型中小企业网分支-总部-分支结构模拟,总部核心路由为C3550,外联网通过OSPF协议,内联网通过VTP ... [详细]
author-avatar
czx_91_673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有