超市收银程序 JAVA课程设计.docx
《超市收银程序 JAVA课程设计.docx》由会员分享,可在线阅读,更多相关《超市收银程序 JAVA课程设计.docx(13页珍藏版)》请在冰豆网上搜索。
超市收银程序JAVA课程设计
软件学院
课程设计报告书
课程名称面向对象课程设计
设计题目敏感词汇分析
专业班级
学号
姓名
指导教师
2011年6月
1设计时间
2011-6-10至2011-6-12
2设计目的
本次课程设计的设计目的是使同学们掌握面向对象程序的设计思想和Java编程的技巧;具备根据要求对程序进行分析、设计、实现与调试,加强知识实践意识、提高动手能力和创新能力。
3设计任务
敏感词汇分析程序
要求如下:
(1)使用图形用户界面实现。
(2)任意选择一个文本文件,分析该文件,如果存在敏感词汇,报告每个词出现的次数。
(3)敏感词汇保存在sentive.txt文件中,每个词占一行,至少设置10个敏感词汇。
(4)系统使用的GUI组件不得少于5种,越全面越好,但要合适(和谐界面)。
3.1名词解释
敏感词汇:
敏感词汇就是一些国外反动分子常用的词组、国家限制使用的名词、特定词汇。
总结发现有以下几个方面:
1、敏感词范围:
敏感词包括政治敏感词,机密信息敏感词,骂人的原话、土话敏感词,匪话、黑话敏感词等等。
2、各个论坛或者各种游戏不同,敏感词也不同,比如在这个论坛里的某个词某句话是敏感词,在别的地方不是,比如在游戏里外挂、中奖、管理员、信息等等都是敏感词,打出来的全部显示***,但是这些在普通QQ聊天或者邮件里都是正常词汇。
常见的敏感词汇:
·违反国家现行法律法规。
·破坏社会公共安全。
·鼓动民族仇恨、民族歧视,破坏民族团结。
·宣扬邪教和封建迷信。
·宣扬色情、淫秽、暴力、教唆犯罪。
·攻击政府、政府官员。
·含有种族、肤色、性别、性取向、宗教、民族、地域、残疾、社会经济状况等歧视内容的问题和回复。
·含有侮辱或诽谤他人,对他人构成伤害或侵害他人合法权益的内容。
·含有法律、行政法规禁止的其他内容。
·含有破坏社区公共秩序的内容。
·灌水或张贴垃圾信息。
·宣传无关内容,发表含有广告性质的问题。
·含有影响网友正常浏览的内容或格式。
·与栏目主题无关的内容。
·违反网站的其它具体规定的情况。
·破坏社会公共安全。
·鼓动民族仇恨、民族歧视,破坏民族团结。
用户界面:
指对软件的人机交互、操作逻辑、界面美观的整体设计。
好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。
电子计算机系统中实现用户与计算机信息交换的软件、硬件部分。
软件部分包括用户与计算机信息交换的约定、操作命令等处理软件,硬件部分包括输入装置和输出装置。
目前常用的是图形用户界面,它采用多窗口系统,显示直接形象,操作简便。
也叫人机界面。
简称界面。
4设计内容
4.1概要设计
敏感词汇程序是:
图形界面、查询和计数等技术的综合应用。
图形界面的实现:
考虑到简单、实用、高效等特点,大部分选择了swing来完成实现,文本编辑区就选用了TaxtArea作为主要的部件。
文件操作的实现:
利用了字符文件流FileReader和FileWriter类来实现。
由于Java的特性,可能用任何一个编辑器来编辑,在设计类的时候,考虑到简单明了,就用了三个类,一个主类、一个类设计构造函数实现监听接口作为程序的整体框架,一个类设计构造函数实现查找替换功能。
所有的对象和方法都是在默认属性类中创建和实现的,以及为各组件注册事件监听程序也是在默认属性类中实现的。
主类完成对象的实例化及显示。
这们设计的优点是:
条理清晰,容易理解,容易修改。
这样设计的缺点是:
不利于共享类中的方法。
4.1.1程序模块
该程序分为3个功能模块:
(1)Frame界面程序模块
(2)Menu界面程序模块
(3)敏感词分析程序模块
图4-1三个功能模块流程图
4.2自定义类说明
(1)Mingan1类:
针对Frame程序界面设计,类内包含多种GUI组件的创建和应用。
该类用来调用敏感词分析的Menu界面。
表4-1Mingan1类基本说明
Frame
创建Frame窗口,并进行基本设置
GridLayout
设置为Gridlayout()的布局管理器
Panel
按照布局管理器创建3个Panel,并进行添加和设置
Button
创建Button,并设置事件监听与TestJMenu类相连
Label
在类中用来添加相关的文字说明
(2)TestJMenu类:
针对Menu程序界面设计,类内包含多种GUI组件的创建和应用。
通过对文本域和菜单栏的设计,实现原文本文件的调用和显示,分析敏感词程序的调用,以及敏感词出现次数的显示等功能。
表4-2TestJMenu类基本说明
JTextArea
创建文本域
TestJMenu
创建菜单,并进行基本设置,进行JmenuBar菜单栏的实现
JMenu
创建3个基本功能菜单,分别为:
jmFile、jmFenxi和jmHelp
JMenuItem
分别设置各菜单的弹出项。
jmFile中设置jmiNew、jmiOpen,jmFenxi中设置jmiQue、jmiQu
addActionListener()
分别为jmiOpen和jmiQue弹出项设置事件监听,实现调用功能。
jmiOpen实现文件的导入,jmiQue实现与Fenx类的连接
(3)Fenx类:
针对敏感词分析模块设计,包含Matcher、Pattern、StringBuffer、find()、tirm()等关键字和方法的创建和使用。
主要实现了:
对敏感词的匹配分析、敏感词自动修改及敏感词出现次数分析等功能。
表4-3Fenx类基本说明
FileReader
读入敏感词sentive.txt文件
BufferedReader
将敏感词读入缓冲区
readLine()
从缓冲区读取一行数据
trim()
去掉空格
Pattern
将给定的正则表达式编译到具有给定标志的模式中
find()
尝试查找与该模式匹配的输入序列的下一个子序列
appendReplacement()
替换
appendTail()
实现终端追加和替换步骤
4.3程序模块代码
图4-2功能模块说明图
4.3.1Menu界面程序模块
程序代码:
JTextAreajta=newJTextArea();
ZMenu()
{
super("敏感词汇分析");
setVisible(true);//窗口的设置
setBounds(50,50,500,500);
setBackground(Color.pink);
Winfw=newWin();//关闭窗口监听
addWindowListener(fw);
JMenuBarmb=newJMenuBar();
setJMenuBar(mb);
JMenum1=newJMenu("文件");
JMenuItemm11=newJMenuItem("新建");
JMenuItemm12=newJMenuItem("打开");
JMenuItemm13=newJMenuItem("退出");
m12.addActionListener(this);//打开监听
m13.addActionListener(newMonitor());//退出监听
mb.add(m1);
m1.add(m11);
m1.add(m12);
m1.add(m13);
JMenum2=newJMenu("编辑");
JMenuItemm22=newJMenuItem("查询敏感词");
//m22.addActionListener(this);//打开敏感词文档
JMenuItemm21=newJMenuItem("修改敏感词");
//m21.addActionListener(newmodify());//修改监听
m2.add(m22);
m2.add(m21);
mb.add(m2);
JMenum3=newJMenu("分析");
JMenuItemm31=newJMenuItem("分析敏感词");
m3.add(m31);
m31.addActionListener(newfenxi());
mb.add(m3);
JMenum4=newJMenu("帮助");
mb.add(m4);
this.getContentPane().add(jta);
this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente)//打开
{
JFileChooserjc=newJFileChooser();
jc.showOpenDialog(this);
//jta.append(null);
Stringa="添加所要分析的文本";
try
{
Filefile=jc.getSelectedFile();
FileInputStreamfis=newFileInputStream(file);
byte[]buf=newbyte[10*1024];
intlen=fis.read(buf);
//jta.replaceRange(a,buf,len);
jta.append(newString(buf,0,len));
}catch(Exceptionex)
{
ex.printStackTrace();
}
}
}
4.3.2敏感词分析程序模块
程序代码:
classfenxiimplementsActionListener//分析
{
intindexstring(Strings1,Strings2)
{
intnum=0;
intj=0;//
intz=0;//出现位置
while(j{z=s2.indexOf(s1,j);
if(z==-1)break;
if(z{
num++;
j=z+1;
}
}
returnnum;
}
4.4程序运行环境
1.操作系统:
Windows7
2.开发语言:
JAVA
3.开发工具:
MyEclipse
4.5程序运行与调试
(1)将敏感词汇保存到sensive.txt中
(2)选择含有敏感词的文本文件
(3)分析该文件并显示结果
5总结与展望
通过这次的课程设计,收获真的很大。
首先,通过本次课程设计对书本上的面向对象分析与设计的知识由理论的死记硬背渐渐地应用于实际。
使得理论与实际相结合,不仅加深了对书本上知识的理解更加深了对Java编程的动手与操作的兴趣,为以后的学习和工作打下了坚实的基础。
通过查询资料、询问老师和与同学讨论与合作,初步的认识了Java开发的流程。
对于我们工科的学生特别是学习计算机的学生来讲动手能力、技术和经验是今后走向社会的必备要素。
而在这次的课程设计当中,锻炼了动手能力,熟练了Java编程的技术,积累了开发程序的经验。
在以后的学习中要再接再厉。
在课程设计的过程当中,多次出现了程序运行不了有错误的情况,这些问题主要包括字母大小写问题,括号不对应,语法错误等,通过查询书籍和询问老师最终克服了这方面的问题,顺利完成了本次课程设计。
在课程设计当中,最要感谢每一位曾经给予过我们帮助的老师,是你们那谆谆的教导,使我们少走了很多弯路,顺利的完成了本次课程设计,在这里我们要深深的向您说一声:
“老师,您辛苦了!
”
参考文献
[1].孙全党王吴迪赵枫朝,Java程序设计应用教程,电子工业出版社,2006.2
[2].雷之宇,Java项目开发实践—网络篇,中国铁道出版社,2005.5
[3].赵玉阳,Java从入门到精通,清华大学出版社,2006.8
[4].李茏怡,Java编程实例讲解,高等教育出版社,2005.11
成绩评定
成绩教师签字