




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、java程序设计课程设计报告电子词典程序设计姓 名: 班 级: 学 号: 指导教师: 成 绩: 完成时间: 目录一、设计目的3二、功能介绍32.1 菜单栏功能32.2 功能要求3三、概要设计43.1 需求分析43.2 自定义类说明43.3 界面设计思想43.4 方法定义说明53.5 数据库说明5四、详细设计84.1 程序流程图84.2 登陆界面设计81、具体实现过程82、关键代码设计93、运行结果截图17五、 设计心得与体会20一、 设计目的随着安卓智能手机的普及,java语言也越来越被人所熟知。现如今,java不仅仅是一种流行的网络编程语言,更是一种应用程序开发语言。它具有面向对象、跨平台、
2、分布应用等特点,而且有利于软件的维护和继承。由于java具有跨平台性,所以它应用领域特别广,不仅在手机、家电、汽车等行业用到java,就连在航空航天领域也用到它,这些都足以说明我们学习java的必要性。 纸上得来终觉浅,绝知此事要躬行。此次课程设计的目的主要在于巩固所学习的java语言基础知识,增进java语言编辑的基本功,熟练掌握jdk、eclipse等开发工具的应用,以及java语言与sql server 2005和access数据库的连接。最终使我们通过该教学环节,把该课程及相关知识融会贯通,更加全面地掌握java语言的编程思想以及面向对象程序设计的方法,为今后走上工作岗位打下坚实的基础
3、。二、 功能介绍2.1 菜单栏功能a) “文件”菜单:英汉词典、备份词库、退出b) “编辑”菜单:添加词库、修改词库、删除词库c) “帮助”菜单:显示关于程序的信息2.2 功能要求a) “英译汉”功能要求:用户文本框中输入要查询的单词。若该单词存在于词库中,则会在文件对话框中显示其词性及对应翻译;若该单词没有存在于词库中,则会弹出“警告”,说明“查无此词”;若没有输入直接点击“查询”,则会弹出“警告”,说明“查询对象不能为空”。b) “备份词库”功能要求:可以实现对现有词库的备份,可将当前词库存入用户所设置的任一位位置。c) “添加”功能:弹出对话框,若添加的是词库中没有的单词,系统在添加成功
4、后有提示“添加成功”;若添加的是词库中已有的单词,系统会弹出“警告”,说明“此词汇已存在”。d) “修改单词”功能:弹出对话框,用户可自行修改词库中的单词的解释,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。e) “删除单词”功能:弹出对话框f) 用户可自行删除词库中已有的单词,在删除此单词的同时,其解释也会随之被删除,若输入单词不存在于词库中,系统会弹出“警告”,说明“不存在此单词”。三、概要设计3.1 需求分析电子引词典是一种将传统的印刷词典转成数码方式、进行快速查询的数字学习工具。电脑辞典以轻便易携、查询快捷、功能丰富等特点,成为21世纪学生学习生活、社会人士移动办
5、公的掌上利器。电脑辞典主要有五大板块功能,分别为:辞典查询学习功能、电子记事功能、计算功能、参考资料功能以及数据传输功能。目前市场上的电子辞典内置的辞典有学习词典如英汉、雅思等,也有专业词典如电子、医药等。不同的消费者应根据自己的实际情况选择最适合自己的电子辞典,标准的电子辞典内置英汉、汉英、英英、雅思、托福等学习型词典,是为大学、高初中以及小学生量身定制的学习辞典。3.2 自定义类说明在该程序中,自定义了两个类。类datawindow继承了jframe类,用来创建一个窗体。另一个自定义的类是dia,该类继承了dialog,主要是为了解决程序中多次用到的提示框,用自定义的类会更方便一点。类da
6、tawindow中的主要方法有public void listword()throws sqlexception,用来提供查询功能;public static void addword(string ss,string s)throws sqlexception,用来提供添加单词的功能;public void modify(string s1,string s2)throws sqlexception,用来提供修改单词的功能;public void actionperformed(actionevent e),是用来处理监听到的事件。类dia中也有此方法,用来处理对话框上的按钮所触发的事件。3
7、.3 界面设计思想界面按照题目要求设计的,主窗体上有相应的按钮,点击不同的按钮会触发不同的事件,从而达到题目要求。3.4 方法定义说明运用java语言的封装性,每一个方法完成一个功能。listword()方法完成查询功能;addword(string ss,string s)方法完成添加单词功能;modify(string s1,string s2)方法完成单词修改功能;delete(string s1)方法完成删除功能。词库备份功能在监听器方法public void actionperformed(actionevent e)中直接实现。3.5 数据库说明1、该程序用的是sql server
8、 2005数据库与java连接。在运行该程序之前,要先创建一个名为dbtest的数据库,并在该数据库中新建一个名为dic的表,这个表中有两列,命名为“单词”和“解释”(包括词性和汉语解释)。数据类型都设置为varchar(30);因为只有这种数据类型是在数据不到30个字符的时候,后边不补空格。其他数据类型,在数据长度不到给定长度的时候,都要添加空格,以达到给定的长度。如果用其他的数据类型,因为空格也是字符,所以在进行查询的时候,即使看着单词是一模一样,也查询不到结果。还要向表中录入几条记录,还可以通过excel表添加单词个数。还需要把数据库用户名为sa密码改为123456.因为我的电脑上的密码
9、是123456,所以写程序的时候密码也是123456.呵呵。 2、接下来我们要注册odbc数据源。首先打开控制面板,找到管理工具,然后打开,你就可以看到如下图:3、点开odbc数据源,然后在“用户dns“之下添加,如图4、点击“添加”按钮,向下拉选择“sql server”;5、按照提示一步一步操作,最后测试数据源,在这里就不再赘述了,呵呵。6、microsoft sql server jdbc driver 2.0的下载,可以到微软官网下载。下载完成后,解压到c:program filesmicrosoft sql server路径下,然后找到sqljdbc.jar和sqljdbc4.jar
10、两个文件,复制到lib文件夹下,并设置好classpath路径。四、详细设计4.1 程序流程图开始 主窗体词库备份删除修改添加查询结果结束4.2 登陆界面设计1、具体实现过程datawindoe类继承jframe类,封装有上图所示的按钮、标签、文本框等属性,封装有成员函数listword(),addword(string ss,string s),modify(string s1,string s2),delete(string s1)用来添加各个属性值。因为用到sql server 2005数据库,所以要抛出sqlexception异常,每一个要与数据库连接的方法都要抛出异常。 2、关键代码
11、设计import java.awt.*;import java.sql.*;import java.util.*;import java.io.*;import java.awt.event.*;import javax.swing.*;class datawindow extends jframe implements actionlistenerprivate jmenuitem fileyh=new jmenuitem(英汉词典);private jmenuitem filebf=new jmenuitem(备份词库);private jmenuitem filetc=new jmenu
12、item(退出);private jmenuitem edittj=new jmenuitem(添加词库);private jmenuitem editxg=new jmenuitem(修改词库);private jmenuitem editsc=new jmenuitem(删除词库);private jmenuitem helpcx=new jmenuitem(程序信息);jtextfield englishtext;jtextarea chinesetext;jbutton cx,fy,tj,xg,sc; datawindow() super(英汉小词典);/setsize(500,200
13、);setbounds(300,300,500,300);setvisible(true);englishtext=new jtextfield(20);chinesetext=new jtextarea(5,10);cx=new jbutton(查询);fy=new jbutton(发音);tj=new jbutton(添加);xg=new jbutton(修改);sc=new jbutton(删除);jmenu file=new jmenu(文件);jmenu edit=new jmenu(编辑);jmenu help=new jmenu(帮助);file.add(fileyh);file
14、.add(filebf);file.addseparator();file.add(filetc);edit.add(edittj);edit.add(editxg);edit.add(editsc);help.add(helpcx);jmenubar bar=new jmenubar();bar.add(file);bar.add(edit);bar.add(help);setjmenubar(bar);jpanel p1=new jpanel(),p2=new jpanel();p1.add(new jlabel(输入要查询的英语单词:);p1.add(englishtext);p1.ad
15、d(cx);p1.add(fy);add(p1,north);p2.add(tj);p2.add(xg);p2.add(sc);add(p2,south);add(chinesetext,center);cx.addactionlistener(this);fy.addactionlistener(this);tj.addactionlistener(this);xg.addactionlistener(this);sc.addactionlistener(this);filetc.addactionlistener(this);filebf.addactionlistener(this);e
16、dittj.addactionlistener(this);editxg.addactionlistener(this);editsc.addactionlistener(this);helpcx.addactionlistener(this);addwindowlistener(new windowadapter()public void windowclosing(windowevent e)system.exit(0););public void actionperformed(actionevent e)if(e.getsource()=cx) trylistword();catch(
17、sqlexception ee)system.out.println(sqlexception:+ee.getmessage(); if(e.getsource()=tj|e.getsource()=edittj) dia dia=new dia(this,添加单词,true);dia.jl1.settext(输入要添加的单词);dia.jl2.settext(输入添加的单词的解释);dia.jp.add(dia.bt1);dia.jp.add(dia.bt2);dia.setvisible(true);if(e.getsource()=xg|e.getsource()=editxg) dia
18、 dia=new dia(this,添加单词,true);dia.jl1.settext(输入英语单词);dia.jl2.settext(输入该单词修改的汉语解释);dia.jp.add(dia.bt3);dia.jp.add(dia.bt2);dia.setvisible(true);if(e.getsource()=sc|e.getsource()=editsc) string msg=删除单词;string text=;string info=;info=joptionpane.showinputdialog(null,msg,text);trydelete(info);catch(sq
19、lexception ee)system.out.println(sqlexception:+ee.getmessage();if(e.getsource()=helpcx) joptionpane.showmessagedialog(null,何学成 111210236 制作 哈哈);if(e.getsource()=filetc) system.exit(0);if(e.getsource()=filebf) file fromfile=new file(/myprogram/java);fileinputstream fis=null;filedialog filedialog_sava
20、=new filedialog(this,filedialog.save);filedialog_sava.setvisible(true);tryfis=new fileinputstream(fromfile);int bytesread;byte buf=new byte4*1024;file tofile=new file(filedialog_sava.getdirectory(),filedialog_sava.getfile();fileoutputstream fos=new fileoutputstream(tofile);while(bytesread=fis.read(b
21、uf)!=-1) fos.write(buf,0,bytesread);fos.flush();fos.close();fis.close(); catch(ioexception e2)public void listword()throws sqlexception string chinese,english;chinesetext.settext();/声明jdbc驱动程序对象string jdriver = com.microsoft.sqlserver.jdbc.sqlserverdriver; /定义jdbc的url对象,dbtest为sql server数据库string co
22、nurl=jdbc:sqlserver:/localhost:1433;databasename=dbtest; string user=sa; string pwd=123456; try /加载jdbc-odbc桥驱动程序 class.forname(jdriver); catch(java.lang.classnotfoundexception e) system.out.println(forname : + e.getmessage( ); connection con=drivermanager.getconnection(conurl,user,pwd);statement sq
23、l=con.createstatement( );resultset rs=sql.executequery(select * from dic);boolean boo=false; while(boo=rs.next()=true) if(englishtext.gettext().equals() string msg=警告!查询对象不能为空;joptionpane.showmessagedialog(null,msg);break; /stringtokenizer st=new stringtokenizer(rs.getstring(单词), );/english=st.nextt
24、oken(); english=rs.getstring(单词); chinese=rs.getstring(解释); if(english.equals(englishtext.gettext() chinesetext.append(n+chinese); con.close(); if(chinesetext.gettext().equals() string msg=警告!查无此词;joptionpane.showmessagedialog(null,msg); public static void addword(string ss,string s)throws sqlexcept
25、ion /声明jdbc驱动程序对象string jdriver = com.microsoft.sqlserver.jdbc.sqlserverdriver; /定义jdbc的url对象,dbtest为sql server数据库string conurl=jdbc:sqlserver:/localhost:1433;databasename=dbtest; string user=sa; string pwd=123456; try /加载jdbc-odbc桥驱动程序 class.forname(jdriver); catch(java.lang.classnotfoundexception
26、e) system.out.println(forname : + e.getmessage( ); connection con=drivermanager.getconnection(conurl,user,pwd);statement sql=con.createstatement( );resultset rs=sql.executequery(select * from dic);boolean boo=false;string ename;while(boo=rs.next()=true)ename=rs.getstring(单词);/stringtokenizer st=new
27、stringtokenizer(rs.getstring(单词), );/ename=st.nexttoken();if(ename.equals(ss)joptionpane.showmessagedialog(null,警告!此词已存在);break;if(boo=false)string r=insert into dic(单词,解释) values(+ss+,+s+);sql.executeupdate(r);sql.close();con.close();joptionpane.showmessagedialog(null,添加成功);public void modify(strin
28、g s1,string s2)throws sqlexception system.out.print(s1+s2);string jdriver = com.microsoft.sqlserver.jdbc.sqlserverdriver; string conurl=jdbc:sqlserver:/localhost:1433;databasename=dbtest; string user=sa; string pwd=123456; try /加载jdbc-odbc桥驱动程序 class.forname(jdriver); catch(java.lang.classnotfoundex
29、ception e) system.out.println(forname : + e.getmessage( ); connection con=drivermanager.getconnection(conurl,user,pwd);statement sql=con.createstatement( );resultset rs=sql.executequery(select * from dic);boolean boo=false;string ename;while(boo=rs.next()=true)ename=rs.getstring(单词);if(ename.equals(
30、s2)preparedstatement ps=con.preparestatement(update dic set 解释=? where 单词=?);system.out.print(s1+s2);ps.setstring(1,s1);ps.setstring(2,s2);ps.executeupdate();joptionpane.showmessagedialog(null,修改成功);break;if(boo=false)sql.close();con.close();joptionpane.showmessagedialog(this,警告!不存在此单词,警告,joptionpan
31、e.warning_message);public void delete(string s1)throws sqlexception string jdriver = com.microsoft.sqlserver.jdbc.sqlserverdriver; string conurl=jdbc:sqlserver:/localhost:1433;databasename=dbtest; string user=sa; string pwd=123456; try /加载jdbc-odbc桥驱动程序 class.forname(jdriver); catch(java.lang.classn
32、otfoundexception e) system.out.println(forname : + e.getmessage( ); connection con=drivermanager.getconnection(conurl,user,pwd);statement sql=con.createstatement( );resultset rs=sql.executequery(select * from dic);boolean boo=false;string ename;while(boo=rs.next()=true)ename=rs.getstring(单词);if(enam
33、e.equals(s1)preparedstatement ps=con.preparestatement(delete from dic where 单词=?);ps.setstring(1,s1);ps.executeupdate();joptionpane.showmessagedialog(null,删除成功);break;if(boo=false)sql.close();con.close();joptionpane.showmessagedialog(this,警告!不存在此单词,警告,joptionpane.warning_message);public static void
34、main(string args)datawindow win=new datawindow();class dia extends dialog implements actionlistenertextfield txt1=new textfield(10),txt2=new textfield(10);jbutton bt1=new jbutton(提交),bt2=new jbutton(取消),bt3=new jbutton(提交);jpanel jp=new jpanel();jlabel jl1=new jlabel(),jl2=new jlabel();dia(jframe f,string s,boolean b)super(f,s,b);setbounds(300,300,300,200);setlayout(new gridlayout(5,1);add(jl1);add(txt1);add(jl2);add(txt2);add(jp);bt1.addactionlistener(this);bt2.addactionlistener(this);bt3.addactionlistener(this);validate();public void actionperformed(actionevent e)if(e.getsource()=bt1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年保密军工考试题及答案
- 陆丰辅警考试真题及答案
- 南阳市中储粮2025秋招财务资产岗高频笔试题库含答案
- 襄阳市中石化2025秋招面试半结构化模拟题及答案油气储运与管道岗
- 国家能源阿坝自治州2025秋招机械工程类面试追问及参考回答
- 国家能源青海地区2025秋招面试专业追问及参考机械工程岗位
- 武汉市中石油2025秋招面试半结构化模拟题及答案安全环保与HSE岗
- 通辽市中石油2025秋招面试半结构化模拟题及答案财务与审计岗
- 2025年乡村工程考试题及答案
- 大唐电力资阳市2025秋招性格测评常考题型与答题技巧
- 督导门店工作总结
- 水泥行业年度汇报
- 2026中国电力工程顾问集团华东电力设计院有限公司校园招聘考试参考试题及答案解析
- 2025邮储银行校招笔试真题及答案
- 2025年重获驾驶权限科目一机动车理论考试题库
- 山东省菏泽市牡丹区2024-2025学年七年级上学期第一次月考数学试卷(含答案)
- 《项目基金管理办法》
- 2025年西藏司法考试真题及答案
- 结构生物学01章-结构生物学绪论(一)课件
- 25手术室护理实践指南
- 日语的拨音促音和长音
评论
0/150
提交评论