}
};
public Janimal()
{
this.setTitle("动物识别系统");
this.setSize(600, 400);
this.setLocation((width - 600) / 2, (height - 400) / 2);
text.setEditable(false);
list.setVisibleRowCount(6);
Container contentPane=getContentPane();
contentPane.setLayout(new BoxLayout(contentPane,BoxLayout.X_AXIS));
contentPane.add(new JScrollPane(list));
contentPane.add(text);
contentPane.add(button);
contentPane.add(result);
list.addListSelectionListener(lister);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
button.addActionListener(this);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
String actionCommand=e.getActionCommand()
;
if(e.getSource() instanceof JButton)
if("开始识别".equalsIgnoreCase(actionCommand))
{
resultString=thinker(cause);
if(resultString!=null)
result.append(resultString);
else
result.append("Sorry!,请输入更有效的信息^_^");
}
}
public String thinker(String[] cause)
//推理机
{
String[] resultList = { "该动物是哺乳动物", "该动物是哺乳动物", "该动物是鸟", "该动
物是鸟",
"该动物是食肉动物", "该动物是食肉动物", "该动物是有蹄类动物", "该动物
是有蹄类动物", "该动物是金钱豹",
"该动物是老虎", "该动物是长颈鹿", "该动物是斑马", "该动物是鸵鸟", "该动
物是企鹅", "该动物是信天翁" };
String[][] conditList = { { "该动物有毛发" }, { "该动物有奶" }, { "该动物有羽毛" },
{ "该动物会飞" }, { "该动物会吃肉" }, { "该动物有犬齿" }, { "该动物是哺乳动
物", "有蹄" },
" },
" } };
{ "该动物是哺乳动物", "是嚼反刍动物" },
{ "该动物是哺乳动物", "该动物是食肉动物", "是黄褐色", "身上有暗斑点" },
{ "该动物是哺乳动物", "该动物是食肉动物", "是黄褐色", "身上有黑色条纹
{ "该动物是有蹄类动物", "有长脖子", "有长腿", "身上有暗斑点" },
{ "该动物是有蹄类动物", "身上有黑色条纹" },
{ "该动物是鸟", "有长脖子", "有长腿", "不会飞", "有黑白二色" },
{ "该动物是鸟", "会游泳", "不会飞", "有黑白二色" }, { "该动物是鸟", "善飞
boolean[][] flag = { { false }, { false }, { false }, { false },
{ false }, { false }, { false, false }, { false, false },
{ false, false, false, false }, { false, false, false, false },
{ false, false, false, false }, { false, false },
{ false, false, false, false, false },
{ false, false, false, false }, { false, false } };
boolean checkResult = true;
//String[] cause = { "该动物有毛发", "有蹄", "有长脖子", "有长腿", "身上有暗斑点" };
ArrayList
result = new ArrayList();
String[] conditTemp = new String[6];
int temp, count = 0;
for(int i=0;icheckResult=true;
for(int i=0;i
if((temp+1)==count)
{
result.add(resultList[row]);
//取出规则的结论部分
for(int i=0;i