实验内容:

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)要求使用switch语句。

下面是第一小问的解答:

 #include <iostream>
#include <string.h>
using namespace std;
int main ()
{
char a;
while()
{ cout<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
cin>>a;
if(a=='A')
{
cout<<"data has been added"<<endl;
continue;
}
else if(a=='D')
{
cout<<"data has been deleted"<<endl;
continue;
}
else if(a=='S')
{
cout<<"data has been sorted"<<endl;
continue;
}
else if(a=='Q')
{ break;
}
else
{
cout<<"no such choice concluded"<<endl;
continue;
}
}
return ;
}

说一句题外话,原来在C语言中实现循环输入用的是while(scanf("%d",&n)!=EOF)或者scanf("%d",&n);while(n--),但是在C++里没有scanf()函数的用法,所以用while(1)来控制循环输入。

下面是第二个小问的解答:

 #include <iostream>
using namespace std;
int main ()
{
char a;
while()
{
cout<<"Menu: A(dd) D(elete) S(ort) Q(uit),Select one:";
cin>>a;
switch(a)
{
case 'A':
{
cout<<"data has been added"<<endl;
continue;
}
case 'D':
{
cout<<"data has been deleted"<<endl;
continue;
}
case 'S':
{
cout<<"data has been sorted"<<endl;
continue;
}
case 'Q':
{
break;
}
default:
{
cout<<"no such choice concluded"<<endl;
continue;
}
}
if(a=='Q')break;
}
return ;
}

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

下面是第一个小问的解答:

 #include <iostream>
#include <math.h>
#include<iomanip>
using namespace std;
int main ()
{
int i=,j,n=;
while(i<=)
{
for(j=;j<=sqrt(i);j++)
{
if(i%j==)break;
}
if(j>sqrt(i)&&i>)
{
n++;
if(n%==)
cout<<setw()<<i<<endl;
else
cout<<setw()<<i;
}
i++;
}
return ; }

个人认为二三两小问于第一问的区别不大,只是把while()改成do...while()或者for()即可。

我在这里使用了math.h的头文件来使用求根sqrt()函数来提高效率,并用setw()来实现右对齐美化。

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

 #include <iostream>
#include <cstdlib>
using namespace std;
int main ()
{
int thenumber;
int seed;
int guess;
cout<<"please enter an unsigned number:";
cin>>seed;
srand(seed);
thenumber=rand()%+;
while()
{ cout<<"please guess the number:";
cin>>guess;
if(guess>thenumber)
{
cout<<"the answer is smaller than the number you have just given"<<endl;
continue;
}
if(guess<thenumber)
{
cout<<"the answer is bigger than the number you have just given"<<endl;
continue;
}
if(guess==thenumber)
{
cout<<"the answer is just been guessed"<<endl;
break;
}
}
return ;
}

原本我是自己设置的一个要猜的数,但是不能重复利用,所以用随机数和种子函数,先自己输入一个无符号整数作为种子,这样就能每次都生成不同的随机数。

值得注意的是系统生成的随机数是任意大小的但是题目只要求1-100的数,所以需要把它%100+1。do...while类似,把while改成do...while即可。

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

 #include <iostream>

 using namespace std;
int main ()
{
int a=,b=,i,n,m,s;
n=a,m=b,s=b;
for(i=;i<s;i++)
{
n--;
a=a*n;
}
//cout<<a;
for(i=;i<s;i++)
{
m--;
b=b*m;
// cout<<m;
}
// cout<<b;
a=a/b;
cout<<a<<endl;
return ;
}

这个只是求出不考虑顺序的取法总数,而且没有显示是哪几种取法。所以升级求考虑顺序且能显示是哪几种顺序的程序。

 #include <iostream>
#include <iomanip>
using namespace std;
void swamp(int & ,int&);
void sperm(int color[],int,int );
int sum;
int main ()
{
int i,color[],k,m;
for(i=;i<=;i++)
color[i]=i+;
k=;
m=;
sperm(color,k,m);
cout<<endl;
cout<<sum<<endl; return ;
}
void swamp(int &a,int &b)
{
int t;
t=a;
a=b;
b=t;
}
void sperm (int color[],int k,int m)
{
int i;
if(k==)
{
sum++;
for (i=;i<=;i++)
{
cout<<color[i];
}
if(sum%==)cout<<endl;
else cout<<' ';
}
else
{
for(i=k;i<m;i++)
{
swamp(color[k],color[i]);
sperm(color,k+,m);
swamp(color[k],color[i]);
}
}
}

这原本是个全排列算法,我是通过学习他人的程序得到的,但是这里不是全排列而是只要把5个中的3个进行排列,所以做了略微的调整,还有我用了数字1-5来代替颜色,进行优化可以用二维字符数组。

实验反思:

1.顺序,循环,条件语句的熟练掌握是学好编程的关键,刚开始不会可以通过模仿,之后自己总结开发出自己的程序设计。

2.swrt(),setw(),srand(),rand()等函数的掌握能让程序设计变得事半功倍,同时有美化作用。

3.对于枚举类型和字符数组的掌握还是不够,要多加练习。

我评论的博客地址:

https://www.cnblogs.com/yidaoyigexiaopenyou/

https://www.cnblogs.com/shy0825/

https://www.cnblogs.com/Kun-520

c++ 第一次实验的更多相关文章

  1. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  2. 20145320《Java程序设计》第一次实验报告

    20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...

  3. 20145224&20145238 《信息安全系统设计基础》 第一次实验

    20145224&20145238 <信息安全系统设计基础>第一次实验 课程:信息安全系统设计基础 班级:1452 姓名:陈颢文 荆玉茗 学号:20145224 20145238 ...

  4. 20145317彭垚 《Java程序设计》第一次实验实验报告

    20145317彭垚 <Java程序设计>第一次实验实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验名称:Java开发环境的 ...

  5. 20145103JAVA第一次实验报告

    20145103<Java程序设计>第一次实验报告 实验内容及其步骤 一.命令行下java程序开发 建立一个java文件,然后在命令行中,对程序进行javac编译,就生成了.class文件 ...

  6. 网络对抗第一次实验——PC平台逆向破解(5)M

    网络对抗第一次实验--PC平台逆向破解(5)M 实践一 手工修改可执行文件,改变程序执行流程,直接跳转到getShell函数. 操作步骤: 获取实验用文件pwn1,复制,复制出来的文件改名为20155 ...

  7. Java第一次实验 20145104张家明

    Java第一次实验 实验报告 实验要求: 1.使用JDK编译.运行简单的Java程序 2.使用IDEA 编辑.编译.运行.调试Java程序 实验内容: 1.使用JDK编译.运行简单的Java程序: 2 ...

  8. 20145127《java程序设计》第一次实验

    <java程序设计>第一次实验 实验内容及其步骤 1.使用JDK编写简单的Java小程序: Java编译的方法有很多,最基础最简单的就是使用命令行,记事本,Java虚拟机直接进行编译,下面 ...

  9. 20162327WJH第一次实验——线性结构

    20162327WJH第一次实验--线性结构 实 验 报 告 实 验 报 告 课程:程序设计与数据结构 班级: 1623 姓名: 王旌含 学号:20162327 成绩: 2分 指导教师:娄嘉鹏 王志强 ...

  10. 20155210 潘滢昊 Java第一次实验---凯撒密码

    Java第一次实验---凯撒密码 实验内容 实现凯撒密码,并进行测试. 实验代码 import java.io.*; import java.util.Scanner; public class ks ...

随机推荐

  1. Python 爬虫 JD商品-scrapy+requests

    目标站点需求分析 JD商品信息抓取 需求信息字段 涉及的库 scrapy, requests,re lxml 获取单页源码 解析单页源码 获取总页数 获取商品url 解析商品信息 保存本地文件 保存m ...

  2. Python 爬虫 58同城

    目标站点需求分析 获取各类产品的名字,地区,时间,价格 涉及的库 BeautifulSoup,requests,time,pymongo 获取各大类产品的链接 获取单页源码 解析单页源码 保存到文件中 ...

  3. 集腋成裘-09-ECharts -HelloECharts-02

    上一篇我们讲了可视化数据分析的重要性以及ECharts的一些的特性,这一篇我们继续学习一下ECharts的简单Demo 一:5 分钟上手 ECharts <!DOCTYPE html> & ...

  4. docker 进阶

    docker 常用命令: docker  pull hub.c.163.com/library/mysql:latest  #这是从网址下载下来mysql镜像 docker run  -d -p 88 ...

  5. CSS之链接

    改变链接样式 当设置为若干链路状态的样式,也有一些顺序规则: a:hover 必须跟在 a:link 和 a:visited后面 a:active 必须跟在 a:hover后面 <!DOCTYP ...

  6. [原创]基于Zynq Linux环境搭建(二)

    在此篇,我们编译UBOOT 解压: [#17#17:26:56 FPGADeveloper@ubuntu ~/Zybo_Demo]$tar zxvf *.tar.gz 在解压过程中出现下述问题 tar ...

  7. Consideration about improving mathematics study

    In this article, I’ll present my ideas about how to improve mathematics study, which are the forewor ...

  8. cookie报错

    错误: java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value 原因 ...

  9. TopCoder SRM704 Div1 800 构造

    原文链接https://www.cnblogs.com/zhouzhendong/p/SRM704-800.html 题解 考虑构造一个 $n = 20$ 的图. 先把所有 $i$ 都连向 $i-1$ ...

  10. sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError)

    在我学习flask建立网站时间碰到了一个棘手的问题,就是在我进行操作日志的更新时间,发现表格建立有点错误,导致表缺失,从而报了下面的错误 sqlalchemy.exc.ProgrammingError ...