资源描述
上 海 工 业 大 学JAVA程序设计 课程设计(论文)题目: 电子词典 院(系): 软件学院 专业班级: 软件工程079班 学 号: 091345435 学生姓名: 指导教师: 教师职称: 讲 师 起止时间: 程序设计专题(报告)任务及评语院(系):软件学院 教研室:软件教研室学 号091345435学生姓名*专业班级软件工程079班程序设计(报告)题目 电子词典程序设计(报告)任务程序设计专题的任务与要求:(1)掌握Java编程、面向对象的基础知识。(2)较熟练地编写Java应用程序Application。(3)了解Java的常用标准类库、编程技巧、异常处理。(5)联系已学过的内容,巩固所学的理论,增强独立工作能力。(6)通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。(7)通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。指导教师评语及成绩成绩: 指导教师签字: 年 月 日更多计算机类课程设计、毕业设计、论文请访问:目 录第1章 课程设计的目的与要求11.1 课程设计目的11.2 课程设计的实验环境11.3 课程设计的预备知识11.4 课程设计要求1第2章课程设计内容22.1 背景介绍22.1.1 业务背景22.1.2 技术背景2第3章 需求分析33.1 现状的分析33.2 功能需求分析33.2.1系统总体功能介绍33.3 模块功能介绍33.3.1主界面功能33.3.2英译汉功能33.3.3汉译英功能33.3.4单词发音功能43.4 数据库需求分析43.5 系统的数据流程分析43.6 数据项6第4章 系统设计74.1 系统的总体设计74.1.1系统的功能模块设计74.2 系统的详细设计84.2.1概念设计84.3 系统的物理设计9第5章 系统设计105.1 算法方面的问题105.2 字符串方面的问题105.3 系统的实现105.3.1主界面功能实现105.3.2英译汉功能实现125.3.3汉译英功能实现13第6章 课程设计总结14 参考资料15第1章 课程设计的目的与要求 1.1 课程设计目的JAVA程序设计是计算机相关专业的必修专业基础课程,其实践性、应用性很强。实践教学环节是必不可少的一个重要环节。本课程的程序设计专题实际是计算机相关专业学生学习完JAVA程序设计课程后,进行的一次全面的综合训练,JAVA程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。1.2 课程设计的实验环境硬件要求能运行Windows 9.X操作系统的微机系统。JAVA程序设计语言及相应的集成开发环境,J2SDK和ECLIPSE开发工具。1.3 课程设计的预备知识熟悉JAVA语言及ECLIPSE开发工具。1.4 课程设计要求按课程设计指导书提供的课题,要求学生在自行完成各个操作环节,并能实现且达到举一反三的目的,完成一个项目解决一类问题。要求学生能够全面、深入理解和熟练掌握所学内容,并能够用其分析、设计和解答类似问题;对此能够较好地理解和掌握,能够进行简单分析和判断;能编写出具有良好风格的程序;掌握JAVA程序设计的基本技能和面向对象的概念和方法;了解多线程、安全和网络等编程技术。同时培养学生进行分析问题、解决问题的能力;培养学生进行设计分析、设计方法、设计操作与测试、设计过程的观察、理解和归纳能力的提高。第2章 课程设计内容2.1 背景介绍2.1.1 业务背景电子引词典是一种将传统的印刷词典转成数码方式、进行快速查询的数字学习工具。电脑辞典以轻便易携、查询快捷、功能丰富等特点,成为21世纪学生学习生活、社会人士移动办公的掌上利器。电脑辞典主要有五大板块功能,分别为:辞典查询学习功能、电子记事功能、计算功能、参考资料功能以及数据传输功能。目前市场上的电子辞典内置的辞典有学习词典如英汉、雅思等,也有专业词典如电子、医药等。不同的消费者应根据自己的实际情况选择最适合自己的电子辞典,标准的电子辞典内置英汉、汉英、英英、雅思、托福等学习型词典,是为大学、高初中以及小学生量身定制的学习辞典。2.1.2 技术背景我们在学习英语的时候会经常碰到很多的生词,有时,为了读懂一篇文章,经常是读文章用一小时,但是其中却有半个小时都在翻阅英语字典。所以我们小组为了解决这一问题,才将选材方向定位于电子词典的功能实现,主要的目的就是为同学们解决这一问题。在做电子词典功能实现的时候,主要从以下几个方面入手,即:英汉互译、汉英互译、单词发音。在英译汉、汉译英这两个功能模块上,我们首先提供了一个查询界面,即使用者需要输入要查询的关键字,点击确定按钮,屏幕上就会出现其对应的答案。在做这个模块的时候,我们主要解决了JAVA与数据库的链接问题,进而实现其功能。从系统的可扩展性方面考虑,我们在系统中加入了对单词库的添加、删除、修改功能。有了这个功能模块,将给予使用者带来很大的方便。当然也存在一种情况,即刚开始接触而不懂得如何去使用电子词典,为此我们加入了帮助界面,帮助界面是用JAVA小程序完成的。第3章 需求分析3.1 现状的分析当今时代是信息化时代,而信息的数字化也越来越被人们所重视,所以,数字化技术的重要性也逐渐体现了出来,主要体现在以下几个方面:数字化是数字计算机的基础,数字化是软件技术的基础,是智能技术的基础,数字化是信息社会的技术基础,数字化是信息社会的经济基础。词典作为一种为大众服务的工具书,已经渐渐退居二线了,进而出现了另一种查找方式更加简便,更加精确,词汇量更加丰富而且随身携带更加方便的工具,那就是电子词典,应该说这是一个新旧交替的过程,电子词典取代传统词典只是时间的问题。所以说电子词典的发展前景是明朗的,电子词典生产厂家也如同雨后春笋般崛起了。3.2 功能需求分析3.2.1系统总体功能介绍本系统在单词查阅方面主要完成了英译汉、汉译英、单词发音功能;在系统性能方面主要完成了单词库的插入、修改、删除功能以及帮助系统。3.3 模块功能介绍3.3.1主界面功能该模块的主要功能为:由于将组员所做的各模块组合在一起。使用户可以在一个界面下调用组内成员的功能模块。即放便用户使用又方便用户的学习。而且不但可以通过菜单栏调用各功能模块,还可以通过按钮调用。主界面主要由两个面版,五个按钮,一个文本框,一个文本区,一个标签和一个菜单栏组成。在文本框中输入要查询的数据。文本区中显示查询的结果。3.3.2英译汉功能该模块的主要功能为:当用记遇到陌生的单词或记不清解释的单词时,用户可以通过本功能查找,还通过本模块完成单词的再一次记忆。3.3.3汉译英功能该模块的主要功能为:当用户进行汉译英翻译时难难免遇到不会的词或记不请的记。这时用记就可以通过本功能实现词汇的查找。它不但可以查到想要查的词还可以找到和该词相关的单词。3.3.4单词发音功能该模块的主要功能为:当用户进行英译汉查找时,想要知道单词发音时,就可以使用本功能模块。3.4 数据库需求分析目前电子词典的应用很广泛,其体积小、价格低、实用性强,作为学习工具,有着很广泛的市场。在以前,同学们学习英语时都要用人工的方法去查阅生词,不仅浪费了大量的学习时间,学习效率无法提高。可以说,查阅英语生词成为了很多学习英语同学在学习方面的瓶径。电子词典的出现,就是针对这一问题。这里的设计就是实现英汉互译、单词发音,为了体现它的可扩展性,使用者也可以自己添加、删除或修改其单词库。下面是数据库表设计: 表1.1 英语词汇表字段名字段类型长度备注单词TEXT50主键解释TEXT503.5 系统的数据流程分析数据流程是数据的采集、输入、处理、加工和输出的全过程。信息原始数据经采集后,输入计算机系统,进行模式或统计运算,或按用户的特殊要求编制某种专门程序来加工处理数据,然后输出结果数据。输出结果一般都应说明或反映某一领域内客观事物自然属性的特性和规律性。系统分析的主要任务是将在系统详细调查中所得到的文档资料集中到一起,对组织内部整体管理状况和信息处理过程进行分析。它侧重于从业务全过程的角度进行分析。分析的主要内容是:业务和数据的流程是否通畅,是否合理;数据、业务过程和实现管理功能之间的关系;老系统管理模式改革和新系统管理方法的实现是否具有可行性等等。系统分析的目的是将用户的需求及其解决方法确定下来,这些需要确定的结果包括:开发者关于现有组织管理状况的了解;用户对信息系统功能的需求;数据和业务流程;管理功能和管理数据指标体系;新系统拟改动和新增的管理模型等等。系统分析所确定的内容是今后系统设计、系统实现的基础。分析电子词典的总体情况,划分系统边界,识别系统的数据来源和去处,确定外部实体,得出系统的顶层数据流程图;然后划分出几个主要的信息管理功能,本系统的主要数据的工作流包括以下几个方面:(1) 英汉词典;(2) 汉英词典;(3) 备份词库;(4) 添加词汇;(5) 修改词汇; (6) 帮助;明确各功能之间的联系,绘制出数据流程图,如下图所示: 开始 帮助输入英文单词翻译 汉语解释 结束 图1.1 英译汉数据流程图开始 帮助输入汉语词汇翻译 英文单词 结束 图1.2 汉译英数据流程图3.6 数据项数据项又称数据元素,数据项是构成数据的最小单位,是数据记录中最基本的、不可分的有名数据单位。数据项可以是字母、数字或两者的组合。通过数据类型(逻辑的、数值的、字符的等)及数据长度来描述。数据项用来描述实体的某种属性。本系统的数据项的定义如下: 表1.2系统数据项的定义数据项名称数据项含义说明别名数据类型长度取值范围英文单词用户需要输入的英文单词无文本50英文字母汉语词汇用户需要输入的汉语词汇无文本50中文添加单词添加数据库中没有的单词无文本50英文字母修改注释更新单词注释无文本50中文,英文字母数据结构的定义数据结构描述了某些数据项之间的关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成;还可以由若干个数据项和数据结构组成。数据结构名称:英文单词含义说明:用户需要输入的英文单词 数据结构组成:由英文字母组成数据结构名称:汉语词汇含义说明:用户需要输入的汉语词汇数据结构组成:由中文组成数据结构名称:添加单词 含义说明:添加单词库中没有的单词 数据结构组成:由英文字母组成数据结构名称:修改注释 含义说明:更新单词注释数据结构组成:由中文以及英文字母组成第4章 系统设计4.1 系统的总体设计4.1.1系统的功能模块设计系统模块设计分为3大项,分别是:文件模块,编辑模块和帮助模块。1.文件模块:文件模块分为4小项:汉译英模块,汉译英模块,备份词库模块,退出系统模块。2.编辑模块:编辑模块分为3小项:添加词汇模块,添加词汇模块,删除词汇模块。3.编辑模块:编辑模块分为2小项,分别是:帮助模块,关于模块。下面是系统的功能模块图:电子词典文件编辑帮助英汉词典汉英词典备份词库退出系统添加词汇修改词汇删除词汇 帮助 关于 图1.3 系统的功能模块图4.2 系统的详细设计4.2.1概念设计对用户要求描述的现实世界,通过对其中住处的分类、聚集和概括,建立抽象的概念数据模型。这个概念模型应反映现实世界各部门的信息结构、信息流动情况、信息间的互相制约关系以及各部门对信息储存、查询和加工的要求等。所建立的模型应避开数据库在计算机上的具体实现细节,用一种抽象的形式表示出来。概念设计即是利用设计概念并以其为主线贯穿全部设计过程的设计方法。概念设计是完整而全面的设计过程,它通过设计概念将设计者繁复的感性和瞬间思维上升到统一的理性思维从而完成整个设计。如果说概念设计是一篇文章,那么设计概念则是这篇文章的主题思想。概念设计围绕设计概念而展开,设计概念则联系着概念设计的方方面面。下面是各模块的E-R图: 文件英译汉汉译英备份词库退出 图1.4 文件模块子E-R图 编辑添加词汇修改词汇删除词汇 图1.5 编辑模块子E-R图 帮助帮助关于 图1.5帮助模块子E-R图4.3 系统的物理设计数据库物理设计阶段的任务是根据具体计算机系统(硬件等)的特点,为给定的数据库模型确定合理的存储结构和存取方法。所谓的“合理”主要有两个含义:一个是要使设计出的物理数据库占用较少的存储空间,另一个对数据库的操作具有尽可能高的速度。为了设计数据库的物理结构,设计人员必须充分了解所用硬件的内部特征;充分了解数据系统的实际应用环境,特别是数据应用处理的频率和响应时间的要求;充分了解外存储设备的特性。数据库的物理结构设计大致包括:确定数据的存取方法、确定数据的存储结构。物理结构设计阶段实现的是数据库系统的内模式,它的质量直接决定了整个系统的性能。因此在确定数据库的存储结构和存取方法之前,对数据库系统所支持的事务要进行仔细分析,获得优化数据库物理设计的参数。对于数据库查询事务,需要得到如下信息:1.要查询的关系。2.查询条件(即选择条件)所涉及的属性。3.连接条件所涉及的属性。4.查询的投影属性。对于数据更新事务,需要得到如下信息:1.要更新的关系。2.每个关系上的更新操作的类型。3.删除和修改操作所涉及的属性。4.修改操作要更改的属性值。5.确定数据库的存储结构。6.确定系统存储参数的配置。第5章 系统设计5.1 算法方面的问题起初连接数据库的语句全部都是在调用页一句一句的书写,这样一来不仅做了很多重复的工作,而且使页面看起来很繁琐,经过翻阅书籍发现可以将连接数据库的语句统一放到一个页面里,然后在需要调用连接数据库语句的页面调用就可以了,这样既节省时间,又避免出现书写错误。5.2 字符串方面的问题在测试数据查询模块时,发现对字符串的比较存在大小写之分,所以要先将要比较的两个字符串转化成相同的格式或者强行限制输入的字符串大小写相同,然后再进行比较;如果查询的结果为空,那么应该给出提示信息,这样才能真正做到人机界面友好。5.3 系统的实现5.3.1主界面功能实现在此模块内,用户如果想使用组内其他成员的功能时,有两种实现方法。一种是在编辑菜单下选择添加词汇;另一种是通过主界面下面的按钮调用其他成员的功能模块。主界面主要由主界面主要由两个面版,五个按钮,一个文本框,一个文本区,一个标签和一个菜单栏组成。在文本框中输入要查询的数据。文本区中显示查询的结果。主要方法包括:DataWindow()为构造方法,创建用户添加词汇界面;与actionPerformed()为接口方法,处理ActionEvent事件。下面是部分程序源代码:import java.awt.*;import .*;import java.sql.*;import java.awt.event.*;import javax.swing.*;import java.io.*;import sun.audio.*;import javax.swing.JOptionPane;class DataWindow extends JFrame implements ActionListenerJFrame topFrame;JDesktopPane desktop;FileDialog filedialog_save;/声明文件对话框JTextField englishtext;JTextArea chinesetext;JButton b1,b2,b3,b4,b5;JLabel label;JMenuBar mbar;JMenuItem edic,cdic,back_data,quit,addedit,modedit,deledit,disport_mine,gj,hhelp,about;DataWindow()super(电子词典);this.setBounds(250,250,600,400);this.setVisible(true);getContentPane().add(new JScrollPane(chinesetext);mbar=new JMenuBar();setJMenuBar(mbar);mbar.setOpaque(true);mfile=new JMenu(文件);medit=new JMenu(编辑);mhelp=new JMenu(帮助);mbar.add(mfile);mbar.add(medit);mbar.add(disport);mbar.add(mhelp);/添加菜单项edic=new JMenuItem(英汉词典);cdic=new JMenuItem(汉英词典);back_data=new JMenuItem(备份词库);quit=new JMenuItem(退出);/文本菜单addedit=new JMenuItem(添加词汇);modedit=new JMenuItem(修改词汇);deledit=new JMenuItem(删除词汇);hhelp=new JMenuItem(帮助);about=new JMenuItem(关于.);/帮助菜单 图1.6主界面图5.3.2英译汉功能实现此功能模块主要是针对已经存在于单词库中的单词,通过编辑菜单中的英汉词典功能,在主界面的文本框中输入要查询的单词,单击查询按钮进行查询。结果显示在主界面的文本区中。下面是部分源代码/如果是调用语音文件,则读出单词else if(e.getSource()=b5)if(englishtext.getText()!=null)try/去该单词为语音文件名InputStream is=getClass().getResource(sound/+englishtext.getText().trim()+.wav).openStream();/播放语音文件AudioPlayer.player.start(is);catch(IOException e1)else if(e.getSource()=edic)/英汉label.setText(输入要查询的英语单词:);b1.setVisible(true);b5.setVisible(true);else if(e.getSource()=back_data)/备份saveWin s=new saveWin();else if(e.getSource()=quit)/退出System.exit(0); 图1.7英译汉界面图5.3.3汉译英功能实现下面是部分源代码:/如果是调用语音文件,则读出单词else if(e.getSource()=b5)if(englishtext.getText()!=null)try/去该单词为语音文件名InputStream is=getClass().getResource(sound/+englishtext.getText().trim()+.wav).openStream();/播放语音文件AudioPlayer.player.start(is);catch(IOException e1)else if(e.getSource()=edic)/汉英label.setText(输入要查询的汉语意思:);b1.setVisible(true);b5.setVisible(true); else if(e.getSource()=back_data)/备份saveWin s=new saveWin();else if(e.getSource()=quit)/退出System.exit(0); 图1.8汉译英界面图第6章 课程设计总结经过了一个星期的时间,利用Java开发的电子词典程序终于完成了。本程序是针对其相关企业现状的分析之后,确定了程序涉及的领域,包括了界面设计、功能设计、数据库设计等,是一个具有实际应用意义的程序。经过这次的课题的设计与实现,尽管遇到了很多很多难题,但是让我让我更加受益的是在这次课程设计中得到的经验、心得和锻炼。这让我发现编译程序的过程其实就是不断解决问题的过程,从中也感受到了编写软件的乐趣,一个人永远有学不完的知识,就算开发软件的各项知识都学会了,但在实际开发过程中仍然会遇到不少问题,这是就要做到以下这两点:一个是“查”,另一个则是“问”。通过仔细的查阅资料和询问老师以及同学,最终解决了不少的问题。这也是使我认识到解决问题一方面依靠外界的帮助,更重要的是依靠自己的能力。这次课程设计给我以前学过的知识做了一个总结,为我深入学习编程做了铺垫。由于时间以及其它方面的原因,我设计的程序只完成了几个重要的功能的实现,依然存在着不少问题和缺陷,比如说:用户界面设计不够美观,异常出错处理功能比较差等多方面问题,这还需要在以后的学习中加以改进,希望以后能够做的更成功。参考资料1. 陈明 JAVA学教程 科技出版社 2002-32. 飞思科技产品研发中心 JAVA应用开发 电子工业出版社 2003-53. 方力钧 JAVA高手突破 清华大学出版社 2002-084. 乔林 JAVA应用技术 中国铁道出版社 2003-125. 张立科 实用JAVA应用学 人民邮电出版社 2002-096. 严蔚敏 JAVA第二版 清华大学出版社 2001-077. 王珍玲 实用JAVA工程教程 高等教育出版社 2004-068. 李维 面向对象开发实践之路 电子工业出版社 2004-049. 谭浩强 JAVA程序设计第二版 清华大学出版社 2003-0210. 周苏 JAVA工程学教程 科学出版社 2003-1116
展开阅读全文