面向对象分析方法的步骤和特点

使用MVC进行项目开发已经有一段时间了,在这段时间里感触最深的就是自己对宏观性面向对象分析方法的缺乏。面向对象分析是当今流行的系统分析方法之一,下面就谈谈在做项目的过程中我的一些小经验。

面向对象程序设计实验报告 面向对象程序设计实验报告三面向对象程序设计实验报告 面向对象程序设计实验报告三


面向对象程序设计实验报告 面向对象程序设计实验报告三


在面对简单系统时程序员可以很顺利的提出问题的解决方案,并且一般情况下都是可行的。这是由于问题域关系简单,所涉及到的内部构造、联系比较容易解释。而对于当前越来越复杂的系统,其问题域也就显示的越来越复杂,而且内部的关系也不是很容易解释,有些大的系统常常超出了人的解决问题的能力。在这种情况下,以往的面对过程的解决方法已经不能满足日益增长的复杂系统分析的需要,在这种情况下,面向对象的分析方法就显得尤为总要了。

在面向对象设计领域中,在横向上把问题域分为数个不同的、低耦合、高内聚的问题域,而在纵向上又继续分解各个不同的小的问题域,分解为叶问题域,从而解决问题。在面对对象分析方法中,用数个对象间的消息传递来完成整个问题。

下面看一看复杂系统的5个属性:

1. 杂性经常是以层次的形式表现出来,复杂系统是由相互关联的子系统组成,而这些子系统又是由他们各自的子系统构成,并由此类推到层的基本构件。

2. 对系统中最基本的构件的选择是任意的,而且在很大程度上取决于系统观察者的判断力。

3. 一般而言,各构件内的连接总是要强于构件间的连接。在从构件的低频动态中分离出高频动态时,这一属性是相从多态当有用的。这是因为高频动态涉及到各部件的内部结构,而低频动态涉及到构件间的交互。

4. 层次系统通常都是由仅仅少数不同的子系统通过不同的排列组合方式组成。

5. 我们发现正运行的复杂系统总是由以前运行的简单系统演化而来……任何胡乱凑合设计出来的复杂系统都不可能正常运转,也不可能被修补好。我们必须由运行中的简单系统开始。

对于点,正像我上面所说的那样,系统是层次结构的。能够给一个复杂的系统进行正确的层次分析,才能够保证对系统的正确估计,包括可行性、可维护性、可扩展性……等等。而且对于日后对该系统进行维护(maintenance)、演化(evolution)、维持(preservation)都能够很好的支持。

对于其中的第二点,强调了观察者的判断力,其实我认为其中也包括观察者的身份角度。对于一个系统而言,观察者并不是只进行分析设计的工程师,编码阶段的程序员,还应该包括用户等所有这些同该系统有关的人员。作为不同的人员,对于系统就有不同的观察点、观察角度、身份等特殊因素。因此在不同身份的人(指参与者)甚至同一身份的人眼中说观察到的系统特性都是不尽相同的。在大学里大家都接触过透明性的概念,这就是不同观察者所观察角度不同的直观反应。对于用户来说,基本上底层的作、算法、通讯对于他们来说都是透明的,他们根本不用理会(其实也不知道)内部用了什么。而对于一个负责某模块的程序员来说就不会考虑其他模块的实现,对于他们来说其他模块是透明的,他们只需要负责管理好提供的模块接口就OK了。

对于第三点,讲的就是面对对象分析设计的方向,在面对对象分析设计系统时,被分解的各个模块一定要做到高内聚、低耦合。有良好高内聚、低耦合系统常常会很容易维护,一个地方改动通常不需要牵扯到大的改动,维护行强。而且对于像VC程序这种更要求效率的程序来说,高内聚、低耦合也可以提高程序的运行期效率,应为对象内部的调用一般情况下会相比模块间的调用占用更少的执行时间,这样将高频动态封装在一个对象内部就会一定程度上提高程序运行期执行效率。

第四点则说明了面向对象程序设计对程序设计可复用性的优点。在这点中所“层次系统由仅仅少数不同的子系统构成”那么多数子系统在不同的复杂系统中都是能够重复使用的。比如说建筑一栋大厦和建筑桥梁,虽然两者都是复杂的系统,但是对于其结构中就会有很多相似甚至相同之处,没有必要建筑好大厦回头建筑桥梁的时候又要重新设计每一快砖瓦。

第五点提醒我们在系统设计时,尽量使用以往能够正常运行的子系统来重新构件新的系统。这一点不仅说明第四点中的复用性,而且也说明了一个我们常常要犯的错误。就是将并没有通过严格测试的子系统,匆忙的加入到大系统中,这样做不利于对系统的基层,常常引入了其他错误,使得系统频频崩溃,最会导致系统的重新分析。

这是我对面向对象的一点心得体会,虽然我们大家在平时工作中所面对的问题、问题域不同,使用的开发工具不同,但是面向对象是一种思维方式,有利于分析、解决问题的一种方法,并不和任何语言挂钩(当然语言对于面向对象特性的支持程度有所不同)。所以希望各位同事能够尽量使用科学的方法分析解决问题,形成一种设计模式,以供大家互相交流。

2.C语言可以编写作系统和应用软件,是考等级证的一种十分重要的程序设计语言,可是我还是不明白C语言究竟有什么具体实际的用途?软件设计是一种艺术,也是一门工程学。

在JAVA中什么是面向对象的程序设计方法?有哪些主要特征?

其实不管是ja还是都是属于

面向对象程序设计

语言,归根结底,它们都离不开面向对象,所以什么是面向对象呢,意思就是object-oriented

将对数据和对数据的作作为一个相互依赖的关系、不可分割的整体,才用信息隐蔽技术和

数据抽象

,更简单地解决现实当中的问题!

上面的概念比较抽象,这里涉及到一个类的问题,我通俗地给你说吧,就是把一个事物抽象出来成为类,而这个类的实例就是对象,类跟对象的关系其实就相当于

设计图纸

跟实物之间的关系,面向对象其实就是面向于类的!

面大对象的三大特性:封装、继承、

!封装的意思其实很简单:就像你使用

优盘

一样,优盘被封装在一个盒子里面,你根本

不需要知道

它是怎么工作的,你只要知道怎么用它就行了,当然用的时候是使用US开门(){B接口,对封装的类进行调用的时候也是用特定的接口进行调用的!

继承:

继承是指一个对象从另一个对象中获得属性的过程.是

面向对象程序设计

的三大原则之二,它支持按层次分类的概念.例如,

波斯猫

是猫的一种,

猫又

是哺乳动物的一种,哺乳动物又是动物的一种.如果不使用层次的概念,每个对象需要明确定义各自的全部特征.通过层次分类方式,一个对象只需要在它的类中定义是它成为的

各个属性,然后从父类中继承它的通用属性.因此,正是由于继承机制,才使得一个对象可以成为一个通用类的一个特定实例.一个深度继承的子类将继承它在类层次中的每个祖先的所有属性.

继承与封装可以互相作用.如果一个给定的类封装了某些属性,它的任何子类将会含有同样得属性,另加各个子类所有得属性.这是面向对象程序在复杂性上呈线性而非几何增长的一个重要概念.新的子类继承其所有祖先的所有属性.子类和系统中的其他代码不会产生无法预料的交互作用.

就更好理解了,

多态是指一个方法只能有一个名称,但可以有许多形态,也就是程序中可以定义多个同名的方法,用"一个接口,多个方法"来描述.可以通过方法的参数和类型引用.

下面我给你讲一}//飞行道具个封装、继承、

组合起来的例子:

在由封装,继承,

所组成的环境中,程序员可以编写出比

面向过程

模型更健壮,更具扩展性的程序.经过仔细设计的类层次结构是重用代码的基础.封装能让程序员不必修改公有接口的代码即可实现程序的移植.多态能使程序员开发出简洁,易懂,易修改的代码.例如:汽车

从继承的角度看,驾驶员都依靠继承性来驾驶不同类型(子类)的汽车,无论这辆车是轿车还是卡车,是奔驰牌还是

菲亚特

牌,驾驶员都能找到方向盘,手刹,换档器.经过一段时间驾驶后,都能知道手动档与

自动档

之间的别,因为他们实际上都知道这两者的共同超类:传动装置.

从封装的角度看,驾驶员总是看到封装好的特性.刹车隐藏了许多复杂性,其外观如此简单,用脚就能作它.发动机,手刹,轮胎大小的实现对与刹车类的定义没有影响.

刹车系统

有正锁反锁之分,驾驶员只用脚踩刹车停车,同样的接口可以用来控制若干种不同的实现(正锁或反锁).

这样各个的构件才被转换为汽车这个对象的.同样,通过使用面向对象的设计原则,程序员可以把一个复杂程序的各个构件组合在一起,形成一个一致,健壮,可维护的程序

Delphi面向对象的编程方法(七)

答:大型软件一般用c++语言,比如vc++,borlandc++,那肯定要c基础的。

程序库单元的初始化部分

初始化当前库单元所使用的数据 或是通过intece部分将数据提供给其他应用程序 库单元使用时 您可以在库单元中加入一个initialization部分 在库单元的end前加上您的初始化语句 当一个应用程序使用一个库单元时 在库单元中的initialization部分会先于其他的代码执行 如果一个应用程序使用了多个库单元 则每一个库单元的初始化部分都会在所有的程序代码前执行

使用Delphi的可视化部件及其库单元

当您在窗体中加入可视化部件时 如果该部件在可视化部件库中 Delphi会在您的库单元的intece部分的uses子句中自动加上需要使用的库单元名称 但有些对象在Delphi的环境中并没有可视化部件存在 例如 您想在库单元中加入一个预定义的信息框 则您必须把MsgDlg库单元加入您的uses子句中 如果您要使用TPrinter对象的话 必须将Printer库单元加入uses子句中 在在线帮助中可以查到对象所属的预定义库单元

Number := Unit Calculate( );

您可以在任何标识符如属性 常量 变量 数据类型 函数等之前加上库单元的名称 您可以在自由地在任何Delphi库单元中加入程序代码 但不要改变由Delphi生成的程序

建立与窗体无关的新库单元

如果您想在工程中建立一个和任何窗体无关的新库单元 可以现选用File|New Unit 这时一个新的库单元加入了工程 新库单元的代码如下

unit Unit ;inteceimplementationend

Delphi将根据您的工程中的文件数目为您的库单元选择名称 您可以在程序骨架间加入您的程序代码

当编译您的工程时 这个新加入的库单元会被编译为一个具有 DCU后缀的文件 这个新生成的文件是链接到工程的可执行文件上的机器代码 将库单元加入工程

将库单元加入工程是比较简单的 无论是您自己建立的库单元还是Delphi建立的与窗体有关的库单元 如果已经完成 则先打开您想加入库单元的工程(可以用Open Project打开工程) 再选用File|Open File 然后选择您想加入的源程序( PAS文件) 并选择OK即可 则库单元被加入到应用程序中

用Delphi的对象进行编程

Delphi是基于面向对象编程的先进开发环境 面向对象的程序设计(OOP)是结构化语言的自然延伸 OOP的先进编程方法 会产生一个清晰而又容易扩展及维护的程序 一旦您为您的程序建立了一个对象 您和其他的程序员可以在其他的程序中使用这个对象 完全不必重新编制繁复的代码 对象的重复使用可以大大地节省开发时间 切实地提高您和其他人的工作效率

什么是对象

一个对象是一个数据类型 对象就象记录一样 是一种数据结构 按最简单的理解 我们可以将对象理解成一个记录 但实际上 对象是一种定义不确切的术语 它常用来定义抽象的事务 是构成应用程序的项目 其内涵远比记录要丰富 在本书中 对象可被理解为可视化部件如按钮 标签 表等

了解对象 最关键的是掌握对象的特性 一个对象 其最突出的特征有三个 封装性 继承性 多态性

对对象最基本的理解是把数据和代码组合在同一个结构中 这就是对象的封装特性 将对象的数据域封闭在对象的内部 使得外部程序必需而且只能使用正确的方法才能对要读写的数据域进行访问 封装性意味着数据和代码一起出现在同一结构中 如果需要的话 可以在数据周围砌上 围墙 只有用对象类的方法才能在 围墙 上打开缺口

对象的继承性

继承性的含义直接而且显然 它是指把一个新的对象定义成为已存在对象的后代 新对象继承了旧类的一切东西 在往新对象中添加任何新内容以前 父类的每一个字段和方法都已存在于子类中 父类是创建子类的基石

对象的多态性

多态性是在对象体系中把设想和实现分开的手段 如果说继承性是系统的布局手段 多态性就是其功能实现的方法 多态性意味着某种概括的动作可以由特定的方式来实现 这取决于执行该动作的对象 多态性允许以类似的方式处理类体系中类似的对象 根据特定的任务 一个应用程序被分解成许多对象 多态性把高级设计处理的设想如新对象的创建 对象在屏幕上的重显 程序运行的其它抽象描述等 留给知道该如何完美的处理它们的对象去实现

通过Delphi实例了解对象

让我们结合Delphi的实例讨论对象的概念:

当您要建立一个新工程时 Delphi 将显示一个窗体作为设计的基础 在程序编辑器中 Delphi将这个窗体说明为一个新的对象类型 并同时在与窗体相关联的库单元中生成了创建这个新窗体对象的程序代码

unit Unit ;inteceuses SysUtils Windows Messages Classes Graphics Controls Forms Dialogs;typeTForm = class(TForm) {窗体的类型说明开始}private{ Private declarations }public{ Public declarations }end; {窗体的类型说明结束}varForm : TForm ; {说明一个窗体变量}implementation{$R DFM} end

新的窗体类型是TForm 它是从TForm继承下来的一个对象 它具有对象的特征 含有域或方法 由于您未给窗体加入任何部件 所以它只有从TForm类中继承的域和方法 在窗体对象的类型说明中 您是看不到任何域 方法的说明的 Form 称为TForm 类型的实例(instance) 您可以说明多个对象类型的实例 例如在多文档界面(MDI)中管理多个子窗口时就要进行这样的说明 每一个实例都有自己的说明 但所有的实例却共用相同的代码

设您向窗体中加入了一个按钮部件 并对这个按钮建立了一个OnClick处理过程 再查看Unit 的源程序 会发现TForm 的类型说明部分如下

typeTForm = class(TForm)Button : TButton;procedure Button Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;

现在TForm 对象有了一个名为Button 的域 它是您在窗体中加入的按钮 TButton是一个对象类型 Button 是Tbutton的一个实例 它被TForm 对象所包含 作为它的数据域 每当您在窗体中加入一个部件时 部件的名称就会作为TFom 的域加入到类型说明中来 在Delphi中 您所编写的处理过程都是窗体对象的方法 每当您建立一个处理过程 就会在窗体的对象类型中说明一个方法

当您使用Object Inspector来改变对象(部件)的名称时 这个名称的改变会反映到程序中 例如 在Object Inspector中将Form 的Name属性命名为ColorBox 您会发现在类型说明部分 会将前文的TForm 改为

TColorBox=class(TForm);

并且在变量说明部分 会说明ColorBox为TColorBox类型的变量 由Delphi自动产生的处理过程名称会自动改为TColorBox分类性是指将具有一致的数据结构(属性)和行为(作)的对象抽象成类。一个类就是这样一种抽象,它反映了与应用有关的重要性质,而忽略其他一些无关内容。任何类的划分都是主观的,但必须与具体的应用有关。 Button Click 但您自行编写的实现部分的代码却不会被自动修改 因此 如果您在改变Name属性前编写了程序 则您必须将处理过程中的对象名称进行改变 所以 原先的Form Color要改为ColorBox Color

从一个对象中继承数据和方法

前面的TForm 类型是很简单的 因为它只含有域Button 和方法Button Click 但是在这个窗体上 您可以改变窗体的大小 加入或删除窗体的最小化按钮 或设置这个窗体为MDI界面 对于一个只包含一个域和方法的对象来讲 您并没有看到显式的支持程序 在窗体上单击鼠标或用Object Inspector的上端的Object Selector选中Form 对象 按动F 查阅它的在线帮助 您会在Properties和Mod中找到它的继承到的全部属性和方法 这些是在TForm类型中说明的 TForm 是TForm的子类 直接继承了它所有的域 方法 属性和 例如窗体的颜色属性Color就是在TForm中说明的 当您在工程中加入一个新窗体时 就等于加入了一个基本模型 通过不断地在窗体中加入部件 您就自行定义了一个新的窗体 要自定义任何对象 您都将从已经存在的对象中继承域和方法 建立一个该种对象的子类 例如对象TForm 就被说明为对象TForm的子类 拥有一个窗体部件的基本属性或方法 只有当您在窗体中加入了部件或编写了处理过程时 Form 才成为您自己的类型

一个比较特殊的对象是从一个范围较广或较一般的对象中继承下来的 它是这个特别对象的祖先 这个对象则称为祖先的后代 一个对象只能有一个直接的祖先 但是它可以有许多后代 TForm是TForm 类型的祖先 所有的窗体对象都是TForm的后代

用F 查阅窗体的在线帮助时 您会发现TForm被称为ponent(部件) 这是因为所有的部件都是对象

在这个结构中所有的部件都是对象 部件类型TComponent从TObject类型中继承数据和程序代码 并具有额外的可以用作特殊用途的属性 方法 所以部件可以直接和用户打交道 记录它的状态并存贮到文件中等等 控制类型TControl从TComponent中继承而来 又增加了新的功能 如它可以显示一个对象 在上图中 虽然TCheckBox不是直接由TObject继承来的 但是它仍然有任何对象所拥有的属性 因为在VCL结构中 TCheckBox终究还是从TObject 中继承了所有功能的特殊对象 但它还有些自行定义的独到的功能 如可以选择记录状态等

对象的范围

关于对象的范围

一个对象的范围决定了它的数据域 属性值 方法的活动范围和访问范围 在一个对象的说明部分说明的数据域 属性值 方法都只是在这个对象的范围中 而且只有这个对象和它的后代才能拥有它们 虽然这些方法的实际程序代码可能是在这个对象之外的程序库单元中 但这些方法仍然在这个对象的范围内 因为它们是在这个对象的说明部分中说明的

当您在一个对象的处理过程中编写程序代码来访问这个对象的属性值 方法或域时 您不需要在这些标识符之前加上这个对象变量的名称 例如 如果您在一个新窗体上加入一个按钮和一个编辑框 并为这个按钮编写OnClick处理过程

procedure TForm Button Click(Sender:Tobject);beginColor :=clFuchsia;Edit Color :=clLime;end;

其中的行语句是为整个窗体Form 着色 您也可以编写如下 Form Color :=clFuchsia;

但您可以不必加上Form 因为Button Click方法是在TForm 对象的范围里 当您在一个对象的范围中时 您可以省略所有这个对象中的属性值 方法 域之前的对象标识符 但是当您编写第二个语句改变编辑框的底色时 因为此时您想访问的是TEdit 对象的Color属性 而不是TForm 类型的 所以您需要通过在属性前面加上编辑框的名称来指明Color属性值的范围 如果不指明 Delphi会象个语句一样 将窗体的颜色变成绿色 因为Edit 部件是在窗体中的 它是窗体的一个数据域 所以您同样不必指明其从属关系

如果Edit 是在其他窗体中 那么您需要在编辑框之前加上这个船体对象的名称了 例如 如果Edit 是在Form 之中 那它是Form 说明的一个数据域 并位于Form 的范围中 那么您需要将第二句改为

Form Edit Color := clLime;

而且需要把Unit 加入Unit 的uses子句中

lishixinzhi/Article/program/Delphi/201311/24965

编写一个C++程序,根据用户输入的举行矩形的长和宽,计算矩形的周长和面积,并将运算结果在用户屏幕输出。

首先是不容易读懂,因为常识性的认为人是不会飞的,人会飞的话那肯定是个鸟人。所以会让人摸不着头脑。

#include

using namespace std;

class Rect{

private:

double a,b;

public:

Rect(double a,double b)

{Rect::a=a;

Rect::b=b;

}double getArea()

{return ab;

}double getCircu()

{return (a+b)2;

}};

int main()

{cout<<"请输入长和宽"<

double a,b,z}#include 我.h,c;

cin>>a>>b;

Rect r(a,b);

z=r.getArea();

c=r.getCircu();

cout<

return 0;

}

#include

main()

{double a, b, z, c;

cin>>a>>b;//输入长和宽

z=ab;//计算面积

c=2(a+b);//计算周长

cout<<"矩形面积"<< z<<" "<<"矩形周长"<< c<

}

什么是面向对象的程序设计

property name:String;

什么是面向对象的设计思想?也许有不少初学者对这个概念还有许多不明白的地方,特别是这个处于新旧思想交替的时代,许多人刚刚学完现在看来是快要淘汰的只是面向过程的

再说吧

语言。他们的脑子还没有脱离面向过程思想的束缚,抬头却发现,“面向对象”早已经流行开来,这个陌生的词漫天飞舞。随便拿起一本流行计算机技术书籍,那里会没有“面向对象”的字眼!于是心中便惶惑了:什么叫“面向对象”?不感兴趣者,一带而过;有志于在这方面发展的,匆忙找到一本有关书籍来啃究竟什么是“面向对象”。然而,要突破思想的束缚,说难也不难,说到要深刻认识却也不容易。笔者在做了一些轻量级的工作后,颇以为有点心得,不怕贻笑大方,写出已供广大同行批评指正。

“对象(Object)”一词,早在十九世纪就有现象学胡塞尔提出并定义。对象是世

界中的物体在人脑中的映象,是人的意识之所以为意识的反映,是做为一种概念而存在的先念的东西,它还包括了人的意愿。举例说明吧。当我们认识到一种新的物体,它叫树,于是在我们的意识当中就形成了树的概念。这个概念会一直存在于我们的思维当中,并不会因为这棵树被砍掉而消失。这个概念就是现实世界当中的物体在我们意识当中的映象。我们对它还可以有我们自己的意愿,虽然我们并不需要付诸实现——只要在你的脑中想着把这棵树砍掉做成桌子、凳子等——我们就把它叫做意向。于是,对象就是客观世界中物体在人脑中的映象及人的意向。只要这个对象存在我们的思维意识当中,我们就可以籍此判断同类的东西。譬如,当我们看到另外一棵树是,并不会因为所见的棵树不在了失去了供参照的模板而不认识这棵树了。当我们接触某些新事物时,我们的意识就会为这些事物确立一个对象

当然这个过程是怎么形成的,那就不是我们所能讨论的问题了。

上面所说的对象研究的是一般意义上的问题,因而它可以外推到一切事物。我们经常

所说的“对象”,一班指的是解决信息领域内所遇到问题的方法。特别是应用软件技术来解决问题的方法。如我们经常碰到的面向对象的编程(Object-Oriented Programming)、面向对象的分析(Object-Oriented Analysis)、面向对象的设计(Object-Oriented Design)等。应用前面所介绍的关于对象的概念,可以对这些问题做进一步的分析。在面对较复杂的系统,我们可以将它作为一个对象来进行分析。一个系统(解决某个问题的解决方案)作为一个对象,可以由多个部分组成。同样,这个对象也可以由多个对象组成。对于同类的事物,可以由一个对象来表示。这样做的益处是显而易见的,它灵活而高效,可以大大减轻设计人员的工作量,简化实际的模型。举一个例子。在关系型数据库的设计当中,我们可以把一个元组当作对象,给它定义一组作方法。这些方法将适用于所有元组,从而我们不必在更大的范围内去细致的考虑不同的元组(如判断一个元素是否合法):因为它们有一组公共的面向本身的方法,它们“自己”可以“解决”自己的问题。更上一层的对象可以是一个表、视图等。表对象在元组对象的基础上又有它们自己的方法,如增加、删除等。从这个层面上讲,它也只需要做“自己”的事情,因为有元组对象的支持,它无须去考虑像元素是否合法这类的事情。甚至,有时为了满足我们还可以将元素或表群当作时对象并定义它们自己的方法。这样,更能显示面向对象的优势。

上面所讨论的可以说是面向对象的分析方法。在具体的设计过程当中,还应该采用适当

的方式。因为面向对象的思想固然很先进,如果做得不好的话,同样不能达到预期的效果。这主要表现在处理对象与对象的关系上没有做好,对象与对象的层次不分明。如上面所举得关系型数据库得例子,如果在元组层面上得对象过多得考虑一个表对象得因素,或一个表层面上对象过多地考虑一个元组对象的因素,甚至去考虑元素层面上的因素,这些都不是好的面向对象的设计方法。这一点,在语言实现方面,Ja比C更有优势,因为它不允许多重继承,从而使对象之间的关系更明确。谁也不会否认C的功能更强大,但是它也要由次付出巨大代价——当现在代码库发展到一定程度、一定规模时,个对象之间的层次关系将变得异常复杂,给后继使用者得学习、理解带来很大的困难,应用上很难把握。另外,虽然C具备面向对象的处理能力,但它还是保留了很多面向过程的东西。用C完全可以不用面向对象的思想来进行程序设计,当然人们不会这样去做——除了那些只是把C看成是C扩充的初学者,这就为以后的发展埋下了隐患。在者一方面,Ja的限制更多一点。就者一点还远远不够。搞开发的是人,开发方法是由人决定的。要应用面向对象的方法开发出的软件,必须要求开发人员具有良好的面向对象的思想。好的工程师可以利用适当的工具开发出的软件——而不在乎他所使用的语言工具——Ja、C、Object Pascal、Ada等。

要能应用面向对象的思想熟练得做好系统分析、设计、实现(编程),首先要求开发人

员知道什么是对象,什么是面向对象得概念,否则是谈不上应用面向对象得思想搞软件开发了。希望读者能在看到我在前面的不太严密、详细的论述之后可以对“对象”这个概念由一个初步的了解,同时也希望有不同看法的同行提出批评。其次,还要求开发人员有比较丰富的开发经验。否则,光谈理论,那是不能真正体会“面向对象”的含义的。尽管如此,我们还是可以定出一般的规则的。抛开生命周期的其它阶段,对一个确立的系统一般可以进行以下几个过程:

一、首先应用面向对象的思想进行系统分析。仔细的划分系统的各个部分,明确它

们之间的层次关系,然后将各个部分作为一个对象进行功能上的分析。例如,要设计一个用户界面,它可能由几个主要的窗体组成:主窗体MainFrame、功能性子窗体以及对话对话框Dialog。其中,MainFrame中可能还包括菜单、工具条、文本框、状态条等Windows组件。对于要完成一些重要功能的组件,我们可以单独将它作为一个对象看待,在具体的实现中,用单独一个类来表示。而一些并不是很重要的、只是在过程中需要用到的组件,就可以将它们集成到其他对象中去。要明确每个对象自己的任务——不要让它有缺陷,也不能越殂代庖。各个对象之间的关系通过过程、内容、功能等耦合来实现。

实际上,如果你是用Ja进行开发,你会发现swing组件本身就非常好用,因为它们

之间的关系是很分明的——你无须去理解分清象C中的组件那样复杂的关系。在开发你自己的组件时,也需要力求达到这样的效果。

二、其次时应用面向对象的思想进行系统设计。其实在真正做好了系统分析的工作之后,进行设计就比较轻松了。这段时间只要进一步确定各个对象的功能以及各个对象之间的关系

为了能够更好地帮助实现人员明白各个对象之间的关系,可以利用一些工具将这些组件的关系表示出来,统一建模语言(Uniformed Mole Language,UML)就是这样的一种好东西。它不仅可以现在帮助开发人员了解整个系统,也为以后的维护工作提供一个档案文件,给以后的工作提供巨大的方便。

C语言有什么作用,编写软件或者游戏是用C语言编写的吗?

2.继承:继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。

1.C语言究竟能有什么用?

答:c语言是很多语言的基础,像什么c++,ja,都是以c为基础的。

答:等你真正接触到了c语言编程你就知道c有什么用处了。举个很简单的例子,比如你要求一个算法,最简单的方法就是用计算器,可是对于有的带算术式的计算,你还用计算器那就不方便了吧,此时自己编一程序就很好的解决这问题。特别是用在工业控制方面,用c编程序控制外围部件进行数据采集,比如串口编程等等

3.现在流行的Windows作系统是用什么语言编写的,或者还是用多种语言混合编写的?(不知道不同语言间能不能~混~用哦)

答:windows程序一般用vc++开发,现在的vc++的版本已经到了vs2008,当然还有其它的开发语言,bc等等。比如开发驱动程序,而windows作系统肯定是多种语言混合编程的,一般和汇编混合。

4.现在大家经常使用的杀毒软件如瑞星、金山、卡巴斯基、诺顿等等,其他应用软件如WinRAR、天网、RealOne、WPS、迅雷等等,是用什么语言编写的?C语言能写这些东东吗?

继承性是面向对象程序设计语言不同于其它语言的最重要的特点,是其他语言所没有的。5.大型游戏(不论单机版还是网络版)在编制过程中要应用到C语言或其语言基础吗?

6.用C语言应该可以编制黑客软件吧,那么要当一名真正的黑客是不是必须学习和熟练掌握C语言呢?

答:不管你学什么软件,你都需要掌握c的。c才是通用的,c才是王道。

7.C语言编写的程序除Unix外,还有哪些为普通大众所熟悉的?

答:现在c语言在嵌入式系统中越来越普遍,越来越超越汇编了,比如ucos就是用c写的,一个很典型的嵌入式作系统。

8.学习计算机知识,却不学习C语言,能不能成为计算机高手呢?

答:严格来说,不行!想成为计算机高手,两门基础语言:c和汇编

9.C语言是不是已经过时或即将被淘汰的语种(像今天的DOS一样)?二、三、四级还在考C语言,是说明它仍然重要还是表明我们的计算机知识普及率太低或者是教育体系更新太慢?

答:c++可以看成是c的超集,c++可以说是软件开发的方向,当然学过c后不一定就能掌握好c++,但你没学c,那你肯定是学不好c++的。c在可预见的将来是不会淘汰的,只是会让一种更高效率的开发语言代替,可以肯定,那个语言和c有相当大的类似。

10.C语言肯定是不能包打天下的,可它究竟能让掌握好它的人用它来做些什么呢?期待有耐心也不以为问题幼稚的朋友、老师来解惑。

答:学了c你可以更好的学习其它的语言,现在用c来开发大型软件肯定是不明智的,因为效率太低,比如开发图形软件和游戏等等。而我们用mfc等那就方便多了,你只要重组一些类就可以开发出来软件了,而用labview来开发工控软件更方便,用wdm开发工具来开发驱动软件更方便。

,你不一定要精通c语言,但你一定要掌握好这种方法,你学c语言不一定是要用c来开发东西的,而是为你学习其它的语言打下基础,所以还是建议你先学c。

C语言是编写游戏代码的基础,你现在学的是最基础的。以后还要学习C++,C#以及面向对象化程序设计。只有学好了基本编程语言才能做出实用的软件代码,银行的ATM机,以及超市的收费机里面的界面功能都可以通过C编写出来的代码来实现。 c是高级语言中的“低级语言”,c语言是大多数更高级语言语法的原型,而且c离汇编很近。学好c能够理解计算机的原理以及编译器对数据结构的作,c语言是高效的,同样功能的c程序和汇编程序,c程序仅仅慢了10%,我不敢说所有游戏模块都是c写的,但我要说的是核心需要高效功能的模块必然要用c写,界面处理可以交给其他语言。其他语言比c好的地方是——方便,安全,直观。写代码的时候完全不用弄清楚实现细节。c必然是所有高级语言的基础,现在初学者对c的误解是c没有图形界面,不是c不能实现,而是是没有对图形界面的库,而自己去实现又显得麻烦,c是无所不能的!很多高级语言都是c写的。

我学到大四的感触C语言没学很好很扎实,找好的工作不容易。

C语言多编写代码多解决一些算数编程题,发散自己的思维可以把数学里一些解答的题目编程出来。

至于你提到电脑游戏的开发有很多种语言开发,ja,php等网游比较多,C,C++,V#也有。到目前为止我也还没着手深入的了解真正的实践做一个大型点的游戏开发,做实验报告毕业设计的一些小的五子棋什么的都是C的衍生C++。但听老师和一些都讲C、C++方向的最终是做高级的深层开发的,比如系统主要的都是C、C++语言集成编写出来的

另外你提到的tubo c貌似现在市场占有率很小,几乎淘汰了。visual C++是一个编译环境,不是语言。最终建议你真一定要把C语言学好,后面再考虑自己往ja或者C++哪个方向发展。

C语言对作系统和系统使用程序以及需要对硬件进行作的场合,用C语言明显优于其它高级语言,许多大型应用软件都是用C语言编写的;C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。 C 语言可以象汇编语言一样对位、字节和地址进行作, 而这三者是计算机最基本的工作单元;

C++语言是一种的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性。

像游戏这些有些是C++写得 有些是JAVA写得 都有

C语言是编写游戏代码的基础,你现在学的是最基础的。以后还要学习C++,C#以及面向对象化程序设计。只有学好了基本编程语言才能做出实用的软件代码,银行的ATM机,以及超市的收费机里面的界面功能都可以通过C编写出来的代码来实现。

android用的是ja,ja和C又能多远呢?

C的流行就在于它的通用性太强了,基本可以移植到任何你可以想象得到的平台。而你写好的C库可以只需要做一点点修改,或都就不用修改就能用。

这么多东西都有相同之处!需要你以后继续学习!想魔兽就是用c语言编写的!c语言功能很强大!也是语言的基础!基础打牢以后高级语言学习着就轻松啦

数据库实验报告

《Visual FoxPro数据库基础教程实践与题解》是《Visual FoxPro数据库基础教程》配套教材。全书包括4部分内容:第1部分为《Visual FoxPro数据库基础教程》的习题与参;第2部分为VisualFoxPro8.0的安装、配置和课程本身的上机实验安排,介绍了指导学生上机实验时常见调试程序的基本作,并根据教材内容提供了10个配套实验;第3部分为VisualFoxPro8.0数据库实训指导及为初学者提供的3个典型的实践案例;第4部分为6套模拟试题和参,其中包括2套多态上机作试题及参。《Visual FoxPro数据库基础教程实践与题解》结构合理、内容新颖、深度适宜、实用性强,不仅可以作为《Visual FoxPro数据库基础教程》的参考书,也可以作为其他Visual FoxPro数据库教材的参c是高级语言中的“低级语言”,c语言是大多数更高级语言语法的原型,而且c离汇编很近。学好c能够理解计算机的原理以及编译器对数据结构的作,c语言是高效的,同样功能的c程序和汇编程序,c程序仅仅慢了10%,我不敢说所有游戏模块都是c写的,但我要说的是核心需要高效功能的模块必然要用c写,界面处理可以交给其他语言。其他语言比c好的地方是——方便,安全,直观。写代码的时候完全不用弄清楚实现细节。c必然是所有高级语言的基础,现在初学者对c的误解是c没有图形界面,不是c不能实现,而是是没有对图形界面的库,而自己去实现又显得麻烦,c是无所不能的!很多高级语言都是c写的。考书。

《Visual FoxPro数据库基础教程实践与题解》适合作为高等院校本科、专科学生学习Visual FoxPro数据库课程的参考书,也可作为数据库编程人员和信息管理等相关领域的技术工作者自学与参考用书。

c语言编程初学者,求大大告诉这个程序的错误 问题:班上有学生若干名,给出每名学生的年龄(整数),

1.先学习C语言的基础知识。现在正在学C语言的在校学生可以直接进入第2步学习。

2.按照《C语言程序设计入门学习六步曲》进行上机练习。

3.在上机练习时要养成良好的编程风格。点击查看C语言的编程风格

4.积极参加C、C++兴趣小组,养成和老师与同学交流习惯,从而相互收益。有时别人不经意的一句话可能使你茅塞顿开--“一句话点醒梦中人”。

5.及时总结自己的学的角度看,习经验,养成写C语言日记的习惯。软件有编程日记功能。

6.从网上或教材上找一个自己感兴趣的题目(选题时根据自己的能力,可先易后难,培养自己的成就感,如果有了成就感,即使再苦再累还是感觉C语言学习是一件快乐的事,同学们喜欢打游戏,经常通宵达旦地玩游戏也乐而不疲就是这个道理)进行实战训练,提高自己的C语言综合应用能力。

7. 由于C语言灵活、强大,初学者要全面地掌握它是不可能的,因此在学习C语言的过程中,不要在细枝末节上浪费精力(比如++、--用于表达式的计算,实际上是没有意义的),但一定要熟练掌握C语言的流程控制语句、数组、函数、指针等基础知识的应用,为学习面向对象程序设计打下坚实的基础。如果这些知识你学不好,要后续学习好C++、可视化的程序设计Visual C++或C++Builder就像空中楼阁,是不现实的。

C语言程序设计入门学习六步曲

我们总是觉得老师,上课我也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因有三个:

一、所谓的看懂听明白,只是很肤浅的语法知识,而我们编写的程序或软件是要根据要解决问题的实际需要控制程序的流程,如果你没有深刻地理解C语言的语句的执行过程(或流程),你怎么会编写程序解决这些实际问题呢?

二、用C语言编程解决实际问题,所需要的不仅仅是C语言的编程知识,还需要相关的专业知识。例如,如果你不知道长方形的面积公式,即使C语言学得再好你也编不出求长方形的面积的程序来。

三、C语言程序设计是一门实践性很强的课程,“纸上谈兵”式的光学不练是学不好C语言的。例如,大家都看过精彩自行车杂技表演,如,你从来没有骑过自行车,光听教练讲解相关的知识、规则、技巧,不要说上台表演、就是上路你恐怕都不行。

在程序开发的过程中,上机调试程序是一个不可缺少的重要环节。“三分编程七分调试”,说明程序调试的工作量要比编程大得多。这里以如何上机调试C程序来说明C语言的学习方法。

步、验证性练习

在这一步要求按照教材上的程序实例进行原样输入,运行一下程序是否正确。在这一步基本掌握C语言编程软件的使用方法(包括新建、打开、保存、关闭C程序,熟练地输入、编辑C程序;初步记忆新学章节的知识点、养成良好的C语言编程风格)。

初学者最容易犯的错误是:

1、没有区分开教材上的数字1和字母l,字母o和数字0的区别,造成变量未定义的错误。另一个易错点是将英文状态下的逗号,分号;括号()双引号""输入出入成中文状态下的逗号,分号;括号(),双引号“”造成非法字符错误。

2、C语言初学者易犯语法错误:使用未定义的变量、标示符(变量、常量、数组、函数等)不区分大小写、漏掉“;”、“{”与“}”、“(”与“)”不匹、控制语句(选择、分支、循环)的格式不正确、调用库函数却没有包含相应的头文件、调用未C声明的自定义函数、调用函数时实参与形参不匹配、数组的边界超界等。

3、修改C语言语法错误时要注意以下两点:

(1)、由于C语言语法比较自由、灵活,因此错误信息定位不是特别。例如,当提示第10行发生错误时,如果在第10行没有发现错误,从第10行开始往前查找错误并修改之。

(2)、一条语句错误可能会产生若干条错误信息只要修改了这条错误,其他错误会随之消失。特别提示:一般情况下,条错误信息最能反映错误的位置和类型,所以调试程序时务必根据条错误信息进行修改,修改后,立即运行程序,如果还有很多错误,要一个一个地修改,即,每修改一处错误要运行一次程序。

第二步、照葫芦画瓢

在步输入的C程序的基础上进行试验性的修改,运行一下程序看一看程序结果发生了什么变化,分析结果变化的原因,加深新学知识点的理解。事实上这和步时同步进行的,实现“输入”加深知识的记忆,“修改”加深对知识的理解。记忆和理解是相辅相成的,相互促进。

例如:将最简单的Hello World!程序

#include "stdio.h"

int main()

{printf("Hello World!n");

return 0;

}中的

printf("Hello World!n");

中的Hello World!改成你的姓名,运行一下程序,看有什么变化?

再如求1+2+3...+100的和的程序

#include

main()

{int i,sum=0;

for(i=1;i<=100;i++)

{sum=sum+i;

}printf("sum=%dn",sum);

}第1次将for(i=1;i<=100;i++)中的100改成50,运行一下程序,看有什么变化?

第2次将for(i=1;i<=100;i++)中的i++改成i=i+2,运行一下程序,看有什么变化?

找出程序结果变化的原因,就加深了对C语句的理解。

第三步、不看教材看是否能将前两步的程序进行正确地输入并运行。

在这一步要求不看教材,即使程序不能运行,看能否将其改正,使其能正确运行。目的是对前两步的记忆、理解进一步强化。

第四步、增强程序的调试能力

在教材中每章都有C语言初学者易犯的错误,按照易出错的类型,将教材中的正确的程序改成错误的程序,运行一下程序,看出现的错误信息提示,并记下错误信息,再将程序改成正确的,运行一下程序。这样反复修改,就能够学习C语言程序发生错误的原因和修改错误的能力。

注意:每次只改错一个地方,目的是显示发生该(2)分类性。错误的真正原因,避免一次改动多个地方,搞清发生错误的真正原因,切记!!!!

注意:上机调试程序时要带一个记录本,记下英文错误提示信息和解决该错误问题的方法,积累程序调试经验,避免在编程犯同样的错误,切记!!!!。

例如,将Hello World程序中语句

printf("Hello World!n");

中的;改成中文的分号;

运行一下程序,看有什么结果?

调试程序是一种实践性很强的事,光纸上谈兵是是没用的,就像游泳运动员只听教练讲解,而不亲自下水练习,是永远学不会游泳的。

即使在的程序员编写程序也会犯错误的,可能事级的语法错误,但他能快速发现错误并改正错误,而我们C语言初学者面对错误提示,不知道发生了什么错误,如何改正,这就事别。

C语言初学者遇到最多的困惑是:上课也能听懂,书上的例题也能看明白,可是到自己动手做编程时,却不知道如何下手。发生这种现象的原因是:所谓的看懂听明白,只是很肤浅的语法知识,而没有深刻地理解C语言的语句的执行过程(或流程)。

计算机是按照人的指令(编写的程序)去执行的,如果不知道这些C语句在计算机中是如何执行的,你怎么回灵活运用这些知识去解决实际问题呢?

解决问题的方法是要先理解C语言各种语句的流程(即计算机是如何执行这些语句的过程),然后研读现成C语言经典程序,看懂别人事如何解决问题的,以提高自己的程序设计能力。

第六步、研究课程设计源成序,提高C语言的综合应用能力.

举例说明面向对象编程和结构化编程的优缺点

(1) 以过程为中心和对象为中心的比较 结构化编程方法是以过程为中心的,当面对一个问题时,该方法侧重于问题解决过程的层 次结构。面向对象的分析和设计方法侧重于对象。对象具有特定的行为和属性,行为和属性决 定了对象与其他对象的交互作用方式,以及对象本身的行为方式。2/ 一次性使用和可重用的比较 根据不同的实现,结构化过程可能无法重用。而面向对象的方法,对象是一个模块单元。 具有完备的实体,因此可以具有高度的可重用性。(3有序算法和无序算法的比较 结构化编程方法所开发的程序,其结构往往是线性的(或者说是自顶向下的)。而面向对 象的应用程序是一种基于消息或者驱动的程序类型。每个对象都可以向其他对象发送消 息。Windows 作系统就是这样的程序。

1960年结构化程序设计思想诞生。C和Pascal等语言都大力提class ChatRoom倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点

1960年结构化程序设计思想诞生。C和Pa}friend student getMaxScore(student ss[],int n);scal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点

1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点

1960年结构化程序设计思想诞生。C和Pascal等语言都大力提倡这种程序设计的方法发明面向对象程序设计方法的主要出发点是弥补面向过程程序设计方法中的一些缺点