Part 1:
C++是面向对象的编程语言。主要特点表现在两个方面:一全面兼容C,二支持面向对象的方法。
C++中,将数据从一个对象到另一个对象的流动抽象为“流”。数据的输入输出是通过I/O流实现,输入提取符(>>)作用cin,输出插入符(<<)作用cout。
Part 2:编程练习
1、2-28 “菜单程序”
(1)IF
#include<iostream> using namespace std; int main() { while(1) { cout<<"Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; char n; cin>>n; if(int(n)==65) cout<<"Data has added."<<endl; else if(int(n)==68) cout<<"Data has deleted."<<endl; else if(int(n)==83) cout<<"Data has sorted."<<endl; else if(int(n)==81) break; else cout<<"No such choice,please select again."<<endl; } return 0; }
程序结果如下
一点补充:我在编写的时候对于字符的对比出现如下错误:if('n'=='A'),if('n'==65)等,由于对字符操作涉及它的ASCII码与它本身字符时模糊,补充应用了转换类型或者叫导出字母ASCII码的相关知识。其中,char n;if(n=='A')也可以。
(2)SWITCH
#include<iostream> #include<cstdlib> using namespace std; int main() { while(1) { cout<<"Menu:Menu:A(dd) D(elete) S(ort) Q(uit),Select one:"; char n; cin>>n; switch(n) { case'A':cout<<"Data has added."<<endl;break; case'D':cout<<"Data has deleted."<<endl;break; case'S':cout<<"Data has sorted."<<endl;break; case'Q':exit(0); default:cout<<"No such choice,please select again."<<endl; } } return 0; }
程序结果和上一个结果相同,欢迎调试并给予建议。
2、2-29“1~100间的质数”
(1)WHILE
#include<iostream> #include<iomanip> using namespace std; int prime(int x); int main() { int n=1,m=0; while(n<=100) { if(prime(n)==0) { m++; if(m%6!=0) cout<<setw(5)<<n; else cout<<setw(5)<<n<<endl; } n++; } return 0; } int prime(int x) { int t,i=0; for(t=2;t<x;t++) { if(x%t==0) { i=1;break; } } if(x<t) i=1; return i; }
(2)DO······WHILE
#include<iostream> #include<iomanip> using namespace std; int prime(int x); int main() { int n=1,m=0; do { if(prime(n)==0) { m++; if(m%6!=0) cout<<setw(5)<<n; else cout<<setw(5)<<n<<endl; } n++; }while(n<=100); return 0; } int prime(int x) { int t,i=0; for(t=2;t<x;t++) { if(x%t==0) { i=1;break; } } if(x<t) i=1; return i; }
(3)FOR
#include<iostream> #include<iomanip> using namespace std; int prime(int x); int main() { int n,m=0; for(n=1;n<=100;n++) { if(prime(n)==0) { m++; if(m%6!=0) cout<<setw(5)<<n; else cout<<setw(5)<<n<<endl; } } return 0; } int prime(int x) { int t,i=0; for(t=2;t<x;t++) { if(x%t==0) { i=1;break; } } if(x<t) i=1; return i; }
程序结果
一点补充:C++在C基础上对输出格式有变化,对于输入输出格式设定要使用操纵符,注意必须在源程序开头包含iomanip头文件。
3、2-32“猜数字”
#include<iostream> #include<time.h> #include<stdlib.h> using namespace std; #define N (rand()%(100-0+1))+0 int main() { while(true) { cout<<"Input your number:"; srand((unsigned)time(NULL)); int n; cin>>n; if(n<0||n>100) cout<<"Your number is out of range.Please select the number between 0 and 100."<<endl; else if(n>N) cout<<"Your number is bigger than the right number."<<endl; else if(n<N) cout<<"Your number is smaller than the right number."<<endl; else { cout<<"Congratulations!You guess it!"<<endl;break; } } return 0; }
程序结果为
一点补充:设置随机数如下图(原文地址http://www.cnblogs.com/vathena/articles/4356646.html自己进行了简化整理)
4、2-34“摸球”
初级版
#include<iostream> using namespace std; int main() { int n=0; int x,y,z; for(x=1;x<=3;x++) { for(y=x+1;y<=4&&y>x;y++) { for(z=y+1;z<=5&&z>y;z++) { n++; } } } cout<<n<<endl; return 0; }
结果如下:
改进版
#include<iostream> using namespace std; void out(int m); enum color{red,yellow,blue,white,black}; int main() { int n=0; int x,y,z; for(x=red;x<=blue;x++) { for(y=x+1;y<=white&&y>x;y++) { for(z=y+1;z<=black&&z>y;z++) { out(x);out(y);out(z); cout<<endl; n++; } } } cout<<n<<endl; return 0; } void out(int m) { switch(m) { 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; } }
程序结果
最后,程序之间穿插了一些实验体会,此处简写。
1、c++不同于c的输入输出方式,头文件,位宽。
2、有范围不同随机数的设定。
3、编写最后一题时利用到枚举类型,发现自己确实生疏,参考资料https://blog.csdn.net/yukgwy60648/article/details/54908711
4、注意cout后跟<<(插入)而不是>>(提取)。
5、多多复习包括一些c的知识,我想能够反复去用大概可以记的更牢。