java课程设计.docx
- 文档编号:25703217
- 上传时间:2023-06-11
- 格式:DOCX
- 页数:20
- 大小:229.73KB
java课程设计.docx
《java课程设计.docx》由会员分享,可在线阅读,更多相关《java课程设计.docx(20页珍藏版)》请在冰豆网上搜索。
java课程设计
软件学院
课程设计报告书
课程名称面向对象程序设计
设计题目敏感词汇分析程序
专业班级
学号
姓名
指导教师
2012年06月
目录
1设计时间3
2设计目的3
3设计任务3
4设计内容3
4.1需求分析3
4.1.1问题描述3
4.1.2基本要求3
4.2总体设计3
4.2.1包的描述3
4.2.2类的描述4
4.2.3类之间的关系4
4.3详细设计4
4.3.1类图4
4.3.2页面设计5
4.4测试分析8
4.5程序代码10
5总结与展望17
参考文献18
1设计时间
18周(2012年6月13日-2012年6月19日)
2设计目的
《面向对象程序设计》是一门实践性很强的计算机专业基础课程,课程设计是学习完该课程后进行的一次较全面的综合练习。
其目的在于通过实践加深学生对面向对象程序设计的理论、方法和基础知识的理解,掌握使用Java语言进行面向对象设计的基本方法,提高运用面向对象知识分析实际问题、解决实际问题的能力,提高学生的应用能力。
3设计任务
敏感词汇分析程序。
要求如下:
(1)使用图形用户界面实现。
(2)任意选择一个文本文件,分析该文件,如果存在敏感词汇,报告每个词出现的次数。
(3)敏感词汇保存在sentive.txt文件中,每个词占一行,至少设置10个敏感词汇。
(4)系统使用的GUI组件不得少于5种,越全面越好,但要合适(和谐界面)。
4设计内容
4.1需求分析
4.1.1问题描述
敏感词汇分析程序。
任意选择一个文本文件,分析该文件,如果存在敏感词汇,报告每个词出现的次数。
4.1.2基本要求
(1)使用图形用户界面实现。
(2)任意选择一个文本文件,分析该文件,如果存在敏感词汇,报告每个词出现的次数。
(3)敏感词汇保存在sentive.txt文件中,每个词占一行,至少设置10个敏感词汇。
(4)系统使用的GUI组件不得少于5种,越全面越好,但要合适(和谐界面)。
4.2总体设计
4.2.1包的描述
Java.awt
包含用于创建用户界面和绘制图形图像的所有类。
Java.io
通过数据流、序列化和文件系统提供系统输入和输出。
Javax.swing
用于JAVA应用程序用户界面的开发工具包。
4.2.2类的描述
Begin类,开始程序后"敏感词测试程序"图形用户界面实现代码。
Zhujiemian类,对主界面两个按钮的监听。
Lmy类,"测试界面"图形用户界面的实现代码。
Ceshi类,对敏感词比对实现的核心代码,对"测试界面"三个按钮的监听。
4.2.3类之间的关系
JFrame
ActionListener
Lmy
begin
Ceshi
main
begin
Lmy
Zhujiemian
close
begin
actionPerformed
actionPerformed
图1.类之间的关系
4.3详细设计
4.3.1类图
Lmy
begin
JButtonjbutton,jbutton1,jbutton2
JPaneljp1,jp2
JTextAreajta
JTextAreajta
JTextFieldjtf
Containercontent
Stringbuffer
JButtonjbutton01,jbutton02
JPaneljp01,jp02
JLabeljl01
Containercontent01
publicbegin
publicvoidclose
classZhujiemian
publicLmy
publicvoidclose
classCeshi
publicstaticvoidmain
图2.Lmy类图图3.begin类图
4.3.2页面设计
开始界面设计代码:
content01=getContentPane();
jp01=newJPanel();
jp02=newJPanel();
jbutton01=newJButton("开始敏感词测试");//敏感词测试按钮
jbutton02=newJButton("退出敏感词测试");//程序退出按钮
jl01=newJLabel("欢迎您使用敏感词测试程序");//欢迎语
jp01.setLayout(newBorderLayout());
jp01.setLayout(null);
jl01.setBounds(220,150,200,30);
jp01.add(jl01);
jp02.add(jbutton01);
jp02.add(jbutton02);
content01.add(jp01,BorderLayout.CENTER);
content01.add(jp02,BorderLayout.SOUTH);
jbutton01.addActionListener(newZhujiemian());
jbutton02.addActionListener(newZhujiemian());
setTitle("敏感词测试程序");//程序标题
setSize(600,400);
setVisible(true);
setLocation(300,300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
结果如图:
图4.敏感词测试程序界面
测试界面代码:
content=getContentPane();
jp1=newJPanel();
jp2=newJPanel();
jbutton=newJButton("选择待测文件");//选择文件按钮
jbutton1=newJButton("开始检索");//检索按钮
jbutton2=newJButton("返回");//返回按钮
jta=newJTextArea(15,30);
jta.setLineWrap(true);
jl=newJLabel("文件路径名称:
");//显示文件路径
jtf=newJTextField(20);
jp1.setLayout(newBorderLayout());
jp1.add(jta);
jp2.add(jl);
jp2.add(jtf);
jp2.add(jbutton);
jp2.add(jbutton1);
jp2.add(jbutton2);
content.add(jp1,BorderLayout.CENTER);
content.add(jp2,BorderLayout.SOUTH);
jbutton.addActionListener(newCeshi());
jbutton1.addActionListener(newCeshi());
jbutton2.addActionListener(newCeshi());
setTitle("测试界面");
setSize(650,400);
setVisible(true);
setLocation(300,250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
结果如图:
图5.测试界面
4.4测试与分析
图6.启动程序
图7.敏感词测试界面
图8.选择目标文件界面
图9.点击“选择待测文件”后的选择文件界面
图10.选择“target.txt”文件
图11.在检索之前,可以显示待测文件内的内容
图10.测试结果界面
4.5程序代码
importjava.awt.BorderLayout;//布置容器的边框布局,北、南、东、西、中;NORTH、SOUTH、EAST、WEST、CENTER。
importjava.awt.Container;
importjava.awt.event.ActionEvent;//此事件指示用户想要某个事件发生。
importjava.awt.event.ActionListener;
importjava.io.BufferedReader;//从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
importjava.io.File;
importjava.io.FileNotFoundException;
importjava.io.FileReader;
importjava.io.FileWriter;
importjava.io.IOException;//当发生某种I/O异常时,抛出此异常。
此类是失败或中断的I/O操作生成的异常的通用类。
importjavax.swing.JButton;//"push"按钮的实现。
importjavax.swing.JFileChooser;//JFileChooser为用户选择文件提供了一种简单的机制
importjavax.swing.JFrame;//java.awt.Frame的扩展版本,该版本添加了对JFC/Swing组件架构的支持。
importjavax.swing.JLabel;//用于短文本字符串或图像或二者的显示区。
importjavax.swing.JOptionPane;//JOptionPane有助于方便地弹出要求用户提供值或向其发出通知的标准对话框。
importjavax.swing.JPanel;//JPanel是一般轻量级容器。
importjavax.swing.JTextArea;//JTextArea是一个显示纯文本的多行区域。
importjavax.swing.JTextField;//JTextField是一个轻量级组件,它允许编辑单行文本。
publicclassLmyextendsJFrame//敏感词测试模块
{
JButtonjbutton,jbutton1,jbutton2;
JPaneljp1,jp2;
JTextAreajta;
JLabeljl;
JTextFieldjtf;
Containercontent;
Stringbuffer="";
publicLmy()
{
content=getContentPane();
jp1=newJPanel();
jp2=newJPanel();
jbutton=newJButton("选择待测文件");//选择文件按钮
jbutton1=newJButton("开始检索");//检索按钮
jbutton2=newJButton("返回");//返回按钮
jta=newJTextArea(15,30);
jta.setLineWrap(true);
jl=newJLabel("文件路径名称:
");//显示文件路径
jtf=newJTextField(20);
jp1.setLayout(newBorderLayout());
jp1.add(jta);
jp2.add(jl);
jp2.add(jtf);
jp2.add(jbutton);
jp2.add(jbutton1);
jp2.add(jbutton2);
content.add(jp1,BorderLayout.CENTER);
content.add(jp2,BorderLayout.SOUTH);
jbutton.addActionListener(newCeshi());
jbutton1.addActionListener(newCeshi());
jbutton2.addActionListener(newCeshi());
setTitle("测试界面");
setSize(650,400);
setVisible(true);
setLocation(300,250);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
publicvoidclose()
{
this.dispose();
}
classCeshiimplementsActionListener
{
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==jbutton)
{
JFileChooserchooser=newJFileChooser();
intreturnVal=chooser.showOpenDialog(Lmy.this);
if(returnVal==JFileChooser.APPROVE_OPTION)
{
Stringstr=chooser.getSelectedFile().getPath();
jtf.setText(str);
try
{
BufferedReadersb=newBufferedReader(newFileReader(newFile(str)));
Strings=sb.readLine();
while(s!
=null)
{
buffer+=s+"\n";
s=sb.readLine();
}
jta.setText(buffer);
sb.close();
}
catch(Exceptionee)
{
jta.setText(ee.toString());
}
}
}
elseif(e.getSource()==jbutton1)
{
try
{
String[]sentive=newString[10];
BufferedReadersb=newBufferedReader(newFileReader(newFile("sentive.txt")));
Strings="";
intkey=0;
inti=0;
while((s=sb.readLine())!
=null)
{
sentive[i]=s;
i++;
}
for(intj=0;j
{
intflag=0;
for(intk=0;k { if(buffer.charAt(k)==sentive[j].charAt(key)) { key++; if(key==sentive[j].length()) { flag++; key=0; } } else { key=0; } } sentive[j]+="有"+flag+"个;"; } JFramef=newJFrame("统计结果为"); f.setSize(600,100); JLabell=newJLabel(); Stringstr=sentive[0]+sentive[1]+sentive[2]+sentive[3]+ sentive[4]+sentive[5]+sentive[6]+sentive[7]+ sentive[8]+sentive[9]; l.setText(str); f.add(l); f.setLocation(300,450); //f.setDefaultCloseOperation(EXIT_ON_CLOSE); f.setVisible(true); } catch(Exceptione1) { e1.printStackTrace(); } } elseif(e.getSource()==jbutton2) { close(); newbegin(); } } } publicstaticvoidmain(Stringagrs[]) { newbegin(); } } classbeginextendsJFrame { JButtonjbutton01,jbutton02; JPaneljp01,jp02; JLabeljl01; Containercontent01; publicbegin() { content01=getContentPane(); jp01=newJPanel(); jp02=newJPanel(); jbutton01=newJButton("开始敏感词测试");//敏感词测试按钮 jbutton02=newJButton("退出敏感词测试");//程序退出按钮 jl01=newJLabel("欢迎您使用敏感词测试程序");//欢迎语 jp01.setLayout(newBorderLayout()); jp01.setLayout(null); jl01.setBounds(220,150,200,30); jp01.add(jl01); jp02.add(jbutton01); jp02.add(jbutton02); content01.add(jp01,BorderLayout.CENTER); content01.add(jp02,BorderLayout.SOUTH); jbutton01.addActionListener(newZhujiemian()); jbutton02.addActionListener(newZhujiemian()); setTitle("敏感词测试程序");//程序标题 setSize(600,400); setVisible(true); setLocation(300,300); setDefaultCloseOperation(EXIT_ON_CLOSE); } publicvoidclose() { this.dispose(); } classZhujiemianimplementsActionListener { publicvoidactionPerformed(ActionEvente) { if(e.getSource()==jbutton01) { close(); newLmy(); } elseif(e.getSource()==jbutton02) { System.exit(0); } } } } 5总结与展望 经过一周的课程设计,我学到了很多东西: ①巩固和加深了对JAVA的理解,提高综合运用本课程所学知识的能力。 ②培养了我选用参考书,查阅手册及文献资料的能力。 培养独立思考,深入研究,分析问题、解决问题的能力。 ③过实际编译系统的分析设计、编程调试,掌握应用软件的分析方法和工程设计方法。 ④够按要求编写课程设计报告书,能正确阐述设计和实验结果,正确绘制系统和程序框图。 ⑤通过课程设计,培养了我严肃认真的工作作风,逐步建立正确的生产观念、经济观念和全局观念。 课程设计是把我们所学的理论知识进行系统的总结并应用于实践的良好机会,有利于加强我们用知识理论来分析实际问题的能力,进而加强了我们对知识认识的实践度,巩固了我们的理论知识,深化了对知识的认识,并为走向社会打下一个良好的基础。 参考文献 [1]刘万军Java程序设计实践教程[M].清华大学出版社.2010 出勤 情况 缺勤次数: 课程 设计 评估 设计成绩 教师签字
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 课程设计
![提示](https://static.bdocx.com/images/bang_tan.gif)