文档库 最新最全的文档下载
当前位置:文档库 › 网络编程论文

网络编程论文

网络编程论文
网络编程论文

课程设计(论文)

目录

一、需求分析 (2)

二、概要设计 (3)

2.1CH TML V IEW类简介 (3)

2.2CH TML V IEW的主要成员函数 (3)

2.3CH TML V IEW的其它成员函数 (4)

三、详细设计 (4)

3.1应用程序工程配置 (4)

3.2控件属性的设置 (5)

3.3控件的事件处理函数设置 (6)

3.4程序代码分析 (7)

3.4.1头文件A DDRESS D LG.H。 (7)

3.4.2源文件A DDRESS D LG.C PP。 (7)

3.4.3CE06V IEW类的定义。 (8)

3.4.4CE06V IEW类的实现。 (9)

四、软件测试 (12)

五、总结 (14)

参考文献 (14)

一、需求分析

随着互联网的急速发展和它在世界范围的广泛应用,WWW(World Wide Web,万维网)也日益成为互联网上信息交流不可或缺的工具。它是一种以

HTTP(HyperText Transfer Protocol,超文本传输协议)为基础,使用

HTML(HyperText Markup Language,超文本标记语言)语言编写的有若干Web刚页构筑而成的世界。

HTTP使用了统一资源定位器URL https://www.wendangku.net/doc/7810470225.html,/view/1496.htm (Uniform Resource Locator)这一概念。简单地说,URL就是文档在环球信息网上的"地址"。URL用于标识Ineternet或者与Internet相连的主机上的任何可用的数据对象。URL中的U常常被认为表示"统一",实际上在许多重要文档中也是这样引用的。在URL概念背后有一个基本思想,那就是:提供一定信息条件下,你应能在Internet上的任何一台机器上访问任何可用的公共数据。在Web世界中常有的第一步是确定游览的日标,这通常就是一个URL地址。

理论上说来,环球信息网包括整个两亿人以上的Internet世界,它包含所有的Web站点、Gopher 信息站、FTP 档案库、Telnet,公共存取帐号、News新闻讨论区以及Wais资料库。所以环球信息网可以说是当今全世界最大的电子资料世界,已经可以把World Wide Web当成是Internet 的同义词了。事实上,一般我们日常所说的"上Internet",其实指的就是连上World Wide Web 。WWW是World Wide Web (环球信息网)的缩写,也可以简称为Web,中文名字为“万维网”。环球信息网之所以称之为信息网

,完全是因为它的资源可以互相连接的缘故,全世界目前大概有数万个Web站,每个Web 站都可以透过超链结(Hyper link)与其它Web 站连接,任何人都可以设计自己的Home Page,放上Web 站,然后在你的Home Page 上面产生链结,与其他人的Home Page 连接,或是连到其他的Web 站;别人也一样可以连到你的Home Page ,或是你的Web 站,整个信息网就这样编织了起来,形成一个巨大的环球信息网。

本程序主要是实现浏览网页,当用鼠标点击菜单栏的文件时,会弹出

一个下拉菜单,其中有导航、前进、后腿、返回主页、停止、刷新、退出,当单击帮助时,会弹出有一个关于版本的项目,点击它时会弹出一个关于这个程序的版本介绍。在工具栏中,有七个图标,分别为导航、返回主页、后退、前进、停止、刷新、帮助,分别实现不同的功能,,事实上它确实也具备了一个浏览器的基本功能,能够很好地完成网上仲浪的任务。

二、概要设计

2.1 CHtmlView类简介

MFC类ChtmlView 派生于文档/视图结构,他提供了实现Web浏览器的功能。在这个类中最重要的方法是Navigate方法,通过给他指定参数就可以浏览指定的Web页。

2.2 CHtmlView的主要成员函数

Navigate函数原型如下:

void Navigate

{

LPCTSTR URL;

DWORD deflags=0;

LPCTSTR lpszTargetFrameName=NULL;

LPCTSTR lpszHeaders=NULL;

LPVOID lpvPostData=NULL;

DWORD dwPostDataLen=0;

};

方法Navigate2也能完成网页浏览功能。他扩充了Navigate函数的功能,不经能够浏览网页,还能够以相同的方式浏览本地计算机资源。其函数原型如下:

void Navigate2

{

LPCTSTR lpszURL;

DWORD deFlags=0;

LPCTSTR lpszTargetFrameName=NULL;

LPCTSTR lpszHeaders=NULL;

LPVOID lpvPostData=NULL;

DWORD dwPostDataLen=0;

};

2.3 CHtmlView的其它成员函数

ChtmlView还提供了各种方法来实现其他的功能,如果用GoForward和GoBack 方法可以重新回到前面和后面已经浏览过的网页中,GoHome方法可以浏览设置好的默认主页,Stop方法可以终止当前的连接过程等等。

三、详细设计

3.1 应用程序工程配置

设置默认主页为https://www.wendangku.net/doc/7810470225.html,/,网址栏默认为https://www.wendangku.net/doc/7810470225.html,. 1.用MfcAppWizardl(exe)创建一个新工程,将其命名为E06。

2.用MfcAppWizardl(exe)中按照下列步骤设置工程的属性。

(1)设置应用程序类型为单个文档模式,选择“文档/查看体系结构支持?”。

(2)不选择数据库支持

(3)不选中“Active控件”复选框。

(4)不选中“隐藏工具栏”和“打印和打印顶览”复选框,选择“Windows Sockets”复选框。

(5)使用默认设置。

(6)设置CE06View的基类为ChtmlView,单击“完成”按钮,应用程序E06就创建完成。

图1 程序的工程配置

3.2 控件属性的设置

打开对话框编辑器编辑对话框控件的属性如表1所示。用该资源创建对话框类CaddressDlg。

表1 IDD_DIALOG_ADDRESS的设置

配置如图2所示。

3.3 控件的事件处理函数设置

打开菜单,编辑菜单IDD_MAINFRAME,设置备菜单命令如表2所示菜单IDD_MAINFRAME

表2 设置

配置如图2所示。

图2 菜单IDD_MAINFRAME的设置

重新设置工具栏资源IDD_MAINFRAME,使得工具栏上的国标上的图标显得更加直观,并且他们的标识设置为相应的菜单命令标识,以共享相同的命令处理函数。

图3 工具栏图标

3.4 程序代码分析

3.4.1 头文件AddressDlg.h。

定义由基类Cdialog派生类AddressDlg。

class CAddressDlg :public Cdialog

{

Public:

CaddressDlg(CWnd*pparent=NULL);

Enum{IDD-IDD_DIALOG_ADDRESS};

Cstring m_address;

Protected:

Virtual void DODataExchange(CdataExchange*PDX);

Protected:

DECLARE_MESSAGE_MAP()

};

3.4.2 源文件AddressDlg.Cpp。

实现的功能,定义Caddress构造函数。

CaddressDlg::CaddressDlg(CWnd*pParent /*=NULL*/);

Cdialog(CaddressDlg::IDD,pParent)

{

M_adress=_T(“https://www.wendangku.net/doc/7810470225.html,”);

3.4.3 CE06View类的定义。

在头文件E06View.h中定义由基类ChtmlView派生的CE06View类的接口。Class CE06View:public ChtmlView

{

Protected:

C E06View();

DECLARE_DYNCREATE(CE06view)

Public:

CE06Doc*GetDocument();

Public:

Virtual Void 0nDraw(CDC* pDC);

virtual B00L PreC_eateWindow(CREATESTRUCT&cs); protected:

vi rtual void 0nInitialUpdate();

vi rtual ~CE06View();

virtual void AssertValid() const;

virtual vold Dump(CdumpContext& dc) const;

protected:

//菜单命令响应函数

afx_msg vold OnFlieNavigate();

afx_msg vold OnFlieBack();

afx_msg vold OnFlieForward();

afx_msg vold OnFlieHome();

afx_msg vold OnFlieStop();

afx_msg vold OnFlieRefresh();

//}}AFX_MSG

DECLARE_MESSAGE_MAP()

3.4.4 CE06View类的实现。

(1)设置浏览器启动时启动的网页

void CE06View::OnDraw(CDC* pDC)

{

CE06Doc* pDoc = GetDocument();

ASSERT_VALID(pDoc);

// TODO: add draw code for native data here

}

void CE06View::OnInitialUpdate()

{

CHtmlView::OnInitialUpdate();

// TODO: This code navigates to a popular spot on the web.

// change the code to go where you'd like.

Navigate2(_T("https://www.wendangku.net/doc/7810470225.html,/"),NULL,NULL);

}

(2)消息映射

BEGIN_MESSAGE_MAP(CE06View,ChtmlView)

//{{ AFX_MSG_MAP(CE06View)

ON_COMMAND(ID_FILE_NAVIGATE,OnFileNavigate)

ON_COMMAND(ID_FILE_BACK,OnFileBack)

ON_COMMAND(ID_FILE_FOREARD,OnFlieForward)

ON_COMMAND(ID_FILE_HOME,OnFlieHome)

ON_COMMAND(ID_FILE_STOP,OnFileStop)

ON_COMMAND(ID_FILE_REFRESH,OnFileResh)

//}}AFX_MSG_MAP

END_MESSAGE_MAP()

(3)CE06View构造函数和析构函数

CE06View::CE06View()

{

}

CE06View ::~CE06View()

{

}

(4)设置启动时的导航站点

Void CE06View::OnInitalUpdate()

{

ChtmlView:: OnInitalUpdate();

//重新设置导航站点

Navigate2(_T(“https://www.wendangku.net/doc/7810470225.html,/visuac/”),NULL,NULL); }

(5)导航命令响应时间函数

Void CE06View::OnFileNavigate()

{

//TODO:Add your command handler code here CaddressDlg dlg;

If(dlg.DoModle()!=IDOK) reture;

Navigate2(dlg.m_address);

}

(6)后退命令响应函数

void CE06View::OnFlieBack()

{

//TODO:Add your command handler code here

GoBack();

}

(7)前进命令返回函数

void CE06View::OnFlieForward()

{

//TODO:Add your command handler code here GoForward();

}

(8)返回主页命令响应函数

void CE06View::OnFlieHome()

{

//返回主页

Gohome();

}

(9)终止连接命令响应函数

void CE06View::OnFlieStop()

{

//TODO:Add your command handler code here

Stop();

}

(10)刷新命令响应函数

void CE06View::OnFlieRefresh()

{

//TODO:Add your command handler code here

Refresh();

}

(11)设置浏览器导航栏默认网页

CAddressDlg::CAddressDlg(CWnd* pParent /*=NULL*/) : CDialog(CAddressDlg::IDD, pParent)

{

//{{AFX_DATA_INIT(CAddressDlg)

m_address = _T("https://www.wendangku.net/doc/7810470225.html,");

//}}AFX_DATA_INIT

}

四、软件测试

对浏览器的测试分为几个部分,包括功能的实现、和各个按钮的功能是否正确。

1.运行“.dsw”文件。得到如图的画面。

2.运行网站https://www.wendangku.net/doc/7810470225.html,

3.然后点击确定,得到如图

4.然后再测试各个按钮的功能。

5.点击后退按钮,得到贵州大学网址,因此后退按钮功能实现

7.各个按钮的功能都能实现

经过测试,浏览器的各个功能都能顺利地完成。

五、总结

课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学生来说掌握计算机开发技术是十分重要的。

经过一个多星期的学习,基本了解了VC++的编程方法,对VC++的编写程序的步骤有了一定的了解。但对于要编写较为复杂的VC++程序还是有很大的难度,只有在今后的学习中,不断总结,不断摸索,努力的掌握VC++的编程技巧,为以后的学习工作打下基础。

参考文献

1.李芝兴.C++程序设计之网络编程.北京:清华大学出版社,2006

2.刘艺,吴英。C++程序设计大学教程。北京:机械工业出版社,2006

3.黄晓东。C++课程设计安全精编。北京:中国水利水电出版社

相关文档