【实验一】

#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. 空的OnGUI也会有gc

    一个空场景,添加如下代码: using System.Collections; using System.Collections.Generic; using UnityEngine; public ...

  2. 框架源码系列十一:事务管理(Spring事务管理的特点、事务概念学习、Spring事务使用学习、Spring事务管理API学习、Spring事务源码学习)

    一.Spring事务管理的特点 Spring框架为事务管理提供一套统一的抽象,带来的好处有:1. 跨不同事务API的统一的编程模型,无论你使用的是jdbc.jta.jpa.hibernate.2. 支 ...

  3. python内建时间模块 time和datetime

    时间模块 UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间.在中国为UTC+8.DST(Daylight Saving Time)即夏令时. ...

  4. VS 错误: 未找到与约束contractname Microsoft.VisualStudio.Utilities.IContentTypeRegistryService

    今天突然停电,vs重启的时候就出现了问题,最开始是提示如图1所示的错误,开始觉得可能这提示不重要,也就关闭不在提醒了,结果,vs启动是启动了,项目也开启了,但是生成的时候,依旧就报了图1的错 图1 去 ...

  5. 移动端网页 rem css书写

    移动端网页书写   css样式: @charset "utf-8";body,html{font-family: "微软雅黑";font-size:100px; ...

  6. ASP.NET Core MVC+EF Core从开发到部署

    笔记本电脑装了双系统(Windows 10和Ubuntu16.04)快半年了,平时有时间就喜欢切换到Ubuntu系统下耍耍Linux,熟悉熟悉Linux命令.Shell脚本以及Linux下的各种应用的 ...

  7. J Press the Button

    BaoBao and DreamGrid are playing a game using a strange button. This button is attached to an LED li ...

  8. D - Bridge

    n people wish to cross a bridge at night. A group of at most two people may cross at any time, and e ...

  9. Javascript 异步处理与计时跳转

    实现计时跳转的代码: <html lang="en"> <head> <meta charset="UTF-8"> < ...

  10. 28、gulp

    一.gulp的作用? 1.gulp-sass : 编译sass 2.gulp-rename : 重命名 3.gulp-cssnano : 压缩css 4.gulp-concat : 合并文件 5.gu ...