c++基础和进阶课堂讲义完整版.docx
传智播客C++课程讲义 传智扫地僧1、C++对C的扩展1简单的C++程序1.1求圆的周长和面积 数据描述:半径,周长,面积均用实型数表示数据处理:输入半径 r;计算周长 = 2*π*r ;计算面积 = π* r2 ;输出半径,周长,面积;方法1:用结构化方法编程,求圆的周长和面积 // count the girth and area of circle#includeusing name std;void main (){ double r, girth, area ; const double PI = 3.1415 ; cout << "Please input radius:\n" ; //操作符重载 cin >> r ; //输入 girth = 2 * PI * r ; area = PI * r * r ; cout << "radius = " << r << endl ; cout << "girth = " << girth << endl ; cout << "area = " << area << endl ;}方法2:用面向对象方法编程,求圆的周长和面积#include using name std;class Circle{ double radius ; //成员变量 public : //类的访问控制 void Set_Radius( double r ) { radius = r ; } //成员函数 double Get_Radius() { return radius ; } //通过成员函数设置成员变量 double Get_Girth() { return 2 * 3.14f * radius ; } //通过成员函数获取成员变量 double Get_Area() { return 3.14f * radius * radius ; }} ;void main(){ Circle A, B ; //用类定义对象 A.Set_Radius( 6.23 ) ; //类的调用 cout << "A.Radius = " << A.Get_Radius() << endl ; cout << "A.Girth = " << A.Get_Girth() << endl ; cout << "A.Area = " << A.Get_Area() << endl ; B.Set_Radius( 10.5 ) ; cout << "B.radius = " << B.Get_Radius() << endl ; cout << "B.Girth=" << B.Get_Girth() << endl ; cout << "B.Area = " << B.Get_Area() << endl ; }总结:建立类、对象、成员变量、成员函数,输入输入流基本概念。1.2初学者易犯错误模型// demo02_circle_err.cpp#includeusing namespace std;//c++的命名空间class circle{public:double r;double pi = 3.1415926;double area = pi*r*r;};int main(){circle pi;cout << "请输入area" << endl;cin >> pi.r;cout << pi.area << endl;//乱码system("pause");return 0;}总结:从内存四区的角度,解释为什么会出现乱码理解为什么需要成员函数2程序设计方法的发展历程面向过程的结构化程序设计方法 设计思路自顶向下、逐步求精。采用模块分解与功能抽象,自顶向下、分而治之。程序结构:按功能划分为若干个基本模块,形成一个树状结构。各模块间的关系尽可能简单,功能上相对独立;每一模块内部均是由顺序、选择和循环三种基本结构组成。其模块化实现的具体方法是使用子程序。优点:有效地将一个较复杂的程序系统设计任务分解成许多易于控制和处理的子任务,便于开发和维护。缺点:可重用性差、数据安全性差、难以开发大型软件和图形界面的应用软件把数据和处理数据的过程分离为相互独立的实体。当数据结构改变时,所有相关的处理过程都要进行相应的修改。每一种相对于老问题的新方法都要带来额外的开销。图形用户界面的应用程序,很难用过程来描述和实现,开发和维护也都很困难。面向对象的方法 将数据及对数据的操作方法封装在一起,作为一个相互依存、不可分离的整体——对象。对同类型对象抽象出其共性,形成类。类通过一个简单的外部接口,与外界发生关系。对象与对象之间通过消息进行通