实验二——专家系统
一、源代码
import javax.swing.JCheckBox; import javax.swing.JOptionPane; import javax.swing.JPanel;
public cla Index extends javax.swing.JFrame {
jmilk = new javax.swing.JCheckBox(); jclaw = new javax.swing.JCheckBox(); jhoof = new javax.swing.JCheckBox(); jbird = new javax.swing.JCheckBox(); jloogLeg = new javax.swing.JCheckBox(); jflyable = new javax.swing.JCheckBox(); jeatMeat = new javax.swing.JCheckBox(); jfur = new javax.swing.JCheckBox(); jruminate = new javax.swing.JCheckBox(); jswim = new javax.swing.JCheckBox(); jfeather = new javax.swing.JCheckBox(); jdogTooth = new javax.swing.JCheckBox(); jflyest = new javax.swing.JCheckBox(); jlayEgg = new javax.swing.JCheckBox(); jblackWhite = new javax.swing.JCheckBox(); jyellow = new javax.swing.JCheckBox(); jinFlyable = new javax.swing.JCheckBox(); jdarkDot = new javax.swing.JCheckBox(); jhoofAnimal = new javax.swing.JCheckBox(); jpredator = new javax.swing.JCheckBox(); jmammal = new javax.swing.JCheckBox(); jblackStrip = new javax.swing.JCheckBox(); jgaze = new javax.swing.JCheckBox(); jLabel1 = new javax.swing.JLabel(); btnOk = new javax.swing.JButton(); jloogNeck = new javax.swing.JCheckBox(); private void initComponents() { public Index() { } initComponents(); 数组设置//:
checkBoxs[0] = jmilk; checkBoxs[1] = jclaw; checkBoxs[2] = jhoof; checkBoxs[3] = jbird; checkBoxs[4] = jloogLeg; checkBoxs[5] = jflyable; checkBoxs[6] = jeatMeat; checkBoxs[7] = jfur; checkBoxs[8] = jruminate; checkBoxs[9] = jswim; checkBoxs[10] = jfeather; checkBoxs[11] = jdogTooth; checkBoxs[12] = jflyest; checkBoxs[13] = jlayEgg; checkBoxs[14] = jblackWhite; checkBoxs[15] = jyellow; checkBoxs[16] = jinFlyable; checkBoxs[17] = jdarkDot; checkBoxs[18] = jhoofAnimal; checkBoxs[19] = jpredator; checkBoxs[20] = jmammal; checkBoxs[21] = jblackStrip; checkBoxs[22] = jgaze; checkBoxs[23] = jloogNeck; ://数组设置
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
jmilk.setText(\"\\u5976\"); jclaw.setText(\"\\u722a\"); jhoof.setText(\"\\u8e44\"); jbird.setText(\"\\u9e1f\"); jloogLeg.setText(\"\\u957f\\u817f\"); jflyable.setText(\"\\u4f1a\\u98de\"); jeatMeat.setText(\"\\u5403\\u8089\");
{
jfur.setText(\"\\u6bdb\\u53d1\"); jruminate.setText(\"\\u53cd\\u520d\"); jswim.setText(\"\\u6e38\\u6cf3\"); jfeather.setText(\"\\u7fbd\\u6bdb\"); jdogTooth.setText(\"\\u72ac\\u9f7f\"); jflyest.setText(\"\\u5584\\u98de\"); jlayEgg.setText(\"\\u4e0b\\u86cb\"); jblackWhite.setText(\"\\u9ed1\\u767d\\u8272\"); jyellow.setText(\"\\u9ec4\\u8910\\u8272\"); jinFlyable.setText(\"\\u4e0d\\u4f1a\\u98de\"); jdarkDot.setText(\"\\u6697\\u6591\\u70b9\"); jhoofAnimal.setText(\"\\u6709\\u8e44\\u7c7b\\u52a8\\u7269\"); jpredator.setText(\"\\u98df\\u8089\\u52a8\\u7269\"); jmammal.setText(\"\\u54fa\\u4e73\\u52a8\\u7269\"); jblackStrip.setText(\"\\u9ed1\\u8272\\u6761\\u7eb9\"); jgaze.setText(\"\\u773c\\u775b\\u76ef\\u7740\\u524d\\u65b9\"); jLabel1.setFont(new java.awt.Font(\"黑体\", 0, 24)); jLabel1.setText(\"\\u4e13\\u5bb6\\u7cfb\\u7edf\"); btnOk.setText(\"\\u731c\\u731c\\u662f\\u4ec0\\u4e48\\uff1f\"); btnOk.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) } btnOkActionPerformed(evt); }); jloogNeck.setText(\"\\u957f\\u8116\\u5b50\");
javax.swing.GroupLayout layout = new javax.swing.GroupLayout( getContentPane()); getContentPane().setLayout(layout); layout
.setHorizontalGroup(layout
.createParallelGroup(
.addGroup(
layout
.createSequentialGroup() .addGap(35, 35, 35) .addGroup(
layout
.addGroup(
layout
javax.swing.GroupLayout.Alignment.LEADING) .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .createSequentialGroup() .addGroup( layout .createParallelGroup( javax.swing.GroupLayout.Alignment.TRAILING) .addComponent( jmilk) .addComponent( jclaw) .addComponent( jhoof)
.addComponent(
jbird)) .addGap( 44, 44, 44) .addGroup( layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent( jeatMeat) .addComponent( jfur) .addComponent( jflyable) .addComponent( jruminate)))
.addGroup(
layout
.createSequentialGroup() .addComponent( jloogLeg)
.addGap(
32, 32, 32) .addComponent( jswim)))
.addGap(26, 26, 26) .addGroup(
layout
.addComponent(
.addComponent(btnOk) .addGroup(
layout
98,
jLabel1, .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .createSequentialGroup() .addGroup( layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent( jflyest) .addComponent(
jdogTooth) .addComponent( jfeather) .addComponent( jlayEgg) .addComponent( jgaze)) .addGap(
23, 23, 23) .addGroup(
layout .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .addComponent( jloogNeck) .addGroup( layout
.createSequentialGroup() .addGroup(
layout
.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jyellow)
.addComponent(
jblackWhite)
.addComponent(
jinFlyable)
.addComponent(
jdarkDot))
.addGap(
18, 18, 18)
.addGroup(
layout
.createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(
jmammal)
.addComponent(
jpredator)
.addComponent(
jblackStrip)
.addComponent(
jhoofAnimal))))))
.addContainerGap( javax.swing.GroupLayout.DEFAULT_SIZE,
Short.MAX_VALUE))); layout .setVerticalGroup(layout
.createParallelGroup(
.addGroup(
layout
.createSequentialGroup() .addGroup(
layout
.addGroup(
layout
javax.swing.GroupLayout.Alignment.LEADING) .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .createSequentialGroup() .addGap( 81, 81, 81) .addComponent( jLabel1)
.addGap( 65, 65, 65) .addGroup( layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( jfeather, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent( jfur) .addComponent( jmilk) .addComponent( jyellow)) .addGap( 18, 18,
18) .addGroup(
layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( jdogTooth) .addComponent( jeatMeat) .addComponent( jclaw) .addComponent( jblackWhite) .addComponent( jpredator)) .addGap(
24, 24, 24) .addGroup(
layout .createParallelGroup(
javax.swing.GroupLayout.Alignment.TRAILING) .addGroup( layout
.createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jflyable)
.addComponent(
jhoof)) .addGroup( layout
.createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(
jlayEgg)
.addComponent(
jinFlyable)
.addComponent(
jblackStrip))) .addGap( 18,
18, 18) .addGroup(
layout .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( jflyest) .addComponent( jbird) .addComponent( jruminate) .addComponent( jdarkDot) .addComponent( jhoofAnimal)) .addPreferredGap(
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
.addGroup(
layout
.createSequentialGroup() .addContainerGap( 175,
Short.MAX_VALUE) .addComponent(
jmammal, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(
141, 141, 141)))
.addPreferredGap(
.addGroup(
layout
.addGroup(
layout
javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .createParallelGroup( javax.swing.GroupLayout.Alignment.LEADING) .createParallelGroup( javax.swing.GroupLayout.Alignment.BASELINE) .addComponent( jswim) .addComponent( jgaze)
.addComponent(
jloogNeck)) .addComponent(jloogLeg))
.addGap(73, 73,
.addGap(27, 27, 27))); 73).addComponent(btnOk) pack(); }// //GEN-END:initComponents
private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here: if (jfur.isSelected() && count() == 1) { show(\"哺乳动物\"); } else if (jmilk.isSelected() && count() == 1) { show(\"哺乳动物\"); } else if (jfeather.isSelected() && count() == 1) { 主要代码//:
show(\"鸟\"); } else if (jflyable.isSelected() && jlayEgg.isSelected() && count()
show(\"鸟\"); } else if (jeatMeat.isSelected() && count() == 1) { show(\"食肉动物\"); } else if (jdogTooth.isSelected() && jclaw.isSelected() && show(\"食肉动物\"); } else if (jmammal.isSelected() && jhoof.isSelected() && count() show(\"有蹄类动物\"); } else if (jmammal.isSelected() && jruminate.isSelected() && show(\"有蹄类动物\"); } else if (jmammal.isSelected() && jpredator.isSelected() && show(\"金钱豹\"); } else if (jmammal.isSelected() && jpredator.isSelected() && show(\"虎\"); } else if (jhoofAnimal.isSelected() && jloogNeck.isSelected() && show(\"长颈鹿\"); == 2) { jgaze.isSelected() && count() == 3) { == 2) { count() == 2) { jyellow.isSelected() && jdarkDot.isSelected() && count() == 4) { jyellow.isSelected() && jblackStrip.isSelected() && count() == 4) { jloogLeg.isSelected() && jdarkDot.isSelected() && count() == 4) {
} else if (jhoofAnimal.isSelected() && jblackStrip.isSelected() show(\"斑马\"); } else if (jbird.isSelected() && jinFlyable.isSelected() && && count() == 2) { jloogNeck.isSelected() && jloogLeg.isSelected() && jblackWhite.isSelected() && count() == 5) {
//GEN-BEGIN:variables
public static void main(String args[]) {
} java.awt.EventQueue.invokeLater(new Runnable() {
public void run() { } new Index().setVisible(true); public void show(String meage) { }
public int count() {
} int sum = 0; for (int i = 0; i
} return sum; if (checkBoxs[i].isSelected()) { } sum ++; JOptionPane.showMeageDialog(this, meage); }
show(\"鸵鸟\"); } else if (jbird.isSelected() && jinFlyable.isSelected() && show(\"企鹅\"); } else if (jbird.isSelected() && jflyest.isSelected() && count() show(\"信天翁\"); } else { show(\"我不知道是什么。。。\"); } jblackWhite.isSelected() && jswim.isSelected() && count() == 4) { == 2) { ://主要代码
});
} // Variables declaration - do not modify private javax.swing.JButton btnOk; private javax.swing.JLabel jLabel1; private javax.swing.JCheckBox jbird; private javax.swing.JCheckBox jblackStrip; private javax.swing.JCheckBox jblackWhite; private javax.swing.JCheckBox jclaw; private javax.swing.JCheckBox jdarkDot; private javax.swing.JCheckBox jdogTooth; private javax.swing.JCheckBox jeatMeat; private javax.swing.JCheckBox jfeather; private javax.swing.JCheckBox jflyable; private javax.swing.JCheckBox jflyest; private javax.swing.JCheckBox jfur; private javax.swing.JCheckBox jgaze; private javax.swing.JCheckBox jhoof; private javax.swing.JCheckBox jhoofAnimal; private javax.swing.JCheckBox jinFlyable; private javax.swing.JCheckBox jlayEgg; private javax.swing.JCheckBox jloogLeg; private javax.swing.JCheckBox jloogNeck; private javax.swing.JCheckBox jmammal; private javax.swing.JCheckBox jmilk; private javax.swing.JCheckBox jpredator; private javax.swing.JCheckBox jruminate; private javax.swing.JCheckBox jswim; private javax.swing.JCheckBox jyellow; // End of variables declaration//GEN-END:variables
public JCheckBox[] checkBoxs = new JCheckBox[24];
二、结果截图
示例1:
示例2:
三、推理树