【实验一】

#2-28

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

(1)if...else...语句,break,continue控制

//2_28.cpp
#include<iostream>
using namespace std;
int main(){
char x;
int i;
char A,D,S,Q;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
for(;i=;i++){
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
cin>>x;
if(x=='A'){
cout<<"数据已增加"<<endl;
continue;
} else if(x=='D'){
cout<<"数据已删除"<<endl;
continue;
} else if(x=='S'){
cout<<"数据已排序"<<endl;
continue;
}
else if(x!='A'&&x!='Q'&&x!='S'&&x!='D'){
cout<<"输入有误"<<endl;
continue; }
else if (x=='Q')
break; } return ;
}

(2)switch语句

//2_28.cpp
#include<iostream>
using namespace std;
int main(){
char x;
char A,D,S,Q;
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
cin>>x;
for(;x!='Q';){
switch (x){
case 'A':
cout<<"数据已增加"<<endl;
break;
case 'D':
cout<<"数据已删除"<<endl;
break;
case 'S':
cout<<"数据已排序"<<endl;
break;
default:
cout<<"输入错误"<<endl;
break;
}
cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:";
cin>>x;
}
return ;
}

#2-29

用穷举法找出1~100间的质数并显示出来。

(1)while语句

//2_29.cpp
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
int i=,n,j,k=; while(i<=){
n=sqrt(i);
for(j=;j<=n;j++){
if(i%j==)break;
}
if(j>n&&i!=){
cout<<setw()<<i;
k++;
if(k>){
cout<<setw()<<endl;
k=;
}
}
i++;
}
return ;
}

(2)do...while语句

//2_29.cpp
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
int i=,n,j,k=; do{
n=sqrt(i);
for(j=;j<=n;j++){
if(i%j==)break;
}
if(j>n&&i!=){
cout<<setw()<<i;
k++;
if(k>){
cout<<setw()<<endl;
k=;
}
}
i++;
}while(i<=);
return ;
}

(3)for语句

//2_29.cpp
#include<iostream>
#include<cmath>
#include<iomanip>
using namespace std;
int main(){
int i=,n,j,k=;
for(i=;i<=;i++){
n=sqrt(i);
for(j=;j<=n;j++){
if(i%j==)break;
}
if(j>n&&i!=){
cout<<setw()<<i;
k++;
if(k>){
cout<<setw()<<endl;
k=;
}
}
}
return ;
}

#2-32

在程序中定义一个整型变量,赋以1~100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。

(1)while语句

//2-32.cpp
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
 int x,n;
 srand( (unsigned)time( NULL ) );
 n=rand()%100+1;
 
  
 cout<<"Enter a number please:";
 
 cin>>x;
 
 while(x!=n){
  
  if(x>n){
   cout<<"smaller than the number"<<endl;
  }
  if(x<n){
   cout<<"bigger than the number"<<endl;
  }
  cout<<"Enter a number please:";
 
 cin>>x;
 if(x==n){
  cout<<"congratulation you guess the number!"<<endl;
  exit(0);
 }
}
 
 return 0;
 
 
}

(2)do-while语句

//2-32.cpp
#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
int x,n;
srand( (unsigned)time( NULL ) );
n=rand()%+; cout<<"Enter a number please:"; cin>>x; do{ if(x>n){
cout<<"smaller than the number"<<endl;
}
if(x<n){
cout<<"bigger than the number"<<endl;
}
cout<<"Enter a number please:"; cin>>x;}while(x!=n);
if(x==n){
cout<<"congratulation you guess the number!"<<endl;
} return ; }

#2-34

口袋中有红黄蓝白黑5种颜色的球若干个。没词葱口袋中取出3个颜色不同的球,问有多少种取法。

(1)无顺序取法(10种)

//2-34.cpp
#include<iostream>
using namespace std;
int main(){
enum num{red,yellow,blue,white,black};
int i,j,k,n=,h;
for(i=red;i<=black;i++){
for(j=red+i+;j<=black;j++){
for(k=red+j+;k<=black;k++){
n++;
switch(i){
case :cout<<"red"<<ends;break;
case :cout<<"yellow"<<ends;break;
case :cout<<"blue"<<ends;break;
case :cout<<"white"<<ends;break;
case :cout<<"black"<<ends;break;
}
switch(j){
case :cout<<"red"<<ends;break;
case :cout<<"yellow"<<ends;break;
case :cout<<"blue"<<ends;break;
case :cout<<"white"<<ends;break;
case :cout<<"black"<<ends;break;
}
switch(k){
case :cout<<"red"<<endl;break;
case :cout<<"yellow"<<endl;break;
case :cout<<"blue"<<endl;break;
case :cout<<"white"<<endl;break;
case :cout<<"black"<<endl;break;
} } }
} cout<<"一共有"<<n<<"种方法"<<endl;
return ; }

(2)有顺序取法(60种)

//2-34.cpp
#include<iostream>
using namespace std;
int main(){
enum num{red,yellow,blue,white,black};
int i,j,k,n=,h;
for(i=red;i<=black;i++){
for(j=red;j<=black;j++){
if(i!=j){
for(k=red;k<=black;k++){
if(k!=j&&k!=i){
n++;
switch(i){
case :cout<<"red"<<ends;break;
case :cout<<"yellow"<<ends;break;
case :cout<<"blue"<<ends;break;
case :cout<<"white"<<ends;break;
case :cout<<"black"<<ends;break;
}
switch(j){
case :cout<<"red"<<ends;break;
case :cout<<"yellow"<<ends;break;
case :cout<<"blue"<<ends;break;
case :cout<<"white"<<ends;break;
case :cout<<"black"<<ends;break;
}
switch(k){
case :cout<<"red"<<endl;break;
case :cout<<"yellow"<<endl;break;
case :cout<<"blue"<<endl;break;
case :cout<<"white"<<endl;break;
case :cout<<"black"<<endl;break;
}
}
}
}
}
} cout<<"一共有"<<n<<"种方法"<<endl;
return ; }

【实验总结与体会】

对于此实验一中的各类题使用while do-while switch for 等不同循环结构的使用有了更加清晰的认识,和区别认知。并且掌握了域宽的使用方式。

域宽的头文件为#include<iomanip>,在输出时添加入setw()语句,在括号中填入自己程序的域宽。

实验一中的2-34的枚举类型属于第一次接触,以及实验一中的2-32中的随机数的生成有了系统的认知,并且能运用其在程序中。

随机数使用的是srand rand函数,头文件为#include<ctime>,并且使用srand((unsigned)time(0))或srand((unsigned)time(NULL))srand函数产生一个随机种子运用rand()%max+min进行生成一个随机数,max为最大数,min为最小数。并且当生成double类型的随机数,要声明例如rand()/double(RAND-MAX)。

枚举类型:枚举类型()enum枚举类型名{变量值类型}例如enum colour{red black blue white.......};枚举类型具有默认值,默认按照顺序0,1,2,3........,因此如此题中如果要输出变量值red black等等,需要对其进行强制转型,例如static-cast<int>(x)对x进行转型,本题中我并没有使用此方法,因为我还不太会用。我是用switch函数对其输出为枚举类型。枚举类型的元素是常量,不能对其进行赋值。

评论:https://www.cnblogs.com/1499978329f/p/10540143.html#4210744

https://www.cnblogs.com/AliceMaestra/p/10561811.html#4210748

https://www.cnblogs.com/shy0825/p/10561610.html#4210750

实验一:C++简单程序设计的更多相关文章

  1. 实验一 c++简单程序设计

    一.实验内容 1.ex 2_28 (1) 用if...else判断 #include<iostream> using namespace std; int main() { char i; ...

  2. 实验1:c++简单程序设计(1)

    //文中有格式错误请无视 //这个编辑器一言难尽 实验目的 1. 掌握c++中类c部分的编程知识: 数据类型,常量,变量,运算符,表达式,分支结构,循环结构 2. 掌握C++中数据输入和输出的基本方法 ...

  3. 实验二 Java面向对象程序设计

    实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...

  4. 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计

    <C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学    期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...

  5. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  6. 20145208 实验三 Java面向对象程序设计

    20145208 实验三 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...

  7. 20162330 实验四 《Android程序设计》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验四 <Android程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623 ...

  8. 20162302 实验四《Android程序设计》实验报告

    实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:Android程序设计 实验器材:装有Android Studio的联想拯救者80RQ 实验目 ...

  9. java实验四《Android程序设计》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:08 ...

  10. 2017-2018-2 20165312 实验四《Android程序设计》实验报告

    2017-2018-2 20165312 实验四<Android程序设计>实验报告 一.安装Android Studio并进行Hello world测试和调试程序 安装Android St ...

随机推荐

  1. 码云git 使用配置

    码云git 使用配置:www.gitee.com安装:1.Git-2.18.0-64-bit.exe:2.GitExtensions-2.51.04.msi:3.GitExtensionsVSIX.v ...

  2. sfc /scannow命令如何能用虚拟光驱完成修复?(xp下的办法)

    我们先光盘文件或用WinRAR压缩软件将ISO文件解压缩到本地磁盘某目录下,如e:\winxp:   在ISO文件上右击,在弹出的菜单中选择“解压到”:   文件较多,久等一会解压完成后文件夹下有很多 ...

  3. 【AI】PaddlePaddle-Docker运行

    1.参考官方安装Docker环境,使用一键安装包安装 https://www.jianshu.com/p/b2766173d754 http://www.paddlepaddle.org/docume ...

  4. KafkaManager对offset的两种管理方式

    OffsetManager主要提供对offset的保存和读取,每个broker都有一个OffsetManager实例,kafka管理topic的偏移量有2种方式: 1.ZookeeperOffsetM ...

  5. 在IE中启动火狐——自定义浏览器链接协议

    有时候需求就是这么奇葩,特别是在这个浏览器混战收尾的节骨眼上,有的客户正在将全单位的浏览器统一到Chrome.有的正在统一到Firefox.还有的正在统一到360上.于是就有了如题的需求,客户正在将浏 ...

  6. Python Django 配置QQ邮箱发送邮件

    一.实验环境 Python2.7 + Django1.10.0 二.获取QQ邮箱授权码 1.什么是授权码? 授权码是QQ邮箱推出的,用于登录第三方客户端的专用密码. 适用于登录以下服务:POP3/IM ...

  7. 线程的条件Condiition

    条件Condition相当于给锁造钥匙,但是这钥匙是一次性的.一个线程拿到钥匙进去,出来之后钥匙没有归还,而是没了. 如下代码: from threading import Thread, Condi ...

  8. E - Heavy Transportation

    来源poj1797 Background Hugo Heavy is happy. After the breakdown of the Cargolifter project he can now ...

  9. poj 2420

    太虚假了. 我为什么要手贱点开submission? 这道题两天之前被一个学弟A了. ? 我退役了. 其实就是爬山吧..好像有的题解还分方向什么的完全没必要吧. #include <iostre ...

  10. sublime3 快速运行 java

    build 系统 Java.sublime-build { "cmd": ["javac $file_name && java $file_base_na ...