第一篇:人工智能实验一
人工智能技术基础
PROLOG语言编程练习
实验报告
一、实验目的:
加强对逻辑程序运行机能的理解,更好地掌握PROLOG语言的特点、熟悉其编程环境,同时为后面的人工智能程序设计做好准备。
二、实验要求:
(1)程序自选,但必须是描述某种逻辑关系的小程序。(2)跟踪程序的运行过程,理解逻辑程序的特点。
(3)对原程序可作适当修改,以便熟悉程序的编辑、编译和调试过程。
三、实验内容:
在Turbo PROLOG或Visual Prolog集成环境下调试运行简单的PROLOG程序,如描述亲属关系的PROLOG程序或其他小型演绎数据库程序等。
四、实验结果:
(1)验证题1源程序 domains d=integer predicates not_(D,D)and_(D,D,D)or_(D,D,D)xor(D,D,D)clauses not_(1,0).not_(0,1).and_(0,0,0).and_(0,1,0).and_(1,0,0).and_(1,1,1).or_(0,0,0).or_(0,1,1).or_(1,0,1).or_(1,1,1).xor(Input1,Input2,Output):-
not_(Input1,N1),/*(1,0)*/
not_(Input2,N2),/*(0,1)*/
and_(Input1,N2,N3),and_(Input2,N1,N4),or_(N3,N4,Output).(2)验证题2源程序 predicates student(integer,string,real)grade goal grade.clauses student(1,“zhang”,90.2).student(2,“li”,95.5).student(3,“wang”,96.4).grade:-write(“Please input name:”),readln(Name),student(_,Name,Score),nl,write(Name,“grade is”,Score).grade:-write(“Sorry,the student cannot find!”).(3)验证题3源程序 domains n,f=integer predicates factorial(n,f)goal readint(I), factorial(I,F), write(I,“!=”,F).clauses factorial(1,1).factorial(N,Res):-
N>0,N1=N-1,factorial(N1,FacN1),Res=N*FacN1.(4)验证题4源程序 domains s=symbol predicates p(s)p1(s)p2(s)p3(s)p4(s)p5(s,s)p11(s)p12(s)p31(s)goal p(X),write(“the x is ”,X).clauses p(a1):-p1(b),p2(c).p(a2):-p1(b),p3(d),p4(e).p(a3):-p1(b),p5(f,g).p1(b):-p11(b1),p12(b2).p3(d):-p31(d1).p2(c1).p4(e1).p5(f,g).p11(b1).p12(b2).p31(d11).(5)验证题5源程序 domains name=symbol age =integer predicates player(name,age)match(name,name)clauses player(peter, 9).player(paul, 10).player(chris, 9).player(susan, 9).match(X,Y):-player(X,9), player(Y,9), X<>Y.match(X,Y):-!, player(X,9), player(Y,9), X<>Y.match(X,Y):-player(X,9),!, player(Y,9), X<>Y.match(X,Y):-player(X,9), player(Y,9),!, X<>Y.match(X,Y):-player(X,9), player(Y,9), X<>Y,!.在外部Goal: match(X,Y)条件下,“分别”采用以上各match谓词,观察对应的执行结果如下:
(a)
(b)
(c)
(d)
(e)
五、实验总结
(1)实验中出现的问题
a、做完验证题一,用load加载已改为.PRO格式的验证题二文本,加载不成功。b、由于验证题五需要在外部Goal: match(X,Y)条件下,“分别”采用以上各match谓词,观察对应的执行结果。我采用建立一个源程序文本,load加载进去,修改删除五次match谓词结构,结果第一次编辑运行完,第二次load加载,还是第一次修改后的结果。
(2)对问题的解决方法 a、验证题一运行验证完后,加以保存,再进行load加载下一验证实验。
b、由于在进行第二个match谓词验证之前,对第一个match谓词运行的结果进行了保存,所以第二次load加载是第一个保存后的结果。为了减少不必要的麻烦分别建立了五个独立.PRO文本。分别load加载后,实验运行成功。(3)心得体会
本次实验,课上基本都有提到,课上的理论推理知识较易掌握,实验是对课上理论知识的实践,进一步的夯实。在实验前,认真阅读了实验指导,加以课上老师的指点,实验完成的十分顺利。
通过本次上机实验,使自己对PROLOG语言集成环境下调试运行,有了一定的掌握,目前所接触到的语言的调试运行都大同小异。掌握一门新语言,除了掌握理论知识外,上机实验,多动脑分析代码,多动手调试运行代码十分重要。对于工科类学生深知实践对工作学习的重要性。
第二篇:人工智能实验
《人工智能应用》课程实验教学大纲时间:2010-05-23 00:04来源:知行网 编辑:麦田守望者 点击:168次
一、实验课程基本情况与说明
(一)课程中文名称:人工智能应用
(二)课程英文名称:Application of Artificial Intelligence
(三)实验学分:1
(四)实验学时:36
(五)适用专业及年级:教育技术学3年级
(六)所属实验室名称:软件实验室
(七)实验教材及参考书:
1.实验教科书(五号宋体加粗)
[1]《人工智能教程》,张仰森、黄改娟编著,2008年,高等教育出版社;
2.实验参考书(五号宋体加粗)
[1]《人工智能及其应用》李长河主编,2006年,机械工业出版社;
[2] 《人工智能》,[美]Rob Callan编,2004年,黄厚宽、田盛丰等译,电子工业出版社;
[3] 《人工智能及其应用》(第三版),2004年,蔡自兴、徐光佑编,清华大学出版社。
[4] 《人工智能技术导论》(第二版),2000年,廉师友编,西安电子科技大学出版社;
(八)实验目的和内容:
目的:通过本课程的学习,培养学生掌握计算机如何来模仿人脑所从事的推理、学习、思考和规划等思维活动,来解决需人类专家才能解决的复杂问题,进一步熟悉知识的获取、知识的表示方法和知识的使用等。
内容:
1、产生式系统
2、问题归约
3、逻辑推理
4、机器人问题求解
5、专家系统
(九)考核方式及成绩评定:(五号宋体加粗)
上机考试、编程并运行通过,提交实验报告。成绩评定标准:学生成绩以20%的比例计入《人工智能应用》这门课程。
(十)实验环境:
硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
软件: C、lisp、C++、prolog任选;
所有实验使用到的设备:微机、服务器、网络设备、打印机、编程环境等。
(十一)实验项目及安排
以下实验项目中必做题目在学期结束时必须完成,并提交实验报告;选做题可以根据实际情况选择做和不做。
序号 实验名称 实验类型 学时 每组人数 备注
1产生式系统 基础与验证性 4 1 必做
2问题归约 基础与验证性 4 1 必做
3逻辑推理 基础与验证性 4 1 必做BP网络解决XOR分类问题(用BP神经网络实现XOR分类)基础与验证性 4 1 4、5二
选一状态空间搜索(8数码问题)基础与验证性 4 1机器人问题求解 综合性、设计性 8 1 必做专家系统 综合性、设计性 12 1 必做
(十二)实验报告要求
基础和验证性实验:理工类:参照范本、计算机类:电子版数据全部存盘
设计性、综合性实验:按照定义(设计性实验是指给定实验目的要求和实验条件,由学生自行设计实验方案并加以实现的实验;综合性实验是指实验内容涉及本课程的综合知识或与本课程相关课程知识的实验)来做,理工类:纸质材料存档,、计算机类:电子版数据全部存盘。
二、实验课程授课大纲
实验一 产生式系统
1、实验目的熟悉和掌握产生式系统的运行机制,掌握基于规则推理的基本方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)对已有的产生式系统(默认的例子)进行演示,同时可以更改其规则库或(和)事实库,进行正反向推理,了解其推理过程和机制。
(2)自己建造产生式系统(包括规则库和事实库),然后进行推理,即可以自己输入任何的规则和事实,并基于这种规则和事实进行推理。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验二问题归约
1、实验目的熟悉和掌握问题规约法的原理、实质和规约过程;理解规约图的表示方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)演示已有的梵塔问题(默认程序例程),可以更改圆盘数量,了解问题解决的归约过程。
(2)分析归约机理,熟悉问题规约的详细过程。
(3)自己建造一个梵塔问题归约系统,然后根据归约原理进行逆向推理,得到本原问题集合。通过解决这些本原问题,最终求解问题。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验三 逻辑推理
1、实验目的熟悉和掌握逻辑推理的原理、实质和过程。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)编写公理系统证明程序。
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验四 BP网络解决XOR分类问题
1、实验目的用BP神经网络实现XOR分类。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)用BP神经网络实现XOR分类
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验五 状态空间搜索
1、实验目的用实验方法模拟8数码问题。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)用实验方法模拟8数码问题。
(2)上机运行。打印出运行结果,并结合程序运行结果进行分析。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验六 机器人问题求解
1、实验目的了解机器人的信息处理流程,比较基于行为主义和符号主义的人工智能方法在机器人中的应用特点和效果,以及结合两者的规划与决策方式。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)认真阅读和掌握和本实验相关的教材内容。
(2)分析问题的要求,编写和调试完成程序。
(3)保存和打印出程序的运行结果,并分析程序的运行结果。
4、实验内容及步骤
(1)了解AmigoBot移动机器人的传感器和驱动器工作情况;
(2)观察机器人的反射式避障行为;
(3)编程控制机器人路径,观察行为并比较其避障效果;
(4)观察混合式方法的导航效果,分析行为决策和规划在系统中的作用;
(5)分析根据先验地图规划路径的导航系统的优缺点。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
实验七 专家系统
1、实验目的加深学生对专家系统原理的理解,使学生初步掌握专家系统的设计和实现方法。
2、实验设备
(1)硬件最低要求:586微型计算机,主频450MHZ以上,内存64MB以上,硬盘10G。每个学生每次上机实验使用一台计算机。
(2)软件: C、lisp、C++、prolog任选;
3、实验要求
(1)了解专家系统设计与实现的一般方法;
(2)熟悉和掌握产生式系统的运行机制、产生式规则的程序语言实现;
4、实验内容及步骤
综合利用人工智能的产生式系统、图搜索算法以及专家系统的框架,建造一个小型的医疗诊断专家系统,要求系统具有知识库、推理机和动态数据库三部分。
5、实验报告
学院______________________系____________________专业_____________________ 班级_______________________姓名__________________学号____________________ 实验时间______________________实验地点___________________________________ 组号_____________________________同组人_________________________________
实验名称_______________________________________________________
一、实验目的二、实验内容及原理
三、实验仪器
四、实验步骤
五、实验过程及实验数据记录
六、实验数据处理与分析,并得出结论
七、实验心得与体会
(责任编辑:麦田守望者
第三篇:人工智能专家系统实验
河南城建学院
《 人工智能 》实验报告
实验名称:__实验四 名称实现一个基于产生式系统的小型专家系统(动物识别)成绩: 专业班级: 0814112 学号: 081411202 姓名: xxxxxxxxxxxx 实 验 日 期 : 2014 年 5 月 20 日
实验器材:VC6.0软件,多媒体计算机。
一、实验目的
掌握产生式系统的运行机制和基于规则推理的基本方法。通过一个实例了解小型专家系统的结构、设计和实现过程,初步掌握专家系统的设计和实现方法。
二、实验要求
设计并实现一个某领域的小型专家系统(动物识别),该系统能对输入的询问回答分类或预测的结果,并根据推理过程回答“为什么”或“怎样得出该结论”的问题。
三、实验步骤
(1)定义变量,包括变量名和变量的值。(2)建立规则库,其方法是:(a)输入规则的条件:每条规则至少有一个条件和一个结论,选择变量名,输入条件(符号);选择变量值,按确定按钮就完成了一条条件的输入。重复操作,可输入多条条件;
(b)输入规则的结论:输入完规则的条件后,就可以输入规则的结论了,每条规则必须也只能有一个结论。选择变量名,输入条件(符号),选择变量值,按确定按钮就完成了一个结论的输入。重复以上两步,完成整个规则库的建立。
(3)建立事实库(总数据库):建立过程同步骤2。重复操作,可输入多条事实。
该动物识别专家系统由15条规则组成,可以识别七种动物,在15条规则中,共出现 30个概念(也称作事实),共30个事实,每个事实给一个编号,从编 号从1到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:
char *feature[]={“有毛”,“产奶”,“有羽毛”,“会飞”,“会下蛋”,“吃肉”,“有犬齿”,“有爪”,“眼睛盯前方”,“有蹄”,“反刍”,“黄褐色”,“有斑点”,“有黑色条纹”,“长脖”,“长腿”,“不会飞”,“会游泳”,“黑白两色”,“善飞”,“哺乳类”,“鸟类”,“肉食类”,“蹄类”,“企鹅”,“海燕”,“鸵鸟”,“斑马”,“长颈鹿”,“虎”,“金钱豹”};存放规则的结构体: typedef struct
{ int relation[5];
int name;}Rule;存放产生式规则推理过程的数组: Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27},//如果动物是蹄类(23),且有黑色条纹(13),则该动物对应事实数组的第27个“斑马”
{{21,14,15,16,-1},26}, {{21,19,-1},25},//如果动物是鸟类(21),且是肉食类(19),则该动物对应事实数组的第25个“海燕”。
{{21,17,18,16,-1},24} };程序用编号序列的方式表达了产生式规则,如资料中规则14,如果动物是鸟,且是肉食类,则该动物对应事实数组的第二十五个“海燕”。如资料中规则12,如果动物是蹄类,且有黑色条纹,则该动物对应事实数组的第二十七个“斑马”。
(4)按“开始”或“单步”按钮即可。
此外,利用实例演示,可以运行系统默认的产生式系统,并且可以进行正反向推理。其他的可参见其帮助文件。
三、源代码
#include
“有黑色条纹”,“长脖”,“长腿”,“不会飞”,“会游泳”,“黑白两色”,“善飞”,“哺乳类”,“鸟类”,“肉食类”,“蹄类”,//13
“企鹅”,“海燕”,“鸵鸟”,“斑马”,“长颈鹿”,“虎”,“金钱豹”};
//24
typedef struct //存放规则的结构体 { int relation[5];
int name;}Rule;Rule rule[15]={ {{0,-1},20}, {{1,-1},20}, {{2,-1},21}, {{3,4,-1},21}, {{20,5,-1},22}, {{6,7,8,-1},22}, {{20,8,-1},23}, {{20,9,-1},23}, {{22,11,12,-1},30}, {{22,11,13,-1},29}, {{23,14,15,12,-1},28}, {{23,13,-1},27}, {{21,14,15,16,-1},26}, {{21,19,-1},25}, {{21,17,18,16,-1},24}};int flag[23]={0};//标记各个特征是否选择 int IsAnimal(int a);int inference();void input();void menu();void menu(){ int i=0;
for(i=0;i<24;i++){
if(i%4==0&&i!=0)
{
cout< } printf(“%-3d.%-15s”,i,feature[i]); } } void input(){ int ti=0;for(int i=0;i<24;i++){ flag[i]=0;} while(ti!=-1){ cout<<“n输入选择(-1结束):”; cin>> ti; if(ti>=0&&ti<=23) flag[ti]=1; else if(ti!=-1) { cout<<“输入错误!请输入0~23//notanimal=25 cin.clear();//清除流错误错误标 cin.sync();////////////清空输入缓冲区 } } } int IsAnimal(int a){ if(a>=24&&a<=30) return 1; else return 0;} int inference()//正向推理 { int ti; int i,j; int tres; cout< for(i=0;i<15;i++) { j=0; 之间的数字!”<< endl; ti=rule[i].relation[j]; while(ti!=-1)//-1作为结束 { if(flag[ti]==0) break; j++; ti=rule[i].relation[j]; } if(ti==-1)//ti==-1代表规则满足 { tres=rule[i].name; flag[tres]=1; printf(“运用了规则%d : ”,i); j=0; while(rule[i].relation[j]!=-1) { cout< j++; } cout<<“====> ”< if(IsAnimal(tres)) { return 1; } } } if(i==15) { cout<<“没有这种动物”; } return-1;} void main(){ char q; while(q!='n') { menu(); input(); inference(); cout<<“n继续?(Y/N)”< cin>>q; system(“cls”); } } 四、结果分析 1、若已知:动物是蹄类(23),且有黑色条纹(13),则结果:该动物对应事实数组的第27个“斑马”。使用了推理规则12,即:{{23,13,-1},27},使用规则运行结果如图1所示: 图1 2、若已知:动物是鸟类(21),且是肉食类(19),则结果该动物对应事实数组的第25个“海燕”。使用了推理规则14,即:{{21,19,-1},25},使用规则运行结果如图2所示: 图2 五、心得体会 本实验环境主要提供一个能够实现模拟产生式专家系统的验证、设计和开发的可视化操作平台。使用户既能用本系统提供的范例进行演示或验证性实验,也能够用它来设计并调试自己的实验模型。 通过这次实验,我对产生式系统有了更深刻的认识。产生式系统是由一组规则组成的、能够协同作用的推理系统。其模型是设计各种智能专家系统的基础.产生式系统主要由规则库、综合数据库和推理机三大部分组成。产生式系统用来描述若干个不同的以一个基本概念为基础的系统,这个基本概念就是产生式规则或产生式条件和操作对。在产生式系统中,论域的知识分为两部分:用事实表示静态知识;用产生式规则表示推理过程和行为。专家系统的规则是由专家定的,在该实验中,是由本人制定的。 教师评语: 教师签名: 实验二——专家系统一、源代码 import javax.swing.JCheckBox;import javax.swing.JOptionPane;import javax.swing.JPanel; public class 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(“u957fu817f”);jflyable.setText(“u4f1au98de”);jeatMeat.setText(“u5403u8089”); { jfur.setText(“u6bdbu53d1”);jruminate.setText(“u53cdu520d”);jswim.setText(“u6e38u6cf3”);jfeather.setText(“u7fbdu6bdb”);jdogTooth.setText(“u72acu9f7f”);jflyest.setText(“u5584u98de”);jlayEgg.setText(“u4e0bu86cb”);jblackWhite.setText(“u9ed1u767du8272”);jyellow.setText(“u9ec4u8910u8272”);jinFlyable.setText(“u4e0du4f1au98de”);jdarkDot.setText(“u6697u6591u70b9”);jhoofAnimal.setText(“u6709u8e44u7c7bu52a8u7269”);jpredator.setText(“u98dfu8089u52a8u7269”);jmammal.setText(“u54fau4e73u52a8u7269”);jblackStrip.setText(“u9ed1u8272u6761u7eb9”);jgaze.setText(“u773cu775bu76efu7740u524du65b9”);jLabel1.setFont(new java.awt.Font(“黑体”, 0, 24));jLabel1.setText(“u4e13u5bb6u7cfbu7edf”);btnOk.setText(“u731cu731cu662fu4ec0u4e48uff1f”);btnOk.addActionListener(new java.awt.event.ActionListener(){ public void actionPerformed(java.awt.event.ActionEvent evt)} btnOkActionPerformed(evt);});jloogNeck.setText(“u957fu8116u5b50”); 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 message){ } public int count(){ } int sum = 0;for(int i = 0;i < checkBoxs.length;i++){ } return sum;if(checkBoxs[i].isSelected()){ } sum ++;JOptionPane.showMessageDialog(this, message);} 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: 三、推理树 实验一创业项目的选择LED照明 1.1产品介绍 LED(Light Emitting Diode),发光二极管,是一种固态的半导体器件,它可以直接把电转化为光。LED的心脏是一个半导体的晶片,晶片的一端附在一个支架上,一端是负极,另一端连接电源的正极,使整个晶片被环氧树脂封装起来。半导体晶片由两部分组成,一部分是P型半导体,在它里面空穴占主导地位,另一端是N型半导体,在这边主要是电子。但这两种半导体连接起来的时候,它们之间就形成一个“P-N结”。当电流通过导线作用于这个晶片的时候,电子就会被推向P区,在P区里电子跟空穴复合,然后就会以光子的形式发出能量,这就是LED发光的原理。而光的波长决定光的颜色,是由形成P-N结材料的禁带宽度决定的。自20世纪60年代世界第一个半导体发光二极管诞生以来,LED照明由于具有寿命长、节能、色彩丰富、安全、环保的特性,被誉为人类照明的第三次革命。 1.2市场现状 据统计,地球上每天使用的电量是相当惊人的,所以,这些年我们都致力于寻找节约、环保的新能源,而本公司的LED灯顺应时代,应运而生。白光LED的光电转化率高达95%以上,节能性十倍于普通白炽灯,两倍于荧光灯。众所周知,白炽灯的使用会引起惰性气体的污染,荧光灯的使用会引起汞的污染,而白光LED灯在使用时不会放出任何有害气体损害生态环境,是新的环保光源,因此,LED节能灯有很大的发展潜力。 当前,照明约占世界总能耗的20%左右。中国从2003年开始,就已经频频遭遇电力短缺的危机,由此也引发了社会对替代能源和新能源的思考。有统计数据显示,仅LED路灯节能一项,每年就能为中国节省约一座三峡大坝所发的电力。在全球能源危机紧张的今天,LED照明产品的节能优势则预示了其不可撼动的未来行业龙头地位:据业内人士以1支11瓦优质节能灯为例,用数字证明了产品的绝对优势:这样一支节能灯在6000小时的寿命期内,将比具有相同效果的60瓦白炽灯少耗电294千瓦时,节约支出160多元。 根据中国光学电子协会光电分会的统计,我国的LED照明产品自2003年起,正以每年25%以上的速度增长,其中超高亮照明LED更以每年50%的速度飞跃发展。到2013年,阅读灯、橱窗灯、户外照明、投光灯、家用照明、家用电器光源等传统灯具将逐步被LED取代。业内专家直言,仅中国民用照明市场来讲,存在的商机就达400亿元人民币。 2011年2月底,国家相关部门在中国半导体照明市场产业现状及未来发展机会暨“Green Lighting China 2011 展会暨论坛”的新闻发布会上透露,将于近期出台传统白炽灯的退出时间表,这一信息预示着LED照明市场的繁荣期即将到来。目前,我国农村地区和部分小城市大多数照明都是以传统灯泡为主。 1.3竞争优势 1.4企业未来的发展 1.5总结第四篇:汉诺塔实验(人工智能)
第五篇:实验一