与C + +握手; (第三部 面向对象) 欢迎大家的光临 、、、 (300分)

T

Tense

Unregistered / Unconfirmed
GUEST, unregistred user!
第三部 面向对象编程
[第16章 高级继承][第16章 流][第17章 名字空间][第18章 面向对象][第19章 模板][第20章 异常处理][第21章 其他]
第十五章 继承
目的: 包容、代理、私有继承;
时间: 2001/12/27 15:25:30--> 2001/12/27
(备注: VC++6 24小时(2001/12/27 15:34:40--> 17:48:54) 第章
[第16章 高级继承][第16章 流][第17章 名字空间][第18章 面向对象][第19章 模板][第20章 异常处理][第21章 其他]
第十六章 流
目的: 流、使用流管理输入和输出、流读写文件;
时间: 2001/12/28 10:08:20--> 2001/12/28 11:55:36
(备注: VC++6 24小时(2001/12/28 10:08:20--> ) 第章
16.1 流和缓冲区
streambuf类: 管理缓冲区;成员函数提供填充、清空、清除、和在其他情况下处理缓冲区的功能;
ios类: 输入和输出流类的基类;有一个成员变量是streambuf对象;
istream和ostream类: 从ios类派生,分别用于专门管理输入和输出行为;
iostream类: 从istream和ostream类派生;提供向屏幕写数据的输入和输出功能;
输入和输出的状态标志: 可以使用布尔函数eof(),bad(),fail(),good()来检查;
cin: 处理来1自标准输入设备(键盘)的输入;
cin.get(): 需要检查空格在内的每个字符时,必须使用带开带字符参数的.get();
cin >>: 当需要跳过空格时,必须使用提取运算符(>>);
cin.getlint(): 丢弃结束字符;
cin.ignore(): 忽略行结束(EOF)或文件结束(EOF)之前的剩余字符;
cin.peek(): 查看,并不提取下一个字符;
cin.pubback(): 向输入流中插入一个字符;
注: peek和putback一般用来分析字符串和其他数据,如在编写编译器时使用;
cout: 处理来自标准输出设备(屏幕)的输出;
endl: 可以清除缓冲区;
cout.put(): 向输出设备写单个字符;
cout.write(): 可以设定输出的最大字符数;
cout.width(): 只改变下一个输出字段的宽度;然后马上恢复默认值;如cout.width(25);
cout.fill(): 设置填充字符;如 cout.fill('*');
cout.setf(): 设置标志;如: cout.setf(ios::showpoint)
printf(): (stdio.h)标准C函数,使格式化容易得多;
最简单的使用形式: 格式化字符串; 如 printf("%s%5d";
s, y)
但不提供类型安全;也不支持类;
cerr: 处理向标准错误设备(屏幕)的非缓冲输出;不进行缓冲,立即被写出;
clog: 处理输出到标准错误设备(屏幕)的的缓冲错误信息;常常重定向到日志文件;
fstream类:提供了文件的输入和输出,实现文件I/O;
支持正常的插入和提取运算符;
支持用来存储和恢复大型二进制 对象的函数read()和write();
[第16章 高级继承][第16章 流][第17章 名字空间][第18章 面向对象][第19章 模板][第20章 异常处理][第21章 其他]
第十七章 名字空间
目的: 名字空间、如何名字空间解析函数和类;
时间: 2001/12/29 9:23:40--> 2001/12/29 11:50:32
(备注: VC++6 24小时(2001/12/29 9:23:40--> ) 第章
17.1 名字空间
名字空间和类的区别: 名字空间类似于一个类的声明;
名字空间的结束不加分号;
名字空间是开放的、类是封闭的;
using: 在C ++标准库中有一个std的名字空间,要使用using声明;
using命令: 将一个名字空间中所有名字放到当前作用域;
using声明: 将一个特定的名字空间放到当前作用域;
名字空间别名: 本质上类似于typed;允许用户为一个已命名的名字空间创建另一个名字;
未命名的名字空间: 用于包装一个声明的集合;与用static声明的一个全局变量一样;
[第16章 高级继承][第16章 流][第17章 名字空间][第18章 面向对象][第19章 模板][第20章 异常处理][第21章 其他]
第十八章 面向对象的分析和设计
目的: 分析方法,设计方法,如何使用统一建模语言(UML)来分析和设计;
时间: 2001/12/29 14:22:30--> 2001/12/30
(备注: VC++6 24小时(2001/12/29 14:22:30--> ) 第章
18.1 软件设计
模型:创建现实世界的有意义的抽象; 有两个有意义的部分
建模语言: 软件开发的通用语言是UML(统一建模语言);
只不过是一种让我们这样在纸上画出我们的模型手段;
是面向对象分析和设计中最不重要的一方面;
软件设计的过程: 是需要多次重复的;
瀑布式开发:
一个阶段的输出成为下一个阶段的输入并且没有反馈;
在设计过程中,需求是经过细化的,并由顾客认可的;然后把固定下来的需求送给设计者;
重复性设计: 找出要构造的东西,设计一个解决方案,并实现那个设计;
UML: 一种丰富的建模语言,可以获得任何数目的关系;分析中获得的关系主要是以下三方面:
普遍性: 意味着派生出的对象是基对象的一个子类型;常常等同于“继承”;
普遍性: 描述关系;
继承: 是普遍性的程序实现,是我们用代码表现普遍性的方式;
包容: 一个对象由多个对象组成;
关联:两个对象互相知道对方并且他们以某种方式相互作用;
包: 将使用情况按包分组;包就像目录或文件夹,是建模对象的集合(类、活动者等);
18.2 重复性设计:
概念化: “概览性”的东西,描述卓越思想的单一语句;
所有的成功软件都从概览开始;
开发的指导原则;
概览人必须要注释核心概念以确保生成的东西能高度可靠的反映核心概览;
需求分析: 理解需求的过程; 目的是要明确及获得这些需求;结果是产生一份需求文档;
需求文档的第一部分分析是使用情况分析、还有应用分析、系统分析、计划文档;
使用情况:很少注重界面,不关心系统的内部细节;
以下是一些定义:
使用情况: 描述如何使用情况;
领域专家: 具备你要制作的产品所属领域的专门知识的人员;
活动者: 任何与本系统进行交互的人或系统;基本特征是位于系统外部、与系统交互;
分析、设计和实现的驱动力是使用情况,使用情况的分析步骤如下:
辩识活动者:每一个活动者用不同的方法与系统交互;在使用情况中要获取这些交互情况;
决定第一个使用情况:
通过集中分析在这一领域中的对象的属性详细分析活动者的使用情况;
完善情况列表;
给每一个其他活动者开发使用情况;
建立领域模型(领域模型是一份文档):用一个细化的领域模型来充实需求文档;
建立方案:方案是区别使用情况相邻元素的一组特定情形的描述;
制定准则:制定一些准则为每个方案提供文档说明;
要为每个使用情况和每个方案命名;
每个方案要包括: 先决条件、触发器、行动、反馈、逻辑描述、结束条件;如
使用情况: 顾客提取现金;
方 案: 从活期帐户中成功提取现金;
先决条件: 顾客已登录到系统;
触 发 器: 顾客请求提款;
描 述: 顾客选择从活期帐户中提取现金,帐户有足够的金额,ATM机器中有足够的现金(略);
应用分析: 特定顾客的必要条件;需求文档要获取顾客的意图;
系统分析:
计划文档:
设计: 建立类的模型的过程;根据设计编制代码;
实现: 将设计写成代码;
测试: 确保;
发行: 叫交给顾客;
参考书籍: Jesse Liberty Teach Yourself C + + in 21 Days(Third Edition);
编译器: VC++6.0
(第一部 http://www.delphibbs.com/delphibbs/dispq.asp?lid=782535)
(第二部 http://www.delphibbs.com/delphibbs/dispq.asp?lid=787392)
如有什么不正确之处,请指点,谢谢大家;
 
能不能把delphi 一些经验写一下,如类的用法。
 
好,请C++继续;
 
有点困惑,尽管我们一直在努力 .
 
据说学C永远不会吃亏!!
 
我曾经学了一年的BC++,我不知道是好是坏?:(
 
学C++,写游戏,很好。
 
我正在学C++,谢谢。
 
我一直在努力,可以共同进步!snjat@sina.com
 
听课中.....
dream40@etang.com
 
多人接受答案了。
 
多人接受答案了。
 
顶部