浏览器的设计与实现_学位论文

浏览器的设计与实现_学位论文
浏览器的设计与实现_学位论文

二 〇 〇 八 年 六 月

本科毕业设计说明书

学校代码: 10128 学 号: 040201123

题 目:浏览器的设计与实现 学生姓名:任飞 学 院:信息工程学院 系 别:计算机系 专 业:计

算机科学与技术 班 级:计算机04-1 指导教师:赵志燕 讲师 年金波 工程师

摘要

随着网络的不断发展,网页浏览器作为上网的所必需的软件之一,已经得到了广泛地应用。在IE独霸一方的背景下,国内外各式各样的浏览器软件都如雨后春笋般孕育而生。网页浏览器的开发与应用更是成为了计算机领域近年来的一大热点。

本文围绕着浏览器的编程与开发,讲述了在JDK5.0中进行浏览器开发的一些技术和笔者的一些心得,着重讲解了笔者在毕业设计中所实现的一个浏览器程序——MiniBrower。

本文用软件工程的开发过程,详细论述了浏览器的分析、设计及代码实现,最终实现一个具有能同时浏览多个网页,可查询历史浏览记录,可以实现打开和保存网页,超链接监听并响应,和对非法网站的过滤等基本功能的浏览器。本文以一个实际运作的浏览器 MiniBrowser 为主轴介绍浏览器的设计理念与方法,同时讲述浏览器中各个模块如何互相协同运作,来完成一个呈现网页的工作。HTML词法分析是本文着重讨论的技术问题,给出了详尽的数据结构,程序流程,并且还介绍了一些基于Java的HTML解析器。另外,Java Swing技术也是本文介绍的浏览器所使用的一种主要的技术,通过使用各个组件,并增加监听器和事件处理等操作,最终形成一个具有一定事物处理能力的浏览器的界面部分。

关键字:浏览器;Java Swing;HTML词法分析;事件

Abstract

With the unceasing development of network, the Homepage Browser, which becomes one of the essential software for surf online, has already obtained widely application. Under the leading position of IE, all kinds of domestic and foreign browser software have appeared like mushroom growth breeding lives. The homepage browser's development and the application have become a computer domain big hot spot in recent years.

This article revolves Browser's programming and development, narrated some technologies and author's attainments of carrying the browser in JDK5.0 development, explained browser procedure—MiniBrower which emphatically in the achievement of graduation project.

This article uses software engineering's performance procedure, elaborated Browser's analysis, design and code achievement, finally achieved the Browser which has simultaneously glances over many homepages. It can inquire the history to glance over the record, realize opens and preserves the homepage, the ultra connection monitors and responds, with to illegal website filtration and so on. This article take actual operation's browser—MiniBrowser as the main axle,introduced browser's design idea and method, simultaneously narrated how each module does coordinate the operation mutually in the browser, completes one to present the homepage the work. The HTML lexical analysis is the technical question which discusses emphatically, has given the exhaustive construction of data, the procedure flow, and also introduced some based on the Java HTML revolver. One kind of main technology which moreover, this article is also introduces the Swing technology of JAVA, through uses each module, and increases operations and so on monitor and event processing, final had certain thing handling ability browser's contact surface part to form.

Key words: Browser;Java Swing; HTML lexical analysis; Event

目录

引言 (1)

第一章绪论 (2)

1.1目前浏览器产品的发展现状 (2)

1.2M INI B ROWSER浏览器的组成和各部份功能说明 (3)

1.2.1 词法分析 (3)

1.2.2语法分析 (3)

1.2.3 GUI及软件界面 (4)

1.2.4布局算法 (4)

1.3开发的前期策划 (6)

1.3.1平台的选取 (6)

1.3.2确定要实现的基本功能 (6)

第二章开发工具及开发技术 (8)

2.1面向对象软件工程概述 (8)

2.2E CLIPSE简介 (9)

2.3J AVA S WING概述 (10)

3.1HTML概述 (13)

3.2HTML词法分析器B IT T OKEN的组成及其功能 (13)

3.3数据结构 (14)

3.4算法 (15)

3.4.1 基本算法 (15)

3.4.2词法分析的结果 (16)

3.5布局 (18)

3.6几种基于JAVA的HTML P ARSER (18)

第四章系统分析 (20)

4.1需求分析 (20)

4.1.1 功能需求 (20)

4.1.2其他需求 (21)

4.1.3其他说明 (21)

4.2总体设计 (22)

4.2.1设计目的 (22)

4.2.2环境说明 (22)

4.2.3子系统 (22)

4.2.4实现功能的设计 (24)

4.2.5使用Tomcat访问本地文件 (26)

4.3详细设计 (27)

4.3.1设计目的 (27)

4.3.2功能模块的实现 (27)

4.3.3系统模型 (28)

4.3.4开发环境 (30)

4.3.5关于JEditorPane的使用说明 (30)

4.4编码 (31)

4.5测试 (31)

4.5.1测试目的 (31)

4.5.2测试环境 (32)

4.5.3 测试用例 (32)

结论 (36)

参考文献 (38)

谢辞 (40)

引言

当前,信息化浪潮正在全球范围内兴起,一个以计算机网络为核心的信息时代正向我们走来。在Internet飞速发展的今天,互联网成为人们快速获取、发布和传递信息的重要渠道,从而倍受人们的重视,而互联网上信息的查找又要通过浏览器的浏览来实现,所以本文通过对当下流行的浏览器的模拟设计和实现来让大家对网络及网络资源的认识,以及浏览器的各个功能的实现有一个大概的认识。

浏览器是一个基于C/S架构的应用软件,其最基本的功能,就是能够将因特网上的众多资源,例如网页上的内容与信息或是在线服务等,呈现给使用者并让使用者得以使用存在于因特网上的各项服务。因此透过网络传输数据对浏览器来说,是相当重要且必备的一项能力。

浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。

为了支持跨平台访问网页的需求,本课题完成跨平台的浏览器开发,实现个人能同时浏览多个网页,可查询历史浏览记录,对非法网站的过滤等功能的浏览器。本文阐述了浏览器开发的关键技术,并详细说明MiniBrowser的实际开发过程,和技术细节。

第一章绪论

1.1目前浏览器产品的发展现状

常见的桌面浏览器有微软的Internet Explorer,网景的Netscape,开放源码的Mozilla FireFox,以及opera,mosaic,Hotjava,字符模式的lynx等。其中IE,Opera已有嵌入式版本,以上的大多数浏览器均有跨多平台的版本。这些桌面型浏览器功能参差不齐,但大多都能实现基本的浏览功能。其中IE与Netscape 对HTML页面的显示效果均堪称完美(对于XML,WML等标准的网页浏览,本文不予讨论)。

与完美的浏览效果,功能丰富,支持多种媒体格式和视音频插件等优点形成对立的是,这些浏览器庞大的体积和对机器配置的高要求;这也是桌面浏览器和嵌入式浏览器最大的区别。另外,桌面型浏览器通常是基于通用的操作系统,用于桌面电脑如PC机、MAC机等;而嵌入式浏览器通常基于专用系统。

需要指出的是,在网上常看到的一些浏览器,如Netcaptor,魔装网神,腾讯,飓风,Fantasia,金山WPS office的浏览器等等,均为使用IE内核的浏览器,使用了多页面多线程的方式,降低了系统资源的耗费,方便了浏览,但软件本身没有使用多少技术,可以用Delphi,VB等工具轻易开发出来(如果不要求完善的功能,只需简单到拖一个IE控件过去就行了),这也体现了微软的COM+及ActiveX技术的强大。

1.2MiniBrowser浏览器的组成和各部份功能说明

1.2.1 词法分析

HTML(HyperText Markup Language,超文本标记语言)词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。MiniBrowser采用了JDK(Java Development Kit,Java 开发包)附带的HTML解析器解析从服务器返回的HTML数据。

1.2.2语法分析

在大型的浏览器中,语法分析通常是独立的模块,但在某些小型的浏览器中,语法分析通常是与布局混合在一起的,即一边进行语法分析,一边布局,不设立相

应的数据结构来存储语法分析的结果。本文所讲述的MiniBrowser也是采用这种设计思想。另外,语法分析对布局的算法有直接的指导意义。

1.2.3 GUI及软件界面

浏览器无疑是一个图形界面的大需求者,选择好的GUI(Graphics User Interface,图形用户界面)环境实属不易,为了能够实现专有的功能,浏览器开发者往往还要对基础的GUI库进行包装、改写,甚至写自己的控件。所有这些,是需要有专业的GUI库开发经验的专职人员来完成。

GUI的功劳第一在于软件的操作界面,如窗口、菜单、工具条、滚动条等。第二在于主浏览窗体中的图形元素的输出(通常以自画控件的方式)。前者通常直接使用GUI库中的已有控件,编程难度很小,后者主要利用基本的点线函数,编程难度比较大。在MiniBrower中使用Java Swing技术编写浏览器的图形界面,而做图形界面首先要考虑的就是选择一个合适的布局管理器。与VB不同,JDK没有表单设计器,需要通过代码来定制布局管理器来放置用户界面组件所在的位置。

1.2.4布局算法

本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据GUI所能实现的输出效果来设计的,所以,GUI往往成为系统的瓶颈,如果GUI提供的支持有限,即使有再好的布局算法,也是纸上谈兵,无用武之地。在Swing中有以下几种简单的布局管理器:

(1)FlowLayout流式布局管理器

FlowLayout是最简单的布局管理器,按照组件的添加次序将它们从左到右地放置在容器中。当到达容器边界时,组件将放置在下一行中。

(2)BorderLayout边界布局管理器

BorderLayout为在容器中放置组件提供了一个稍微复杂的布局方案。BorderLayout把容器分为五个区域:东、南、西、北和中。东占据容器的右侧,南占据容器的下侧,以此类推。

(3)GridLayout网格布局管理器

GridLayout将容器分割成许多列和行,组件被填充到每个网格中。添加到容器中的组件首先放置在左上角的网格中,然后从左到右放置其他组件,直至占满该

行的所有网格,接着继续在下一行中从左到右放置组件。

(4)CardLayout卡片式布局管理器

CardLayout将界面看作一系列的卡片,在任何时候只有其中一张卡片是可见的,这张卡片占据容器的整个区域。

当某个容器被创建后,就会有一个默认的布局管理器。Window、Frame和Dialog的默认布局管理器是BorderLayout,Panel和Applet的默认布局管理器是FlowLayout。可以调用容器的setLayout()方法来设置容器的布局管理器。[1] 1.3开发的前期策划

以下的工作均是建立在大量的调查基础上的,是浏览器开发前期准备工作所解决的问题。

1.3.1平台的选取

目前的商业化嵌入式操作系统功能完善,但使用费用高昂,使用Linux内核的嵌入式操作系统不仅功能强大,便于开发移植,而且费用低廉,基于Linux的软件系统已日渐成熟,也有相应的窗口系统可以使用,使用PC上的Linux来进行浏览器开发,是再好不过的了,软件从一台PC移植到另外一台设备只需更改配置信息,重新编译一下就可以了(前提是使用的函数库、开发包具有JDK1.5或更高的版本)。

1.3.2确定要实现的基本功能

鉴于对浏览器开发难度的充分考虑,以及现有人员的水平,拟定实现以下功能,以及需要考虑但暂不予实现的功能。

需要实现的包括:

(1) 界面:包括窗口,菜单,输入框,工具条,滚动条等的支持。

(2) 实现简单网页的布局:实现对简单网页的查看。

(3) 支持基本IO(Input/Output,输入/输出)。

(4) 支持对非法网站的过滤。

需要考虑的功能:

(1) JSP(Java Server Page,Java服务页面)支持

(2) 汉字支持

(3) Java Script的支持

(4) 表单支持

(5) 页面元素的消息响应

第二章开发工具及开发技术

2.1面向对象软件工程概述

软件工程是一门研究如何用系统化、规范化、产业化等工程原则和方法实施软件开发和维护的学科。1968年秋季,NATO的科技委员会召集了近50名一流的编程人员、计算机科学家和工业界巨头,讨论和制定摆脱“软件危机”的对策。在那次会议上第一次提出了软件工程(Software Engineering)这个概念。到今年,软件工程整整走过了33年的历程。软件研究人员不断探索新的软件开发方法,至今已形成八类软件开发方法,例如最早的Parnas方法。但这一方法不能独立使用,只能作为其它方法的补充。

软件开发的面向对象方法于20世纪60年代后期提出,到20世纪90年代前半期,面向对象软件工程成为开发人员的首选范型。

面向对象方法是一种自底向上和自顶向下相结合的方法,它以对象建模为基础,不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。OO 技术在需求分析、可维护性和可靠性这三个软件开发的关键环节和质量指标上有了实质性的突破。[2]

面向对象方法的特点有:

(1)自底向上的归纳

(2)自顶向下的分解

(3)基础是对象模型

(4)需求分析彻底

(5)可维护性大大改善

2.2 Eclipse简介

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件和组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

虽然大多数用户很乐于将 Eclipse 当作 Java IDE 来使用,但 Eclipse 的目标不仅限于此。Eclipse 还包括插件开发环境(Plug-in Development

Environment,PDE),这个组件主要针对希望扩展 Eclipse 的软件开发人员,因为它允许他们构建与 Eclipse 环境无缝集成的工具。由于 Eclipse 中的每样东西都是插件,对于给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。这种平等和一致性并不仅限于Java 开发工具。尽管 Eclipse 是使用 Java 语言开发的,但它的用途并不限于Java 语言;例如,支持诸如 C/C++、COBOL 和 Eiffel 等编程语言的插件已经可用,或预计会推出。Eclipse 框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。

基于Eclipse 的应用程序的突出例子是IBM 的WebSphere Studio Workbench,它构成了 IBM Java 开发工具系列的基础。例如,WebSphere Studio Application Developer 添加了对 JSP、servlet、EJB、XML、Web 服务和数据库访问的支持。

Eclipse采用的技术是IBM公司开发的(SWT),这是一种基于Java的窗口组件,类似Java本身提供的AWT和Swing窗口组件;不过IBM声称SWT比其他Java 窗口组件更有效率。Eclipse的用户界面还使用了GUI中间层JFace,从而简化了基于SWT的应用程序的构建。

Eclipse的插件机制是轻型软件组件化架构。在富客户机平台上,Eclipse使用插件来提供所有的附加功能,例如支持Java以外的其他语言。已有的分离的插件已经能够支持C/C++(CDT)、Perl、Ruby,Python、telnet和数据库开发。插件架构能够支持将任意的扩展加入到现有环境中,例如配置管理,而决不仅仅限于支持各种编程语言。[3]

2.3 Java Swing概述

在java 1.0刚刚出现的时候,包含了一个用于基本GUI程序设计的类库,Sun 将它成为抽象窗口工具箱(Abstract Window Toolkit,AWT)。基本AWT库采用将处理用户界面元素的任务委派给每个目标平台(Windows、Solaris等等)的本地GUI工具箱的方式,由本地GUI工具箱负责用户界面的元素的创建和动作。例如,如果使用最初的AWT在Java窗口中放置一个文本框,就会有一个底层的“对等体”文本框,用它来实际地处理文本输入。从理论上说,结果程序可以运行在任何平台上,但观感(look and feel)的效果却依赖于目标平台。

对于简单的应用程序来说,基于对等体方法的效果还是不错的,但是,要想编

写依赖于本地用户界面元素的高质量、可移植的图形库就会显现出缺陷了。例如,菜单、滚动条和文本域这些用户界面元素,在不同的平台上,操作行为存在着一些微妙的差别。因此,要想给予用户一致的、可预见性的界面操作方式是相当困难的。而且,有些图形环境并没有像Windows或Macintosh这样丰富的用户界面组件集合。这也就将基于对等体的可移植库限制在了一定的范围内。其结果是使AWT构建的GUI应用程序看起来没有Windows或其他应用程序显示的那么漂亮,也没有提供那些平台用户所认知的功能。更加糟糕的是,在不同平台上的AWT用户界面库中存在着不同的Bug。

1996年,Netscape创建了一种称为IFC(Internet Foundation Class)的GUI库,它采用了AWT完全不同的工作方式。它将按钮、菜单这样的用户界面元素绘制到空白窗口上,而对等体只需要创建和绘制窗口。因此,Netscape的IFC部件在程序运行的所有平台上的外观和动作都一样。Sun和Netscape合作完善了这种方式,创建了一个名为Swing的用户界面库。Swing可作为Java 1.1的扩展部分使用,现已成为JDK 1.2标准库的一部分。

现在,Swing是不对等基于GUI工具箱的正式名字。它已是Java基础类库(Java Foundation Class,JFC)的一部分。完整的JFC十分庞大,其中包含的内容远远大于Swing GUI工具箱。JFC特性不仅仅包含了Swing组件,而且还包含了一个可访问的API、一个2D API和一个可拖拽的API。

当然,在用户屏幕上显示基于Swing用户界面的元素要比显示AWT的基于对等体组件的速度慢一些。但对于任何一台现代的计算机来说,微小的速度差别无妨大碍。另外,由于下列几点无法抗拒的原因,驱使人们选择Swing:

(1)Swing拥有一个丰富、便捷的用户界面元素集合。

(2)Swing对底层平台依赖的很少,因此与平台相关的bug很少。

(3)Swing给予不同平台的用户一致的感官效果。[4]

第三章 HTML的分析

3.1 HTML概述

超文本标记语言(HyperText Markup Language,HTML)是一种用于文档布局和超文本链接规范的语言。它定义了特殊的、嵌入式指令的语法和放置方法,浏览器中不会显示这些指令,但是HTML可以告诉浏览器该如何显示文档的内容,如文本、图像及其他支持的媒体等,还有如何通过特殊的超文本链接来制作交互式的文档,这些链接可以把这些文档和其他因特网资源链接起来。

HTML词法分析是浏览器设计的基础环节之一,也是整个设计过程中重要的前端工作,其数据结构的拟定与接下来的语法分析和布局算法密切相关,词法分析的效率与准确性、容错性也关系到整个浏览器设计的质量。[5]

3.2 HTML词法分析器Bit Token的组成及其功能

Bit Token是Netbit Browser的HTML词法分析器,使用标准C编程,Netbit Browser是基于Linux/Gtk的浏览器,也是一个开放源码项目。

Bit Token作为Netbit Browser的词法分析部份,负责对接收的HTML代码进行词法分析,主要的目的是提取网页中元素的名称及其属性,并以恰当的形式(即按一定的数据结构)加以保存,也就是完成了将数据流离散化、结构化的过程。

Bit Token主要由以下几个部分组成:

(1)初始化:完成对数据结构的初始化,主要是分配内存,变量赋初值。

(2)主体的数据流分析:逐字符的进行判断,确定数据的归属类型。

(3)元素的分析:提取元素的名称、属性和值域。

(4)释放:主要是对内存的释放。

3.3数据结构

typedef struct BitTokenContext

{char * strBuffer; //当前正在处理的HTML代码

int bufferLength;

int curPosition;

char * global_strBuffer; //全局HTML代码

int global_bufferLength;

int global_curPosition;

BitTokenList *tokenList; //元素节点链表

BitTokenList *tokenList_tail;

BitPTagList pTagList; //元素名称表,指向静态数据

}BitTokenContext,*BitPTokenContext;

BitTokenContext是用于存储当前待分析网页全局属性的数据结构,其中TokenList是核心的元素节点链表。词法分析的目的就是生成这样一个链表。下面给出该链表的数据结构,是很简单的双向链表。

typedef struct TokenList

{ BitToken *token; //元素节点

struct TokenList *priou;

struct TokenList *next;

}BitTokenList,*BitPTokenList;

以下是元素节点的数据结构:

typedef struct BitToken

{int type; //节点类型,如定义的HTML_BODY,HTML_TXT等。

char *pData; //如果是HTML_TXT型元素,则为其内容,否则为空

BOOL end; //是否是结束元素,如

BitTokenAttrList *attrList; //元素属性链表,因为可能有多个属性,所以使用链表存储

BitTokenAttrList *attrList_tail;

}BitToken,*BitPToken;

请注意,以上出现tail标记的指针变量,如BitTokenList * tokenList_tail等,其作用是用于保存链表结尾节点指针,便于在释放内存时,直接找到链尾,提高了算法的效率。[6]

3.4算法

3.4.1 基本算法

首先介绍基本的算法:

(1) 从存储网页的字符串中,顺序读入一个字符。

(2) 如果遇到< ,认为遇到TAG(元素),处理该元素,使用函数

javascript课程设计

潍坊科技学院 JavaScript课程设计 报告书 设计题目基于javascript的电子商务网站开发 专业班级11软件一 学生姓名江京翔 学号201101080002 指导教师陈凤萍 日期2012.12.24~2012.1.11 成绩

课程设计任务书 院系:软件学院专业:软件技术班级:11软1 学号:201101080002 一、课程设计时间 2012年12月24日至2013年1月11日,共计3周。 二、课程设计内容 使用html+javascript+css 完成以下任务: 1、能够熟练使用css结合html实现网页布局。 2、熟练使用文档对象模型和事件驱动,能够很好的实现web表单的交互式操作。 3、熟练使用javascrip中的对象,实现网页的动态效果。 三、课程设计要求 1. 课程设计质量: ?贯彻事件驱动的程序设计思想,熟练使用javascript中的对象,实现网页特效。 ?网页设计布局合理,色彩搭配合理,网页操作方便。 ?设计过程中充分考虑浏览器兼容等问题,并做适当处理。 ?代码应适当缩进,并给出必要的注释,以增强程序的可读性。 2. 课程设计说明书: 课程结束后,上交课程设计报告书和相关的网页。课程设计报告书的格式和内容参见提供的模板。 四、指导教师和学生签字 指导教师:学生签名:江京翔 五、教师评语:

基于javascript的电子商务网站开发 摘要 JavaScript是开发WEB应用程序不可或缺的一种语言,无论是为web页面增加交互性还是创建整个应用程序,如果没有Javascript,今天的web就不是现在这个样子了。JavaScript是具有正式规范的基于标准语言;然而,正如任何一个web开发人员所告诉你的那样,几乎每个web浏览器对这个规范的解释都不同。 本网站充分的结合了HTML与CSS的结合充分显示了网站的动态效果,是客户与网站能够充分的结合,进行信息的交换信息不断的进行更新。 基于新闻管理网站,国外新闻页面更具有代表性,是网站最标准型之一,通过Javascript 脚本的交互式该页面更好与其他的页面相互结合。 同时通常页面的下载是按照代码的排列顺序,而表格布局代码的排列代表从上向下,从左到右,无法改变。而通过CSS控制,您可以任意改变代码的排列顺序,比如将重要的右边内容先加载出来。 关键字:节假日、日历、Javascript脚本

学士学位论文格式模板

学士学位论文格式模板 1、封面 校名图片高度3厘米,校徽5cm*5cm,见模版。 2、排版顺序:封面-摘要-Abstract-目录-正文-致谢-参考文献-附录 3、页边距:全文上下左右全部为2.5厘米,页眉页脚边距默认 4、页脚(页码)编写: a)封面不编码 b)页脚字体:times new roman;字号:五号 c)摘要-Abstract-目录:从罗马数字“-I-”起编,居中;正文起:从数字“-1-”起编,居中 d)段落间距:默认 5、页眉编写: a)封面不编页眉 b)页眉字体:中文宋体,英文times new roman;字号:五号 c)摘要起按一级标题内容编写页眉,居中 d)段落间距:默认 6、目录 a)目录标题不设为一级标题格式,但字体字号段落间距等同一级标题 b)字体:中文黑体,英文times new roman;字号:小四号 c)段落间距:1.5倍行距,段前0行段后0行 d)页码右对齐 e)左边 i.一级标题缩进0,不加粗 ii.二级标题缩进1个中文字,不加粗 iii.三级标题缩进2个中文字,不加粗 7、摘要-Abstract-目录-正文-致谢-参考文献-附录 a)字体: i.标题:中文黑体,英文times new roman ,加粗 ii.正文:正文宋体,英文times new roman b)字号: i.一级标题:三号 ii.二级标题:四号 iii.三级标题:小四号 iv.正文:五号(含表格内文字及图表标注) c)段落间距 i.标题:单倍行距,段前1行,段后1行(含一级、二级、三级标题) ii.正文:单倍行距,段前0段后0(含表格内文字及图表标注) d)图、表: i.图、表及其标注位置居中 ii.图的标注: 中文标注,位于图的下方居中,每章按顺序编号,并对图进行简短解释,如第二章第三个图,格式为“图2.3 电路原理图” iii.表的标注: 中文标注,位于表的上方居中,每章按顺序编号,并对表进行简短解释,如第三章第四个表,格式为“表3-4 电路状态表” e)合理安排版面,不要有明显空白或人为空行。 细节见模版。

花样流水灯设计

单片机课程设计 2014年 6月 15日 课 程 单片机课程设计 题 目 花样流水灯 院 系 电气工程及其自动化系 专业班级 1112班 学生姓名 温亿锋 学生学号 7 指导教师 张瑛

一丶任务 设计一款以AT89C51单片机作为主控核心,按键控制电路、流水灯显示电路以及单片机最小系统等模块组成的核心主控制电路。 二丶设计要求 通过发光二极管显示不同的花样(至少有六种花样),并且可以通过按键来控制流水灯的速度。 三丶设计方案 本方案主要是通过对基于单片机的多控制、多闪烁方式的LED流水灯循环系统的设计,来达到本设计的要求。其硬件构成框图如下图所示,以单片机为核心控制,由单片机最小系统(时钟电路、复位电路、电源)、按键控制电路、LED 发光二极管和5V直流电源组成。 单片机流水灯循环控制系统硬件框图 此设计方案中单片机的P1口接5路按键控制电路,实现流水灯花型的切换功能;单片机的P3.7引脚接上一个按钮开关以实现对流水灯闪烁频率的控制,即实现了快慢两种节拍实现花型的变换;单片机上的P2口接八路LED发光二极管组成流水灯电路,显示流水灯循环情况。 四丶系统硬件设计 4.1 直流稳压电源电路

对于一个完整的电子设计来讲,首要问题就是为整个系统提供电源供电模块,电源电路的稳定可靠是系统平稳运行的前提和基础。电子设备除用电池供电外,还采用市电(交流电网)供电。通过变压、整流、滤波和稳压后,得到稳定的直流电。直流稳压电源是电子设备的重要组成部分。本项目直流稳压电源为+5V。 直流稳压电源的制作一般有3种制作形式,分别是分立元件构成的稳压电源、线性集成稳压电源和开关稳压电源。下图为稳压电源采用的是三端集成稳压器7805构成的正5V直流电源。 三端固定式集成稳压电源电路图 AT89C51单片机的工作电压范围:4.0V---5.5V,所以通常给单片机外接5V 直流电源。此处用3节1.5V的干电池供电。 4.2 单片机最小系统 要使单片机工作起来,最基本的电路的构成由单片机、时钟电路、复位电路等组成,单片机最小系统如图所示。 时钟电路:本系统采用单片机内部方式产生时钟信号,用于外接一个12MHz 石英晶体振荡器和2个30pF微调电容,构成稳定的的自激振荡器,其发出的脉冲直接送入内部的时钟电路。 复位电路:确定单片机工作的起始状态,完成单片机的启动过程。单片机系统的复位方式有上电自动复位和手动按键复位。本设计采用手动按键复位,该复位方式同样具有上电自动复位功能。

(vb课程设计)图片浏览器修改

图片浏览器设计报告 学院土木工程学院班级土木工程C076 学号074837 姓名郭少华成绩 一、设计思路 1.要达到的目的 ①培养学生综合利用VB语言进行程序设计的能力,主要是利用VB的标准控件进行设计。 ②能够打开常见类型的图片,自动进行缩放,适应PictureBox的大小。 ③在FileListBox中只列出图片文件。 ④使用StatusBar 控件状态条显示图片文件相关信息,包括图片尺寸(单位:象素)、文件大小和日期等。 ⑤使用HscrollBar控件对图片进行缩放。 ⑤可以轮流显示FileListBox中列出图片文件。 ⑥当图片放大超过窗口大小后,可以提供鼠标移动图片显示。 2.关键问题的解决 ①使用Loadpicture方法在图片框里加载符合格式要求的图片。 ②使用FileListBox方法来显示图片。 ③使用PaintPicture方法和改变滚动条的Value属性,使图片能够缩放。 ④使用Timer事件更改FileListBox的ListCount属性,使图片能自动浏览。 ⑤使用MouseMove事件,在图片过大时,通过鼠标移动使图片显示。 二、模块之间的调用关系,或程序流程图 picture 模 块 hscrollbar 模 块pictureload

三、部分程序关键源代码及注释 Private Sub Form_Load() Drive1.Drive = App.Path Dir1.Path = App.Path 'App 是当前的应用程序对象 File1.Pattern = "*.bmp;*.jpg;*.ico;*.wmf" '在FileListBox中只列出图片文件。 Picture1.AutoSize = True Picture2.AutoSize = True '设定自动缩放,适应PictureBox的大小。 = 2000 = sbrCenter = 1800 = sbrCenter = 2400 = sbrCenter = 3000 = sbrCenter '设定StatusBar的数量和属性 End Sub Private Sub Drive1_Change() On Error Resume Next Dir1.Refresh Dir1.Path = Drive1.Drive If Err.Number = 68 Then Err.Clear MsgBox "先将光盘插入!", , "提示" Exit Sub End If '设定错误提示 End Sub Private Sub Dir1_Change() File1.Path = Dir1.Path End Sub Private Sub File1_Click() If Right(File1.Path, 1) <> "\" Then tempstring = File1.Path & "\" & File1.FileName '非根目录时,路径中的最后加上一个反斜杠"\" Else tempstring = File1.Path & "\" & File1.FileName End If '装入选定的文件。 Picture1.Enabled = True Picture2.Picture = LoadPicture(tempstring) Picture1.PaintPicture Picture2.Picture _ , 0, 0, Picture1.Width, Picture1.Height, _ 0, 0, Picture2.Width, Picture2.Height '设定图片的初始状态。 Picture2.Visible = False mysize = FileLen(Dir1.Path & "\" & File1.FileName) Picture2.ScaleMode = 3

简易浏览器设计报告

目录 目录 (1) 一、课程设计的目的与要求 (2) 二、题目说明 (2) 2.1程序开发背景................................................................... 错误!未定义书签。 2.2开发工具介绍 (2) 三、总体设计 (2) 3.1.系统开发平台: (2) 这个简易浏览器由Java语言编写,用Eclipse编译执行 (2) 3.2.系统流程图: (3) 3.3功能结构图: (3) 四、详细说明 (4) 4.1 系统实施 (4) 五、遇到的问题和解决方法 (9) 六、课程设计总结 (10)

一、课程设计的目的与要求 加深学生对面向对象概念以及JAVA面向对象程序设计思想的理解和掌握;使学生熟悉开发一个项目的基本过程,培养学生分析问题和解决问题的能力,增强学生的动手能力。为后续学习和应用打下一定的基础。 二、题目说明 本程序实现一个简单的浏览器。用户通过在URL输入框中输入要下载的网络页面的网址,并点击浏览器界面上相应的按钮,或直接按回车键,就能完成网络页面下载的功能。同时,它还支持浏览本地HTML文件,用户在输入框中输入文件所在盘符及具体路径,并按回车键,或者点击界面上相应按钮,实现浏览本地文件的功能。它能够实现页面的文本链接,能够显示网页图片,并能够通过相应按钮的操作返回上一次访问的页面,还可以通过相应按钮返回后退之前访问的页面。该简易浏览器能帮助用户实现基本的网页浏览功能。 2.2开发工具介绍 三、总体设计 3.1.系统开发平台: 这个简易浏览器由Java语言编写,用Eclipse编译执行

基于单片机的LED流水灯设计

基于单片机的LED流水灯设计 设计任务 1掌握MCS-51系列8051、8255的最小电路及外围扩展电路的设计方法 2了解单片机数据转换功能及工作过程 3设计LED流水灯系统,实现8个LED霓虹灯的左、右循环显示4完成主要功能模块的硬件电路设计 5用proteus软件完成原理电路图的绘制 一设计方法 本课题使用AT89C51单片机时无须外扩存储器。因此,本流水灯实际上就是一个带有八个发光二极管的单片机最小应用系统,即为由发光二极管、晶振、复位、电源等电路和必要的软件组成的单个单片机。如果要让接在P1.0口的LED1亮起来,那么只要把P1.0口的电平变为低电平就可以了;相反,如果要接在P1.0口的LED1熄灭,就要把P1.0口的电平变为高电平;同理,接在P1.1~P1.7口的其他7个LED 的点亮和熄灭的方法同LED1。因此,要实现流水灯功能,我们只要将发光二极管LED1~LED8依次点亮、熄灭,8只LED灯便会一亮一暗的做流水灯了。由于人眼的视觉暂留效应以及单片机执行每条指令的时间很短,我们在控制二极管亮灭的时候应该延时一段时间,否则我们就看不到

“流水”效果了。 二方案论证与比较 2.1循环移位法 在上个程序中我们是逐个控制P1端口的每个位来实现的,因此程序显得有点复杂,下面我们利用循环移位指令,采用循环程序结构进行编程。我们在程序一开始就给P1口送一个数,这个数本身就让P1.0先低,其他位为高,然后延时一段时间,再让这个数据向高位移动,然后再输出至P1口,这样就实现“流水”效果啦。由于8051系列单片机的指令中只有对累加器ACC中数据左移或右移的指令,因此实际编程中我们应把需移动的数据先放到ACC中,让其移动,然后将ACC移动后的数据再转送到P1口,这样同样可以实现“流水”效果。具体编程如下所示,程序结构确实简单了很多。 2.2查表法 上面的两个程序都是比较简单的流水灯程序,“流水”花样只能实现单一的“从左到右”流方式。运用查表法所编写的流水灯程序,能够实现任意方式流水,而且流水花样无限,只要更改流水花样数据表的流水数据就可以随意添加或改变流水花样,真正实现随心所欲的流水灯效果。我们首先把要显示流水花样的数据建在一个以TAB为标号的数据表中,然后通过查表指令“MOVC A,@A+DPTR”把数据取到累加器A中,然后再送到P1口进行显示。具体源程序如下,TAB标号处的数据表可以根据实

web网站个人主页课程设计

引言 目录 第一章概述 (1) 1.1 本课题的研究背景 (1) 1.2 本课题的研究意义 (1) 1.3 现行研究存在的问题及解决办法 (1) 1.3.1 需求分析问题 (1) 1.3.2 代码实现问题 (2) 第二章系统分析 (2) 2.1系统需求分析 (2) 2.2 采用的关键技术介绍 (2) 2.2.1 https://www.360docs.net/doc/804279418.html,简介 (2) 2.2.2 Access数据库简介 (3) 2.3 可行性分析 (3) 2.3.1 技术可行性 (3) 2.3.2 操作可行性 (3)

第三章系统概要设计 (5) 3.1 系统总体设计 (5) 3.1.1 运行环境 (5) 3.1.2 系统流程 (5) 3.1.3 系统结构 (6) 3.2 系统接口的概要设计 (7) 3.2.1 用户接口 (7) 3.3 数据库概要设计 (8) 3.3.1 逻辑结构设计 (8) 3.3.2 物理结构设计 (9) 第四章系统详细设计 (10) 4.1 系统界面的详细设计 (10) 4.1.1 普通用户首页的详细设计 (10) 4.1.2 留言界面的详细设计 (11) 4.1.3 后台首页的详细设计 (11) 4.2 数据库详细设计 (12) 4.2.1 表的详细设计 (12) 第五章系统实现 (15) 5.1 系统开发环境 (15) 5.2 系统实现 (15) 5.2.1 客户端系统实现 (15) 5.2.2 后台管理系统实现 (17) 5.3 系统部署 (17) 5.3.1数据库设置 (17) 5.3.2 服务器端运行设置步骤 (18) 第六章性能测试与分析 (19) 参考文献 (20)

简单IE浏览器设计报告

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 主界面的设计主界面用纯白色背景,界面以中等大小为宜。使用绿色为边框颜色,用画图工具拷贝文件按钮,设有六个小按钮,包括前进、后退、删除、刷新、转到等按钮。主界面用纯白色背景,界面以中等大小为宜。

(完整word版)Java课程设计的图片浏览器的讲解

一.课程设计的任务及要求 二.需求分析 图形化界面(GUI)编程,编写一个图片浏览器程序可以支持““.GIF”,“.JPEG”,“.jpeg”,“.TGA”,“.JPG”,“.jpg”等格式,单张打开图片,可以将同一目录下的图片按缩略图打开按“上一张”“下一张”按钮可以显示相应图片。运行Applet时,图像不是一气呵成的,因为方法不是吧图像完整的装入内存再显示的。于此相反,方法创建一个线程,该线程与Applet的原有线程并发执行,一边装入一边显示,从而产生上了不联需显示的现象。为了提高图像才显示效果,可以采用双缓冲技术:首先把图像装入内存,然后再显示在屏幕上。 三. 设计思路 3.1界面设计 选择图片按钮:主要用dir函数实现图片的遍历。 上一张,下一张:通过做标轴回调函数实现。 由于本软件为单机软件,不需要大量的数据读写和数据交换,实现上、下功能要求只能读取PictureBox控件当前加载的目录,读取当前路径,创建一维数组。 frame = new Frame("PictureViewer"); Panel pb = new Panel(); Button select = new Button("选择图片"); previous = new Button("上一张"); next = new Button("下一张"); select.addActionListener(this); previous.addActionListener(this); 3.2.图像加载: Applet常用来显示储存在文件中的图像,多数Applet使用的是GIF或JPEG 格式的图像文件。需Applet加载图像只需首先定义Image对象,然后使用getImage()方法把图像和文件结合起来即可。 image_width = bi.getWidth(this); image_height = bi.getHeight(this); double image_proportion = 1.0 * image_height / image_width; System.out.println("image: w "+image_width+" ,h "+image_height+" ,p1 "+image_proportion);

硕士毕业学位论文规范

华中农业大学研究生学位(毕业)论文形式规范 (自然科学版) (1999年3月第一版,2012年6月第五次修订) 为进一步规范学位(毕业)论文写作和装订,促进研究生学位(毕业)论文形式标准化,特制订本规范,其各项要求适用于答辩前后的论文,各位研究生在论文写作时务必认真阅读,严格执行。 1 论文组成 一本完整的论文包括:封面、扉页、目录、中文摘要、英文摘要、缩略表、正文、参考文献、附录、致谢几个部分。其中正文由前言、材料与方法、结果与分析、讨论等几个部分组成。 “华中农业大学学位(毕业)论文独创性声明及使用授权书”置于扉页与目录之间。 2 论文外观 论文的开本为A4纸,其尺寸为:mm: 297×210,其中上边距25 mm、下边距25 mm、装订边边距32 mm、非装订边边距25 mm、页眉20mm、页脚15 mm,奇偶页页边距对称,页眉、页脚居中排列,其中,奇数页叶眉为论文题目,偶数页页眉为“华中农业大学××届博/硕士研究生学位(毕业)论文”。定稿后,用优质A4纸双面(不允许以A3纸单面复印后对折)。装订整齐、美观。 论文目录一般应自动生成,目录本身的页码用大写罗马数字(Ⅰ、Ⅱ、Ⅲ…)单独编排,中英文摘要、缩略语表等的页码用小写罗马数字(ⅰ、ⅱ、ⅲ…)单独编排,从正文开始到最后,页码用阿拉伯数字(1、2、3…)编排,页码居中排列,不能出现漏编、重编、倒编等错误。 文章编排应有统一的标准。正文应统一行间距,标题与正文、表头、题头等可以用不同的字号和字体加以区别,但对于同一级的标题,要采用同样的字号与字体。所有的正文文字应采用同一字号与字体(推荐中文用宋体,英文用Times New Roman,字号小四),表题、图题字号应比正文文字小一字号,图例说明字号应比图题小一字号,以示与正文文字有所区别。中英文切换时注意改变字体。 论文正式输出前做认真仔细的校对,特别要严格检查错别字、漏字、段落错乱、标题混乱等问题。装订好的论文中不应出现手工涂改的痕迹,整篇论文的错别字、漏字应控制在10次以下。 整篇论文做好孤行、孤尾控制,即一段文字的最后一行不落在下一页,一段文字的启始一行(特别是标题)不放在前一页。 所有的表图,包括表题、图题、图例说明、脚注等,都应尽可能放在同一页,

流水灯设计

新能源与动力工程学院课程设计报告 单片机系统课程设计 专业: 班级: 姓名: 学号: 指导教师: 2014年7 月

新能源与动力工程学院课程设计任务书课程名称:单片机系统课程设计指导教师(签名): 班级:姓名:学号:

指导教师评语及成绩评定表 指导教师签字: 年月日

目录 绪论 ....................................................................................................................... - 1 -1 引言 ....................................................................................................................... - 1 - 1.1设计任务 .................................................................................................... - 2 - 1.2设计意义 .................................................................................................... - 2 - 1.3设计思路 .................................................................................................... - 2 - 1.4设计目的 .................................................................................................... - 2 - 2 总体设计 ............................................................................................................... - 3 - 2.1系统框图 .................................................................................................... - 3 -3设计步骤 ................................................................................................................ - 3 - 3.1 STC89C52简介 ......................................................................................... - 3 - 3.2硬件设计 .................................................................................................... - 5 - 3.3单片机时钟电路 ........................................................................................ - 5 - 3.4复位电路 .................................................................................................... - 5 - 3.5工作电路 .................................................................................................... - 6 - 4 软件设计 ............................................................................................................... - 6 - 4.1设计要求 .................................................................................................... - 6 - 4.2软件的流程图 ............................................................................................ - 7 - 4.3程序代码 .................................................................................................... - 7 - 5 软件调试 ............................................................................................................... - 9 - 6 总结 ....................................................................................................................... - 9 - 7 心得体会 ............................................................................................................... - 9 -参考文献 ................................................................................................................. - 10 -附录1 元件清单 .................................................................................................... - 11 -

基于java的浏览器的设计与实现

基于java的浏览器的设计与实现——GUI界面子系统 摘要 21世纪人们对互联网的依赖越来越大,而网页浏览器作为上网浏览信息所必需的软件之一,已经得到了广泛地应用。在IE占据了大部分浏览器市场的情况下,国内外开发商依然没有放弃这个巨大的市场,各式各样的浏览器被开发出来抢占市场。网页浏览器的开发与应用已成为了计算机领域近年来的一大热点。 本文用软件工程的开发过程,详细论述了浏览器的分析、设计及代码实现,最终实现一个具有能同时浏览多个网页,可查看收藏夹,可以实现打开网页,超链接监听并响应,前进和后退等基本功能的浏览器。本文以一个实际运作的浏览器Browser为主轴介绍浏览器的设计理念与方法,同时讲述浏览器中各个模块如何互相协同运作,来完成一个呈现网页的工作。通过下载JDIC类库,实现了浏览器选项卡,从而达成了一个窗口显示多个网页的目的。收藏夹的实现是将收藏夹集合序列化到数据文件中,这样收藏夹被持久化解决了收藏夹的问题。另外,Java Swing技术也是本文介绍的浏览器所使用的一种主要的技术,通过使用各个组件,并增加监听器和事件处理等操作,最终形成一个具有一定事物处理能力的浏览器的界面部分。 关键词:浏览器,JDIC类库,Java Swing,事件

Based on the design and implementation of a Java browser Abstract In the 21st century, people rely on the Internet is more and more big, the web browser as one of the necessary software, surfing the Internet information has been widely used. In the case of occupying most of the IE browser market, developers still didn't give up the huge market at home and abroad, developed a variety of browser is preempted market. The development and application of web browser has become a focus in the computer field in recent years. In the development process of software engineering, this paper detailed discusses the analysis, design and code implementation of the browser, and ultimately achieve a have to browse multiple web pages at the same time, to view the favorites, can realize open a webpage, hyperlinks to monitor and respond to, the basic function such as forward and backward in the browser. Based on an actual operation of the Browser Browser Browser design concept and method of introduction for main shaft, various modules tells the Browser how to work together with each other at the same time, to finish the work of a rendered page. By downloading the JDIC class library, the realization of the browser TAB, which reached the purpose of a window to display multiple web pages. The realization of the favorites are favorites collection serialized into a data file, this collection double coverlet persistent solved the problem of the favorites. In addition, the Java Swing technology is also introduced in this paper by the browser using a kind of main technology, through the use of the individual components, and adding listeners and event handling operations such as, eventually forming a certain things browser interface part of processing capacity. Keywords:The browser,The JDIC class library,Java Swing,The event

怎样写好一篇硕士毕业论文

怎样写好一篇硕士毕业论文(转载) 一、关于选题 选题是撰写学位论文的首要环节。从过去的实践看,有些研究生在撰写论文时,虽然费了很多的精力和时间,但是质量不高,其中重要原因是论文题目没有选好。要选好题目,必须注意:一是选题要符合研究方向,不能超出本专业研究方向的范围随意去选,否则即使论文作得不错,也不易被通过。二要注意选题的价值性。在理论上要有开拓价值。凡是难以提出自己见解的题目,最好不要去选。三是要有现实意义。有些学生往往热衷于抽象的思辨,好像把问题说得越玄越好,别人越看不懂越好。这是不可取的。要坚持理论与实际相结合的原则。选题不但要考虑“热点”问题,而且要善于发现具有发展潜力和前途的题目。要做到这一点很不容易,需要有较深的理论功底和敏锐的观察力。但这必须作为一个努力方向。四要注意选题的可行性。有些选题看起来很有特色,也很重要,但是如果缺乏实现的必要条件,例如资料很少,无法下手,也是不可取的。如有的学生在选择论文题目时,最容易犯的毛病就是追求大题,似乎题目越大越好,结果往往难以做好。我认为,在这个方面,要“ 小题大作,不要“大题小作”。这样,论文就好拓宽加深,比较容易写深写透,避免面面俱到,蜻蜓点水。总之,要在研究方向的范围内,根据所掌握的或可能掌握的资料,确定论文的题目。二、关于开题 开题是介于选题和写作之间的中间环节。在这个环节中,首先要查阅、消化和综合文献。题目确定后,要集中一段时间查阅文献。科学研究必须吸收前人的研究成果,避免重复或走弯路,并力求有所前进。在这个问题上,导师要提供一些主要文献并指出一个大的范围,让学生逐步扩大知识面。学生可以根据已经掌握的文献,从这些文献所引证的参考文献目录中进一步去查找其他文献。这种“顺藤摸瓜”的方法,是一个可以在较短的时间内收集到较多资料的捷径。另外还要查阅与自己的研究工作有关的学术期刊,特别是一些重要期刊,要尽量精查精读,读一些重点文章。这里,起码要看完所有目录。这样,就可以了解本学科专业在这个问题上研究的历史和现状,发现其中存在的问题和发展趋势,以便从中找准自己的主攻方向。还要重视报刊文摘中的“二次文献”。现在,要充分利用电脑,进行网上查找。在查阅了大量文献的基础上,进行综合性研究。在研究文献资料时,要注意三个问题:一是要弄清别人

单片机课程设计报告--心形流水灯

井冈山大学 机电工程学院 单片机 课程设计报告 课程名称:单片机 设计题目:心形流水灯 姓名:彭玉红 专业:生物医学工程 班级:11级医工本一班 学号:110615017 指导教师:王佑湖 2013年11月27日

目录 1引言 (2) 1.1设计任务 (2) 1.2设计要求……………………………………………… ..2 2 课题综述 (2) 2.1课题的来源 (2) 2.2面对的问题 (2) 3 系统分析 (2) 3.1 STC89C52单片机引脚图及引脚功能介绍 (2) 4 系统设计 (4) 4.1硬件设计 (4) 4.1.1硬件框图 (4) 4.1.2硬件详细设计 (5) 4.2 软件设计 (5) 4.3 硬件原理图 (6) 4.4 元件清单 (6) 4.5 硬件焊接图 (6) 4.6 代码编写 (7) 5心得体会 (7) 6致谢 (8) 参考文献 (8)

1 引言 单片机课程设计主要是为了让我们增进对STC89C51单片机电路的感性认识,加深对理论方面的理解。了解软硬件的有关知识,并掌握软硬件设计过程、方法及实现,为以后设计和实现应用系统打下良好基础。另外,通过简单课题的设计练习,使我们了解必须提交的各项工程文件,达到巩固、充实和综合运用所学知识解决实际问题的目的。 1.1设计任务 设计一个单片机控制的流水灯系统 1.2设计要求 (1)32个LED灯; (2)可实现多种的亮灯(如左循环,右循环,间隔闪,90度交叉闪等)。 2 课题综述 2.1 课题的来源 当今社会,这种由单片机芯片控制各种硬件工作的技术也日益成熟,并普及在交通、化工、机械等各个领域。而流水灯这项技术在生活中的应用更是广泛,较为贴近生活。而流水灯控制的设计所需要的知识也正好吻合了我们本学期对于单片机这门课程的学习,所以设计流水灯控制的这个课题让我们对知识的学习和巩固都有了进一步的加深。 2.2 面对的问题 这次课程设计是通过STC89C52位单片机实现。但面对的问题却

图片浏览器设计与实现

洛阳理工学院 手机软件开发实训报告 专业计算机应用技术 班级Z120551 学号Z12055139 姓完成日期2014-1-6

一、简介 本款图片浏览器软件基于Android系统平台研发的,设计有透明度、缩放、旋转和选择图片等功能,其中设计涉及8个button按钮,可以实现图片的查看和基本的操作功能,框架结构ImageView有两个子类ImageButton 和QuickContactBadge, ImageButton还有一个子类是ZoomButton。 二、程序模块划分 1.XML文件属性 调整边界, 保持长宽比 :android:adjustViewBounds, setAdjustViewBounds(boo lean), 是否调整自己的边界, 用来保持图片的长宽比例, 该属性与android:maxHe ight 和android:maxWidth 属性一起使用才有效果, 单独使用没有效果; 设置最 大宽, 高 :android:maxWidth(android:maxHeight),setMaxWidth(int)[setMaxHeight(in t)], 该属性需要与android:adjustViewBounds属性一起使用,单独使用无效果; 设置图片固定大小, 同时保持长宽比 : a. 设置android:adjustViewBounds 为true; b. 设置最大宽度, 高度; c. 设置android:layout_width 与android:layout_hei ght 值为warp_content; 裁剪保留空白 :android:cropToPadding, setCropToPadding (boolean), 是否裁剪, 用来保留ImageView的padding, 该属性与android:scrollY 属性一起使用的时候才有用, 单独使用没有效果; 即在滚动的时候, 滚动到边界,边界的padding空白是否显示; 填充方式 :android:scaleType, setScaleType(ImageView.ScaleType), 设置图片 缩放类型以适配ImageView大小, 即填充方式; 可能的取值 : matrix, fitXY, fitStart, fitCenter, fitEnd, center, centerCrop, cen terInside; matrix : 方法中的常量值为ImageView.ScaleType.MATRIX, 使用矩阵来进行绘图; fitXY : 方法中的常量值为ImageView.ScaleType.FIT_XY, 在x y 两个方向上缩放, 使图片完全填充整个ImageView 不按照长宽比例缩放; fitStart : 方法中的常量值为ImageView.ScaleType.FIT_START, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片在左上角; fitCenter : 方法中的常量值为ImageView.ScaleType.FIT_CENTER, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于中央; fitEnd : 方法中的常量值为ImageView.ScaleType.FIT_END, 保持长宽比缩放, 直到该图片完全显示在ImageView中, 缩放完成之后该图片位于右下角; center : 方法中的常量值为ImageView.ScaleType.CENTER, 将图片放在ImageView的中央, 不进行缩放; centerCrop : 方法中的常量值为ImageView.ScaleType.CENTER_CROP, 保持长宽比缩放, 使图片完全覆盖ImageView; centerInside : 方法中的常量值为ImageView.ScaleType.CENTER_INSIDE, 保持长宽比缩放, 是的ImageView完全显示图片; (1)程序运行的AndroidManifest描述:【AndroidManifest.xml】

相关文档
最新文档