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

实验目的
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<iostream>
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<iostream> 
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"<<endl;break;
            case 'D':cout<<"Data has deleted"<<endl;break;
            case 'S':cout<<"Data has sorted"<<endl;break;
            default:cout<<"Data error"<<endl;break;
        }
    }
return 0;
}

运行结果

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

(1)使用while语句

#include<iostream>
#include<math.h>
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<<" ";
        number++;
    }
    return 0;
}

运行结果

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

#include<iostream>
#include<math.h>
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<<" ";
        number++;
    } 
    while(number<100);
    return 0;
}

运行结果

(3)使用for语句

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

运行结果

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

(1)使用while语句

#include<iostream>
#include<cstdlib>
#include<ctime>
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<iostream>
#include<cstdlib>
#include<ctime>
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<iostream>
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 "<<count<<" 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<iostream>
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 "<<count<<" 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;
    }
}

运行结果

猜你喜欢

转载自www.cnblogs.com/fearless04/p/10543040.html