您当前的位置:首页 > 发表论文>论文发表

java应用技术课程设计论文

2023-12-08 08:21 来源:学术参考网 作者:未知

java应用技术课程设计论文

朋友:
给您几个好的网址,是有关论文的,很全!
真心希望能够对你有所帮助!!

自己找找吧!

祝你好运!

中文免费论文地址集锦
一、 综合类
1、蓝之韵论文
门类较全。

2、学生大论文中心



3、蜂朝无忧论文网

门类很全。
4、论文下载中心

门类很全。
5、论文帝国


二、 教育类
1、教研论文交流中心

以中小学教育为主,基础教育、英语教学文章居多。
2、教育教学论文网



以教育论文为主,包含:语文论文 美术论文 物理论文
化学论文 英语论文 历史论文 德育论文 教学论文
数学论文 音乐论文 生物论文 自然论文 体育论文
地理论文 摄影论文 劳动技术 农村教育 毕业论文
素质论文 医学论文 电子电器学 思维科学 计算机论文
活动课教学 书法篆刻论文 创新教育研究 心理健康教育
西部教育论文 信息技术论文
3、教育论文


4、中国园丁网论文大观

5、北大附小学校教师的文章:

三、 专业类
1、优秀论文杂志

以科技类为主。
2、论文资料网

以财经经济管理类为主。
3、法律图书馆

文如其名。
4、法学论文资料库

文如其名。
5、中国总经理网论文集

6、mba职业经理人论坛

7、中国农业在线-农业论文

8、体育论文

9、财经学位论文下载中心

10、公开发表论文_深圳证券交易所

11、中国路桥资讯网论文资料中心

12、论文商务中心

13、法律帝国:

四、 论文写作教学类
1、学术论文

其实是学术论文的写作网站。
五、 博硕士论文
1、论文统计

实际上就是万方的论文统计。
2、台湾博硕士论文咨讯网

3、北京大学学位论文样本收藏

4、学位论文 (清华大学)


]
中国科技论文在线
论文中国 :
新浪论文网分类:
中国论文联盟:
大学生论文库
论文资料网:
论文下载中心:
毕业论文网:
学位论文:
无忧论文网:
北京语言文化大学论文库:

谁教教我怎么写JAVA的课程设计论文

目 录
一、概要设计……………………………………………………………3
二、程序整体设计说明…………………………………………….…..4
三、程序部分源代码及注释…………………………………………….9
四、测试结果………………………………………………………….24
五、设计心得…………………………………………………………25
六、致 谢…………………………………………………………25
七、参考文献…………………………………………………………25

【摘 要】该程序是一个图形界面的java文档编辑器,其界面主要采用了awt包, 程序实现了文本编辑器的基本功能有:新建文件、打开文件、文件保存、文件另存为、剪切、复制、粘贴、删除、查找/替换、改变字体大小,另外还利用Time类的schedule方法实现了文件的定时自动更新功能,并创建备份文件,由于该编辑器是用的awt包,所以在技术上没有实现将Java的关键字以不同颜色显示功能。
【关键字】java 编辑器

一、概要设计
Java程序编辑器是:图形界面、线程、流与文件等技术的综合应用。
图形界面的实现:考虑到简单、实用、高效等特点,就选择了AWT来完成实现,在选择组件上,文本编辑区就选用了TaxtArea作为主要的部件。
线程实现文件自动保存:在相关的参考书上查阅到在Time类中有一个schedule方法可以在后台自动完成一定的功能,而且调用起来相当简单,于是就用了Time类中的schedule方法来实现文件自动保存及备份功能。
文件操作的实现:利用了字符文件流FileReader和FileWriter类来实现。
由于Java的特性,可能用任何一个编辑器来编辑,于是就将Windows中的记事本作为模仿对象,根据实现情况删减了其中的一些功能,如自动换行,设置字体,打印等功能。
在设计类的时候,考虑到简单明了,就用了两个类,一个主类和一个默认属性类作为程序的整体框架,所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。主类完成对象的实例化及显示。这们设计的优点是:条理清晰,容易理解,容易修改。这样设计的缺点是:不利于共享类中的方法。

二、程序整体设计说明
2.1、程序框架图

2.2、程序中所用类说明
(1)用户自定义类
类名:EditInstantiation
作用:实例化对象
继承的父类:WindowAdapter
主要成员变量:
Frame myFrm // 定义主窗体
TextArea myText // 定义文本编辑区
Dialog myDlgFind,myDlgFindont //查找及设置字体对话框
TextField TFfind, TFreplace, TffontSize
//查找对话框和字体窗体中的文本行
Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮
Label Lf, Lr, Ls //定义和创建各标签
MenuBar Mbbar //定义和创建主菜单
Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项
Toolkit toolKit
Clipboard myCB //剪切板对象
FileDialog myFDlg //定义文件对话框
Choice ChfontName //定义和创建字体选择框
private int VIindex = 1; //构成文件名后缀变量
private String VSsubFixStr=".java"; //构成文件名扩展名变量
private String VSmyFileName = "Document1",VSmyBFileName;
//文件名及备份文件名变量
private File VFmyFile=new File(VSmyFileName+VIindex+".java");
//文件名变量
private int VIsearchPosition=0; //查找位置指针
private Timer VTtime; //实例化一个Time类
private int VImin=1; // schedule方法中的一个时间参数
private int VItype=JOptionPane.INFORMATION_MESSAGE;
//提示对话框类型
private String VStitle; //提示对话框标题
private String VSmessage; //提示对话框信息
private boolean VBchanged = true; //改变字体的一个标识
private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2; //设置字体大小及步长

主要成员方法:
public void init() //初始化各部件菜单的定义和事件的监听
public void displayEdit ()//显示窗体及调用Time中的schedule方法
public void windowClosing () //关闭窗体
public void save //保存文件方法
a.内部类类名:KeyEvents
作用:实现菜单的事件的响应功能
继承的父类:KeyAdapter
主要成员变量:无
成员方法:actionPerformed()、keyPressed()

b.内部类类名:FindKeyEvent
作用:实现查找中各部件事件的响应功能
继承的父类:无
主要成员变量:无
成员方法:actionPerformed ()
c.内部类类名:fontEvent
作用:实现字体中各部件事件的响应功能
继承的父类:无
主要成员变量:无
成员方法:ItemListener(),ActionListener()
(2)用户自定义类与Java类的继承关系图如下:
自定义类 Java 类

线程使用说明
2.3、实现接口方法
本程序用到的方法有:schedule其方法描述如下:
schedule(事件,启动时间,间隔时间);
2.4、线程应用
本程序为文本编辑器,为实现自动更新,应用到了线程,每隔1分钟对文件进行自动更新
2.5、异常处理说明
(1)打开文件时的异常处理
需要处理的异常:IOException
处理方法:捕获异常后,显示捕获的异常
(2)保存文件时的异常处理
需要处理的异常:IOException
处理方法:捕获异常后,显示捕获的异常

2.6、程序运行效果及存在的问题
(1)程序运行主要界面如下:
a、主界面

b、打开文件对话框

c、保存文件对话框

d、另存为文件对话框

e、查找/替换对话框

f.字体对话框

2.7.程序尚还存在的问题
我花费了近一个多星期的时间,查阅了许多相关的资料,终于把这个Java编辑器,程序基本实现了该课程设计的基本要求。但由于自己水平有限,使得程序还有不是很完善,首先,最重要的一点是该设计的最重要的功能自动改变java关键字的颜色没有实现。
三、程序部分源代码及注释
//****************************************************
// class name :Edit
// implements :none
// extends :none
// attribute :public
// founction :entrance of the class
//*****************************************************
public class Edit{ //主类
public static void main(String args[]){
EditInstantiation myEdit= new EditInstantiation();
myEdit.init(); //初始化
myEdit.displayEdit(); //显示窗体
}

//****************************************************
// class name :EditInstantiation
// implements :none
// extends :WindowAdapter
// attribute :default
// founction :EditInstantiation of the main class
//*****************************************************
class EditInstantiation extends WindowAdapter{ //默认属性类
//define sources 定义各部件
Frame myFrm=new Frame("我的编辑器"); //定义窗体
TextArea myText=new TextArea(); //定义窗体
Dialog myDlgFind=new Dialog(myFrm,"查找",true); //定义查找对话框
Dialog myDlgFindont=new Dialog(myFrm,"字体",true); //定义字体对话框
TextField TFfind=new TextField(30);//定义查找对话中的查找输入框
TextField TFreplace=new TextField(30); //定义查找对话中的替换输入框
TextField TFfontSize,TFfontDemo;//定义字体大小文本框和示例框
Choice CHfontName;//定义字体大小选择框
List LTfontSize; //定义字体大小标签
Button BfontOK,BfontCancel; //定义字体大小对话中的确定及取消按钮
Button Bfind=new Button("查找");//定义查找对话中的查找按钮
Button Breplace=new Button("替换");//定义查找对话中的替换及取消按钮
Button Bnext=new Button("下一个");//定义查找对话中的下一个及取消按钮
Button Bcancel=new Button("取消");//定义查找对话中的确定及取消按钮
Label Lf=new Label("查找内容:");
Label Lr=new Label("替换为: ");
Label Ls=new Label("字体大小:");
FileDialog myFDlg;
Clipboard myCB=Toolkit.getDefaultToolkit().getSystemClipboard(); //剪切板对象
Menu Mfile,Medit,Mformation,Mhelp;
MenuBar MBbar;

//define varities //定义各变量
private int VIindex = 1;
private String VSsubFixStr=".java";
private String VSmyFileName = "Document1",VSmyBFileName;
private File VFmyFile=new File(VSmyFileName+VIindex+".java");
private int VIsearchPosition=0;
private Timer VTtime;
private int VImin=1; // parameter in time schedul
private int VItype=JOptionPane.INFORMATION_MESSAGE;
private String VStitle;
private String VSmessage;
// flag of the changeing
private boolean VBchanged = true;
// the scope of the font
private int VIfontSizeMin = 8, VIfontSizeMax = 40, VIfontSizeChangedStep = 2;

//************************************************
//founction name:init()
//parameter :none
//attribute :public
//founction :initia all compont
//************************************************
public void init(){ //初始化各部件
//------------------ set menu ------------------
MBbar=new MenuBar();
myFrm.setMenuBar(MBbar);
Mfile=new Menu("文件");
Medit=new Menu("编辑");
Mformation=new Menu("格式");
Mhelp=new Menu("帮助");

MBbar.add(Mfile);
MBbar.add(Medit);
MBbar.add(Mformation);
MBbar.add(Mhelp);

//文件菜单 add File menu
Mfile.add(new MenuItem("新建",new MenuShortcut(KeyEvent.VK_N)));
Mfile.add(new MenuItem("打开",new MenuShortcut(KeyEvent.VK_O)));
Mfile.add(new MenuItem("保存",new MenuShortcut(KeyEvent.VK_S)));
Mfile.add(new MenuItem("另存为"));
Mfile.addSeparator();//分隔线
Mfile.add(new MenuItem("退出",new MenuShortcut(KeyEvent.VK_E)));

//编辑菜单 add Edit menu
Medit.add(new MenuItem("剪切"));//,new MenuShortcut(KeyEvent.VK_X)));
Medit.add(new MenuItem("复制"));//new MenuShortcut(KeyEvent.VK_C)));
Medit.add(new MenuItem("粘贴"));//new MenuShortcut(KeyEvent.VK_V)));
Medit.add(new MenuItem("删除"));//new MenuShortcut(KeyEvent.VK_D)));
Medit.addSeparator();//分隔线
Medit.add(new MenuItem("查找/替换",new MenuShortcut(KeyEvent.VK_F)));
Medit.addSeparator();//分隔线
Medit.add(new MenuItem("全选",new MenuShortcut(KeyEvent.VK_A)));

//格式菜单 add Formation menu
Mformation.add(new MenuItem("字体",new MenuShortcut(KeyEvent.VK_U)));

//帮助菜单 add Formation menu
Mhelp.add(new MenuItem("关于作者"));
//----------------- menu add end -------------------------
//add Menu Action Listener
Mfile.addActionListener(new KeyEvents());
Medit.addActionListener(new KeyEvents());
Mformation.addActionListener(new KeyEvents());
Mhelp.addActionListener(new FindKeyEvent());
//--------------------------- Find dialog-----------------
myDlgFind.setSize(350,115);
myDlgFind.setLocation(250,150);
myDlgFind.setLayout(new FlowLayout(FlowLayout.CENTER));
myDlgFind.setBackground(Color.LIGHT_GRAY);
Bfind.setEnabled(false);
Breplace.setEnabled(false);
Bnext.setEnabled(false);
myDlgFind.add(Lf);
myDlgFind.add(TFfind);
myDlgFind.add(Lr);
myDlgFind.add(TFreplace);
myDlgFind.add(Bfind);
myDlgFind.add(Breplace);
myDlgFind.add(Bnext);
myDlgFind.add(Bcancel);
myDlgFind.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
myDlgFind.setVisible(false);
}});//为查找对话框窗体注册事件监听
TFfind.addKeyListener(new KeyEvents());//注册事件监听
Bfind.addActionListener(new FindKeyEvent());
Breplace.addActionListener(new FindKeyEvent());
Bcancel.addActionListener(new FindKeyEvent());
Bnext.addActionListener(new FindKeyEvent());

//--------------- end add action listener ------------
//================set font dialog ==============
//font size text field
TFfontSize = new TextField("8",14);
TFfontSize.selectAll();

//font size list field
LTfontSize = new java.awt.List(5, false);
LTfontSize.addItemListener(new fontEvent());
for(int i = VIfontSizeMin; i <= VIfontSizeMax; i = i + VIfontSizeChangedStep)
LTfontSize.add(i + "");//添加字体大小
LTfontSize.select(0);
//two Button Ok Cancel
BfontOK = new Button("确定");
BfontOK.addActionListener(new fontEvent());
BfontCancel = new Button("取消");
BfontCancel.addActionListener(new fontEvent());
//a TextField for demo the font
TFfontDemo = new TextField("Java awt",37);
TFfontDemo.setEditable(false);
// my font dialog设置字体对话框
myDlgFindont.setLayout(new FlowLayout(FlowLayout.LEFT));
myDlgFindont.setBackground(Color.LIGHT_GRAY);
myDlgFindont.add(Ls);
myDlgFindont.add(TFfontSize);
myDlgFindont.add(BfontOK);
myDlgFindont.add(BfontCancel);
myDlgFindont.add(LTfontSize);
myDlgFindont.add(TFfontDemo);
myDlgFindont.setSize(300,200);
myDlgFindont.setLocation(300,200);
myDlgFindont.setResizable(false);
myDlgFindont.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
myDlgFindont.show(false);
}
}); //为字体对话框窗体注册事件监听
//=============end set font dialog
// =======set Edit frame设置编辑器窗休
myFrm.add(myText,BorderLayout.CENTER);
myFrm.setSize(500,400);
myFrm.setBackground(Color.lightGray);
myFrm.addWindowListener(this);
myFrm.setSize(500,400);
myFrm.setLocation(200,100);
myFrm.setTitle("Java编辑器");
}

//************************************************
//founction name:displayEdit()
//parameter :none
//attribute :public
//founction :initial and display the frame
//************************************************
public void displayEdit(){ //显示窗体
myFrm.setVisible(true);
//---------------------- auto save ---------------------
VTtime = new Timer(true);
VTtime.schedule(new java.util.TimerTask(){
public void run(){
if(VSmyFileName!=null){
save(VSmyFileName+".java");
VSmyBFileName=VSmyFileName+".bak";
} //添加自动保存功能
save(VSmyBFileName);
}
}, VImin*60*1000,VImin*60*1000);
//parament 1 the task
//parament 2 when to start the task
//parament 3 set the interval time }

//****************************************************
// class name :KeyEvents
// implements :ActionListener
// extends :KeyAdapter
// attribute :default
// founction :implement the mouse and key action
//*****************************************************
class KeyEvents extends KeyAdapter implements ActionListener{
//********************************************************
//founction name:actionPerformed()
//parameter :none
//attribute :public
//return :void
//founction :realize the key action in the menu
//*********************************************************
public void actionPerformed(ActionEvent e){
//完成菜单事件的功能
// File Menu
if (e.getActionCommand()=="新建"){
//remind you
JFrame aFrame=new JFrame();
aFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JOptionPane optionPane=new JOptionPane();
String choices[]={"是","否","取消"};
int n=optionPane.showOptionDialog(aFrame,"文件正文已更改,是否保存更改","文本编辑器",JOptionPane.YES_NO_CANCEL_OPTION,JOptionPane.WARNING_MESSAGE,null,choices,choices[0]);

//保存文件后新建
if(n==0){//若文件存在,保存在原文件中,再新建文件
try{

if(VFmyFile.exists()){
save(VSmyFileName); // call the save founction
myText.setText("");
VIindex++;
}
else{//若文件不存在,则保存后再新建
myFDlg=new FileDialog(myFrm,"保存文件",FileDialog.SAVE);
myFDlg.setFile(VSmyFileName);
myFDlg.show();
VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();
save(VSmyFileName);
myText.setText("");
VIindex++;
}
}
catch(Exception ne){}
}
//不保存文件新建
if(n==1){
myText.setText("");
VIindex++;
}
//取消新建
if(n==0){return;}
}
//打开菜单 Open Menu
if (e.getActionCommand()=="打开") {
myFDlg=new FileDialog(myFrm,"打开",FileDialog.LOAD);
myFDlg.show();
if (myFDlg.getFile()!="") {
VFmyFile=new File(myFDlg.getDirectory()+myFDlg.getFile());
VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();
if( VFmyFile.exists()){
try{
FileReader fr=new FileReader(VFmyFile);
BufferedReader br=new BufferedReader(fr);
String text;
myText.setText("");
while ((text=br.readLine())!=null)
myText.append(text+"\r\n");
br.close();
fr.close();
}
catch(IOException ioe){
VStitle="提示";
VSmessage="打开文件出错";
JOptionPane.showMessageDialog(myFrm,VSmessage,VStitle,VItype);
}

}
}
}

//保存菜单 Save Menu
if (e.getActionCommand()=="保存"){
myFDlg=new FileDialog(myFrm,"保存文件",FileDialog.SAVE);
myFDlg.setFile(VSmyFileName);
myFDlg.show();
VSmyFileName=myFDlg.getFile();
if(VSmyFileName!=null){
VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();
save(VSmyFileName);
}
}

//另存为菜单 SaveAs Menu
if (e.getActionCommand()=="另存为"){
myFDlg=new FileDialog(myFrm,"文件另存为",1);
myFDlg.setFile(VSmyFileName);
myFDlg.show();
VSmyFileName=myFDlg.getFile();
if(VSmyFileName!=null){
VSmyFileName=myFDlg.getDirectory()+myFDlg.getFile();
save(VSmyFileName);
}
}

//退出菜单 exit Menu
if (e.getActionCommand()=="退出")
System.exit(0);

//编辑 Edit Menu
if (e.getActionCommand()=="剪切"){
//Cut
String text =myText.getSelectedText();
StringSelection selection = new StringSelection(text);
myCB.setContents(selection, null);
myText.replaceRange("",myText.getSelectionStart(),myText.getSelectionEnd());
}

if (e.getActionCommand()=="复制"){
//copy
String text=myText.getSelectedText();
if(text!=null){
StringSelection selection=new StringSelect

求一篇计算机应用技术的毕业论文,我是学java的,我的邮箱是670703200@qq.com,要1万5左右的字数,谢谢!!

  学生公寓管理系统

  第一章系统分析 5
  1.1开发工具简介及系统运行环境 5
  1.2开发的必要性 6
  1.3系统开发的可行性 7
  1.4数据来源 8
  1.5新系统数据流程图 9
  第二章 数据库设计 12
  第三章功能模块设计 16
  3.1新系统功能结构图及运行图如下: 16
  3.2系统设置: 17
  3.3公寓管理 18
  3.4 卫生检查 19
  3.5 公寓资产 20
  3.6 记录查看与记录删除 20
  3.7值班记录 20
  3.8帮助制作 21
  第四章 程序设计 22
  主程序流程图 22
  4.1 登录界面 23
  4.2 程序主界面 26
  4.3系统设置 32
  4.4公寓管理 38
  4.5卫生检查 40
  4.6 公寓资产 41
  4.7记录查看 42
  4.8记录删除 44
  4.9值班记录 47
  4.10 Help制作 49
  第五章 系统测试 50
  总结 51
  参考文献 52

  引言

  随着电脑的普及与应用,现在的管理也需要提升一个档次。即从原来的手工记录管理模式转变为电脑一体化管理。这样会给公寓的管理人员带来很多好处,让他们管理的效率更高、效果更好,管理起来更方便。由此而产生了本管理软件――学生公寓管理软件。
  学生公寓管理软件是用Microsoft Visual Basic 编写完成。由于Visual Basic率先采用了可视化(VISUAL)的程序设计方法。所以利用系统提供的大量可视化控件,可以方便的以可视化方式直接绘制用户图形界面,并可直观,动态的调整界面的风格和样式,直到满意为止,从而克服了以前必须用大量代码去描述界面元素的外观和位置的传统编程模式。做起来方便,使用起来更为快捷。
  作为一个学生公寓的管理软件,要十分全面的贴近以及适合大学公寓的管理方法。本软件的参考资料主要有两种来源:一是参考本学校公寓的管理结构,管理方法。如各个公寓的分布特色,以及公寓的各种管理制度。这些资料是本软件的主要依据,也可以说这些资料来源于普通的生活,比较真实一些。二是来源于网络上的各种同类软件,通过这些软件可以看出一个公寓最低需要哪些管理与设置,在这些软件中,有些软件功能比较齐全,但是在管理上显的非常的不方便,使用起来十分麻烦、繁琐,有些虽然简单,但是功能上又不是十分完善,对这些软件首先要进行取其精华,弃其糟粕,从而进行编写。
  本软件主要包括以下方面:系统设置、公寓管理、卫生检查、公寓资产、记录查看、记录删除、值班记录、帮助制作。
  学生公寓管理软件目前版本为1.0.1,为一个测试版本。它目前在功能上,以及操作的简便上有很大的改进。但是还是存在一些不足,在有些功能的实现上还不是十分的理想,这也是本人在时间和精力上留下的遗憾。但是相信这些会在以后的版本中得到完善,使这个软件成为一个功能上最全,使用上最简捷方便的管理软件。 ... ... ... ...

  ... ... ... ...

  【论文说明】该论文包含数据流程图、数据字典、E—R图、系统功能结构图、程序流程图、运行界面图、程序源代码和程序设计,论文是Word格式,52页,字数1.3万,适用于计算机科学与技术、计算机信息管理和计算机网络等专业!

基于Java的全文检索技术研究的毕业论文

摘 要网络中的资源非常丰富,但是如何有效的搜索信息却是一件困难的事情。建立搜索引擎就是解决这个问题的最好方法。本论文首先详细介绍了基于英特网的搜索引擎的系统结构,然后从网络机器人、索引引擎、Web服务器三个方面进行详细的说明。为了更加深刻的理解这种技术,本人还亲自实现了一个自己的Java搜索引擎——新闻搜索引擎。新闻搜索引擎是从指定的Web页面中按照超连接进行解析、搜索,并把搜索到的每条新闻进行索引后加入数据库。然后通过Web服务器接受客户端请求后从索引数据库中搜索出所匹配的新闻。本人在介绍搜索引擎的章节中除了详细的阐述技术核心外还结合了新闻搜索引擎的实现代码来说明,图文并茂、易于理解。 关键字:搜索引擎,网络机器人,Lucene,中文分词,JavaCC AbstractThe resources in the internet are abundant, but it is a difficult job to search some useful information. So a search engine is the best method to solve this problem. This article fist introduces the system structure of search engine based on the internet in detail, and then gives a minute explanation form Spider search, engine and web server. In order to understand the technology more deeply, I have programmed a news search engine by myself in Java.The news search engine is explained and searched according to hyperlink from a appointed web page, then indexes every searched information and adds it to the index database. Then after receiving the customers' requests from the web server, it soon searches the right news form the index engine,In the chapter of introducing search engine, it is not only elaborating the core technology, but also combine with the modern code, pictures included, easy to understand. Key Words:Search Engine, Spider, Lucene, Phrase Query, JavaCC 目 录第1章 引言··· 11.1 选题背景:··· 11.2 现实意义··· 1第2章 搜索引擎的结构··· 32.1 系统概述··· 32.2 搜索引擎的构成··· 32.2.1 网络机器人··· 32.2.2 索引与搜索··· 32.2.3 Web服务器··· 32.3 搜索引擎的主要指标及分析··· 42.4 小节··· 4第3章 网络机器人··· 53.1 什么是网络机器人··· 53.2 网络机器人的结构分析··· 53.2.1 如何解析HTML· 53.2.2 该类几种重要的方法。··· 63.2.3 Spider程序结构··· 63.2.4 如何构造Spider程序··· 73.2.5 如何提高程序性能··· 83.2.6 网络机器人的代码分析··· 93.3 小节··· 10第4章 基于Lucene的索引与搜索··· 114.1 什么是全文检索与全文检索系统?··· 114.2 什么是Lucene全文检索··· 124.3 Lucene的系统结构分析··· 134.3.1 系统结构组织··· 134.3.2 数据流分析··· 144.4 Lucene索引构建逻辑模块分析··· 154.4.1 绪论··· 154.4.2 对象体系与UML图··· 164.4.3 Lucene的包结构··· 204.4.4 Lucene的主要逻辑图··· 214.4.5 对Lucene包的小结··· 224.5 Lucene查询逻辑··· 224.5.1 查询者输入查询条件··· 224.5.2 查询条件被传达到查询分析器中··· 224.5.3 查询遍历树··· 234.5.4 返回结果··· 234.6 Lucene 检索原理··· 234.7 Lucene和Nucth的中文分析模块··· 254.7.1 Nutch分析··· 254.7.2 Nutch中文搜索3.1 中文分词··· 264.7.3 利用JavaCC构造中文分析模块··· 274.7.4 分词小结··· 284.8 Lucene与Spider的结合··· 284.8.1 Index类的实现··· 284.8.2 HTML解析类··· 294.9 Lucene 小结··· 31第5章 基于Lucene的搜索引擎实现··· 325.1 基于Tomcat的Web服务器··· 325.1.1 什么是基于Tomcat的Web服务器··· 325.2 用户接口设计··· 325.2.1 客户端设计··· 325.2.2 服务端设计··· 335.3 在Tomcat上部署项目··· 355.4 小节··· 35第6章 搜索引擎策略··· 366.1 简介··· 366.2 面向主题的搜索策略··· 366.2.1 导向词··· 366.2.2 网页评级··· 366.2.3 权威网页和中心网页··· 376.3 小节··· 38结束语··· 39参考文献··· 40致 谢··· 41外文资料原文··· 42外文原文翻译··· 48 第1章 引言
1.1 选题背景:
面对浩瀚的网络资源,搜索引擎为所有网上冲浪的用户提供了一个入口,毫不夸张的说,所有的用户都可以从搜索出发到达自己想去的网上任何一个地方。因此它也成为除了电子邮件以外最多人使用的网上服务。搜索引擎技术伴随着WWW的发展是引人注目的。搜索引擎大约经历了三代的更新发展:第一代搜索引擎出现于1994年。这类搜索引擎一般都索引少于1,000,000个网页,极少重新搜集网页并去刷新索引。而且其检索速度非常慢,一般都要等待10秒甚至更长的时间。在实现技术上也基本沿用较为成熟的IR(Information Retrieval)、网络、数据库等技术,相当于利用一些已有技术实现的一个WWW上的应用。在1994年3月到4月,网络爬虫World Web Worm (WWWW)平均每天承受大约1500次查询。大约在1996年出现的第二代搜索引擎系统大多采用分布式方案(多个微型计算机协同工作)来提高数据规模、响应速度和用户数量,它们一般都保持一个大约50,000,000网页的索引数据库,每天能够响应10,000,000次用户检索请求。1997年11月,当时最先进的几个搜索引擎号称能建立从2,000,000到100,000,000的网页索引。Altavista搜索引擎声称他们每天大概要承受20,000,000次查询。结束语
本课题对基于因特网的Java搜索引擎结构和性能指标进行了分析,了解Spider程序的结构和功能。在进行海量数据搜索时,如果使用单纯的数据库技术,那将是非常痛苦的,速度将是极大的瓶颈。所以本文提出了使用全文搜索引擎Lucene进行索引、搜索。解决中文分词和有效的中文搜索信息。同时解决了如何把Lucene全文搜索引擎和Spider程序互相集合来实现新闻搜索的功能。对于如何构架基于Tomcat的Web服务器,使得用户通过浏览器进行新闻的搜索有了一定的理解,对Tomcat如何部署进行了说明。
在些基础上,终于可以调试出一个简单的在本地搜索新闻Java搜索引擎。

参考文献
[1] Jeff Heaton(美), Programming Spiders, Bots, and Aggregator in Java.
[2] Borland Software Corporation(美),JBuilder培训教程(译者:周鹏 [等] 译)北京:机械工业出版社
[3]徐宝文,张卫丰. 搜索引擎与信息获取技术.北京:清华大学出版社,2003.5
[4]车东.基于Java的全文搜索引擎Lucene
[5]罗旭.主题搜索引擎的设计与实现
[6]Bruce Eckel(美).Thinking in Java.北京:机械工业出版社
[7] Otis Gospodnetic Erik Hatcher (美).Action in Lucene.电子工业出版社,2007.1
[8]耿祥义,张跃平. JAVA2实用教程(第二版).北京:清华大学出版社,2004.2
[9]刘彬.JSP数据库高级教程.北京:清华大学出版社,2006.3
[10]刘卫国,严晖.数据库技术与应用——SQL Server.北京:清华大学出版社,2007.1
[11]闫宏飞.Tiny Search Engine: Design and implementation(PPT). Oct.2003
[12]李晓明,闫宏飞,王继民.搜索引擎——原理、技术与系统.北京:科学出版社,2004

更多参考请点击

跪求java课程设计报告!要求:编写一个类似于windows计算器的程序,能实现加减乘除等基本运算并能处理异常

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
public class Jisuan extends JFrame implements ActionListener{
private JTextField reasult;
private JButton btn1,btn2,btn3,btn4,btn5,btn6,btn7,btn8,btn9,btn0,
btnAC,btnAdd,btnSub,btnReasult,btnD,
btnAbout,btnCancel;
private boolean add,sub,end,s,c;
private String str;
private double num1,num2;
public Jisuan(){
JPanel p1=new JPanel();
JPanel p2=new JPanel();
JPanel p3=new JPanel();
TitledBorder tb=new TitledBorder("输出"); tb.setTitleColor(Color.BLUE);

btnAbout=new JButton(" 关于 ");
btnCancel=new JButton("Cancel");
btnCancel.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ee)
{
System.exit(0);
}
});
btnAbout.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent ee)
{
JOptionPane.showMessageDialog(null,"无",
"消息",JOptionPane.INFORMATION_MESSAGE);
}
});
p3.add(btnAbout);
p3.add(btnCancel);
//JPanel p4=new JPanel();
//JPanel p5=new JPanel();
//reasult.setBorder(tb);
reasult =new JTextField("0",20);
reasult.setEditable(false);
reasult.setHorizontalAlignment(JTextField.RIGHT);
reasult.setForeground(Color.BLUE);

p1.setBorder(tb);
p1.add(reasult);

btn0=new JButton("0"); btn0.addActionListener(this);
btn1=new JButton("1"); btn1.addActionListener(this);
btn2=new JButton("2"); btn2.addActionListener(this);
btn3=new JButton("3"); btn3.addActionListener(this);
btn4=new JButton("4"); btn4.addActionListener(this);
btn5=new JButton("5"); btn5.addActionListener(this);
btn6=new JButton("6"); btn6.addActionListener(this);
btn7=new JButton("7"); btn7.addActionListener(this);
btn8=new JButton("8"); btn8.addActionListener(this);
btn9=new JButton("9"); btn9.addActionListener(this);
btnD=new JButton("."); btnD.addActionListener(this); btnD.setForeground(Color.RED);
btnAC=new JButton("AC"); btnAC.addActionListener(this); btnAC.setBackground(Color.PINK);
btnAdd=new JButton("+"); btnAdd.addActionListener(this); btnAdd.setForeground(Color.BLUE);
btnSub=new JButton("—"); btnSub.addActionListener(this); btnSub.setForeground(Color.BLUE);
btnReasult=new JButton("="); btnReasult.addActionListener(this); btnReasult.setForeground(Color.RED);

p2.add(btn1);p2.add(btn2);p2.add(btn3);p2.add(btn4);p2.add(btn5);
p2.add(btn6);p2.add(btn7);p2.add(btn8);p2.add(btn9);p2.add(btn0);
p2.add(btnD);p2.add(btnAC);p2.add(btnAdd);p2.add(btnSub);p2.add(btnReasult);
p2.setLayout(new GridLayout(5,3));

add(p1,BorderLayout.NORTH);
add(p2,BorderLayout.CENTER);
add(p3,BorderLayout.SOUTH);

}
public void num(int i){
String s = null;
s=String.valueOf(i);
if(end){
//如果数字输入结束,则将文本框置零,重新输入
reasult.setText("0");
end=false;

}
if((reasult.getText()).equals("0")){
//如果文本框的内容为零,则覆盖文本框的内容
reasult.setText(s);
}

else{
//如果文本框的内容不为零,则在内容后面添加数字
str = reasult.getText() + s;
reasult.setText(str);

}
}/*
String s=null;
s=String.valueOf(i);
str=reasult.getText()+s;
reasult.setText(str);
}*/
public void actionPerformed(ActionEvent e){
if(e.getSource()==btn1)
num(1);
else if(e.getSource()==btn2)
num(2);
else if(e.getSource()==btn3)
num(3);
else if(e.getSource()==btn4)
num(4);
else if(e.getSource()==btn5)
num(5);
else if(e.getSource()==btn6)
num(6);
else if(e.getSource()==btn7)
num(7);
else if(e.getSource()==btn8)
num(8);
else if(e.getSource()==btn9)
num(9);
else if(e.getSource()==btn0)
num(0);
else if(e.getSource()==btnAdd){
sign(1);
btnD.setEnabled(true);
}
else if(e.getSource()==btnSub){
sign(2);
btnD.setEnabled(true);
}
else if(e.getSource()==btnAC){
btnD.setEnabled(true);
reasult.setText("0");
}

else if(e.getSource()==btnD){
str=reasult.getText();
str+=".";
reasult.setText(str);
btnD.setEnabled(false);
}
else if(e.getSource()==btnReasult){

btnD.setEnabled(true);
num2=Double.parseDouble(reasult.getText());

if(add){
num1=num1 + num2;}
else if(sub){
num1=num1 - num2;}

reasult.setText(String.valueOf(num1));
end=true;
}

}
public void sign(int s){
if(s==1){
add=true;
sub=false;

}
else if(s==2){
add=false;
sub=true;

}

num1=Double.parseDouble(reasult.getText());
end=true;
}
public static void main(String[] args){
Jisuan j=new Jisuan();
j.setTitle("+/-简易计算器");
j.setLocation(500,280);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setResizable(false);
j.pack();
j.setVisible(true);
}
}
没写乘法,你自其实从网上搜索就能搜出来现成代码

相关文章
学术参考网 · 手机版
https://m.lw881.com/
首页