这学期学的人工智能,韩老师要求我们要做一个专家系统,虽然试验用的是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");
}
}
分享到:
相关推荐
人工智能 专家系统 动物识别系统 java代码源码
专家系统-动物识别-java
人工智能中产生式系统中动物识别系统,用java程序编写图形界面
人工智能动物识别系统实验,内含实验报告以及实验代码(java)
java语言编的简单动物识别系统 人工智能作业
人工智能课的期末大作业,用java写的动物识别系统,有两个版本,一个是有图形界面的,另一种是在控制台操作的。采用纯粹的面向对象的思想,易于看懂,希望对大家有帮助。
动物识别专家系统,可以添加知识库并查找,有界面,包含源代码和jar文件
人工智能课的期末大作业,详细的界面设计可以去我的博客查看,虽然洁面比较简陋,但是功能都是比较完备的。
Java编写简单系统 Java编写简单系统 Java编写简单系统 Java编写简单系统 Java编写简单系统 Java编写简单系统 Java编写简单系统
人脸识别 | Java 实现 AI人工智能技术 - 人脸识别 -拉入及用 spring boot项目 前端+后端
找到的很好的程序,java的,关于动物识别系统,人工智能的老问题
JAVA动物识别系统 该动物有毛发","该动物有奶","该动物有羽毛","该动物会飞","该动物会吃肉","该动物有犬齿","有爪","眼盯前方","该动物是哺乳动物","有蹄","是嚼反刍动物","该动物是食肉动物","是黄褐色","身上有...
JAVA开发的人工智能蔬菜识别系统;适合AI课程设计用。
人工智能选修课期末做的实验,按照老师给的实验要求用java实现;自认为界面还不错~对于一些条件作了判断是否可以共存等等的细节问题
本项目是用eclipse编写的,在别人的基础上,加入了自己的东西,还修改了别人不合理的地方,是做人工智能——产生式系统不错的一个实验。
java实现的简单动物识别系统,用了产生式规则进行推理,没有用到数据库,有简单界面
这是一个简单的动物识别产生式系统教学实例,通过本实验让学生理解并体会知识库与控制系统相互独立的智能产生式系统与一般程序的区别,为以后设计并实现复杂的专家系统奠定基础。 二、实验内容 设计并实现具有15条...
1、利用产生式系统的结构设计出动物识别系统,从而理解知识的产生式表示法; 2、实现基于产生式表示法的动物识别系统,从而掌握产生式系统的工作原理; 3、实现浏览器/服务器架构,并且让动物识别系统在服务器上正常...
人工智能这本书的最后给出了一个动物识别系统的例子,是C版的,偶改为用java,希望对学 java有点帮助.