c++第一次实验
1.实现一个简单的菜单程序,运行时显示"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() { cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; char a; while(cin>>a) { if(a=='A') { cout<<"数据已经增加。"<<endl; } else if(a=='D') { cout<<"数据已经删除。"<<endl; } else if(a=='S') { cout<<"数据已经排序。"<<endl; } else if(a=='Q') { break; } else { cout<<"输入错误,请重新输入。"<<endl; } cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; } return 0; }
(2)switch
#include<iostream> using namespace std; int main() { cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; char a; while(cin>>a) { switch(a) { case 'A':cout<<"数据已经增加。"<<endl;break; case 'D':cout<<"数据已经删除。"<<endl;break; case 'S':cout<<"数据已经排序。"<<endl;break; case 'Q':return 0;
default: cout<<"输入错误,请重新输入。"<<endl;break; } cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; } return 0; }
2.用穷举法找出 1~100 间的质数,显示出来。分别使用 while,do-while,for 循环语句实现。
(1)while
#include<iostream> using namespace std; #include<cmath> int main() { int i=2; while(i<=100) { int j=2,m; m=sqrt(i*1.0); while(j<=m) { if(i%j==0) break; j++; } if(j>m) cout<<i<<endl; i++; } return 0; }
(2)do...while
#include<iostream> using namespace std; #include<cmath> int main() { int i=2; do { int j=2,m; m=sqrt(i*1.0); do { if(i%j==0) break; j++; }while(j<=m); if(j>m) cout<<i<<endl; i++; }while(i=<100); return 0; }
(3)for
#include<iostream> using namespace std; #include<cmath> int main() { int i; for(i=2;i<=100;i++) { int j,m; m=sqrt(i*1.0); for(j=2;j<=m;j++) { if(i%j==0) break; } if(j>m) cout<<i<<endl; } return 0; }
3.在程序中定义一个整型变量,赋以 1~100 的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。
(1)while
#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { int n,a; srand(time(0)); n=rand()%100; while(cin>>a) { if(a>n) cout<<"大了"<<endl; else if(a<n) cout<<"小了"<<endl; else if(a==n) { cout<<"猜对了"<<endl; break; } } return 0; }
(2)do...while
#include<iostream> #include<cstdlib> #include<ctime> using namespace std; int main() { int n,a; srand(time(0)); n=rand()%100; cin>>a; do { if(a>n) cout<<"大了"<<endl; else if(a<n) cout<<"小了"<<endl; else if(a==n) { cout<<"猜对了"<<endl; break; } }while(cin>>a); return 0; }
4.口袋里有红、黄、蓝、白、黑5种颜色的球若干个,每次从口袋里取出3个不同颜色的球,问有多少种取法。
#include<iostream> using namespace std; int main() { int n=5,k=3,s=1; for(n;n>=k;n--) s=s*n; for(k;k>=1;k--) s=s/k; cout<<s<<endl; return 0; }
实验总结与体会:
1.因为好久没编程,寒假没练习,许多东西都忘了,尤其是第一题用字符时用了双引号,卡了许久才意识到应该用单引号。还有就是cin最后不能加endl。
2.这次实验初步学会了如何使用随机数和c++,同时认识到自己应该去复习上学期学习的知识。
3.我感觉学习编程最好的方法还是应该多练。