实验1:C++简单程序设计(1)
实验目的
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(1) { 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(1){ 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 0; }
运行结果
2-29 用穷举法找出1~100间的质数并显示出来。分别使用while,do···while,for循环语句实现。
(1)使用while语句
#include<iostream> #include<math.h> using namespace std; int main(){ int number=2,i; while(number<100){ i=2; while(i<=sqrt(number)&&number%i!=0){ i++; } if(i>sqrt(number)) cout<<number<<" "; number++; } return 0; }
运行结果
(2)使用do···while语句
#include<iostream> #include<math.h> using namespace std; int main(){ int number=2,i; do{ i=1; do{ i++; }while((i<=sqrt(number)&&number%i!=0)); if(i>sqrt(number)) cout<<number<<" "; number++; } while(number<100); return 0; }
运行结果
(3)使用for语句
#include<iostream> #include<math.h> using namespace std; int main(){ int number,i; for(number=2;number<100;number++){ for(i=2;i<sqrt(number);i++) if(number%i==0) break; if(i>sqrt(number)) cout<<number<<" "; } return 0; }
运行结果
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()%100+6; cout<<"Enter the number you guess between 1 and 100:"; int guess_number; cin>>guess_number; int wrong=1; 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=0; } } return 0; }
运行结果
(2)使用do···while语句
#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main(){ srand(time(NULL)); int random_number=rand()%100+6; cout<<"Enter the number you guess between 1 and 100:"; int guess_number; cin>>guess_number; int wrong=1; 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=0; } } while(wrong); return 0; }
运行结果
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=0; 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 0; } 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=0; for(int catch1=Red;catch1<=Black;catch1++) for(int catch2=catch1+1;catch2<=Black&&catch2>catch1;catch2++) for(int catch3=catch2+1;catch3<=Black&&catch3>catch2;catch3++) { transform(catch1); transform(catch2); transform(catch3); cout<<endl; count++; } cout<<"There are "<<count<<" ways"<<endl; return 0; } 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