【实验一】

#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. windows下telnet命令不好用解决方案;

    1.按网上说的windows下打开功能,telnet客户端打钩是必须的: 2.如果还不行,找到telnet.exe:然后把此路径添加到环境变量path下即可: ps:telnet的退出:quit命令:

  2. CSS面试题

    1.有哪些方式可以对一个DOM设置它的CSS样式? 外部样式表.引入一个外部CSS文件: 内部样式表.将CSS代码放在<head>标签内部: 内联样式,将CSS样式直接定义在HTML元素内 ...

  3. [git] 能在关键时刻救命的git指令

    * 查看所有分支的所有操作记录(关键时刻能救命) git reflog

  4. centos7上修改lv逻辑卷的大小

    author:headsen  chen date: 2019-03-18 15:24:22 1,查看 [root@localhost mnt]# df -h Filesystem Size Used ...

  5. EgretPaper学习笔记一 (安装环境,新建项目)

    参考: 官方Egret3D教程 白鹭引擎5.3.0正式发布,支持3D游戏开发 一 下载安装EgretPaper Egret3D 编辑器的开发代号为“Paper”,于2018年9月份开始小规模内测,并在 ...

  6. 实现Ajax异步的layui分页

    https://www.e-learn.cn/content/java/1084522

  7. 初识NLTK

    需要用处理英文文本,于是用到python中nltk这个包 f = open(r"D:\Postgraduate\Python\Python爬取美国商标局专利\s_exp.txt") ...

  8. Exception occurred during processing request: id to load is required for loading

    ERROR Dispatcher:38 - Exception occurred during processing request: id to load is required for loadi ...

  9. python全栈开发 * 19 面向对象 知识点汇总 * 180701

    19 面向对象初识2 一.类的名称空间1.对象的名称空间对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找 ...

  10. VS code -python 使用笔记本

    1--使用虚拟环境 |----setting->search: python.venv->设置  venv path (你创建的虚拟环境文件夹所在路径,此处我的是 - 目录下) |---- ...