这学期学的人工智能,韩老师要求我们要做一个专家系统,虽然试验用的是prolog语言,但是本人不懂啊!只是个java狂爱者,于是用java搞了以下这个动物识别专家系统
import java.awt.*; //包含用于创建用户界面和绘制图形图像的所有类
import java.awt.event.*; //提供处理由 AWT 组件所激发的各类事件的接口和类
public class MainFrame extends Frame implements ActionListener {
/**
* @param args
*/
static MainFrame frm=new MainFrame();
static Checkbox ckb1=new Checkbox("有毛发");
static Checkbox ckb2=new Checkbox("有奶");
static Checkbox ckb3=new Checkbox("有羽毛");
static Checkbox ckb4=new Checkbox("会飞生蛋");
static Checkbox ckb5=new Checkbox("吃肉");
static Checkbox ckb6=new Checkbox("有犬齿,有爪眼睛,紧盯着前方");
static Checkbox ckb7=new Checkbox("反刍食物");
static Checkbox ckb8=new Checkbox("黄褐色有黑的斑点");
static Checkbox ckb9=new Checkbox("黄褐色有黑色条纹");
static Checkbox ckb10=new Checkbox("有长腿长脖子,黄褐色暗斑点");
static Checkbox ckb11=new Checkbox("白色有黑条纹");
static Checkbox ckb12=new Checkbox("不会飞,长腿长脖子,黑白色");
static Checkbox ckb13=new Checkbox("不会飞,黑白色,会游泳");
static Checkbox ckb14=new Checkbox("善飞");
static Checkbox ckb15=new Checkbox("有蹄");
static Label lab=new Label("显示动物名");
static Button but1=new Button("确定");
static Button but2=new Button("重设");
public static void main(String[] args) {
// TODO Auto-generated method stub
frm.setSize(400,300);
frm.setTitle("动物识别系统");
frm.setLayout(new FlowLayout(FlowLayout.LEFT));
lab.setBackground(Color.green);
/* ckb1.addItemListener(frm);
ckb2.addItemListener(frm);
ckb3.addItemListener(frm);
ckb4.addItemListener(frm);
ckb5.addItemListener(frm);
ckb8.addItemListener(frm);
ckb9.addItemListener(frm);
ckb11.addItemListener(frm);
ckb10.addItemListener(frm);
ckb14.addItemListener(frm);
ckb7.addItemListener(frm);
ckb12.addItemListener(frm);
ckb13.addItemListener(frm);
ckb6.addItemListener(frm);
ckb15.addItemListener(frm);*/
lab.setAlignment(Label.CENTER);
but1.addActionListener(frm);
but2.addActionListener(frm);
frm.add(lab);
frm.add(ckb1);
frm.add(ckb2);
frm.add(ckb3);
frm.add(ckb4);
frm.add(ckb6);
frm.add(ckb8);
frm.add(ckb9);
frm.add(ckb11);
frm.add(ckb12);
frm.add(ckb14);
frm.add(ckb5);
frm.add(ckb7);
frm.add(ckb10);
frm.add(ckb13);
frm.add(ckb15);
frm.add(but1);
frm.add(but2);
frm.setVisible(true);
frm.addWindowListener(new WindowAdapter(){public void windowClosing(WindowEvent e){System.exit(0);}});
}
public void itemStateChanged( ItemEvent e) //这个是推理机
{
if((ckb1.getState()==true||ckb2.getState()==true)&&(ckb6.getState()==true||ckb5.getState()==true)&&(ckb8.getState()==true))
lab.setText(" 金钱豹 ") ;
else if((ckb1.getState()==true||ckb2.getState()==true)&&(ckb6.getState()==true||ckb5.getState()==true)&&(ckb9.getState()==true))
lab.setText("老虎");
else if((ckb1.getState()==true||ckb2.getState()==true)&&(ckb7.getState()==true||ckb15.getState()==true)&&(ckb10.getState()==true))
lab.setText("长颈鹿");
else if((ckb1.getState()==true||ckb2.getState()==true)&&(ckb7.getState()==true||ckb15.getState()==true)&&(ckb10.getState()==true))
lab.setText("斑马");
else if((ckb3.getState()==true||ckb4.getState()==true)&&(ckb13.getState()==true))
lab.setText("企鹅");
else if((ckb3.getState()==true||ckb4.getState()==true)&&(ckb14.getState()==true))
lab.setText("信天翁");
else lab.setText("sorry");
}
public void actionPerformed(ActionEvent e) //这部分是结果的显示
{
Button but=(Button)e.getSource();
if((but==but1)&&(ckb1.getState()==true||ckb2.getState()==true)&&(ckb6.getState()==true||ckb5.getState()==true)&&(ckb8.getState()==true))
{
lab.setText(" 金钱豹 ") ;
}
else if((but==but1)&&(ckb1.getState()==true||ckb2.getState()==true)&&(ckb6.getState()==true||ckb5.getState()==true)&&(ckb9.getState()==true))
lab.setText("老虎");
else if((but==but1)&&(ckb1.getState()==true||ckb2.getState()==true)&&(ckb7.getState()==true||ckb15.getState()==true)&&(ckb10.getState()==true))
lab.setText("长颈鹿");
else if((but==but1)&&(ckb1.getState()==true||ckb2.getState()==true)&&(ckb7.getState()==true||ckb15.getState()==true)&&(ckb10.getState()==true))
lab.setText("斑马");
else if((but==but1)&&(ckb3.getState()==true||ckb4.getState()==true)&&(ckb13.getState()==true))
lab.setText("企鹅");
else if((but==but1)&&(ckb3.getState()==true||ckb4.getState()==true)&&(ckb14.getState()==true))
lab.setText("信天翁");
else if(but==but2)
{
/*设置初始的状态为未选定*/
ckb1.setState(false);
ckb2.setState(false);
ckb3.setState(false);
ckb4.setState(false);
ckb5.setState(false);
ckb6.setState(false);
ckb7.setState(false);
ckb8.setState(false);
ckb9.setState(false);
ckb10.setState(false);
ckb11.setState(false);
ckb12.setState(false);
ckb13.setState(false);
ckb14.setState(false);
ckb15.setState(false);
lab.setText("显示动物名");
}
else lab.setText("sorry");
}
}
分享到:
相关推荐
"基于Web的人工智能专家系统简易动物识别系统"是一个利用Web技术构建的人工智能应用,它的核心功能是实现对动物的自动识别。这个系统将人工智能的算法与Web开发技术相结合,旨在为用户提供一个便捷的、基于网络的...
总的来说,"lhp.rar_专家系统_动物识别"项目展示了将人工智能技术应用于实际问题的实例,尤其是专家系统和机器学习在动物识别中的应用。这样的项目需要对计算机视觉、自然语言处理(如果涉及动物声音识别)以及机器...
这是一个简单的动物识别产生式系统教学实例,通过本实验让学生理解并体会知识库与控制系统相互独立的智能产生式系统与一般程序的区别,为以后设计并实现复杂的专家系统奠定基础。 二、实验内容 设计并实现具有15条...
标题提及的"用Python实现一个动物识别专家系统"是一个基于人工智能的项目,它利用了产生式系统的思想。产生式系统是一种模拟人类知识推理的人工智能模型,由一系列规则构成,每个规则包含一个前提条件和一个结论。在...
标题中的“一个动物识别专家系统在JAVA语言下的实现”指的是使用JAVA编程语言开发的一个智能系统,专门用于识别不同种类的动物。这个系统可能利用了人工智能(AI)技术,特别是机器学习或模式识别算法,以便从图像、...
专家系统是一种人工智能应用程序,它利用领域专家的知识和经验来解决复杂的问题。这个“一个简单的专家系统程序”显然是一个用Java编程语言实现的示例项目,旨在帮助开发者了解专家系统的基本概念、工作原理以及如何...
### 基于产生式的动物识别专家系统 #### 实验背景与目标 本实验报告针对的是基于产生式的动物识别专家系统的设计与实现。该系统旨在通过一系列预设的规则来进行动物种类的识别。通过该实验,学生需要理解并掌握...
【基于Web的专家识别系统】是一种利用人工智能技术在互联网平台上实现专家身份验证和识别的解决方案。这个系统的主要目的是为了提供一个高效、准确的途径,帮助用户查找和验证特定领域的专家。在信息技术领域,构建...
智能故障诊断与专家系统是信息技术领域的一个重要分支,它结合了人工智能、数据分析和工程专业知识,用于识别和解决复杂的设备或系统故障。在这个领域,我们主要关注两个关键概念:智能故障诊断和专家系统。 智能...
JESS,全称为Java Expert System Shell,是一个用Java语言编写的规则引擎,用于构建和运行专家系统。专家系统是一种人工智能应用,它模仿人类专家的决策过程,以解决复杂问题。JESS的核心功能是处理和执行一系列的...
在IT行业中,人工智能(Artificial Intelligence,简称AI)是一门高度综合且前沿的学科,它涵盖了机器学习、深度学习、自然语言处理、计算机视觉等多个领域。在这个“人工智能简单程序典型程序”的主题中,我们可以...
【专家系统】是一种人工智能应用,它模仿人类专家的决策过程,为特定领域的复杂问题提供解决方案。在本案例中,“简单淡水虾疾病防止专家系统”是一个专门设计用来帮助预防和管理淡水虾养殖过程中可能出现的疾病问题...
综合以上信息,我们可以推测这个项目是一个用Java编写的专家系统,它利用神经网络和深度学习的方法来预测物体的动态行为。项目可能包括了数据预处理、模型训练、预测功能的实现,以及可能的可视化界面或控制台交互。...
它可以构建知识库系统,处理复杂的逻辑关系,比如在专家系统中模拟人类专家的决策过程。此外,Prolog还能用于自然语言理解,解析和生成人类语言,以及机器学习中的数据挖掘和模式识别。 **5. 学习资源与实践** ...
《医院专家会诊管理系统》是一款基于人工智能技术设计的高效信息管理系统,旨在为医疗机构提供便捷的专家会诊服务。系统充分利用现代信息技术,优化医疗资源分配,提高医疗服务效率,从而更好地满足患者的需求。 ...
通过阅读《Java并发编程实践》,开发者可以系统地学习并掌握Java并发编程的知识,从而编写出高效、安全的并发程序。这本书对于任何希望提升并发编程能力的Java开发者来说,都是一本不可或缺的参考书。
《 Drools 搭配 JDBC & MyBatis 在 MySQL 上构建人工智能专家系统》 Drools 是一个强大的规则引擎,广泛应用于业务逻辑处理和决策管理。它为开发人员提供了一种声明式的方式来定义规则,使得复杂的逻辑判断可以更加...
- 智能应用软件通过人工智能技术,如专家系统、模式识别、机器翻译等,提升信息处理效率和用户体验。 - 专家系统:模仿专家知识和推理过程,解决特定领域问题。 - 模式识别:涉及语音识别、图像识别,如OCR、手写...
高校移动智能问答系统旨在为学生和教师提供随时随地的学术交流平台,利用现代移动技术与人工智能(AI)相结合,提升学习和教学体验。系统应具备便捷的用户界面、快速的问题解答能力以及智能推荐功能。 2. **系统...
** 专家系统和人工智能 ** Drools 可视为一种轻量级的专家系统,因为它允许非程序员以接近人类思维的方式编写规则。通过规则的组合和推理,Drools能够在某些方面模仿人类专家的决策过程。在人工智能领域,规则引擎...