C#程序设计设计说明书简易IE浏览器的设计与实现学生姓名:郭成成学号:1103380106班级:计算机(一)班专业:计算机应用技术指导教师:胡老师课程设计任务书2011—2012 学年第二学期课程设计名称:C#课程设计设计题目:简易IE浏览器的设计与实现完成期限:自 2012 年 11 月 8 日至 2011 年 11 月 29 日共 3 周设计依据、要求及主要内容:根据程序设计所学知识,设计与实现一个简单浏览器,该简单浏览器设计的内容和功能要求如下:(1)有合理的首页页面设计,背景柔和。
(2)有多个按钮,比如说前进、后退、刷新删除等。
(3) 输入地址栏,支持所有的网址,并有转到功能。
(4)设计登陆页面。
(5) 可以存储网址,进行网内连接。
(6)是利用 C#编写程序,该浏览器简单但功能齐全。
(7) 使用时同样可以最大化最小化。
(8)按钮是利用画图工具进行拷贝下来的。
(9) 地址默认为百度。
要求:系统功能设计基本完善,并写出详细的设计说明书。
摘要关键词:关键词:前进、后退、刷新、输入合法地址、运行程序,在网内搜索,使用vs2005 中的 C#编写程序,利用画图工具。
拷贝前进、后退按钮。
1 课题描述利用C#编写简单的程序,创建一个简易IE浏览器,包含基本的功能,培养编写程序的兴趣。
实践中了解浏览器的一些特性2 程序设计流程图2.1 系统说明使用 win7 系统,vs2005 中的控制台应用程序,设计主界面,并拖放按钮。
具有一般浏览器的基本功能,前进、后退、刷新、地址等。
在输入地址栏。
设默认地址为百度,便于使用,刷新功能,在网速不是太好,有一点卡时,刷新一下,主界面可以最大化和最小化。
使用绿色为边框颜色,用画图工具拷贝文件按钮,设有六个小按钮,包括前进、后退、删除、刷新、转到等按钮。
2.1 主界面的设计主界面用纯白色背景,界面以中等大小为宜。
使用绿色为边框颜色,用画图工具拷贝文件按钮,设有六个小按钮,包括前进、后退、删除、刷新、转到等按钮。
主界面用纯白色背景,界面以中等大小为宜。
3 功能的设计3.1 主界面功能的设计主界面功能的设计主界面打开时,显示空白背景。
地址为默认的百度3.2 后退功能的设计后退功能的设计当打开网页时,想浏览之前的网页,不需要重新打开,只需按倒退按钮,就可以浏览之前的网页,这是退后按钮的功能3.3 浏览功能的设计浏览功能的设计浏览基本的网页视频、文本文件等,浏览新闻杂志,打开别的网页4 测试4.1 系统测试4.2 调试结果4.3 错误原因分析:无总结通过这次课程设计,我了解了简单的浏览器的编译,收获很大,在老师的指导下,认真修改自己写的程序,从而更加了解了 C#的使用,希望自己可以在以后更加努力的学习,非常感谢学校开设这一课程,让我收获很大。
参考文献[1] 崔淼、陈明非.Visual C# 2005 程序设计教程,2007[2] 马靖善等.C 语言程序设计.清华大学出版社,2005[3] 谭浩强.C 语言程序设计(第二版).北京:高等教育出版社,2002[4] 黄超.C 语言程序设计.北京.人民邮电出版社.2003[5] 谭浩强等.C 语言程序设计.清华大学出版社,2007[6]方敏、张彤.C 语言程序设计.西安电子科技大学出版社.2006附录:源代码:using System;using System.Collections.Generic;using ponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.IO;namespace MyIEr{ public partial class frmIE : Form{ public frmIE(){ InitializeComponent();InitializeOpenFileDialog();}private string formatPath(string myPath){ string trimmed = myPath.Trim();if (trimmed.StartsWith("file:")){ trimmed = trimmed.Replace(@"file:///", "");trimmed = trimmed.Replace("file://", "\\");trimmed = trimmed.Replace("/", @"\"); }return trimmed; }private bool canGoUp(string myPath){ myPath = myPath.TrimStart(@"\".ToCharArray());myPath += @"\";return (!(myPath.IndexOf(@"\") == stIndexOf(@"\"))&& !((myPath.IndexOf(@"\") + 1) == stIndexOf(@"\")));}private void NavigateToURL(){ try{ //调用Navigate方法this.webBrowser1.Navigate(formatPath(this.urlTextBox.Text));}catch{ MessageBox.Show("无效的URL。
",this.Text, MessageBoxButtons.OK,MessageBoxIcon.Error); } }private void UpdateButtons(){ //更新【后退】与【前进】按钮this.btnBack.Enabled = this.webBrowser1.CanGoBack;this.btnForward.Enabled = this.webBrowser1.CanGoForward; }private void InitializeOpenFileDialog(){ //设定“打开文件”对话框的初始目录openFileDialog1.InitialDirectory = Environment.CurrentDirectory + @"\HTML";//设定文件名筛选字符串以方便选取特定格式的文件openFileDialog1.Filter ="网页(*.HTM;*.HTML)|*.HTM;*.HTML|XML 文件(*.XML)|*.XML|Flash 文件(*.SWF)|*.SWF|Office 文件(*.DOC;*.XLS;*.PPT)|*.DOC;*.XLS;*.PPT";//设定“打开文件”对话框的标题openFileDialog1.Title = "请选择特定格式文件";//设定“打开文件”对话框在关闭前还原目前的目录openFileDialog1.RestoreDirectory = true;}private void btnBack_ButtonClick(object sender, EventArgs e){this.webBrowser1.GoBack();}private void btnForward_ButtonClick(object sender, EventArgs e){this.webBrowser1.GoForward(); }private void btnStop_Click(object sender, EventArgs e){this.webBrowser1.Stop(); }private void btnRefresh_Click(object sender, EventArgs e){this.webBrowser1.Refresh(); }private void btnHome_Click(object sender, EventArgs e){this.webBrowser1.GoHome(); }private void tbnSearch_Click(object sender, EventArgs e){this.webBrowser1.GoSearch(); }private void btnGo_Click(object sender, EventArgs e){this.NavigateToURL();}private void btnPrint_Click(object sender, EventArgs e){this.webBrowser1.Print(); }private void btnUplevel_Click(object sender, EventArgs e){string myPath = formatPath(this.webBrowser1.Url.ToString());if (canGoUp(myPath)){myPath = myPath.Substring(0, stIndexOf(@"\"));try{this.webBrowser1.Navigate(myPath); }catch{btnUplevel.Enabled = false; } } }private void urlTextBox_KeyDown(object sender, KeyEventArgs e){ //按下Enter键便会进入所输入的URLif (e.KeyCode == Keys.Enter){this.NavigateToURL(); } }private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e) { //更新【后退】与【前进】按钮UpdateButtons();this.tsWebProgressBar.Visible = true; }private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) { //更新【后退】与【前进】按钮UpdateButtons();//更新URL文本框this.urlTextBox.Text = this.webBrowser1.Url.ToString();//更新文字this.statusText.Text = "正在打开网页" + this.webBrowser1.Url.ToString(); }private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e){ this.statusText.Text = "完成";this.btnUplevel.Enabled = canGoUp(formatPath(this.urlTextBox.Text));this.tsWebProgressBar.Visible = false;this.tsWebProgressBar.Value = 0;}private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e){ this.tsWebProgressBar.Value = (int)(((float)e.CurrentProgress /(float)e.MaximumProgress)* 100); }private void ViewSourceMenuItem_Click(object sender, EventArgs e){ //根据网址来确认文件名称string myUrl = this.webBrowser1.Url.ToString();string myFileName = "";if (myUrl.ToString().StartsWith("http") ||Path.GetExtension(myUrl).StartsWith(".htm")){string myAbsolutePath = this.webBrowser1.Url.AbsolutePath;if (myAbsolutePath == @"/"){myFileName = "Test.txt";}else{ myFileName = Path.GetFileName(myAbsolutePath);if (myFileName == String.Empty){int PosLastOneSlash, PosLastTwoSlash;PosLastOneSlash = stIndexOf(@"/");PosLastTwoSlash = stIndexOf(@"/", PosLastOneSlash - 1);myFileName yAbsolutePath.Substring(PosLastTwoSlash+1, PosLastOneSlash - PosLastTwoSlash-1) + ".htm"; } } }else{MessageBox.Show("这不是一个HTML 文件,无法查看其源文件。