实验目的
1. 掌握c++中类c部分的编程知识: 数据类型,常量,变量,运算符,表达式,分支结构,循环结构
2. 掌握C++中数据输入和输出的基本方法
3. 熟练使用c++程序开发环境,掌握c++程序编写、编译、运行、调试的方法
实验准备
1. 安装并初步掌握如何使用Devc++和Vs2017(对比两个软件,Dev相对使用起来比较简单;Vs的UI相对简介美观,函数之类的提示也是很方便,当然编程时创建项目打开项目真的很麻烦 /_ \ )
2. 简单的c++程序结构(和c一样程序还是有一个主函数,但输入输出不再用函数来实现)
3. c++中数据输入输出的基本方法(cin用于输入,cout用于输出)
4. if语句、switch语句、while语句、do…while语句的用法(这些语句的用法与c语言的相似,但自己有些遗忘 o_o .... )
5. 自定义数据类型: typedef,枚举类型用法(比较新的内容,这次的实验用的不多)
实验内容&结果
1.实现一个简单的菜单程序,运行时显示"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"提示用户输入。A表示增加,D表示删除,S表示排序,Q表示退出。输入为A、D、S时分别提示"数据已经增加、删除、排序。",输入为Q时程序结束。
1 # include <iostream> 2 using namespace std; 3 int main ( ) { 4 char o; 5 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 6 while ( cin>>o ) 7 { 8 if ( o == 'Q' ) break; 9 else if ( o == 'A' ) { cout<<"Aumber is add!"<<endl; 10 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 11 continue; } 12 else if ( o == 'D' ) { cout<<"Aumber is delete!"<<endl; 13 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 14 continue; } 15 else if ( o == 'S' ) { cout<<"Aumber is sout!"<<endl; 16 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 17 continue; } 18 else { cout<<"wrong!"<<endl; 19 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl;} 20 } 21 return 0 ; 22 }
1 # include <iostream> 2 using namespace std; 3 int main ( ) { 4 char o; 5 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 6 while ( cin>>o ) 7 { 8 if ( o == 'Q' ) break; 9 else switch ( o ){ 10 case 'A':cout<<"Aumber is add!"<<endl; 11 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 12 break; 13 case 'D':cout<<"Aumber is delete!"<<endl; 14 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 15 break; 16 case 'S':cout<<"Aumber is sout!"<<endl; 17 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 18 break; 19 default:cout<<"wrong!"<<endl; 20 cout<<"Menu: A(dd) D(elete) S(out) Q(uit),Select one:"<<endl; 21 } 22 23 } 24 }
2.用穷举法找出1~100间的质数并显示出来。
1 #include<iostream> 2 #include<cmath> 3 #include<iomanip> 4 using namespace std; 5 int main() { 6 int number, i,j=0; 7 for (number = 2; number < 100; number++) {//由于number为2,后面不能为 number=number+2 8 for (i = 2; i <= sqrt(number); i++) 9 if (number%i == 0) break; 10 if (i > sqrt(number)){ 11 cout << setw(5) << number;//setw放在需要输入的数据前面则在数据前补空格 12 j++; 13 if (j > 0 && j % 5 == 0) 14 printf("\n");//用于换行控制格式 15 } 16 } 17 }
1 #include<iostream> 2 #include<cmath> 3 #include<iomanip> 4 using namespace std; 5 int main() { 6 int number=2, i,j=0; 7 while (number < 100) { 8 for (i = 2; i <= sqrt(number); i++) 9 if (number%i == 0) break; 10 if (i > sqrt(number)){ 11 cout << setw(5) << number;//setw放在需要输入的数据前面则在数据前补空格 12 j++; 13 if (j > 0 && j % 5 == 0) 14 printf("\n");//用于换行控制格式 15 } 16 number++;//由于number为2,不能为 number=number+2 17 } 18 }
1 #include<iostream> 2 #include<cmath> 3 #include<iomanip> 4 using namespace std; 5 int main() { 6 int number=2, i,j=0; 7 do { 8 for (i = 2; i <= sqrt(number); i++) 9 if (number%i == 0) break; 10 if (i > sqrt(number)){ 11 cout << setw(5) << number;//setw放在需要输入的数据前面则在数据前补空格 12 j++; 13 if (j > 0 && j % 5 == 0) 14 printf("\n");//用于换行控制格式 15 } 16 number++; //由于number为2,不能为 number=number+2 17 }while (number<100); 18 }
3.在程序中定义了一个整型变量,赋予1~100的值。要求用户猜这个数,比较两个数的大小,将结果提示给用户,直到猜对为止。
1 #include<iostream> 2 #include<cstdlib> 3 #include<ctime> 4 using namespace std; 5 int main () { 6 srand(time(0));//time(0)返回的是系统的时间 7 int n,N; 8 char Q; 9 N=rand()%100;//一般情况下取的数在1~100之间,具体是否真的在1~100之间不知道 10 cout<<N<<endl;//便于调试所输出看看 11 do{ 12 cout<<"Please input one number between 1 and 100:"<<endl; 13 cin>>n; 14 if (n>N) cout<<" Your number is big."<<endl; 15 else if (n<N) cout<<" Your number is small."<<endl; 16 else { 17 cout<<" Your number is right."<<endl; 18 cout<<"Input 'Q to exit"<<endl; 19 cin>>Q; 20 if (Q=='Q') 21 break; 22 } 23 }while (n); 24 }
1 #include<iostream> 2 #include<cstdlib> 3 #include<ctime> 4 using namespace std; 5 int main () { 6 srand(time(0));//time(0)返回的是系统的时间 7 int n,N; 8 char Q; 9 N=rand()%100;//一般情况下取的数在1~100之间,具体是否真的在1~100之间不知道 10 cout<<N<<endl;//便于调试所输出看看 11 cout<<"Please input one number between 1 and 100:"<<endl; 12 cin>>n; 13 while (n){ 14 if (n>N) cout<<" Your number is big."<<endl; 15 else if (n<N) cout<<" Your number is small."<<endl; 16 else { 17 cout<<" Your number is right."<<endl; 18 cout<<"Input 'Q to exit"<<endl; 19 cin>>Q; 20 if (Q=='Q') 21 break; 22 } 23 cin>>n; 24 } 25 }
4.口袋中有红、黄、蓝、白、黑5种颜色的球若干。每次从口袋中取出3个不同颜色的球,问有多少种取法?
1 #include <iostream> 2 #include <iomanip> 3 using namespace std; 4 int main () { 5 cout<<"Red is 'R',Yellow is 'Y',Blue is 'B',White is 'W',Black is 'K'."<<endl; 6 int i,j,k,n=0; 7 char colour [5]={'R','Y','B','W','K'}; 8 for (i=0;i<5;i++)//第一个球有五种情况 9 for (j=i+1;j<5;j++) {//除去前面的球之后的情况 10 if (i==j) continue; 11 else for (k=j+1;k<5;k++)//除去已经取过的情况 12 if (k==i||k==j) continue; 13 else { 14 cout<<setw(3)<<colour[i]<<setw(3)<<colour[j]<<setw(3)<<colour[k]<<endl; 15 n++; 16 } 17 } 18 cout<<n; 19 }
实验总结与体会
1.找资料,自主学习很有必要(https://en.cppreference.com/w/)⬅这个网站里面关于函数的一些资料对写程序很有帮助
2.自己写程序的时候很容易看不出自己的错误,交流学习也是很有必要的
3.同样的程序不同的同学写出来的差别会很大,自己写的很多程序运行效率、内部的运行模式差别也很大
4.以前学的很多东西或多或少会带到现在的学习,不过影响应该不大
5.这次的实验从开始到完成一共花了近四个小时应该算是有点长了吧,或许应该多练练
6.代码规范,这个很难把握,自己也总没有这样的意识,希望能有人指正代码中的不规范吧