⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 chanshengshi.java

📁 本代码是人工智能中产生式的一个例子
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
/*
 * Created on 2005-4-21
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Choice;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.Panel;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

/**
 * @author 汪永威
 *
 * TODO To change the template for this generated type comment go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
public class chanshengshi extends Applet implements ItemListener,ActionListener
{   boolean  flag=true;
	Panel p1=new Panel();
	Panel p1_North=new Panel();
	Panel p1_Center=new Panel();
	Panel p1_Center_left=new Panel();
	Panel p1_Center_right=new Panel();
	
	Panel p2=new Panel();
	Panel p2_North=new Panel();
	Panel p2_Center=new Panel();
	Panel p2_Center_North=new Panel();
	
	Label prompt1_North=new Label("前向推理");
	Button btn1=new Button("重来");
	Button btn2=new Button("重来");
	Label prompt1_left=new Label("种群属性");
	Label prompt1_right=new Label("个体属性");
	Label prompt2_North=new Label("后向推理");
	
	Choice 种群属性=new Choice();	
	Choice 个体属性=new Choice();	
	Choice 动物名称1=new Choice();	
	Choice 动物名称2=new Choice();	
	Choice 动物名称3=new Choice();	
	Choice 动物名称4=new Choice();	
	Choice 动物名称5=new Choice();	
	
	TextArea textArea1_left=new TextArea();
	TextArea textArea1_right=new TextArea();
	TextArea textArea2=new TextArea();
	
	static int T1=0;		//p1中,数组第一个下标号,即种群号
	static int T2=0;		//p1中,数组第二个下标号,即个体号
	
	static String 种群[]=new String[5];
	static String 种群_个体[][]=new String[5][7];
	
	static int S1;			//p2中,数组第一个下标号,即种群号	
	static int S2;			//p2中,数组第二个下标号,即个体号
	
	static String 总属性[][]=new String[5][7];
	static String 属性_个体[][]=new String[5][7];
	static String 属性_种群[]=new String[5];
	
	public void init()
	{
		paint();
	}
	public void paint()
	{    
//		容器布局,组件添加	
		setLayout(new GridLayout(2,1));
		
		add(p1);
		add(p2);
		p1.setBackground(new Color(250,150,250));
		p2.setBackground(new Color(250,150,250));
		
		p1.setLayout(new BorderLayout());
		p1.add("North",p1_North);
		p1.add("Center",p1_Center);
		
		p1_North.add(prompt1_North);
		p1_North.add(btn1);
		btn1.setBackground(new Color(200,150,250));
		
		p1_Center.setLayout(new GridLayout(1,2));
		p1_Center.add(p1_Center_left);
		p1_Center.add(p1_Center_right);
		if(flag)
		{
			p1_Center.add(p1_Center_left);
		}
		else if(!flag)
		{
			p1_Center.add(p1_Center_right);
		}
		
		p1_Center_left.setLayout(new BorderLayout());
		p1_Center_left.add("North",prompt1_left);
		p1_Center_left.add("North",种群属性);
		种群属性.setBackground(new Color(200,100,150));
		p1_Center_left.add("Center",textArea1_left);
		textArea1_left.setBackground(new Color(100,200,250));
		
		p1_Center_right.setLayout(new BorderLayout());
		p1_Center_right.add("North",prompt1_right);
		p1_Center_right.add("North",个体属性);
		个体属性.setBackground(new Color(200,100,150));
		p1_Center_right.add("Center",textArea1_right);
		textArea1_right.setBackground(new Color(100,200,250));
		
		p2.setLayout(new BorderLayout());
		p2.add("North",p2_North);
		p2.add("Center",p2_Center);
		
		p2_North.add(prompt2_North);
		p2_North.add(btn2);
		btn2.setBackground(new Color(200,150,250));
		
		p2_Center.setLayout(new BorderLayout());
		p2_Center.add("North",p2_Center_North);
		p2_Center.add("Center",textArea2);
		
		textArea2.setBackground(new Color(100,200,250));
		
		p2_Center_North.setLayout(new GridLayout(1,5));		
		p2_Center_North.add(动物名称1);
		p2_Center_North.add(动物名称2);
		p2_Center_North.add(动物名称3);
		p2_Center_North.add(动物名称4);
		p2_Center_North.add(动物名称5);
						
		
	//定义数据库,五个数组	
		
		种群[0]=new String("哺乳动物");	
		种群[1]=new String("鸟类");
		种群[2]=new String("两栖类");
		种群[3]=new String("鱼类");
		种群[4]=new String("爬行类");
		
		种群_个体[0][0]=new String("兔子");
		种群_个体[0][1]=new String("猫");
		种群_个体[0][2]=new String("犀牛");
		种群_个体[0][3]=new String("熊猫");
		种群_个体[0][4]=new String("金钱豹");
		种群_个体[0][5]=new String("老虎");
		种群_个体[0][6]=new String("长颈鹿");
		
		种群_个体[1][0]=new String("鸭子");
		种群_个体[1][1]=new String("企鹅");
		种群_个体[1][2]=new String("鹅");
		种群_个体[1][3]=new String("鸦");
		种群_个体[1][4]=new String("鹰");
		种群_个体[1][5]=new String("鹦鹉");
		
		种群_个体[2][0]=new String("青蛙");
		种群_个体[2][1]=new String("蝾螈");
		种群_个体[2][2]=new String("蟾虶");
		
		种群_个体[3][0]=new String("比目鱼");
		种群_个体[3][1]=new String("鲫鱼");
		
		种群_个体[4][0]=new String("蛇");
		种群_个体[4][1]=new String("壁虎");
		种群_个体[4][2]=new String("乌龟");	
		种群_个体[4][3]=new String("玳瑁");
		种群_个体[4][4]=new String("鳄鱼");
		
		总属性[0][0]=new String("有毛发,有奶;善跳跃,唇裂");
		总属性[0][1]=new String("有毛发,有奶;善捕鼠,脚有肉垫");
		总属性[0][2]=new String("有毛发,有奶;鼻子上有角,褐色,皮糙肉厚,有蹄");
		总属性[0][3]=new String("有毛发,有奶;黑眼圈,四肢短小");
		总属性[0][4]=new String("有毛发,有奶;褐色,吃肉,有斑点");
		总属性[0][5]=new String("有毛发,有奶;褐色,吃肉,有黑条纹");
		总属性[0][6]=new String("有毛发,有奶;有蹄,长脖子,黑条纹");
		
		总属性[1][0]=new String("有羽毛,卵生;善游泳,嘴扁平,腿短");
		总属性[1][1]=new String("有羽毛,卵生;不会飞,善游泳,黑色");
		总属性[1][2]=new String("有羽毛,卵生;善潜水游泳,白色或黑色,颈长,嘴大,腿长");
		总属性[1][3]=new String("有羽毛,卵生;黑色,嘴大");
		总属性[1][4]=new String("有羽毛,卵生;有爪,吃肉,上嘴鹰钩");
		总属性[1][5]=new String("有羽毛,卵生;上嘴鹰钩,能模仿人说话");
		
		总属性[2][0]=new String("卵生,生活在水中/陆地,有皮肤/肺呼吸;吃昆虫,皮肤光滑,会变色");
		总属性[2][1]=new String("卵生,生活在水中/陆地,有皮肤/肺呼吸;吃昆虫,皮肤粗糙,四肢扁,背部黑色");
		总属性[2][2]=new String("卵生,生活在水中/陆地,有皮肤/肺呼吸;吃昆虫,皮肤粗糙");
		
		总属性[3][0]=new String("用鳃呼吸,身体有稽;生活在海洋,身体扁平,两眼在头部两侧");
		总属性[3][1]=new String("用鳃呼吸,身体有稽;生活在淡水,身体扁平,头高尾部窄");
		
		总属性[4][0]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲;身体圆而细长,吃小动物");
		总属性[4][1]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲;有四肢,尾巴细长易断,吃昆虫");
		总属性[4][2]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲;身体圆而扁,有坚硬的壳");
		总属性[4][3]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲;壳为黄褐色,皮肤光滑,有黑斑");
		总属性[4][4]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲;有四肢,善游泳,皮硬黑褐色");
				
		属性_个体[0][0]=new String("善跳跃,唇裂");
		属性_个体[0][1]=new String("善捕鼠,脚有肉垫");
		属性_个体[0][2]=new String("鼻子上有角,褐色,皮糙肉厚,有蹄");
		属性_个体[0][3]=new String("黑眼圈,四肢短小");
		属性_个体[0][4]=new String("褐色,吃肉,有斑点");
		属性_个体[0][5]=new String("褐色,吃肉,有黑条纹");
		属性_个体[0][6]=new String("有蹄,长脖子,黑条纹");
		
		属性_个体[1][0]=new String("善游泳,嘴扁平,腿短");
		属性_个体[1][1]=new String("不会飞,善游泳,黑色");
		属性_个体[1][2]=new String("善潜水游泳,白色或黑色,颈长,嘴大,腿长");
		属性_个体[1][3]=new String("黑色,嘴大");
		属性_个体[1][4]=new String("有爪,吃肉,上嘴鹰钩");
		属性_个体[1][5]=new String("上嘴鹰钩,能模仿人说话");
		
		属性_个体[2][0]=new String("吃昆虫,皮肤光滑,会变色");
		属性_个体[2][1]=new String("吃昆虫,皮肤粗糙,四肢扁,背部黑色");
		属性_个体[2][2]=new String("吃昆虫,皮肤粗糙");
		
		属性_个体[3][0]=new String("生活在海洋,身体扁平,两眼在头部两侧");
		属性_个体[3][1]=new String("生活在淡水,身体扁平,头高尾部窄");
		
		属性_个体[4][0]=new String("身体圆而细长,吃小动物");
		属性_个体[4][1]=new String("有四肢,尾巴细长易断,吃昆虫");
		属性_个体[4][2]=new String("身体圆而扁,有坚硬的壳");
		属性_个体[4][3]=new String("壳为黄褐色,皮肤光滑,有黑斑");
		属性_个体[4][4]=new String("有四肢,善游泳,皮硬黑褐色");
		
		属性_种群[0]=new String("有毛发,有奶");
		属性_种群[1]=new String("有羽毛,卵生");
		属性_种群[2]=new String("卵生,生活在水中/陆地,有皮肤/肺呼吸");
		属性_种群[3]=new String("用鳃呼吸,身体有稽");
		属性_种群[4]=new String("用生活在陆地,胎生,用肺呼吸,身体有鳞或甲");
		
		
	//初始化下拉菜单	
		
		种群属性.add("    请选择一个种群属性:");
		种群属性.add("1. 有奶");
		种群属性.add("2. 有毛发");
		种群属性.add("3. 有毛发,有奶");
		种群属性.add("4. 有羽毛,卵生");
		种群属性.add("5. 卵生,生活在水中/陆地,有皮肤/肺呼吸");
		种群属性.add("6. 用鳃呼吸,身体有稽");
		种群属性.add("7. 生活在陆地,胎生,用肺呼吸,身体有鳞或甲");
		
		个体属性.add("   请选择一个个体属性:");
		个体属性.add("1. 善跳跃,唇裂");
		个体属性.add("2. 善捕鼠,脚有肉垫");
		个体属性.add("3. 鼻子上有角,褐色,皮糙肉厚,有蹄");
		个体属性.add("4. 黑眼圈,四肢短小");
		个体属性.add("5. 褐色,吃肉,有斑点");
		个体属性.add("6. 褐色,吃肉,有黑条纹");
		个体属性.add("7. 有蹄,长脖子,黑条纹");
		个体属性.add("8. 善游泳,嘴扁平,腿短");
		个体属性.add("9. 不会飞,善游泳,黑色");
		个体属性.add("10.善潜水游泳,白色或黑色,颈长,嘴大,腿长");
		个体属性.add("11.黑色,嘴大");
		个体属性.add("12.有爪,吃肉,上嘴鹰钩");
		个体属性.add("13.上嘴鹰钩,能模仿人说话");
		个体属性.add("14.皮肤光滑,吃昆虫,会变色");
		个体属性.add("15.皮肤粗糙,四肢扁,背部黑色");
		个体属性.add("16.吃昆虫,皮肤粗糙");
		个体属性.add("17.生活在海洋,身体扁平,两眼在头部两侧");
		个体属性.add("18.生活在淡水,身体扁平,头高尾部窄");
		个体属性.add("19.身体圆而细长,吃小动物");
		个体属性.add("20.有四肢,尾巴细长易断,吃昆虫");
		个体属性.add("21.身体圆而扁,有坚硬的壳");
		个体属性.add("22.壳为黄褐色,皮肤光滑,有黑斑");
		个体属性.add("23.有四肢,善游泳,皮硬黑褐色");
		
		动物名称1.add("  哺乳动物:");
		动物名称1.add("1.兔子");
		动物名称1.add("2.猫");
		动物名称1.add("3.犀牛");
		动物名称1.add("4.熊猫");
		动物名称1.add("5.金钱豹");
		动物名称1.add("6.老虎");
		动物名称1.add("7.长颈鹿");
		
		动物名称2.add("  鸟类:");
		动物名称2.add("1.鸭子");
		动物名称2.add("2.企鹅");
		动物名称2.add("3.鹅");
		动物名称2.add("4.鸦");
		动物名称2.add("5.鹰");
		动物名称2.add("6.鹦鹉");
		
		动物名称3.add("  两栖类:");
		动物名称3.add("1.青蛙");
		动物名称3.add("2.蝾螈");
		动物名称3.add("3.蟾虶");
		
		动物名称4.add("    鱼类:");
		动物名称4.add("1. 比目鱼");
		动物名称4.add("2.  鲫鱼");
		
		动物名称5.add("  爬行类:");
		动物名称5.add("1.蛇");
		动物名称5.add("2.壁虎");
		动物名称5.add("3.乌龟");
		动物名称5.add("4.玳瑁");
		动物名称5.add("5.鳄鱼");
		
	
		
		
	//添加监听器
		
		种群属性.addItemListener(this);
		个体属性.addItemListener(this);	
		动物名称1.addItemListener(this);
		动物名称2.addItemListener(this);
		动物名称3.addItemListener(this);
		动物名称4.addItemListener(this);
		动物名称5.addItemListener(this);
		btn1.addActionListener(this); 
		btn2.addActionListener(this);
		
		setSize(500,500);
		show();
	}
	
	public void actionPerformed(ActionEvent e) 
	{
		if(e.getSource()==btn1)
		{   
			textArea1_left.setText("  ");
			textArea1_right.setText(" ");
			repaint();
		}
		else if(e.getSource()==btn2)
		{   
			textArea2.setText("  ");
			textArea2.setText("  ");
			repaint();
		}
	}
	public void itemStateChanged(ItemEvent e) 
	{   
		
		if(e.getSource()==种群属性)
		{
			if(种群属性.getSelectedIndex()==1)	
			{
				T1=1;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);				
			}
			
			if(种群属性.getSelectedIndex()==2)	
			{
				T1=1;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);			
			}
			
			if(种群属性.getSelectedIndex()==3)		
			{
				T1=1;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);				
			}
			
			if(种群属性.getSelectedIndex()==4)			
			{
				T1=2;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);				
			}
			
			if(种群属性.getSelectedIndex()==5)
			{
				T1=3;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);				
			}
			
			if(种群属性.getSelectedIndex()==6)
			{
				T1=4;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);				
			}
			
			if(种群属性.getSelectedIndex()==7)
			{
				T1=5;
				textArea1_left.setText(属性_种群[T1-1]+" ->  "+种群[T1-1]);							
			}
			//flag=false;
			
		}
		
		if(e.getSource()==个体属性)
		{
			if(T1==0)
			{
				textArea1_right.setText("注意:您还没有选择种群属性。");
			}
			
			if(T1==1)
			{
				
				if(个体属性.getSelectedIndex()==1)
				{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -