面向对象技术(C++_Primer)第1章_第1页
面向对象技术(C++_Primer)第1章_第2页
面向对象技术(C++_Primer)第1章_第3页
面向对象技术(C++_Primer)第1章_第4页
面向对象技术(C++_Primer)第1章_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象技术面向对象技术李明明西安科技大学通信学院西安科技大学通信学院课程简介 1 目的:以C+为例,学习最先进的面向对象技术的基本原理 基础:C语言程序设计:面向过程程序设计 进阶:设计模式:前人软件开发经验的总结 教材:C+ Primer 中文版 第四版 (2006) 自学教材: C+程序设计语言 Bjame Stroustrup 作者:Stanley Lippman Josee Ljoie Barbara Moo 自我介绍:李明明,讲师,QQ:715401729内容简介 2第1章 快速入门第一部分 基本语言 第2章 变量和基本类型 第3章 标准库类型 第4章 数组和指针 第5章 表达式

2、第6章 语句 第7章 函数 第8章 标准IO库第二部分 容器和算法 第9章 顺序容器 第10章 关联容器第11章 泛型算法第三部分 类和数据抽象 第12章 类 第13章 复制控制 第14章 重载操作符与转换第四部分 面向对象编程与泛型编程 第15章 面向对象编程 第16章 模板与泛型编程第五部分 高级主题 第17章用于大型程序的工具 第18章特殊工具与技术第一章快速入门 3问题:某书店以文件形式保存其每一笔交易。每一笔交易记录某本书的销售情况,包含 ISBN,销售册数,销售单价。 0-201-70353-x 4 24.99 我们经编写程序来统计每本书的销售册数、总销售收入、及平均售价。4 实现

3、输入输出 定义变量 定义数据结构来保存要处理的数据 编写循环,处理交易文件中的每一条记录51.1 简单的C+程序(main,编译执行) int main() return 0; 操作系统通过调用main函数来执行程序,main函数执行组成自己的语句并返回一个值给操作系统。每个C+程序必须含有main函数,否则无法执行。Main函数是唯一被操作系统显式调用的函数。 编译与执行程序 6 常用的编译器:GNU编译器和微软的Visual Studio编译器。 调用GNU编译器的默认命令是g+ $ g+ prog1.cc -o prog1 调用微软编译器的命令是c1 C:directory c1 GX

4、prog1.cpp 直接调用编译过程生成的可执行文件的名字就可以执行程序。 1.2初窥输入输出 7 #include int main() std:cout“Enter two numbers”v1v2; std:cout“the sum of ”v1“and” v2“is”v1+v2std:endl; return 0; 标准输入输出对象 8 标准库定义了4个IO对象: cin: istream对象,标准输入 cout :ostream对象,标准输出 cerr:标准错误。用来输出警告和错误信息给程序的使用者 clog:用于产生程序执行的一般信息 注释 9 / /* */ 注释不能嵌套。嵌套时

5、可能会造成不必要的错误。 注释不会增加可执行程序的大小,编译器会忽略所有注释。 1.4 控制结构 101.4.1 while 语句#include int main() int sum=0,val=1; /keep executing the while until val is/greater than 10 while(val=10) sum+=val; /assigns sum+val to sum +val; /add 1 to val std:out“Sum of 1 to 10 inclusive is “sumstd:endl; return 0; While结构 11 Whil

6、e (condition) while_body_statement While通过测试condition和执行相关的whie_body_statement来重复执行,直到所有的condition为假 条件是一个可求值的表达式,所以可测试其结果。如果结果为非零,条件为真,如果结果为零,条件为假。 +=为复合赋值运算。等于一个加法和一个赋值语句。 +val为前自增语句。 这两个比常规的效率要高。 最后要提的是C+的缩排和格式。1.4.2 for语句 12 #include int main() int sum=0; /sum values from 1 up to 10 inclusive fo

7、r(int val=1;val=10;+val) sum+=val; /equivalent to sum=sum+val std:cout“Sum of 1 to 10 inclusive is” sumstd:endl; return 0; 13 for (int val=1;val=10;+val) sum+=val; /equivalent to sum=sum+val 前一句叫for语句头,后面是for语句体。For语句头控制for语句体的执行次数。包含 一个初始化语句,一个条件,一个表达式。当条件满足时,执行for语句体。仅当for语句体执行完后才执行表达式。 编译与错误跟踪 14

8、 (1) 语法错误 (2)类型错误 int val=“Hello”; (3)声明错误 如果不声明,直接使用变量,会导致错误。 1.4.3if语句 15#include Int main() std:cout“Enter two numbers:”v1v2; /read input /use smaller numbers as lowwer bound for summation and larger number as upper bound int lower,upper; if(v1=v2) lower=v1; upper=v2; else lower=v2; upper=v1; int

9、 sum=0; for(int val=lower;val=upper;+val) sum+=val; /sum=sum+val std:cout“Sum of ”lower“to”upper“inclusive is”sumstd:endl; return 0; 1.4.4 读入未知数目的输入 16 #include int main() int sum=0,value; /read till end of file,calculating a /running total of all values read while (std:cinvalue) sum+=value; std:cou

10、t“Sum is:”sum,读取一个Sales_item对象 输出操作符,输出一个Sales_item对象 赋值 操作符,=,将一个Sales_item对象赋值给另一个Sales_item对象 调用same_isbn函数确定两个Sales_item是否指向同一本书读入和写出Sales_item对象 19#include #include “Sales_item.h”int main() Sales_item book; /read ISBN,number of copies sold,and sales price std:cinbook; /write ISBN,number of copi

11、es sold,total revenue, and average price std:coutbookstd:endl; return 0;输入: 0-201-70353-X 4 24.99输出:0-201-70353-X 4 99.96 24.99将Sales_item对象相加 20 #include #include “Sales_item.h” int main() Sales_item item1,item2; std:cinitem1item2; /read two transaction std:coutitem1+item2std:endl; return 0; 输入:0-2

12、01-78345-X 3 20.00 0-201-78345-X 2 25.00 输出:0-201-78345-X 5 110 221.5.2 成员函数 21#include #include “Sales_item.h”int main() Sales_item item1,item2; std:cinitem1item2; /first,check item1 and item2 represent the same book if(item1.same_isbn(item2) std:coutitem1+item2std:endl; return 0; /indicate success

13、 else std:cerr“Data must refer to same ISBN”std:endl; return -1; /indicate failure 1.6 C+程序 22#include #include “Sales_item.h”int main() /declare variable to hold running sum and data for the nex record Sales_item total,trans; /is there data to process if(std:cintotal) /if so,read the transaction re

14、cords while(std:cintrans) if(total.same_isbn(trans) /match:update the running total total=total+trans; /这里为什么不用+=? (未重载此操作符) else /no match:print & assign to total std:couttotalstd:endl; total=trans; /remember to print last record std:couttotalstd:endl; else /no input,warn the user std:cout“No data?!”std:endl; return -1; return 0;小结 23 本章介绍了足够多的C+基本知识。让读者能够编译和执行简单的C+程序。我们学习了如何定义main函数,这是任何C+程序首先执行的函数。我们也看到了如何定义变量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论