- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 面向对象程序设计概论;1.1 程序设计范型的概念;程序设计范型就是程序设计过程使用的观察问题域的方法﹑使用的抽象手段﹑共享的概念集以及程序构成的某种规定 。
一个规范化的软件开发过程一般由项目计划﹑系统分析﹑系统设计﹑编码﹑测试和维护几个阶段构成。程序设计一般指从系统设计的后半部分到编码这段工作。软件开发过程中,软件开发方法学规定了开发过程中各阶段所使用的理论﹑过程﹑方法与工具,也就是说,它决定了在进行程序设计时人们观察问题域的角度以及由此得到的关于客观世界的视图。所以,程序设计过程中所使用的观察问题域的方法﹑使用的抽象手段,共享的概念集和最终程序的构成方式都取决于程序设计范型。 ;下面是不同程序设计范型的程序段的例子。
例1.1 面向过程程序的例子
int push(stack* a, int data)
{
if (a-top STACK_SIZE)
{
a-data[a-top++] = data;
return 1;
}
else
{
error(push(stack *,int):stack full!\n);
return 0;
}
};例1.2 面向对象程序的例子
class Singleton{
public:
static inline T* instance();
private:
Singleton(void){}
~Singleton(void){}
//….
};例1.3 逻辑程序的例
simp(E,E):-atomic(E),!
simp(E,E):-var(E),!
simp(X-X,0).
…
例1.4 函数程序的例
(DE EQUAL (X Y )
(COND ((EQ X Y) T)
((ATOM X) NIL)
((ATOM Y) NIL)
(( EQUAL (CAR X) (CAR Y))
(( EQUAL (CDR X) (CDR Y));1.2 面向过程的程序设计方法;1.2.1 结构化程序设计方法;2.程序模块化
结构化程序的结构是以模块为构成单元的。结构化程序设计方法要求设计的程序具有模块化结构。模块是单独命名﹑可编址的程序部分。程序的层次结构正是模块化的体现。一般地,模块具有一定的功能,各个模块组装在一起,可以实现对整个系统的要求。在面向过程程序设计范型的程序设计语言中,过程和函数﹑块结构等是实现程序模块化的基本机制。模块大小的决定常常要取决于程序效率的考虑。 ;3.使用结构化控制语句
结构化程序设计方法要求设计的程序只使用三种基本的控制语句,它们分别是顺序语句﹑循环语句和分支选择语句。这三种控制语句的共同特点是,它们都只有一个入口和一个出口。凡是不具备这一特点的控制结构,都不符合结构化程序设计方法的要求。 ;A;1.2.2 面向过程的程序结构;;例1.5函数与函数调用的例
float func1(floatX,floatY) {
float Z;
Z=X+Y/2;
retun Z;
}
main () {
float a,b,c;
scanf (“%f,%f”,a,b);
c=func1 (a,b);
printf (“%f”,c)
};1.2.3 用结构化程序设计方法求解问题的基本过程;图1.3 SC图中的基本模块;SC图中,矩形表示模块,箭线表示调用关系,带标记的箭线表示数据和它们的流向。一个使用SC图表示的分解示于图1.4中。 ;模块的实现过程是一个自底向上的过程,首先实现最底层的功能模块,然后逐步将它们组装到它们的上级模块中去。组装过程可以按照SC图表示的程序结构自底向上进行。 ;1.3 面向对象程序设计方法 ;1.3.1 从面向过程到面向对象;1.观察问题的视角
例如,当人们审视前面提到过的高校学生教材购销系统时,首先会想到的是学生和教材处这两个实体。因为,教材购销的所有活动都是围绕这两个实体进行的。显然,实体具有属性,例如,学生实体具有属性:学号、姓名、年龄、系别、专业等。实体也可以有行为,例如,学生实体可以有上课、考试、运动、做实验等行为。属性和行为构成了实体的全部内容,我们可以用属性和行为来描述实体,并以此来区分不同的实体。实体的状态由属性的值来决定,行为反映了可以加在实体上的操作,操作可以改变实体的属性值,从而改变了实体的状态。例如,000512、李丽、18、电子系、CS是学生实体在某个时刻的一组属性值,它反映了学生李丽当前的状态,她的年龄是18岁
原创力文档


文档评论(0)