欢迎来到论文网! 识人者智,自知者明,通过生日认识自己! 生日公历:
网站地图 | Tags标签 | RSS
论文网 论文网8200余万篇毕业论文、各种论文格式和论文范文以及9千多种期刊杂志的论文征稿及论文投稿信息,是论文写作、论文投稿和论文发表的论文参考网站,也是科研人员论文检测和发表论文的理想平台。lunwenf@yeah.net。
您当前的位置:首页 > 科技论文 > 计算机论文

浅谈面向过程与面向对象编程思想

时间:2011-04-23  作者:秩名
d:=d+2;
end;
result:=Win;
end;
end .[1]
界面设计:
界面设计与实现相分离,根据类设计的相关原则,下棋、棋盘显示等都不应由棋类负责,其他的功能先由表单实现。根据单一职责原则在适当的时刻分离出新的类来。新建表单Form1,在其内添加一image 对象,设置其picture 属性为一棋盘BMP 文件。当鼠标按下时,通过对位置的转换向棋类发出行列信息,即可实现下棋。
窗口单元的实现部分:
implementation
procedureTform1.init();
var
i:integer;
begin
image1.Picture.Graphic:=nil;
image1.Picture.LoadFromFile('bj.bmp');
Image1.Canvas.Pen.Width:=1;
num1:=0;
num2:=0;
Label1.Caption:='';
Label2.Caption:='';
for i:=1 to 15 do//绘制内部棋盘线
begin
Image1.Canvas.MoveTo(8+i*20,8);
Image1.Canvas.LineTo(8+i*20,328);
Image1.Canvas.MoveTo(8, 8+i*20);
Image1.Canvas.LineTo(328, 8+i*20);
end;
//绘制边框线
Image1.Canvas.MoveTo(5,5);
Image1.Canvas.LineTo(330,5);
Image1.Canvas.LineTo(330,330);
Image1.Canvas.LineTo(5,330);
Image1.Canvas.LineTo(5,5);
Image1.Canvas.Pen.Width:=2;
Image1.Canvas.MoveTo(8,8);
Image1.Canvas.LineTo(328,8);
Image1.Canvas.LineTo(328,328);
Image1.Canvas.LineTo(8,328);
Image1.Canvas.LineTo(8,8);
end;
procedureTform1.drawxy(x,y:integer);
begin
if player='black' then
begin
image1.Canvas.Draw(x*20,y*20,image2.picture.graphic);
end
else
begin
image1.Canvas.Draw(x*20,y*20,image3.picture.graphic);
end;
end; [1]
procedureTForm1.FormCreate(Sender: TObject);
vari:integer;
begin
chess:=Tchess.Create;
chess.init;
init;
player:='black';
end;
procedureTForm1.Image1MouseDown(Sender: TObject; Button: TMouseButton; Shift:TShiftState; X, Y: Integer);
begin
if chess.accept(x div 20,y div 20,player)
then
form1.drawxy(x div 20,y div 20);
if chess.five(player,x div 20,y div 20) then
begin
showmessage(player+'嬴了!');
init;
chess.init;
exit;
end;
if player='black' then
begin
num1:=num1+1;
label1.Caption:=inttostr(num1);
player:='white'
end
else
begin
num2:=num2+1;
label2.Caption:=inttostr(num2);
player:='black';
end;
end;
procedureTForm1.Button1Click(Sender: TObject);
begin
chess.init;
init;
end;
end.
这两个类的定义基本完成了五子棋的功能,程序结构也清晰。程序运行界面如下:
 

 
 





















对比这两种设计方法,前者是用面向对象的语言写面向过程的程序,思路按照是下棋的流程进行编程,也就是我们通常习惯使用的自低向上,逐层精确的编程思想。论文大全。这种编程的主导思想是在设计时就把实现的细节考虑好了,从而在低层就实现了程序满足应用软件要求的目。面向对象的精髓在于考虑问题的思路是从人的一般思维习惯出发来考虑的,这样就改变并打破了程序员以往的编程习惯,而把人们解决日常问题的思维方法逐步翻译成程序能接受的抽象算法的过程,使用面向对象的思维方法,其实是一个将程序设计思维方式从具体的编程技术当中抽象出来的过程,而这个抽象的过程是自上而下的,较符合人类的思维习惯,就是先不考虑问题解决的细节,把问题的最主要的方面抽象成为一个简单的框架,集中精力思考如何解决主要问题,然后在解决问题的过程中,再把问题的细节分割成一个一个小问题,再专门去解决细节问题。因而一旦牢牢的抓住了这一点,我们就会发现在软件设计和开发过程中,总是会不知不觉的运用面向对象的思维方法来设计和编写程序,并且程序的设计和开发也变得不再那么枯燥,而一个合理运用面向对象技术进行设计和架构的软件,更是具备了思维的艺术感。最终使软件系统更可靠,容易维护,风格一致,可重用,代码清晰。
参考文献:
[1]黄复贤 使用敏捷方法开发五子棋游戏 csdn开发高手 2004.11
[2]金旭亮 他山之石,可以攻玉—点评五子棋小游戏的开发 csdn开发高手 2004.11
[3]蔡敏 徐慧慧 黄炳强 UML基础与Rose建模教程 人民邮电出版社 2006.1
 

查看相关论文专题
加入收藏  打印本文
上一篇论文:浅谈可编程中断控制器
下一篇论文:浅谈区域性计算机联锁系统及其在国内的实际应用情况
科技论文分类
科技小论文 数学建模论文
数学论文 节能减排论文
数学小论文 低碳生活论文
物理论文 建筑工程论文
网站设计论文 农业论文
图书情报 环境保护论文
计算机论文 化学论文
机电一体化论文 生物论文
网络安全论文 机械论文
水利论文 地质论文
交通论文
相关计算机论文
    无相关信息
最新计算机论文
读者推荐的计算机论文