实验目的
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()
{
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(){
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 ;
}

运行结果

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

(1)使用while语句

#include<iostream>
#include<math.h>
using namespace std;
int main(){
int number=,i;
while(number<){
i=;
while(i<=sqrt(number)&&number%i!=){
i++;
}
if(i>sqrt(number))
cout<<number<<" ";
number++;
}
return ;
}

运行结果

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

#include<iostream>
#include<math.h>
using namespace std;
int main(){
int number=,i;
do{
i=;
do{
i++;
}while((i<=sqrt(number)&&number%i!=));
if(i>sqrt(number))
cout<<number<<" ";
number++;
}
while(number<);
return ;
}

运行结果

(3)使用for语句

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

运行结果

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()%+;
cout<<"Enter the number you guess between 1 and 100:";
int guess_number;
cin>>guess_number;
int wrong=;
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=;
}
}
return ;
}

运行结果

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

#include<iostream>
#include<cstdlib>
#include<ctime>
using namespace std;
int main(){
srand(time(NULL));
int random_number=rand()%+;
cout<<"Enter the number you guess between 1 and 100:";
int guess_number;
cin>>guess_number;
int wrong=;
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=;
}
} while(wrong);
return ;
}

运行结果

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=;
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 ;
}
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=;
for(int catch1=Red;catch1<=Black;catch1++)
for(int catch2=catch1+;catch2<=Black&&catch2>catch1;catch2++)
for(int catch3=catch2+;catch3<=Black&&catch3>catch2;catch3++)
{
transform(catch1);
transform(catch2);
transform(catch3);
cout<<endl;
count++;
}
cout<<"There are "<<count<<" ways"<<endl;
return ;
}
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;
}
}

运行结果

评论:

https://www.cnblogs.com/zcq1224/p/10544256.html

https://www.cnblogs.com/wmy0621/p/10543834.html

https://www.cnblogs.com/pink-fairy/p/10546289.html

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

  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. [ffmpeg] 解码API

    版本迭代 ffmpeg解码API经过了好几个版本的迭代,上一个版本的API是 解码视频:avcodec_decode_video2 解码音频:avcodec_decode_audio4 我们现在能看到 ...

  2. Nginx从入门到实践(四)

    Nginx常见问题和排错经验,实践应用场景中的方法处理Nginx安全,常见的应用层安全隐患,复杂访问控制,Nignx的sql防注入安全策略,Nginx的整体配置,搭建合理Nginx中间件架构配置步骤. ...

  3. Linux lvs三种模式工作原理

    LVS:Linux Virtual Sevser,Linux虚拟服务器,由章文嵩先生成立的有关负载均衡的开源项目.基于Linux内核.优化后并发量可以达到百万级. NAT模式: NAT(Network ...

  4. swagger.core的使用方法

    Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 Web 服务,那么如何在abp中使用呢,已经有大牛为我们实现了一个swagger.core的组件而作为菜鸟 ...

  5. Codeforces 1095F Make It Connected(最小生成树)

    题目链接:Make It Connected 题意:给定一张$n$个顶点(每个顶点有权值$a_i$)的无向图,和已连接的拥有边权$w_i$的$m$条边,顶点u和顶点v直接如果新建边,边权为$a_u+a ...

  6. NOI2019十二省联考旅游记

    真的是去旅游的啊,毕竟菜是原罪嘛 Day 0 去指定地点试机,果然,键盘还是一如既往的不好用,我也不知道为什么. 晚上,教练请吃自助餐,幸福的像个胖子 Day 1 早上坐车过去,在车上看了看原来写过的 ...

  7. 【CTSC2016】时空旅行

    链接 http://uoj.ac/problem/198 题解 首先要发现答案要我们求这个式子: \[ ans=min\bigl((x_i-x)^2+c_i\bigr) \] 显而易见的是这种时空嫁接 ...

  8. guns初级使用

    1.下载guns gitee地址:https://gitee.com/stylefeng/guns 这里使用的是Guns v5.1 2.配置环境 2.1 导入项目 解压从gitee上下载的guns源码 ...

  9. 【转】TEA、XTEA、XXTEA加密解密算法(C语言实现)

    ref : https://blog.csdn.net/gsls200808/article/details/48243019 在密码学中,微型加密算法(Tiny Encryption Algorit ...

  10. Eclipse使用JDBC小案例

    JDBC(Java Database Connectivity:Java访问数据库的解决方案)定义一套标准接口,即访问数据库的通用API,不同数据库厂商根据各自数据的特点去实现这些接口. JDBC是J ...