网络程序设计课程设计报告 WEB浏览器的设计与实现.docx
《网络程序设计课程设计报告 WEB浏览器的设计与实现.docx》由会员分享,可在线阅读,更多相关《网络程序设计课程设计报告 WEB浏览器的设计与实现.docx(19页珍藏版)》请在冰豆网上搜索。
![网络程序设计课程设计报告 WEB浏览器的设计与实现.docx](https://file1.bdocx.com/fileroot1/2022-10/8/6544f1f1-8ad4-43e9-be60-b8c2b10d6c7d/6544f1f1-8ad4-43e9-be60-b8c2b10d6c7d1.gif)
网络程序设计课程设计报告
专 业网 络 工 程
学 号 09102428
姓 名 胡赛
2013年1月9日
1、题目及要求
web浏览器设计
(一)题目:
web浏览器设计
(2)开发工具:
,visualstudio2010
(3)运行环境:
WindowsXP/7操作系统
(4)功能实现:
1.有合理的首页页面设计,背景柔和
2.是利用C#编写程序,该浏览器简单但功能齐全
3.设计登陆页面
1.输入地址栏,支持所有的网址,并有转到功能
2.实现前进、后退、刷新等功能
3.使用时同样可以最大化最小化
4.可以存储网址,进行网内连接
5.按钮是利用画图工具进行拷贝下来的
6.地址默认为百度
7.进度条的显示
2、系统概要设计
(一)主要步骤
创建WebBrowser 首先使用VisualStudio2010WindowsForms应用程序,在这个程序中,给窗体(Form)添加一个ToolStrip和一个WebBrowser控件,在ToolStrip控件中,添加了一个Label,TextBox和一些Button控件。
从工具箱拖动一个WebBrowser控件到Form上,根据Form的大小调整
WebBrowser控件的大小和停靠位置,并将其停靠在底部。
(二)主要函数:
Navigate是WebBrowser中用来打开URL的一个方法。
webBrowser1.Navigate(newUri(url))
WebBrowser控件也内置了一些浏览器功能,如转到主页,前进,后退,刷新,保存,打印和其它功能,下面的代码片段显示了如何使用
GoForeward,GoBack,GoHome和Refresh方法。
3、系统设计细节
(一)浏览器主界面如图1-1
图1-1浏览器主界面
1.输入地址栏,
在ToolStrip中添加一个toolStripComboBox1用于输入地址以下代码用于转到地址栏中的地址
privatevoidtoolStripButton3_Click(objectsender,EventArgse)
{
地址栏是否为空
if(String.IsNullOrEmpty(toolStripComboBox1.Text)) //判断
{
MessageBox.Show("请输入有效地址");toolStripComboBox1.Focus();
return;
}
OpenURL(toolStripComboBox1.Text);//把地址栏中的网址传到OpenURL方法中
}
//该方法用于根据传入的url,在webbrowser中显示privatevoidOpenURL(stringurl)
{
if(!
url.StartsWith("http:
//")&&
!
url.StartsWith("https:
//"))
{
url="http:
//"+url;
}
try
{
webBrowser1.Navigate(newUri(url));toolStripComboBox1.Items.Add(url);
}
catch(System.UriFormatException)
{
return;
}
}
2.实现前进、后退、刷新等功能
privatevoidtoolStripButton1_Click(objectsender,EventArgse)
{
if(webBrowser1.CanGoBack)
{
webBrowser1.GoBack(); //后退
}
}
privatevoidtoolStripButton2_Click(objectsender,EventArgse)
{
if(webBrowser1.CanGoForward){ //前进webBrowser1.GoForward();
}
}
privatevoidtoolStripButton4_Click(objectsender,EventArgse)
{
webBrowser1.Refresh(); //刷新
}
privatevoidtoolStripButton5_Click(objectsender,EventArgse)
{
webBrowser1.GoHome(); //主页
(2)可以存储网址,进行网内连接
//在转到地址的同时把地址存储在文本文档中webBrowser1.Navigate(newUri(url));toolStripComboBox1.Items.Add(url);saveURL(url);
//把网址存到saveURL.Txt中如图1-2
privatevoidsaveURL(Stringurl){
FileStreamfs=newFileStream(@".saveURL.txt",FileMode.Append);StreamWritersw=newStreamWriter(fs);
sw.WriteLine(url);sw.Close();
}
图1-2 本地文件
//在构造方法中直接判断saveURL.txt中是否有地址,如果有,在运行程序之前把网址添加到ToolStripComboBox1中如图1-3,1-4
publicForm1()
{
InitializeComponent();
if(File.Exists(".saveURL.txt"))
{
StreamReadersr=newStreamReader(@".saveURL.txt");
strings=sr.ReadLine();inti=0;
while(s!
=null &&i++<10 )
{
ToolStripComboBox1.Items.Add(s);s=sr.ReadLine();
}
if(i==10)
{
ToolStripComboBox1.Text="记录太多!
";
}
sr.Close();
}
else
{File.Create(".saveURL.txt");
}
图1-3 本地文件中的地址
图1-4下拉列表中的地址
(3)默认地址是百度
直接在webbrowser属性中的url中设定如图1-5
图1-5百度首页
(4)实现进度条如图1-6
privatevoidwebBrowser1_ProgressChanged(objectsender,WebBrowserProgressChangedEventArgse)
{
toolStripProgressBar1.Visible=true; //显示进度条
if((e.CurrentProgress>0)&&(e.MaximumProgress>0)) //已经加载数及正在加载数大于0时;
{
toolStripProgressBar1.Maximum=
Convert.ToInt32(e.MaximumProgress); //获取进度条最大值为下载文档字节总数toolStripProgressBar1.Step=Convert.ToInt32(e.CurrentProgress);
//获取已经下载字节数
toolStripProgressBar1.PerformStep(); //增加到当前位置
}
elseif(webBrowser1.ReadyState==WebBrowserReadyState.Complete) //下载完成
{
toolStripProgressBar1.Value=0; //进度条设为0toolStripProgressBar1.Visible=false; //不显示进度条
}
}
图1-6进度条
4、课程设计总结
本次课程设计我选的题目是Web浏览器设计,使用的语言是C#。
在刚开始做的时候有挺多问题不懂的,但是通过去图书馆、上网查找相关资料、询问同学等方法使得问题得以解决,比如前进、后退、刷新等按钮的添加,网址的保存等,让我充分认识到C#语言功能的强大。
最终程序完成了,虽然浏览器只是简单版的,仅含有一些基本功能,但是在做的过程中一边做,一边学是我的理论知识得以丰富同时锻炼了我的动手能力。
本次的课程设计令我学到了很多,使我对C#这门编程语言更熟悉了,同时在课程设计的过程中,碰到问题积极查找资料、和同学交流讨论也让我收获良多。
参考文献:
[1]黄永兵.VisualStudio2010构建Web浏览器应用程序.技术频道.2011:
01-24.
[2]王超、潘阳. Visual C#通用范例开发经典[M].北京.电子工业出版社.2008:
54-101
附录程序代码Form1.cs
usingSystem;
usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;
usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Runtime.InteropServices;usingSystem.IO;
namespace_09102428husai
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
if(File.Exists(".saveURL.txt"))
{
StreamReadersr=newStreamReader(@".saveURL.txt");strings=sr.ReadLine();
inti=0;
while(s!
=null &&i++<10 )
{
ToolStripComboBox1.Items.Add(s);s=sr.ReadLine();
}
sr.Close();
}
else
{
File.Create(".saveURL.txt");
}
}
privatevoidForm1_Load(objectsender,EventArgse)
{
webBrowser1.Navigate("");webBrowser1.ProgressChanged += new
WebBrowserProgressChangedEventHandler(webBrowser1_ProgressChanged);
}
private void webBrowser1_ProgressChanged(