实验一:C++简单程序设计
【实验一】
#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++简单程序设计的更多相关文章
- 实验一 c++简单程序设计
一.实验内容 1.ex 2_28 (1) 用if...else判断 #include<iostream> using namespace std; int main() { char i; ...
- 实验1:c++简单程序设计(1)
//文中有格式错误请无视 //这个编辑器一言难尽 实验目的 1. 掌握c++中类c部分的编程知识: 数据类型,常量,变量,运算符,表达式,分支结构,循环结构 2. 掌握C++中数据输入和输出的基本方法 ...
- 实验二 Java面向对象程序设计
实验二 Java面向对象程序设计 实验内容 1. 初步掌握单元测试和TDD 2. 理解并掌握面向对象三要素:封装.继承.多态 3. 初步掌握UML建模 4. 熟悉S.O.L.I.D原则 5. 了解设计 ...
- 160809209_李梦鑫_C语言程序设计实验3 循环结构程序设计
<C语言程序设计>实验报告 学 号 160809209 姓 名 李梦鑫 专业.班 计科16-2班 学 期 2016-2017 第1学期 指导教师 黄俊莲 吉吉老师 实验地点 C05 ...
- 20145206《Java程序设计》实验二Java面向对象程序设计实验报告
20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...
- 20145208 实验三 Java面向对象程序设计
20145208 实验三 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验步 ...
- 20162330 实验四 《Android程序设计》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验四 <Android程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623 ...
- 20162302 实验四《Android程序设计》实验报告
实 验 报 告 课程:程序设计与数据结构 姓名:杨京典 班级:1623 学号:20162302 实验名称:Android程序设计 实验器材:装有Android Studio的联想拯救者80RQ 实验目 ...
- java实验四《Android程序设计》实验报告
一.实验报告封面 课程:Java程序设计 班级:1653班 姓名:张士洋 学号:20165308 指导教师:娄嘉鹏 实验日期:2018年5月14日 实验时间:13:45 - 15:25 实验序号:08 ...
- 2017-2018-2 20165312 实验四《Android程序设计》实验报告
2017-2018-2 20165312 实验四<Android程序设计>实验报告 一.安装Android Studio并进行Hello world测试和调试程序 安装Android St ...
随机推荐
- windows下telnet命令不好用解决方案;
1.按网上说的windows下打开功能,telnet客户端打钩是必须的: 2.如果还不行,找到telnet.exe:然后把此路径添加到环境变量path下即可: ps:telnet的退出:quit命令:
- CSS面试题
1.有哪些方式可以对一个DOM设置它的CSS样式? 外部样式表.引入一个外部CSS文件: 内部样式表.将CSS代码放在<head>标签内部: 内联样式,将CSS样式直接定义在HTML元素内 ...
- [git] 能在关键时刻救命的git指令
* 查看所有分支的所有操作记录(关键时刻能救命) git reflog
- centos7上修改lv逻辑卷的大小
author:headsen chen date: 2019-03-18 15:24:22 1,查看 [root@localhost mnt]# df -h Filesystem Size Used ...
- EgretPaper学习笔记一 (安装环境,新建项目)
参考: 官方Egret3D教程 白鹭引擎5.3.0正式发布,支持3D游戏开发 一 下载安装EgretPaper Egret3D 编辑器的开发代号为“Paper”,于2018年9月份开始小规模内测,并在 ...
- 实现Ajax异步的layui分页
https://www.e-learn.cn/content/java/1084522
- 初识NLTK
需要用处理英文文本,于是用到python中nltk这个包 f = open(r"D:\Postgraduate\Python\Python爬取美国商标局专利\s_exp.txt") ...
- 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 ...
- python全栈开发 * 19 面向对象 知识点汇总 * 180701
19 面向对象初识2 一.类的名称空间1.对象的名称空间对象的名称空间中有类对象指针,对象可以通过"类对象指针"找类中的"静态变量"(静态字段),也可以用对象找 ...
- VS code -python 使用笔记本
1--使用虚拟环境 |----setting->search: python.venv->设置 venv path (你创建的虚拟环境文件夹所在路径,此处我的是 - 目录下) |---- ...