基于Java的浏览器的设计与实现(含源文件)

基于Java的浏览器的设计与实现(含源文件)
基于Java的浏览器的设计与实现(含源文件)

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

摘要本课程设计主要运用java语言在Eclipse编程环境下设计一个Web浏览器,从而在Windows 98/2000/XP程序运行平台上来实现它的一些基本功能,本课程设计基本实现了预定目标。浏览器的设计包括了图形界面设计和底层设计,在整个设计过程中需要首先构建好图形界面,然后再编程来实现组件以完成相应的功能,浏览器图形界面作为系统和用户之间反馈信息的平台,起着尤为关键的作用。

1 引言

当今世界是一个以计算机网络为核心的信息时代,互联网为人们快速获取、发布和传递信息提供了便捷,而浏览器作为互联网上查找信息的重要工具,给人们提供了巨大而又宝贵了信息财富,受到了大家的高度重视。网页浏览器是显示网页服务器或档案系统内的文件,并让用户与这些文件互动的一种软件。它用来显示在万维网或局域网内的文字、影像及其他资讯。浏览器作为重要的系统应用软件是不可或缺的。但目前,浏览器产品的市场被少数国外大公司垄断,众多的小型浏览器也尚处于发展期,而国内的自主技术的浏览器更屈指可数,刚刚进入实用阶段。迫切需要更多的人来关注浏览器技术,开发中国自主知识产权的浏览器产品。

1.1 项目设计目的

此次课程设计的目的首先是让我们了解信息产业的多元性,把学到的知识运用到实际中,培养学生的综合模拟和实际操作能力,提高学生理论联系实际的能力,开拓创新;其次是掌握使用Eclipse工具设计一个简单的Web浏览器的方法,从而实现对资源的有效访问;掌握Java语言编程,并可综合运用这些知识解决一定的实际问题,使我们在所学知识的综合运用能力上以及分析问题、解决问题能力上得到一定的提高;认识到团队精神的重要性,能够通过良好的分工合作来完成既定目标。

1.2 项目设计内容

(1)熟悉超文本传送协议(HTTP)进行通信;

(2)熟悉Eclipse编程环境及Swing、网络编程方法;

(3)理解B/S工作模式;

(4)实现简单的浏览器程序;

1.3 项目设计要求

(1)按要求编写课程设计报告书,能正确阐述设计结果。

(2)通过课程设计培养学生严谨的科学态度、认真的工作作风和团队协作精神。

(3)学会文献检索的基本方法和综合运用文献的能力。

(4)在老师的指导下,要求每个学生独立完成课程设计的全部内容。

2所用开发环境

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

它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——Eclipse Platform、JDT、CDT和PDE.JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用于Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse 拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse 为框架开发自己的IDE。[1]

2.2 JDK简介

JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品。自从

Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit)。

JDK 是整个Java的核心,包括了Java运行环境(Java Runtime Environment),Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。掌握JDK是学好Java的第一步。最主流的JDK是Sun公司发布的JDK。

JDK包含的基本组件包括:

·javac –编译器,将源程序转成字节码

·jar –打包工具,将相关的类文件打包成一个文件

·javadoc –文档生成器,从源码注释中提取文档

·jdb – debugger,查错工具

·java –运行编译后的java程序(.class后缀的)

appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。

Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。

Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。

Jconsole: Java进行系统调试和监控的工具

3设计原理

3.1 JAVA语言简介

Java是由Sun Microsystems公司于1995年5月推出的Java程序设计语言(以下简称Java语言)和Java平台的总称。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java 被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。另一方面,Java技术也不断更新。

Java平台由Java虚拟机(Java Virtual Machine)和Java 应用编程接口(Application Programming Interface、简称API)构成。Java 应用编程接口为Java 应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。现在Java 平台已经嵌入了几乎所有的操作系统。这样Java程序可以只编译一次,就可以在各种系统中运行。Java分为三个体系JavaSE(Java2 Platform Standard Edition,java 平台标准版),JavaEE(Java 2 Platform,Enterprise Edition,java平台企业版),JavaME(Java 2 Platform Micro Edition,java平台微型版)。

Java主要特性:Java语言是简单的、面向对象的、分布式的、健壮的、安全的、体系结构中立的、可移植的、解释型的、高性能的、多线程的、动态的。

3.2 图形用户界面(GUI)

图形用户界面(Graphical User Interface,简称GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户介面。与早期计算机使用的命令行界面相比,图形界面对于用户来说在视觉上更易于接受。如Windows是以图形界面方式操作的,因为你可以用鼠标来点击按钮来进行操作,很直观。

GUI具有下面几个方面的基本要求:轻型、占用资源少、高性能、高可靠性、便于移植、可配置等特点。GUI由桌面、视窗、单一文件界面、多文件界面、标签、菜单、图标、按钮这几部分组成。[2]

3.3 Java Swing概述

Swing是一个用于开发Java应用程序用户界面的开发工具包,并以此为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。

Swing是建立在AWT之上的,包括大多数轻量组件的组件集。除提供了AWT 所缺少的、大量的附加组件外,Swing还提供了替代AWT重量组件的轻量组件。Swing还包括了一个使人印象深刻的、用于实现包含插入式界面样式等特性的图形用户界面的下层构件。因此,在不同的平台上,Swing组件都能保持组件的界面样式特性,如双缓冲、调试图形和文本编辑包等。还具有以下特点:(1)拥有一个丰富、便捷的用户界面元素集合。

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

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

3.4抽象窗口工具箱(AWT)

AWT(Abstract Windowing Toolkit),中文译为抽象窗口工具包,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT由Java中的java.awt 包提供,里面包含了许多可用来建立与平台无关的图形用户界面(GUI)的类,这些类又被称为组件(components)。

抽象窗口工具包(Abstract Windowing Toolkit)(AWT)是Java的平台独立的窗口系统,图形和用户界面器件工具包。AWT是Java基础类(JFC)的一部分,为Java程序提供图形用户界面(GUI)的标准API。AWT可用于Java的applet和applications中。它支持图形用户界面编程的功能包括:用户界面组件;事件处理模型;图形和图像工具,包括形状、颜色和字体类;布局管理器,可以进行灵活的窗口布局而与特定窗口的尺寸和屏幕分辨率无关;数据传送类,可以通过本地平台的剪贴板来进行剪切和粘贴。

3.5布局算法

本文中的布局应理解为界面输出前的预演和处理位置等信息的算法,而不是具体的画图和界面输出。布局算法的好坏直接关系到界面的输出效果,但布局算法也是要根据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()方法来设置容器的布局管理器。[3]

4 浏览器的设计

4.1功能需求的分析

我们所设计的浏览器功能比较简单,主要概括为以下几点:

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

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

(3)具有超链接功能。

(4) 能够返回到主页面。

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

(6)能够打开本地文件。

4.2设计步骤

我在整个团队中主要负责界面的设置,界面是一个直接反映信息交互的平台,起着举足轻重的作用,在这里我就怎样构建用户界面作为重点进行阐述。

1.容器嵌套

选择好容器就是为界面构造一个基本的骨架,然后再在其中添加各个组件。在GUI中可供选择的容器有Frame, Dialog, Applet, Panel,其中Panel是可视容器,Frame是顶级容器。我们要用Panel和Frame容器。继承顶级容器的方法、功能和参数,将菜单栏置于顶级容器;在次级容器contentpan中加入了工具栏、状态栏、滚动条、编辑区域等,然后用边界布局管理器将所需的组件添加进来,具

体所需组件如下表所示:

表4-1 组件复用表

2.组件定义

与其他编程语言类似,在JAVA中也必须首先对变量以及所要用到的组件定义,确定其合法性,才能在后面的程序中被调用赋值。定义代码如下:private Container contentPane; //变量内容窗格

private JTextField addressTex; //文本框

private JLabel statusLbl; //状态栏

用private分别对滚动条、编辑显示区域、菜单栏、文件选择框、按钮等进行定义。

3.组件初始化、添加和监听

mb=new JMenuBar(); // 初始化菜单栏

m1=new JMenu("File"); // 初始化菜单

m2=new JMenu("Edit");

m3=new JMenu("View");

mb.add(m1); // 将菜单加入菜单栏

mb.add(m2);

mb.add(m3);

//对File菜单各个菜单项初始化

mi1=new JMenuItem("Open File");

mi2=new JMenuItem("Close");

mi3=new JMenuItem("Quit");

Edit、View菜单的各个菜单项进行初始化过程与之类似

//对File菜单各个菜单项进行监听

mi1.addActionListener(new OpenFileActionListener());

mi2.addActionListener(new QuitActionListener());

mi3.addActionListener(new QuitActionListener());

4.设置布局

pp.setBackground(Color.pink); // 设置颜色

pp.setLayout(new FlowLayout()); // 流式布局管理器,对组件由左至右布局pp.add(btn2);//对按钮UNDO布局

pp.add(addressTex); //对地址栏布局

pp.add(btn1); //对按钮GOTO布局

contentPane.add(pp,BorderLayout.NORTH); //将工具栏放置在界面的北方

contentPane.add(statusLbl,BorderLayout.SOUTH);

//状态栏布置在界面的南边

centerPane = new JScrollPane(); // 浏览器体部布置在界面中央

JViewport view = centerPane.getViewport(); // 显示区域

textArea = new JEditorPane(); // 内容显示

5. 按钮功能的实现

每个按钮需要对应到相应的功能。我们设计的浏览器只有UNDO和GOTO 两个按钮。UNDO对应浏览页面的后退浏览,实现这个功能是在监听到用户点击此按钮时后退到上一浏览页面。而GOTO就是当系统监听到地址栏有地址写入时,浏览器先判断这个地址长度是否大于零并且此地址是不是以HTTP开头,如果是,则浏览器主动链接到目的地址;若判断出这个地址长度大于零并且此地址不是以HTTP开头,则在地址前面自动加上HTTP,找到目的地址。

5浏览器的实现

5.1 GOTO按钮功能测试

在程序中地址栏默认网址为“https://www.360docs.net/doc/732925367.html,/”,点击Goto按钮,进入百度主页,如图5.1所示:

图5.1点击Goto进入百度主页截图

5.2测试菜单栏选项

在地址栏中输入“https://www.360docs.net/doc/732925367.html,/”,可以进入Google主页,依次点开File、Edit、View菜单测试器有效性,如下图所示:

图5.2主菜单File的子菜单实现图

图5.3 主菜单Edit的子菜单实现图

图5.4主菜单View的子菜单实现图

点击打开File菜单中的open file按钮时,则打开本地文件。如图5.5所示:

图5.5 主菜单File中OpenFile的实现

5.3超链接的实现

在百度主页中点击“更多”,可直接链接到下一显示页面,证明浏览器实现了链接功能,再点击“Undo”按钮,页面又可返回到百度主页。超链接的实现如图5.6所示:

图5.6 超链接的实现图

经过以上几个步骤的测试,图形界面的设计能够与底层设计达到完美

契合,因此我们团队所设计的浏览器实现了预定功能,基本达到了此次课

程设计的要求,浏览器设计成功。

6 结束语

这次课程设计历时两个星期,在这两个星期的学习中,我初步掌握了有关JAVA的基础知识,能够理解较为简单的JAVA程序,基本实现课程设计的要求。我认为这次课程设计最大的收获是深刻地认识到了团队合作的重要性。

在以往的课内学习中,我个人懂得了较多的理论知识,同时也进行了上机实践加强自己对理论的理解并提升了实际操作能力。而本次课程设计相对于实验又有了质的飞跃,我们通过最初的特色组队、确立团队目标,然后缜密构思、分工合作,最终实现了我们设计的浏览器的基本功能。这一路做过来,我们多次请教了老师,翻阅了有关参考书,最重要的是进行了团队激烈的讨论,遇到问题再解决问题然后再发现问题再解决的思想火花的碰撞……在这一过程的循环往复中我深深地体验到了思考和学习的乐趣。在享受这一过程中,我不仅学到了新的知识,我的思维也更加开阔、更加灵活、更加全面了。

短短的几星期中,我有过失败的沮丧,也有过成功的欣喜。在一次次的挫折和失败中我不断寻找真理,寻找解决问题的最佳途径,更加深刻地体会到了“失

败乃成功之母”的含义,惰性和轻易放弃成了我最大的敌人,很庆幸,我战胜了它们,其实是战胜了自己,最终赢得了硕果。如同需要浇灌才能长成的硕果一样,我的最终成果也是用辛勤汗水培育而来的,当然也离不开老师的耐心指导和同学的无私帮助。在这里我也要对敬爱的老师和同学们的深切关怀表示衷心的感谢!

对我而言,知识上的收获固然重要,精神上的丰收更加可贵。面对生活其实也是相同的道理,不抛弃不放弃是成功的前提。人生是在不断地攀登中提升的,山的绵延组成了曲折的人生,当我们经历过风雨最终爬到顶峰看到美轮美奂的日出时,一切艰难都显得苍白无力。挫折是一份财富,经历是一份拥有。感谢大家让我拥有这份最珍贵的财富!

参考文献

[1] 2004马俊范玫.JAVA语言面向对象程序设计.机械工业出版社. 2009年

[2]于万波.Java语言实用教程. 清华大学出版社.2008年

[3]刘亚滨.精通Eclipse.北京:电子工业出版社.2004

附录1:Web服务器设计与实现源程序清单% 程序功能::Web服务器设计与实现

% 程序作者:陈璐

% 最后修改日期:2009-07-03

package com.briup.browser;

import java.awt.BorderLayout;

import java.awt.Color;

import https://www.360docs.net/doc/732925367.html,ponent;

import java.awt.Container;

import java.awt.FileDialog;

import java.awt.FlowLayout;

import java.awt.Frame;

import java.awt.Panel;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.io.BufferedInputStream;

import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.FilenameFilter;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import https://www.360docs.net/doc/732925367.html,.MalformedURLException;

import https://www.360docs.net/doc/732925367.html,.URL;

import java.util.ArrayList;

import java.util.Date;

import java.util.Iterator;

import javax.swing.JButton;

import javax.swing.JEditorPane;

import javax.swing.JFileChooser;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JMenu;

import javax.swing.JMenuBar;

import javax.swing.JMenuItem;

import javax.swing.JOptionPane;

import javax.swing.JPanel;

import javax.swing.JProgressBar;

import javax.swing.JScrollPane;

import javax.swing.JTextField;

import javax.swing.JTree;

import javax.swing.JViewport;

import javax.swing.event.HyperlinkEvent;

import javax.swing.event.HyperlinkListener;

import javax.swing.text.html.HTMLDocument;

import javax.swing.text.html.HTMLFrameHyperlinkEvent; import javax.swing.tree.DefaultMutableTreeNode; import com.briup.browser.Browser;

public class Browser extends JFrame{

private Container contentPane;

private JTextField addressTex;//文本框

private JLabel statusLbl;

private JScrollPane centerPane;//初始化滚动条

private JEditorPane textArea;//编辑显示区域

private JMenuBar mb;

// 文件选择框

private JFileChooser chooser1=new JFileChooser(); private JButton btn1,btn2,btn3;

private ArrayList list;

private JMenu m1,m2,m3;

// 菜单项

private JMenuItem

mi1,mi2,mi3,mi4,mi5,mi6;

public Browser(String title){

super(title);

setBounds(120,80, 750, 500);

setDefaultCloseOperation(

this.EXIT_ON_CLOSE);

contentPane = this.getContentPane();

initGUI();

// 初始化菜单栏

mb=new JMenuBar();

// 初始化菜单

m1=new JMenu("File");

m2=new JMenu("Edit");

m3=new JMenu("View");

// 将菜单加入菜单栏

mb.add(m1);

mb.add(m2);

mb.add(m3);

setJMenuBar(mb);

// 对File菜单各个菜单项初始化

// 初始化菜单项

mi1=new JMenuItem("Open File");

mi1.addActionListener(new OpenFileActionListener());

mi2=new JMenuItem("Close");

mi2.addActionListener(new QuitActionListener());

mi3=new JMenuItem("Quit");

mi3.addActionListener(new QuitActionListener());

// 对Edit菜单的各个菜单项进行初始化

mi4=new JMenuItem("Cut");

mi5=new JMenuItem("Copy");

// 对View菜单的各个菜单项进行初始化,并添加监听

mi6=new JMenuItem("State Bar");

// 将菜单项加入到file菜单

m1.add(mi1);

m1.add(mi2);

m1.add(mi3);

// 将菜单项加入到Edit菜单

m2.add(mi4);

m2.add(mi5);

// 将菜单项加入到view菜单

m3.add(mi6);

}

private void initGUI() {

contentPane.setLayout(new BorderLayout());

// 地址栏

addressTex = new JTextField(40);

addressTex.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String address =

addressTex.getText().trim();

try{

if(addressTex.getText().length()>0&&

addressTex.getText().startsWith("http://"))

textArea.setPage(address);

else if(addressTex.getText().length()>0&&

!addressTex.getText().startsWith("http://"))

{String newURL="";

newURL="http://"+addressTex.getText();// 加http:

URL newurl=new URL(newURL);

addressTex.setText(newURL);

textArea.setPage(newurl);

}} catch (IOException e1) {

e1.printStackTrace();

}

}

});

btn1 = new JButton("Goto");

btn1.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String address =

addressTex.getText().trim();

try{

if(addressTex.getText().length()>0&&

addressTex.getText().startsWith("http://"))

textArea.setPage(address);

else if(addressTex.getText().length()>0&&

!addressTex.getText().startsWith("http://"))

{String newURL="";

newURL="http://"+addressTex.getText();// 加http:

URL newurl=new URL(newURL);

addressTex.setText(newURL);

textArea.setPage(newurl);

}} catch (IOException e1) {

e1.printStackTrace();

}

}

});

btn2 = new JButton("Undo");

btn2.addActionListener(new ActionListener(){

public void actionPerformed(ActionEvent e) {

String address =

addressTex.getText().trim();

try{

if(addressTex.getText().length()>0&&

addressTex.getText().startsWith("http://"))

textArea.setPage(address);

else if(addressTex.getText().length()>0&&

!addressTex.getText().startsWith("http://"))

{String newURL="";

newURL="http://"+addressTex.getText();// 加http:

URL newurl=new URL(newURL);

textArea.setPage(newURL);

}} catch (IOException e1) {

e1.printStackTrace();

}

}

});

JPanel pp = new JPanel();

// 设置颜色

pp.setBackground(Color.pink);

pp.setLayout(new FlowLayout());

pp.add(btn2);

pp.add(addressTex);

pp.add(btn1);

contentPane.add(pp,BorderLayout.NORTH);

//状态栏

statusLbl = new JLabel("status: ");

contentPane.add(statusLbl,BorderLayout.SOUTH);

// 浏览器体部

centerPane = new JScrollPane();

// 显示区域

JViewport view = centerPane.getViewport();

// 内容显示

textArea = new JEditorPane();

// 监听超链接,使其生效

textArea.addHyperlinkListener

(new HyperlinkListener(){

public void hyperlinkUpdate(HyperlinkEvent e) {

if (e.getEventType() == HyperlinkEvent.EventType.ACTIVATED) {

JEditorPane pane = (JEditorPane) e.getSource();

if (e instanceof HTMLFrameHyperlinkEvent) {

HTMLFrameHyperlinkEvent evt = (HTMLFrameHyperlinkEvent)e;

HTMLDocument doc = (HTMLDocument)pane.getDocument();

doc.processHTMLFrameHyperlinkEvent(evt);

} else {

try {

pane.setPage(e.getURL());

} catch (Throwable t) {

t.printStackTrace();

}

}

}

}

});

addressTex.setText("https://www.360docs.net/doc/732925367.html,/");

// 设置不可写操作

textArea.setEditable(false);

view.add(textArea);

contentPane.add(centerPane);

}

// 撤销按钮

class UndoActionListener implements ActionListener{

public void actionPerformed(ActionEvent e) {

btn2.setEnabled(true);

int index=list.indexOf(addressTex.getText());

if(index-1>=0){

String preURL=(String)list.get(index-1);

addressTex.setText(preURL);

if((list.indexOf(preURL))==0){

btn1.setEnabled(false);

}

try {

URL url=new URL(preURL);

textArea.setPage(url);

} catch (IOException e1) {

e1.printStackTrace();

}

}

}

}

// 选择打开文件

class MyFilenameChooser implements FilenameFilter{

public boolean accept(File dir,String name){

return name.endsWith("html");

}

}

// 打开文件

public void openFile(String fileName){

try {

URL url=new URL("file"+":///"+fileName);

addressTex.setText(url.toString());

} catch (Exception e1) {

JOptionPane.showMessageDialog

(null,"打开失败!","?openopen打开文件

",JOptionPane.ERROR_MESSAGE);

}

}

// 打开文件

class OpenFileActionListener implements ActionListener{

public void actionPerformed(ActionEvent e) {

FileDialog fd=new FileDialog(new Frame(),

"Open a file",FileDialog.LOAD);

FilenameFilter ff=new MyFilenameChooser();

fd.setVisible(true);

String name=fd.getFile();

openFile(fd.getDirectory()+name);

}

}

public boolean filter(String strURL){

FileReader fr=null;

BufferedReader br=null;

boolean flag=true;

try {

br=new BufferedReader(fr);

String temp=null;

while((temp=br.readLine())!=null){

if(temp.equals(strURL))

flag=false;

else

flag=true;

}

return flag;

} catch (Exception e) {

e.printStackTrace();

return false;

}

}

计算器java课程设计(完整版)

《面向对象程序设计》课程设计报告 课程设计题目:计算器 学生姓名:李婉如 专业:信息管理与信息系统 班级:1424603 指导教师:司红伟 2016年 5 月 25 日

一、课设任务及要求 1)课设任务: ⑴设计的计算器应用程序可以完成加法、减法、乘法、除法以及取余运 算(可以进行浮点数和负数的运算)。 ⑵有求倒数、退格和清零功能。 2)创新要求: 能进行正切、余弦,以及求平方根、指数(包括对e)、自然对数运算。 3)设计要求 ①设计的计算器应用程序可以完成加法、减法、乘法、除法和取余运算。且有小数点、正负号、求倒数、退格和清零功能。 ②课程设计可选用Eclipse、JBuilder、NetBeans等作为开发平台以提高开发效率,通过资料查阅和学习尽可能熟练掌握其中一种集成开发环境。 ③认真按时完成课程设计报告,课程设计报告内容包括:设计任务与要求、需求分析、设计思路、详细设计、运行调试与分析讨论和设计体会与小结六个部分。

二、设计思路 ⑴本应用程序继承自框架类(JFrame),容器Container c采用BorderLayout 边缘布局,将单行文本框加入到“North”区域,包含各种按钮的面板JPanel p加入到”Center”区域。包含各种按钮的面板JPanel p 采用3行6列的网格布局,然后将数字按钮和运算符按钮以及控制按钮用一个for循环添加到面板中同时注册按钮事件监听器。如: Button b=new Button(); b.addActionListener(事件监听器); ⑵事件监听器中的事件处理方法void actionPerformed(ActionEvent evt)完成主要的按钮事件的处理。事件处理分以下几种情况:数字按钮事件(”0”,”1”,”2”…”8”,”9”)、运算符按钮事件(”+”,”-“,”*”,”/”,”%”)、正负号按钮事件(”+/-“)、小数点按钮事件(”.”)、等号按钮事件(”=”)、求倒按钮事件(”求倒”)、退格按钮事件(”退格”)、清除按钮事件(“C”) 、正切(tan)、余弦(cos),以及求平方根(sqrt)、指数(pow)、对e的指数(exp)、对数运算(log)。 ⑶在事件处理,触发按钮事件时,先判断是或是数字是或是“-/+”是或是“.”,是的话就将负号“-”、数字、小数点“.”分别写入文本框并存放在sum中,然后判断是或是“退格”、“求倒”等,是的话进行相应的处理,都不是的话则跳到doOperation()执行运算同时将运算符存放在preOperater中。触发按钮事件时,要进一步分析,是重新开始计算时触发的按钮事件还是计算中间触发的按钮事件。 ⑷计算器完成的是一个数学表达式,如:3+2,所以可以采用一个数组来存储数字或字符,如3,+,2分别存储在数组中,最后运算时,可以一一取出来进行运算。 ⑸利用按钮设计计算器的各个运算符和操作符,通过按钮的事件处理实现按钮计算功能。 ⑹利用文本框显示操作数和运算结果。

java记事本课程设计论文附源码

设计题目:记事本课程设计 专业:电子信息科学与技术 班级:电子1202班 学号:20121210606 姓名:王鹏 2015 年7月

XXX学院本科学生课程设计任务书

摘要 目前,很多新的技术领域都涉及到了Java语言,Java语言是面向对象编程,并涉及到网络、多线程等重要的基础知识,因此Java语言也是学习面向对象编程和网络编程的首选语言。此次课程设计主要通过编写一个简单的记事本程序使我们深入理解并实践在本课程中所学的有关JAVA程序设计方面的语言基础、异常处理、事件处理、小应用程序以及图形用户界面设计等内容。此简易记事本程序,使用Java程序编写,能够进行输入文字操作,并具有新建文件,打开文件,保存文件,退出,复制,粘贴,剪切等功能。该程序主要用到了Java swing和事件监听等。 关键词记事本程序,java语言,Java swing

目录 摘要 (1) 1 需求分析 (3) 1.1需求分析 (3) 1.2功能设计 (3) 2 概要分析 (4) 2.1概要设计思想 (4) 2.2程序运行界面 (4) 2.3程序模块说明 (4) 2.4流程图 (5) 2.5程序相关说明 (6) 3 程序详细设计与分析 (8) 3.1构建菜单栏及其下拉菜单 (8) 3.2“文件”菜单操作的事件监听 (8) 3.3“编辑”、“格式”等菜单的事件监听 (10) 3.4异常处理 (11) 4 测试分析 (12) 5 源程序清单 (15) 结论 (22) 参考文献 (23)

1 需求分析 1.1需求分析 现在网络上各种文档编辑器数不胜数,有EmEditor ,UEStudio ,GridinSoft Notepad ,Notepad++,win32pad ,SkimEdit,UniRed, xint 。功能也是应有尽有,有能改变字体的,有能改变文字颜色的。但是,这些软件又存在各种各样的瑕疵或问题:有的文件体积相对于一般文字编辑来说太大;有的功能太繁杂,使初级使用者一时难以掌握。仅从日常应用方面来说,一个文本编辑器只需一些简单实用的功能就够了。本程序设计就是依照这样一种使用需要设计了一个简单的记事本程序。 1.2功能设计 本程序要构建的记事本程序参照了Windows操作系统的记事本工具,其功能有以下几个方面: 1、菜单中有“文件”,“编辑”,“格式”,“查看”,“帮助”五个主菜单。 2、“文件”有“新建”“打开”“保存”“另存为”“退出”五个子菜单:分别用于新建文件,打开文件,保存文件,另存文件,退出记事本。 3、“编辑”中有“撤销”“剪切”“复制”“粘贴”“全选”“时间/日期”六个字菜单:用于撤销操作,剪切文字,复制文字,粘贴文字。全部选择,插入日期、时间。 4、“格式”菜单中有“自动换行”和“字体”两个子菜单。 5、“查看”菜单只是显示状态栏。 6、“帮助”菜单中只有“关于记事本”子菜单,主要用于显示该程序的名字,版本等信息。

Java课程设计参考范文

基于B/S模式的小区物业管理系统的设计与实现 计算机科学与技术2009级一班 学生姓名:陆国良指导老师:陶世明 摘要:相比于C/S模式的物业管理系统,B/S模式的管理系统却极少。做一个B/S模式的物业管理系统,既可以让业主使用,又可以让物业管理人员使用,通过这个系统,获取到各自需要的信息,从而给管理带来便利。这也是我们开发物业管理系统的初衷。住户最基本的要求有以下几点:界面的友好性、易用性、实用性和吸引性。本设计将从以上几个方面进行系统的开发工作。物业管理人员除了有住户的以上要求外,管理的便利性也要考虑。在系统的开发中,使用JavaScript、CSS样式和HTML对界面进行布局,然后使用DOTNET平台下C#语言进行全面的开发,其中使用了三层架构的思想。 关键词:C/S, B/S, DOTNET, 三层架构 一、前言 物业管理系统在市场上已经是一项相当成熟的技术,例如思源物业,凤凰物业等。他们为许多开发物业管理的开发人员提供了成功的案例。为什么要使用信息化系统呢?在以前我们不都是使用一张纸,一支笔就搞定了么,为什么还要兴师动众来开发这样一个系统呢。下面进行一下前后的对比。 手工模式 ?传统的文档记录管理模式,易出错丢失; ?采用人工统计核算,工作量大且容易出错; ?不利于公司领导了解各部门的工作情况,影响企业整体决策; ?管理缺乏有效控制,工作流程不够规范; ?服务不及时,客户满意度低; 信息化后 ?数据管理容易; ?采用计算机进行运算,效率高且精确; ?操作简单方便; ?能够充分利用资源,做出合理的安排; 之所以人们对物业管理系统津津乐道,主要是因为小区是城市生活的基本单位,小区的管理直接影响到我们的生活质量。系统有使用Java开发的,有使用.Net开发的,有基于B/S模式的,有基于C/S 模式的,它们的共同出发点都是开发出高效的,便于管理的物业管理系统,这也是许多物业公司不惜高

文件加密与解密—Java课程设计报告

JAVA课程设计题目:文件的加密与解密 姓名: 学号: 班级: 日期:

目录 一、设计思路 (3) 二、具体实现 (3) 三、运行调试与分析讨论 (8) 四、设计体会与小结 (11) 五、参考文献 (12) 六、附录 (12)

一、设计思路 自从Java技术出现以业,有关Java平台的安全性用由Java技术发展所引发的安全性问题,引起了越来越多的关注。目前,Java已经大量应用于各个领域,研究Java的安全性对于更好地利用Java具有深远的意义。使用Java的安全机制设计和实现安全系统更具有重要的应用价值。 本课程设计,主要实践Java安全中的JCE模块,包括密钥生成,Cipher对象初始化、加密模式、填充模式、底层算法参数传递,也涉及文件读写与对象输入输出流。 二、具体实现 本系统通过用户界面接收三个参数:明文文件、密文文件、口令。采用DES加密算法,密码分组链(Cipher Block Chaining,CBC)加密模式,PKCS#5-Padding的分组填充算法。因为CBC涉及到底层算法参数的解密密钥的传递,所以将明文文件中的字节块以密封对象(Sealed Object)的方式加密后,用对象流输出到密文文件,这样就将密文、算法参数、解密密钥三都密封到一个对象中了。口令的hash值作为产生密钥的参数。设计流程图如下所示: 文件加密与解密设计流程图

本系统中,包含Default,Shares,SecretKey,EncAndDec四个包共6个类组成。定义的几个参数:MAX_BUF_SIZE为每次从文件中读取的字节数,也是内存缓冲区的大小;加密算法为DES;加密模式是密码分组链(CBC)模式;分组填充方式是PKCS#5Padding。包和类结构图如下所示: 本课程设计,包和类结构图: 以下为包中的类的方法实现说明 Package Shares类结构图

JAVA实现计算器课程设计

JAVA实现计算器课程设计 计算机科学系 计应0701班 指导老师:刘其昌 设计人员:陈秀桃 设计日期:2009年11月10日——2009年12月20日 计算器的设计 目录 第一章绪 论 ..................................................................... .. (2)

1.1 开发环 境 ..................................................................... . (2) 1.2 基本功能介 绍 ..................................................................... ......... 2 第二章系统设 计 ..................................................................... (3) 2.1 系统流程 图 ..................................................................... . (3) 2.2 系统功能框 图 ..................................................................... (3) 2.3 需求分 析 ..................................................................... ................ 4 第三章软件设 计 ..................................................................... (5) 3.1 界面设 计 ..................................................................... . (5) 3.2 代码设 计 .....................................................................

学生信息管理系统java课程设计含源代码完整版

学生信息管理系统j a v a 课程设计含源代码 HEN system office room 【HEN16H-HENS2AHENS8Q8-HENH1688】

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 1 2 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,其强大的

java课设记事本说明书

******************* 实践教学 ******************* 兰州理工大学 计算机与通信学院 2012年秋季学期 Java 课程设计 题目:记事本系统设计 专业班级: 姓名: 学号: 指导教师: 成绩:

目录 摘要 (1) 序言 (2) 正文 (3) 1.系统设计与分析 (3) 2.详细设计 (3) 3.系统测试 (14) 4.软件使用说明书 (17) 设计总结 (18) 参考文献 (19) 致谢 (20) 附录(程序源代码) (21)

摘要 本次课程设计的题目是用java语言编写记事本程序,要求是:用图形界面实现;含有简单的文字编辑功能,如:剪切、复制、粘贴、删除;还能实现保存、另存为、查找、替换等功能。 本程序主要用到了Java swing组件和事件监听器,还用到了文件的输入输出流。记事本的界面参考了Windows中的记事本界面,并且根据课程设计要求做了适当的调整。 关键字:记事本程序;Java语言;Jcreator

序言 Java的前身是Oak,它一开始只是被应用于消费性电子产品中。后来它的开发者们发现它还可以被用于更大范围的Internet上。1995年,Java语言的名字从Oak编程了Java。1997年J2SE1.1发布。1998年J2SE1.2发布,标志Java2的诞生。十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。Java的体系结构由Java语言、Java class、Java API、Java虚拟机组成。它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。Java的平台标准有Java ME,Java SE和Java EE。Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。其中Java Development Kit 简称JDK是大多开发工具的基础。以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。 在本程序设计中,因为需要开发的是记事本程序,规模较小,内容较少, 所以选择了适合初学者使用的JCreator开发工具。

Java带计算过程的计算器课程设计报告

保存计算过程的计算器 Java程序设计课程设计报告保存计算过程的计算器 目录 1 概述.............................................. 错误!未定义书签。 1.1 课程设计目的............................... 错误!未定义书签。 1.2 课程设计内容............................... 错误!未定义书签。 2 系统需求分析.......................................... 错误!未定义书签。 2.1 系统目标................................... 错误!未定义书签。 2.2 主体功能................................... 错误!未定义书签。 2.3 开发环境................................... 错误!未定义书签。 3 系统概要设计.......................................... 错误!未定义书签。 3.1 系统的功能模块划分......................... 错误!未定义书签。 3.2 系统流程图................................. 错误!未定义书签。4系统详细设计........................................... 错误!未定义书签。 5 测试.................................................. 错误!未定义书签。 5.1 测试方案................................... 错误!未定义书签。 5.2 测试结果................................... 错误!未定义书签。 6 小结.................................................. 错误!未定义书签。参考文献................................................ 错误!未定义书签。附录................................................ 错误!未定义书签。 附录1 源程序清单...................................... 错误!未定义书签。

学生信息管理系统java课程设计(含源代码)

JAVA程序设计课程设计报告 课题: 学生信息管理系统 姓名: 学号: 同组姓名: 专业班级: 指导教师: 设计时间: 评阅意见: 评定成绩:

目录 一、系统描述 (2) 1、需要实现的功能 (3) 2、设计目的 (3) 二、分析与设计 (3) 1、功能模块划分 (3) 2、数据库结构描述 (4) 3、系统详细设计文档 (6) 4、各个模块的实现方法描述 (9) 5、测试数据及期望结果 (11) 三、系统测试 (16) 四、心得体会 (23) 五、参考文献 (24) 六、附录 (24)

一、系统描述 1、需求实现的功能 、录入学生基本信息的功能 学生基本信息主要包括:学号、姓名、年龄、出生地、专业、班级总学分,在插入时,如果数据库已经存在该学号,则不能再插入该学号。 、修改学生基本信息的功能 在管理员模式下,只要在表格中选中某个学生,就可以对该学生信息进行修改。 、查询学生基本信息的功能 可使用“姓名”对已存有的学生资料进行查询。 、删除学生基本信息的功能 在管理员模式下,只要选择表格中的某个学生,就可以删除该学生。 、用户登陆 用不同的登录权限可以进入不同的后台界面,从而实现权限操作。 、用户登陆信息设置 可以修改用户登陆密码 2、设计目的 学生信息管理系统是一个教育单位不可缺少的部分。一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差、人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。随着科学技术的不断提高,计算机科学日渐成熟,

Java课程设计报告

湖北大学 本科课程设计 题目 ATM 自助机模拟程序姓名 学号 专业年级 指导教师 职称

目录 第一章系统描述 (2) 1 前言 (2) 2 系统功能需求 (2) 第二章系统分析与设计 (3) 1 功能模块划分 (3) 2 功能模块的描述 (3) 3 系统设计流程图 (4) 4 测试数据及期望结果 (6) 第三章系统详细设计 (7) 1 主界面开发设计 (7) 2 功能选择界面开发设计 (7) 3 取款界面开发设计 (7) 4 存款界面开发设计 (8) 5 转账界面开发设计 (8) 6 查询界面开发设计 (9) 7 修改密码界面开发设计 (9) 8 界面开发设计使用函数 (9) 第四章系统测试 (11) 第五章源程序部分清单 (21) 第六章实验心得 (30) 参考文献 (31)

第一章系统描述 1 前言 Java技术是一门简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的动态语言,它也是一个平台,它基于Java虚拟机技术,借助这个东西建立了跨平台的优势。Java编程语言与众不同之处在于:Java程序既是编译型的,又是解释型的。 Java平台是一种纯软件平台,它有三个版本Java SE、Java EE、Java ME。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、移动电话和互联网,同时拥有全球最大的开发者专业社群。在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 本课程设计采用Eclipse作为开发工具,并采用Window Builder下的SWT Designer来实现相应的功能。着重通过模拟实现当前非常快捷又使用的ATM机来加深对java开发设计的了解,从而进一步提高自己对java图像界面的设计及相关知识的认识。 2 系统功能需求 当输入给定的卡号和密码(初始卡号和密码为123456)时,系统能登录ATM 柜员机系统,用户可以按照以下规则进行: (1)查询余额:初始余额为10000元。 (2)ATM取款:每次取款金额为100的倍数,一次取款不能超过1000,总额不 超过5000元,支取金额不允许透支,有快捷取款和用户自定义取款。 (3)ATM存款:每次存款金额为100的倍数,一次存款不能超过1000,不能出 现负存款。 (4)ATM转账:只有在两次输入账号相同且输入转账金额正确的情况下才允许 转账,不允许透支。 (5)修改密码:新密码长度不小于6位,不允许出现6位完全相同的情况,只 有旧密码正确,新密码符合要求,且两次输入相同的情况下才可以成功修改密码。

Java课程设计实验报告及全部源码流程图

课程设计 一、实验目的 1.加深对课堂讲授内容的理解,掌握解决实际应用问题时所应具有的查阅资料、技术标准和规范,以及软件编程、调试等能力,掌握面向对象的编程思想及Java语言程序设计的规律与技巧,为进一步学习web应用开发及今后从事专业工作打下基础。 2. 使用本学期学习的Java SE技术(也可以使用课堂教学中没有学习过的Java技术,但是应当以Java SE技术为主)完成多功能日历GUI程序的设计,使之具有如下基本功能:一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。 3.在完成基本功能的基础上发挥自己的想象力与创造力,使程序凸显出与众不同的特点与功能,形成本小组的特性色。 二、实验要求 1.问题描述准确、规范。 2.程序结构合理,调试数据准确、有代表性.。 3.界面布局整齐,人机交互方便。 4.输出结果正确。 5.正确撰写实验报告。 三、实验内容 编写一个GUI程序实现日历的功能。一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期以及当前农历,可以为每页日历选择背景图片。可以实现显示时钟,时钟能进行整点报

时。可以实现备忘记事功能,能在每天添加、修改、删除记事等操作。 四、实验步骤 1.在上机实验前,小组成员进行选题讨论,确定小组感兴趣而又伸缩性强的题目多功能日历。 2.在第一次上机实验时讨论分工,分工明确之后,分头合作进行。 3.各成员完成自己的任务后,最后进行统筹合并,以及程序最后的优化。 4. 根据实验结果,写出合肥工业大学实验报告。实验报告应当包括:实验内容,程序流程图,类结构,程序清单,运行结果,以及通过上机取得的经验。 5.详细的上机实验步骤见任务分工及程序设计进度表。 五、实验结果 经过小组成员的共同努力,最终我们小组设计的多功能日历程序能够实现实验的基本要求——一年日历用12页显示,每页显示一个月的日历。日历可以按年或月前后翻动,能够显示当前的日期,可以为每页日历选择背景图片。另外,在完成基本要求的基础上,我们增添了显示农历、显示时钟、添加备忘录、修改备忘录等功能。整体程序运行流畅、功能齐全、符合操作习惯。 下面是程序运行效果截图: 日历主界面(可以实现每个月的日历,可以按年或按月前后翻动,能够显示当前日期,并能够选择背景图片):

JAVA-课程设计报告

《JA V A程序设计》 课程设计报告 设计题目:学生信息管理系统学院名称:信息工程学院 专业班级:13计本1 姓名: 学号:

目录 一需求分析。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 二概要设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 三详细设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.1 数据库设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2 模块及窗体设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.1 数据库模块设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。3 3.2.2 用户登录识别模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。5 3.2.3用户信息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (1)密码修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。6 (2)用户信息添加和删除。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。8 3.2.4 学生息管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (1)添加信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。10 (2)信息查看。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。11 (3)信息修改。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。12 (4)删除信息。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。14 3.2.5 系统管理模块。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 3.2.6 主窗体菜单设计。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 四软件测试。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 五总结。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。15 参考资料:.......................................................17

Java计算器课程设计

Java课程设计题目:Java计算器 学生姓名杨云鹏 学号20121325054 学院信息与控制学院 专业系统工程 二O一四年 6 月 3 日

课程设计报告书目录 一、课程设计任务及要求 (5) 二、设计目的 (5) 三、操作环境 (5) 四、设计场所(机房号、机器号或自己机器) (5) 五、设计过程(设计内容及主要程序模块) (6) 六、本次设计中用到的课程知识点(列出主要知识16 七、设计过程中遇到的问题及解决办法 (16) 八、程序清单 (18)

Java背景介绍: JAVA是一种可以撰写跨平台应用软件的面向对象的程序设计语言,由升阳(Sun Microsystems)公司的詹姆斯·高斯林(James Gosling)等人于1990年代初开发。它最初被命名为Oak,目标设定在家用电器等小型系统的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月23日以“Java”的名称正式发布了。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。Oracle收购Sun后Java前途未卜。 一、课程设计任务及要求 1、课题要求 (1)使用图形用户界面:一个文本框;0-9数字按钮;加、减、乘、除运算符;“等于”符号. (2)完成整数、实数的四则运算(加、减、乘、除); (3)通过按钮点击实现数据运算。 (4)实数运算中小数位的精度一致。 2、课题设计思想 对于此计算器程序,首先要设计其界面,总体界面有一个文本框,十多个按钮,总体界面用BorderLayout布局。 文本框放置在最NORTH,然后0到9以及+,-,*,/的按钮放置到一个面板Panel中,添加到整体布局的CENTER,界面设计完成。 布局设计好后再添加按钮事件。对于此程序要考虑到点击加、减、乘、除按钮时是否有点击数字按钮,如果是第一次点击数字按钮或者是点击数字按钮前点击了加、减、乘、除按钮则直接把数字按钮的数值设置到文本框中,否则则应把文本框中的内容加上你所点击按钮的数值设置到文本框中。

5_Java课程设计源代码

package zhouchuan; import java.applet.*; import java.awt.*; import java.awt.event.*; import https://www.360docs.net/doc/732925367.html,.*; public class zhouchuan extends Applet implements ActionListener { AudioClip clip; Button buttonPlay, buttonLoop, buttonStop; public void init(){ try{ URL url=new URL("file:"+"F://ding.wav"); clip=getAudioClip(url);}catch(Exception e){ } buttonPlay=new Button("开始播放"); buttonLoop=new Button("循环播放"); buttonStop=new Button("停止播放"); buttonPlay.addActionListener(this); buttonStop.addActionListener(this); buttonLoop.addActionListener(this); add(buttonPlay); add(buttonLoop); add(buttonStop); } public void stop(){ clip.stop(); } public void actionPerformed(ActionEvent e){ if(e.getSource()==buttonPlay) clip.play(); else if(e.getSource()==buttonLoop) clip.loop();

Java课程设计说明书要点

1 需求分析 随着21世纪信息化的到来,计算机的应用日益广泛,计算机在代替体力、脑力劳动方面发挥着不可或缺的作用,在工业方面及日常工作中也越来越离不开它。在企业里,要处理大量的数据信息,为了提高员工管理的工作效率,降低操作出错的概率,因而开发出一套员工信息管理系统是很有必要的。员工信息管理系统,可实现了公司员工信息管理系统的电子化,减轻管理人员的工作负担,能够规范、高效地管理大量的劳动人事信息,减小管理成本,提高工作效率,避免人为操作错误和不规范行为。 该软件实现了员工对个人工资的查询以及管理人员对员工信息进行动态管理的功能,例如基本信息的查询,修改,添加,删除;员工工资的查询,修改,添加,删除等。 2 具体功能 (1)新员工注册功能。 (2)员工登陆功能。 (3)员工查看个人工资功能。 (4)管理人员登录功能。 (5)管理人员对员工基本资料的修改,添加,删除,查询功能。 (6)管理人员对员工工资信息的修改,添加,删除,查询功能。 3 系统设计 3.1、功能示意图

系统功能如图3-1所示: 图3-1系统功能图 3.2、数据库设计 本软件数据库类型为MYSQL ,数据库“employee.mdb ”,其中共包含三种表,其一是 登录用户信息表 user (如表3-1),其二是员工基本信息表emps (如表3-2),其三是员工工资信息表salary (如表3-3)。对应的数据库截图分别为:登录用户信息表users 截图(如图3-2),员工基本信息表emps 截图(如图3-3),员工工资信息表salary 截图(如图3-4)。 员工 管理员 个人工资显示 showSalaryFrm.java 登陆界面 loginFrm.java 主界面mainFrm.java 员 工 基 本 信 息 的 删 除 工 资 信 息 的 查 询 工 资 信 息 的 修 改 工 资 信 息 的 删 除 工 资 信 息 的 添 加 员 工 基 本 信 息 的 添 加 员 工 基 本 信 息 的 查 询 员 工 基 本 信 息 的 修 改 版 本 信 息

JAVA课程设计报告

计算机科学技术与工程系 《Java课程设计》 课 程 设 计 报 告 题目:简易媒体播放器 班级:0633081 姓名:063308123郭伟 063308164张志朋 063308125靳浩兵063308168周小晨指导教师:陈红军、赵军民 设计日期:2010.01.11-15 专业:计算机网络技术

目录 1 、引言................................ 错误!未定义书签。 2 、设计依据 ........................... 3错误!未定义书签。 2.1设计平台 ..............................................................错误!未定义书签。 2.2设计思想 ..............................................................错误!未定义书签。 3、主要框架图、......................... 错误!未定义书签。 4、详细设计 (4) 5 、软件调试分析......................... 错误!未定义书签。 6 、源程序代码.......................... 6错误!未定义书签。 7、执行结果 (15) 8、学习心得 ........................... 15错误!未定义书签。 9、参考文献 ........................... 16错误!未定义书签。

1、引言: 旨在考察在经过一个学期的学习,对JA V A知识的理解与应用。同时把所学的理论知识用于实战编程,进而培养同学们的动手能力和团结协作的团队意识。综合应用java语言的相关知识,独立设计中型的Java应用程序。通过本课程设计,使学生巩固《JA V A课程设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手能力,闯过编程关。 2、设计依据: 1、设计平台 Eclipse是开发源码项目,由于其开放源码,任何人都可以免费使用,并可以在此基础上开发各自的插件,eclipse不只作为一个JA V A IDE的开发平台,而且是作为一个平台框架,各种各样的插件都可以安装在它上面,从而形成各种各样的工具,它有开源软件,使用插件功能,可以完成比较复杂的开发等优点。此Java程序设计就是在Eclipse环境平台下开发的。 Java API文档: Java API文档包含了Java的大部分类,方面查询不熟悉的类,所以它是一款不错的帮助文档! 2、设计思想 根据一学期对JA V A知识的学习,在Eclipse平台下,导入JMF包通过不断查询API 文档,编写媒体播放器在现有类的基础上组织一个新类。有时,我们也将组织称作“包含”关系。播放器主要针对面向对象,并且实现序列化接口,多线程等知识。 对象的组织具有极大的灵活性。新类的“成员对象”通常设为“私有”(Private),使用这个类的客户程序员不能访问它们。这样一来,我们可在不干扰客户代码的前提下,从容地修改那些成员。也可以在“运行期”更改成员,这进一步增大了灵活性。后面要讲到的“继承”并不具备这种灵活性,因为编译器必须对通过继承创建的类加以限制。 由于继承的重要性,所以在面向对象的程序设计中,它经常被重点强调。作为新加入这一领域的程序员,或许早已先入为主地认为“继承应当随处可见”。沿这种思路产生的设计将是非常笨拙的,会大大增加程序的复杂程度。相反,新建类的时候,首先应考虑“组织”对象;这样做显得更加简单和灵活。利用对象的组织,我们的设计可保持清爽。一旦需要用到继承,就会明显意识到这一点。 3、程序主要框架图

java课程设计2013级大纲以及设计报告

珠海学院课程教学大纲 课程名称:java程序课程设计 适用专业: 2013级计算机科学与技术 课程类别:专业基础课 制订时间:2014年12月 计算机科学与技术系制

目录 1java程序课程设计教学大纲 2 java程序课程设计说明书 3 java程序课程设计报告(模板) 4 java程序课程设计成绩评定表 java程序课程设计教学大纲 (2011年制订,2014年修订) 一、课程编号: 二、前修课程:java程序设计 三、学分:2学分 四、学时: 32学时 五、课程性质与任务: 1.课程性质:《java程序课程设计》是吉林大学珠海学院计算机科学与技术系为本科生各专业开设的专业实践课。计算机科学与技术系本科生在完成《java 程序设计》课程学习后,通过本课程进入专业实践训练环节,其主要目的是使学生深入理解并实践在《java程序设计》课程中所学的有关知识,通过课程设计增强学生的实践动手能力,提高学生独立分析和解决实际问题的能力。培养学生配合完成任务的能力,为学生毕业后的实际工作打好基础。 课程设计是培养学生综合运用所学知识锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。Java语言的应用十分广泛,例如大型信息系统、通信、网络控制等。java课程设计对增强学生对基础知识的掌握和综合运用是非常必要,对后续许多专业课程的学习和实践训练都具十分重要的意义。 2.课程任务:本课程要求学生在学习了java基础编程的相关技术后,将课本中多个章节的编程技术灵活运用到一些复杂的综合例题中去,使学生了解应用问题

的分析方法和设计解决实际问题的具体过程,掌握应用java进行程序设计的基本规范和技巧,掌握面向对象编程的设计思想,重点掌握java的基本语法规则、输入输出方法、网络编程、多线程编程、小应用程序、数据库编程的综合应用。通过编程掌握调试java程序的基本技巧、模块化应用程序和测试运行复杂应用程序的基本流程。 六、课程教学基本要求提供足够多的程序设计选题,题目应覆盖面较为广泛,部分题目要具有开放性,要求每个学生根据自己的实际情况选择题目,经教师批准后即可进入实际工作阶段。 课程设计结束对每个学生进行验收,要求每个学生提交合格的课程设计报告,还要保证程序能够运行,能够讲清楚自己的工作。老师在检查过程中可针对程序提出问题,学生回答,若程序无法运行得到结果并且具有大量编译错误,而且对程序的内容无法正确解释,则实践老师可以根据实际情况给予评分为不及格,若程序可以运行,但完成的界面以及方法不够完善,则酌情扣分,若程序运行无问题,则提问回答不好的也要相应扣分。课程设计课程集中安排在第十一周。每个同学都要提交初期、中期和最后的文档,提交课程设计报告,要求在规定时间内提交文档。最后验收时,若文档不全,成绩受到一定影响。 七、学时分配表 2011年 12 月8日 java程序课程设计说明书

Java课程设计--个人通讯录管理系统

《JAVA程序设计》课程设计说明书

目录 1 引言 (1) 1.1课程设计选题 (1) 1.2课程设计的目的 (1) 1.3本选题的设计背景 (1) 2 需求分析 (1) 2.1 功能需求 (1) 2.2 系统的开发运行环境 (2) 3 总体设计 (2) 3.1 系统体系结构设计 (2) 3.2系统功能模块及主要类设计 (3) 3.3数据库设计 (5) 4 详细设计与实现 (7) 4.1 登录模块 (7) 4.2 注册新用户模块 (8) 4.3 查询模块 (9) 4.4 添加模块 (11) 4.5 修改模块 (13) 4.6删除模块 (16) 4.7备份模块 (18) 4.8退出模块 (19) 5 小结和展望 (20) 参考文献 (22) 附录 (22) 使用说明书 (22)

1引言 1.1课程设计选题 《个人通讯录管理系统》 1.2课程设计的目的 通过编写并调试一个Java应用软件,熟悉和掌握使用Java开发应用程序的完整过程。 使学生巩固和加深以Java 语言为基础的面向对象编程技术理论知识的理解,提高实际动手编程能力的培养,掌握以Java为核心的应用软件开发方案,达到能独立阅读、编制和调试一定规模的Java程序的水平。 1.3本选题的设计背景 一直以来就想做一个比较实用的通讯录管理系统,这样可以方便我对于身边联系人信息的管理,防止遗忘和丢失。 在这样一个信息化的社会里,人们的生活也越来越离不开电脑了,本次通过做个人通讯录管理系统,希望摈弃传统的纸质记录的弊端,发挥电脑软件的优势,方便人们对自己的联系人信息的管理。 2需求分析 2.1 功能需求 2.1.1个人通讯录功能需求 (1)登陆功能。用户可以直接输入用户名和密码,登陆进入通讯录的主功能界面。 (2)注册功能。其他用户可以输入自己的用户名和密码及确认密码,来实现注册成为该通讯录的使用者。 (3)查询功能。在该功能里,用户可以采用模糊查询和精确查询两种查询方式来对自己存储的联系人信息进行查询。 (4)添加功能。在该功能里,用户可以添加自己的常用联系人和分组信息。

相关文档
最新文档