《开发工具》实验指导书.docx

上传人:b****8 文档编号:9948002 上传时间:2023-02-07 格式:DOCX 页数:26 大小:1.54MB
下载 相关 举报
《开发工具》实验指导书.docx_第1页
第1页 / 共26页
《开发工具》实验指导书.docx_第2页
第2页 / 共26页
《开发工具》实验指导书.docx_第3页
第3页 / 共26页
《开发工具》实验指导书.docx_第4页
第4页 / 共26页
《开发工具》实验指导书.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

《开发工具》实验指导书.docx

《《开发工具》实验指导书.docx》由会员分享,可在线阅读,更多相关《《开发工具》实验指导书.docx(26页珍藏版)》请在冰豆网上搜索。

《开发工具》实验指导书.docx

《开发工具》实验指导书

《开发工具》

实验指导书

信息学院

2010年4月

实验1:

各种WINDOWS应用软件开发工具的比较

实验目的:

理解各种windows开发工具的本质,比较它们的特点

实验内容:

用三种开发工具设计并实现4种“hello”程序。

开发工具分别为VC++6.0,VB6.0,DELPHI7.0

实验步骤:

1.基于WINDOWSAPI的“hello”程序。

使用VC++6.0建立Win32Application类工程,直接利用WINDOWSAPI编程。

程序运行后直接在窗体显示“HelloWorld”字样。

注意在“WM_PAINT”消息中处理显示“HelloWorld”。

图1.1基于WINDOWSAPI的“hello”程序运行结果

关键代码:

//windowsApiHELLO.cpp:

Definestheentrypointfortheapplication.

//

#include"stdafx.h"

#include"resource.h"

#defineMAX_LOADSTRING100

LRESULTCALLBACKWndProc(HWNDhWnd,UINTmessage,WPARAMwParam,LPARAMlParam)

{

intwmId,wmEvent;

PAINTSTRUCTps;

HDChdc;

TCHARszHello[MAX_LOADSTRING];

LoadString(hInst,IDS_HELLO,szHello,MAX_LOADSTRING);

switch(message)

{

caseWM_COMMAND:

wmId=LOWORD(wParam);

wmEvent=HIWORD(wParam);

//Parsethemenuselections:

switch(wmId)

{

caseIDM_ABOUT:

DialogBox(hInst,(LPCTSTR)IDD_ABOUTBOX,hWnd,(DLGPROC)About);

break;

caseIDM_EXIT:

DestroyWindow(hWnd);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

break;

caseWM_PAINT:

hdc=BeginPaint(hWnd,&ps);

//TODO:

Addanydrawingcodehere...

RECTrt;

GetClientRect(hWnd,&rt);

DrawText(hdc,szHello,strlen(szHello),&rt,DT_CENTER);

EndPaint(hWnd,&ps);

break;

caseWM_DESTROY:

PostQuitMessage(0);

break;

default:

returnDefWindowProc(hWnd,message,wParam,lParam);

}

return0;

}

2.基于VC++MFC的“hello”程序。

使用VC++6.0建立MFCAppwizard(exe)工程,选择对话框类型的代码框架,实现如下功能

(1)程序运行后出现的界面

图1.2.1基于VC++的“hello”程序运行结果

(2)用户点击“Button1”后的界面

图1.2.2基于VC++的“hello”程序运行结果

注意:

文本框与变量的对应;文本框内数据的更新

附录:

关键代码

voidCVCMFCHELLODlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialog:

:

DoDataExchange(pDX);

//{{AFX_DATA_MAP(CVCMFCHELLODlg)

DDX_Text(pDX,IDC_EDIT1,m_Edit1);

//}}AFX_DATA_MAP

}

BEGIN_MESSAGE_MAP(CVCMFCHELLODlg,CDialog)

//{{AFX_MSG_MAP(CVCMFCHELLODlg)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_BUTTON1,OnButton1)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////

voidCVCMFCHELLODlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

m_Edit1="HELLO!

";

UpdateData(FALSE);

}

3.基于VB的“hello”程序。

利用VB6建立“标准EXE”工程,实现如下功能

(1)程序运行后出现的界面

图1.3.1基于VB的“hello”程序运行结果

(2)用户点击“Button1”后的界面

图1.3.2基于VB的“hello”程序运行结果

附录:

关键代码

PrivateSubCommand1_Click()

Text1.Text="HELLO"

EndSub

3.基于DELPHI的“hello”程序。

利用DELPHI7建立标准工程,实现如下功能

(1)程序运行后出现的界面

图1.4.1基于DELPHI的“hello”程序运行结果

(2)用户点击“Button1”后的界面

图1.4.2基于DELPHI的“hello”程序运行结果

关键代码:

unitUnit1;

interface

uses

Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,

Dialogs,StdCtrls;

type

TForm1=class(TForm)

Edit1:

TEdit;

Button1:

TButton;

procedureButton1Click(Sender:

TObject);

private

{Privatedeclarations}

public

{Publicdeclarations}

end;

var

Form1:

TForm1;

implementation

{$R*.dfm}

procedureTForm1.Button1Click(Sender:

TObject);

begin

Edit1.Text:

='HELLO';

end;

end.

 

实验2:

图像处理编程技术

实验目的:

掌握DELPHI图形处理方面的基本编程技术

实验内容:

实现对BMP格式图像文件的百叶窗效果实现

实验步骤:

1.准备BMP格式素材文件

2。

编程步骤参见本课教材《DELPHI开发技术大全》第323-324页

注意:

对实现百叶窗效果算法的理解;Canvas对象的使用

图2.1百叶窗效果程序运行图

关键代码:

procedureTForm1.BitBtn1Click(Sender:

TObject);

var

newbmp:

TBitmap;

i,j,bmpheight,bmpwidth:

integer;

xgroup,xcount:

integer;

begin

newbmp:

=TBitmap.Create;

newbmp.Width:

=image1.Width;

newbmp.Height:

=image1.Height;

bmpheight:

=image1.Height;

bmpwidth:

=image1.Width;

xgroup:

=25;

xcount:

=bmpheightdivxgroup;

fori:

=0toxcountdo

forj:

=0toxgroupdo

begin

newbmp.Canvas.CopyRect(Rect(0,xcount*j+i-1,bmpwidth,xcount*j+i),

image1.Canvas,Rect(0,xcount*j+i-1,bmpwidth,xcount*j+i));

form1.Canvas.Draw(0,0,newbmp);

Application.ProcessMessages;

end;

newbmp.Free;

end;

实验3:

多媒体编程技术

实验目的:

掌握DELPHI音频视频处理方面的基本编程技术

实验内容:

视频播放器设计

实验步骤:

1.准备.MPG格式素材文件

2。

编程步骤参见本课教材《DELPHI开发技术大全》第362-363页

注意:

对MediaPlayer控件的使用

程序运行的顺序如图所示

图3.1视频播放器程序运行界面1

图3.2视频播放器程序运行界面2

图3.3视频播放器程序运行界面3

关键代码:

procedureTForm2.playerAVI(Intis:

Integer);

begin

ifIntis=1then

begin

ifform1.OpenDialog1.Executethen

begin

withform2.MediaPlayer1do

begin

Display:

=Panel1;

Filename:

=form1.OpenDialog1.FileName;

Open;

DisPlayrect:

=Rect(1,1,form2.Panel1.Width,form2.Panel1.Height);

Notify:

=true;

end;

form1.SpeedButton2.Enabled:

=True;

form1.SpeedButton6.Enabled:

=True;

form1.SpeedButton7.Enabled:

=True;

form1.SpeedButton8.Enabled:

=True;

form1.SpeedButton9.Enabled:

=True;

end;

end;

if(Intis>1)and(Intis<9)then

begin

ifIntis=2then

begin

form2.MediaPlayer1.Play;

form1.SpeedButton4.Enabled:

=True;

form1.SpeedButton5.Enabled:

=True;

end;

ifIntis=3then

begin

form2.MediaPlayer1.Stop;

end;

ifIntis=4then

begin

form2.MediaPlayer1.Pause;

end;

ifIntis=5then

begin

form2.MediaPlayer1.Next;

end;

ifIntis=6then

begin

form2.MediaPlayer1.Previous;

end;

ifIntis=7then

begin

form2.MediaPlayer1.Step;

end;

ifIntis=8then

begin

form2.MediaPlayer1.Back;

end;

end;

end;

实验4:

数据库开发技术—数据的浏览添加修改删除

实验目的:

掌握DELPHI的基于ADO的基本数据库操作技术

实验内容:

数据库记录的浏览添加修改删除

实验步骤:

1.建立Access数据库country.mdb

2.编写前台应用程序

以上参见本课教材《DELPHI开发技术大全》第524页实例。

程序运行结果如图。

图4.1数据库数据编辑程序运行界面

注意:

利用各ADO控件建立数据链路。

关键代码:

procedureTForm1.FormCreate(Sender:

TObject);

begin

adoquery1.ConnectionString:

='Provider=Microsoft.Jet.OLEDB.4.0;DataSource=database\country.mdb;PersistSecurityInfo=False';

withADOQuery1do

begin

close;

SQL.Clear;

sql.Add('selectnameas国家,capitalas首都,areaas面积,populationas人口fromcountrywherepopulation<30000000');

open;

end;

end;

end.

实验5:

数据库开发技术—数据报表

实验目的:

掌握DELPHI基于RAVE组件的数据报表技术

实验内容:

数据报表设计

实验步骤:

1.建立Access数据库database.mdb

2.编写前台应用程序

以上参见本课教材《DELPHI开发技术大全》第599页实例。

Rave组件的应用参见593-596页。

运行结果如图所示

注意:

数据视图选择“directDataView”方式

图5.1数据报表软件运行界面1

图5.2数据报表软件运行界面1

关键代码:

RvProject1.ProjectFile:

='.\Project1.rav';

RvProject1.Execute;

实验6:

网络编程技术

实验目的:

掌握DELPHI基于UDP网络编程方面的基本技术

实验内容:

UDP局域网聊天软件设计

实验步骤:

参见本课教材《DELPHI开发技术大全》第648-649页

软件运行的结果如图所示。

(本机作为聊天对象)

注意:

1.对ADODataSet的使用2.UDP控件属性的设置

3.数据的文件方式存取。

图6.1UDP局域网聊天软件运行界面1

图6.2UDP局域网聊天软件运行界面2

关键代码:

procedureTForm1.Button1Click(Sender:

TObject);

var

STR:

string;

begin

ZHUName:

=GettoName;

IPName:

=NameTOIP(ZHUName);

ADODataSet2.Filtered:

=True;

ADODataSet2.Filter:

=format('UserIP'+'='+'''%s''',[IPName]);

name:

=ADODataSet2.fieldbyname('UserName').AsString;

IdUDPClient1.Host:

=IP;

ifLength(Memo2.Lines.GetText)>0then

begin

IdUDPClient1.Send(Memo2.Lines.GetText);

STR:

=IdUDPClient1.ReceiveString;

Memo1.Lines.Insert(0,Name+':

'+STR);

Memo2.Clear;

Memo2.Lines.Clear;

end;

Memo2.SetFocus;

end;

procedureTForm1.IdUDPServer1UDPRead(Sender:

TObject;AData:

TStream;

ABinding:

TIdSocketHandle);

var

Str,Names:

string;

Stream:

TStringStream;

begin

Stream:

=TStringStream.Create('');

Stream.CopyFrom(AData,AData.Size);

Str:

=Stream.DataString;

ABinding.SendTo(ABinding.PeerIP,ABinding.PeerPort,Str[1],Length(Str));

ifGetName(ABinding.PeerIP,Names)then

Memo1.Lines.Insert(0,Names+':

'+STR)//Memo1.Lines.Add(Names+':

'+Str

else

Memo1.Lines.Insert(0,ABinding.PeerIP+':

'+STR);

end;

procedureTForm1.Memo1DblClick(Sender:

TObject);

begin

Memo1.Clear;

end;

procedureTForm1.FormShow(Sender:

TObject);

begin

IP:

='127.0.0.1';

Name:

='本机';

FileName:

='';

ADODataSet1.CreateDataSet;

ifFileExists('.\Data.Dat')then

begin

ADODataSet1.LoadFromFile('.\Data.Dat');

end;

StatusBar1.Panels.Items[0].Text:

='当前好友姓名为:

'+Name;

StatusBar1.Panels.Items[1].Text:

='IP地址为:

'+IP;

ADDlist;

end;

functionTForm1.GetName(IP:

string;varName:

String):

Boolean;

var

IsFind:

Boolean;

begin

IsFind:

=ADODataSet1.Locate('UserIP',IP,[]);

ifIsFindthen

Name:

=ADODataSet1.FieldByName('UserName').AsString

else

Name:

='';

Result:

=IsFind;

end;

procedureTForm1.Memo2KeyPress(Sender:

TObject;varKey:

Char);

begin

ifKey=#13then

begin

Button1.Click;

end;

Exit;

end;

{Thread}

procedureTForm1.SpeedButton1Click(Sender:

TObject);

begin

Form2.ADOState:

=1;

Form2.DelTxt;

Form2.ShowModal;

end;

procedureTForm1.SpeedButton2Click(Sender:

TObject);

begin

Form2.ADOState:

=2;

Form2.GetTxt;

Form2.ShowModal;

end;

procedureTForm1.SpeedButton3Click(Sender:

TObject);

begin

ifApplication.MessageBox('是否要删除该记录!

','明日科技',MB_OKCANCEL)=IDOKthen

begin

ADODataSet1.Delete;

ADODataSet1.SaveToFile('.\Data.Dat');

end;

form1.ADDlist;

end;

procedureTForm1.ADDlist;

var

same:

Integer;

IsAdd:

boolean;

begin

ADODataSet2.Close;

ADODataSet2.CreateDataSet;

ifFileExists('.\Data.Dat')then

begin

ADODataSet2.LoadFromFile('.\Data.Dat');

end;

ADODataSet2.Open;

ADODataSet2.First;

ListBox1.Items.Clear;

WhilenotADODataSet2.Eofdo

begin

isadd:

=true;

forsame:

=0toListBox1.Count-1do

begin

ifADODataSet2.Fields[0].asstring=listbox1.Items[same]then

begin

isadd:

=false;

break;

end;

end;

ifisaddthen

ListBox1.Items.Add(ADODataSet2.Fields[0].asstring);

ADODataSet2.Next;

end;

end;

procedureTForm1.ListBox1Click(Sender:

TObject);

var

i:

Integer;

begin

Fori:

=0toListBox1.Items.Count-1do

if(ListBox1.SelCount<>0)then

begin

ADODataSet2.Filtered:

=True;

ADODataSet2.Filter:

=format('UserName'+'='+'''%s''',[ListBox1.Items[ListBox1.ItemIndex]]);

StatusBar1.Panels.Items[0].Text:

='向:

'+ADODataSet2.FieldByName('UserName').AsString+'发送信息';

StatusBar1.Panels.Items[1].Text:

='IP地址为:

'+ADODataSet2.FieldByName('UserIP').AsString;

IP:

=ADODataSet2.FieldByName('UserIP').AsString;

Name:

=ADODataSet2.FieldByName('UserName').AsString;

end;

end;

functionTForm1.GettoName:

String;

var

Size:

Card

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 水产渔业

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1