实验目的

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 }
Menu1
 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 }
Menu2

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 }
number1
 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 }
number2
 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 }
number3

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 }
guess1
 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 }
guess2

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 }
ball


实验总结与体会

1.找资料,自主学习很有必要(https://en.cppreference.com/w/)⬅这个网站里面关于函数的一些资料对写程序很有帮助

2.自己写程序的时候很容易看不出自己的错误,交流学习也是很有必要的

3.同样的程序不同的同学写出来的差别会很大,自己写的很多程序运行效率、内部的运行模式差别也很大

4.以前学的很多东西或多或少会带到现在的学习,不过影响应该不大

5.这次的实验从开始到完成一共花了近四个小时应该算是有点长了吧,或许应该多练练

6.代码规范,这个很难把握,自己也总没有这样的意识,希望能有人指正代码中的不规范吧

 

posted on 2019-03-16 12:38  Nibelungenlied  阅读(293)  评论(2编辑  收藏  举报