动物识别系统代码

合集下载

产生式系统 识别动物 python 产生式系统的应用实例 转 -回复

产生式系统 识别动物 python 产生式系统的应用实例 转 -回复

产生式系统识别动物python 产生式系统的应用实例转-回复产生式系统(Production System)是人工智能领域中常用的一种知识表示和推理方式,也被广泛应用于自然语言处理、专家系统、智能搜索等领域。

产生式系统以if-then的规则形式表示知识,并通过模式匹配的方式进行推理和推断。

在本文中,我们将以"产生式系统识别动物python 产生式系统的应用实例转"为主题,逐步分析产生式系统的原理和应用,并介绍使用Python实现一个基础的动物识别系统的案例。

一、产生式系统原理及基本概念产生式系统是基于规则的知识表达和推理方式,它由条件部分和结论部分组成。

条件部分描述了一系列前提条件,结论部分则是满足条件部分的推论结果。

产生式系统通过匹配条件部分和已有的事实库进行推理,从而得到新的结论。

产生式系统的基本概念包括规则(rule)、事实(fact)、工作单元(working memory)和控制策略(control strategy)。

规则是产生式系统的基本单位,它包含了if-then的条件推理规则。

例如,一条规则可以是:“如果动物有毛发,并且有四条腿,那么它是哺乳动物”。

事实是产生式系统中的基本数据,它表示系统当前的知识状态。

例如,一条事实可以是:“这个动物有四条腿”。

工作单元是存储和管理事实的数据结构,它可以是一个列表或者一个数据库。

产生式系统通过与工作单元中的事实进行匹配来进行推理。

控制策略是产生式系统的推理策略,它决定了系统在工作单元中进行规则匹配和推理的顺序。

常见的控制策略包括深度优先、广度优先和最佳优先等。

二、动物识别的产生式系统实现在本节,我们将以一个简单的动物识别系统为例,介绍如何使用产生式系统来实现动物识别。

这个动物识别系统可以根据输入的动物特征判断其是什么类别的动物,比如哺乳动物、爬行动物等。

1. 确定知识库和规则库首先,我们需要确定动物特征的知识库和规则库。

知识库包括各种动物的特征信息,规则库则包含了各种动物的分类规则。

动物识别系统__代码

动物识别系统__代码
{
cout<<Name;
}
};
rule::~rule()
{
list *L;
while(Pre)
{
L=Pre->Next;
delete Pre;
Pre=L;
}
delete Name;
}
rule::rule(char *N,int P[],int C)
{
int i;
list *L;
Pre=NULL;
Next=NULL;
Rule=NULL;
for(i=0;i<15;i++) //初始化规则库。
{
R=new rule(ch,rulep[i],rulec[i]);
R->Next=Rule;
Rule=R;
ch[5]++;
}
R=Rule;
for(;;)
{
i=R->Query();
if((i==1)||(i==-1))
break;
return True;
}
return False;
}
int main()
{
fact *F,*T;
rule *Rule,*R;
char ch[8];
int i=1;
Fact=NULL;
while(str[i-1]) //初始化事实库,倒序排列。
{
F=new fact(i,str[i-1]);
F->Next=Fact;
}
void PutAct(const int Act0,int Suc0)
{
Active=Act0;
Succ=Suc0;

(毕业论文)动物识别专家系统

(毕业论文)动物识别专家系统

摘要专家系统是目前人工智能中最活跃,最有成效的一个研究领域,它是一种基于知识的系统,它从人类专家那里获得知识,并用来解决只有专家才能解决的困难问题。

该动物识别专家系统是在VC编程环境下编写的基于Windows操作平台上的图形用户界面程序,依据15条规则,构建知识库,能判别七种动物。

该系统具有较好的扩充性,可移植性、透明性,算法简单高效,使用方便,用户界面友好。

在层次树结构的数据结构基础上,采用正向推理的技术构建推理机,解释机构的实现采用了唱片技术和追踪技术。

构建该动物识别专家系统主要目的是为了提高人工智能的理论水平,更深入地了解专家系统的原理、历史、构成和各组成部件的基本原理,并提高VC的编程能力。

关键字:专家系统,知识库,规则,推理机,解释机AbstractExpert system is one of the most active and effective research realms. It can solve difficult problems, which can only be solved by experts. It is a system based on knowledge and can achieve knowledge from experts.This expert system is the visual interface program, which based on Windows operation system in the situation of Visual C++ programming. It can distinguish seven kinds of animals by constructing knowledge base, which is based on 15 rules. This system is moveable, transparent, and expansible. It can be easily used. Its mathematic is simple and efficient the user interface is friendly. The construction of reasoning machine adopts the positive reasoning technology and the realization of explanation adopts the record and pursuit technologyThis animal distinguish expert system aims to raise the theory standard of artificial intelligence. The writer intended to know about the principle, the history and the composition theory of expert system, and upgrade the programming ability.Key W ords: expert system, repository, rule, reasoning machine, explanative machine目录摘要 (1)Abstract (2)目录 (3)前言 (4)第一章需求分析 (6)1.1 需求状况 (6)1.2专家系统的设计要求 (6)1.3组成部分 (10)1.4推理机 (12)第2章概要设计 (14)2.1总体流程的设计 (14)2.1.1创建知识库 (14)2.1.2 设计推理机的工作流程 (17)2.2用户界面设计 (19)2.2.1 用户界面设计的原则 (19)2.2.2设计的用户界面 (20)第3章详细设计 (22)3.1学习VC有感 (22)3.1.1认识VC (22)3.1.2使用MSDN (23)3.2 详细编码 (24)第4章测试与完善 (37)4.1 测试系统 (37)4.2 完善功能 (38)4.2.1改善explain功能 (38)4.2.2 添加backspace功能........................... 错误!未定义书签。

RFID常用国际标准

RFID常用国际标准

1.2技术标准——国际标准ISO 11785ISO 11785技术标准规定了电子标签的数据传输方法和读写器规范,以便激活电子标签的数据载体。

制定该技术标准的目的足使范围广泛的小同制造商的电子标签能够使用一个共同的读写器来询问。

动物识别用的符合国际标准的读写器能够识别和区分使用全双工/半双工的系统(负载调制)的电了标签和使用时序系统的电子标签。

(1)需求在标准中规定了134.2kHz±1.8kHz作为读写器的T作频率。

发送场为电了标签提供了能量供应,因此被称为“活化场”(如图9.4所示)。

活化场周期地每50ms接通一次,然后每30ms断开一次。

在50ms的接通过程中,等待着全双工/半双工电子标签的可能的应答,场内的时序电子标签需要活化场对它的充电电容器充电(如图9.5所示)。

如果在活化场的作用范围内存在一个全双工/半双工电子标签,那么这个电子标签在场的工作区间发送它的数据。

在接收数据时,假如数据在第一个50ms内没有全部被传输,则工作区间可以延长到100ms。

在活化场作用范围内的时序电子标签在3ms的暂停时间内便开始传输数据。

为了允许把数据记录全部传输完,暂停时间最多可以延长到20ms。

如果可移动的或固定的读写器互相邻近工作,那么有很大的可能性,一个读写器在另外一个读写器的3ms暂停过程中发送它的活化场。

结果是没有一个读写器能够接收到时序电子标签的数据信号。

由于与时序电子标签的场强相比活化场相当强,这种效应出现在数倍于读写器正常的阅读半径的范围内。

可移动的和固定的读写器可以通过扩大暂停时间到30ms来检测周围范围内第二个读写器(B)的可能存在。

如果第二个读写器(B)的活化场在30ms暂停时间内被接收到,则标准规定:当先前检测到的读写器(B)于下一个3ms的暂停后重新接通其活化场之际,应立即接通读写器(A)的活化场,最长为50ms。

这样,两个相邻的读写器之间的某种程度的同步是可能的。

因为数据只从电子标签向读写器传输,所以单独的一个电子标签可由两个移动的读写器同时读出。

动物识别系统实验报告

动物识别系统实验报告
{
stringFindMaxNumber ="select max(动物序号) from动物库";
SqlCommandcmd2 =newSqlCommand( FindMaxNumber ,con);
1.1功能需求
1.1.1动物识别正向推理
正向推理是从已知事实出发,通过规则库求的结论,也称为自底向上,或称为数据驱动方式。
正向推理过程的具体步骤是:
(1)读入事实集到工作存储器。
(2)取出某条规则,将规则的全部前件与工作存储器中的所有事实进行比较。如果匹配成功,则所得结果显示到屏幕上,转向(3);否则,直接转向(3)。
动物识别系统设计主体框架:本系统只用了一个页面实现,界面使用上下结构的框架设计,当用户进入系统的时候,打开Default.aspx,该页面分为上下两个部分,上面的部分是用于根据问题输入动物特征,下面的部分是新规则的加入功能部分,也是用户进行添加新规则的页面,这好似一个导航页面,用户可以更具自己的选择进行的操作,由上至下进入不同的功能部分。各个功能模块的设计:
staticint[] a =newint[7];
SqlConnectioncon =newSqlConnection("Server = PC-11; user id = sa;password = ;Database = animal;");
protectedvoidPage_Load(objectsender,EventArgse)
YesOption.Checked =false;
}
protectedvoidNoOption_CheckedChanged(objectsender,EventArgse)
{
a[Convert.ToInt32(Questionselected.SelectedValue)] = 0;

ISO11785动物的无线射频识别

ISO11785动物的无线射频识别
江西财经大学软件与通信工程学院 14
二、 RFID标准概述
4. RFID标准化组织
(5)IP-X IP-X主要在南非南美、澳大利亚、瑞士等国家推行, 为中性主权国的第三世界标准组织。 地区性的组织有欧洲标准化委员会(CEN)等;地 区性的标准化机构有美国国家标准化组织(ANSI)、 英国标准化组织(BSI)、加拿大标准化协会(SCC)、 法国工业标准化协会(AFNOR)和DIN;产业联盟有 汽车工业行动组(AIAG)、美国统一代码协会 (UCC/EAN)、ATA和EIA。这些机构均在制定与 RFID相关的国家和地区或产业的联盟标准,并希望通 过不同的渠道提升为国际标准。
江西财经大学软件与通信工程学院 12
二、 RFID标准概述
4. RFID标准化组织
目前影响全球RFID标准的有五大标准化组织,分别是 GS1/EPCglobal、ALMGlosal、ISO、UID、IP-X。 (1)GS1/EPCglobal GS1/EPCglobal以欧美跨国列强为阵营,是当今世 界最大的RFID标准组织。该组织的前身为北美UCC产品 统一编码组织和欧洲EAN产品标准组织,合并后称为 EPCglobal,其核心成员包括美国的沃尔玛、德国的麦 德龙、硅谷的思科、欧洲的吉列公司等世界500强企业。

江西财经大学软件与通信工程学院
6
二、 RFID标准概述
1.RFID标准简介
RFID标准可以处理以下几个问题: (1)技术问题如接口和转送技术。例如,RFID中间件(中间件技 术)扮演着RFID标签和应用程序之间的中介角色,从应用程序 端使用中间件所提供的一组通用的应用程序接口,就可以连接到 RFID读写器,读取电子标签数据。RFID中间件采用程序逻辑及 存储转发的功能来提供顺序的消息流,具有数据流设计与管理的 能力。 (2)一致性。一致性主要指能够支持多种编码格式,如支持EPC、 DOD等规定的编码格式。RFID标准也包括EPCglobal所规定的 标签数据格式标准。 (3)性能问题。性能主要是指数据结构和内容,即数据编码格式 及其内存的分配。 (4)与传感器的融合问题。目前,RFID技术与传感器系统正逐步 融合,物品定位已采用RFID三角定位法及更多复杂的技术,还 有一些RFID技术中采用了传感器来代替芯片。例如,实现温度 和应变传感器的声表面波标签已经和RFID技术相结合。

专家系统实例

专家系统实例

一个专家系统的例子一、建立动物识别专家系统的规则库,并用与/或图来描述这个规则库。

规则库由15条规则组成,规则名分别是;rule1,rule2,┉,rule15,规则库的符号名为ruleS。

编写一段程序,把15条规则组成一个表直接赋值给规则库ruleS。

( rules((rule1(if (animal has hair)) 若动物有毛发(F1)(then (animal is mammal))) 则动物是哺乳动物(M1)((rule2(if (animal gives milk)) 若动物有奶(F2)(then (animal is mammal))) 则动物是哺乳动物(M1)((rule3(if (animal has feathers)) 若动物有羽毛(F9)(then (animal is bird))) 则动物是鸟(M4)((rule4(if (animal flies)) 若动物会飞(F10)(animal lays eggs)) 且生蛋(F11)(then (animal is bird))) 则动物是鸟(M4)((rule5(if (animal eats meat)) 若动物吃肉类(F3)(then (animal is carnivore))) 则动物是食肉动物(M2)((rule6(if (animal Raspointed teeth)) 若动物有犀利牙齿(F4)(animal has claws) 且有爪(F5)(animal has forword eyes)) 且眼向前方(F6)(then (animal is carnivore))) 则动物是食肉动物(M2)((rule7(if (animal has mammal)) 若动物是哺乳动物(M1)(animal has hoofs)) 且有蹄(F7)(then (animal is ungulate))) 则动物是有蹄类动物(M3)((rule8(if (animal has mammal)) 若动物是哺乳动物(M1)(animal chews cud)) 且反刍(F8)(then (animal is ungulate))) 则动物是有蹄类动物(M3)((rule9(if (animal is mammal)) 若动物是哺乳动物(M1)(animal is carnivore) 且是食肉动物(M2)(animal has tawny color) 且有黄褐色(F12)(animal has dark sports)) 且有暗斑点(F13)(then (animal is cheetah))) 则动物是豹(H1)((rule10(if (animal is mammal)) 若动物是哺乳动物(M1)(animal is carnivore) 且是食肉动物(M2)(animal has tawny color) 且有黄褐色(F12)(animal has black stripes) 且有黑色条纹(F15)(then (animal is tiger))) 则动物是虎(H2)((rule11(if (animal is ungulate)) 若动物是有蹄类动物(M3)(animal has long neck) 且有长脖子(F16)(animal has long legs) 且有长腿(F14)(animal has dark sports)) 且有暗斑点(F13)(then (animal is giraffe))) 则动物是长颈鹿(H3)((rule12(if (animal is ungulate)) 若动物是有蹄类动物(M3)(animal has black stripes) 且有黑色条纹(F15)(then (animal is zebra))) 则动物是斑马(H4)((rule13(if (animal is bird)) 若动物是鸟(M4)(animal does not fly) 且不会飞(F17)(animal has long neck) 且有长脖子(F16)(animal has long legs)) 且有长腿(F14)(animal black and white)) 且有黑白二色(F18)(then (animal is ostrich))) 则动物是驼鸟(H5)((rule14(if (animal is bird)) 若动物是鸟(M4)(animal does not fly) 且不会飞(F17)(animal swims) 且会游泳(F19)(animal black and white)) 且有黑白二色(F18)(then (animal is penguin))) 则动物是企鹅(H6)((rule15(if (animal is bird)) 若动物是鸟(M4)(animal flies well)) 且善飞(F20)(then (animal is albatross))) 则动物是信天翁(H6)在上述规则的说明中,用F1-F20标记的是初始事实或证据,用M1-M4标记的是中间结论,用H1-H7标记的是最终结论。

禽兽系统管理

禽兽系统管理

动物识别专家系统一试验题目动物识别专家系统二、试验内容动物识别专家系统是流行的专家系统实验模型,它用产生式规则来表示知识,共15条规则、可以识别七种动物,这些规则既少又简单,可以改造他们,也可以加进新的规则,还可以用来识别其他东西的新规则来取代这些规则。

动物识别15条规则的中文表示是:规则1:如果:动物有毛发则:该动物是哺乳动物规则2:如果:动物有奶则:该单位是哺乳动物规则3:如果:该动物有羽毛则:该动物是鸟规则4:如果:动物会飞,且会下蛋则:该动物是鸟规则5:如果:动物吃肉则:该动物是肉食动物规则6:如果:动物有犬齿,且有爪,且眼盯前方则:该动物是食肉动物规则7:如果:动物是哺乳动物,且有蹄则:该动物是有蹄动物规则8:如果:动物是哺乳动物,且是反刍动物则:该动物是有蹄动物规则9:如果:动物是哺乳动物,且是食肉动物,且是黄褐色的,且有暗斑点则:该动物是豹规则10:如果:如果:动物是黄褐色的,且是哺乳动物,且是食肉,且有黑条纹则:该动物是虎规则11:如果:动物有暗斑点,且有长腿,且有长脖子,且是有蹄类则:该动物是长颈鹿规则12:如果:动物有黑条纹,且是有蹄类动物则:该动物是斑马规则13:如果:动物有长腿,且有长脖子,且是黑色的,且是鸟,且不会飞则:该动物是鸵鸟规则14:如果:动物是鸟,且不会飞,且会游泳,且是黑色的则:该动物是企鹅规则15:如果:动物是鸟,且善飞则:该动物是信天翁动物分类专家系统由15条规则组成,可以识别七种动物,在15条规则中,共出现 30个概念(也称作事实),共30个事实,每个事实给一个编号,从编号从1到30,在规则对象中我们不存储事实概念,只有该事实的编号,同样规则的结论也是事实概念的编号,事实与规则的数据以常量表示,其结构如下:Char *str{}={"chew_cud","hooves","mammal","forward_eyes","claws", "pointed_teeth","eat_meat","lay_eggs","fly","feathers","ungulate", "carnivore","bird","give_milk","has_hair","fly_well","black&white_color","can_swim","long_legs","long_neck","black_stripes","dark_spots","tawny_color","albatross","penguin","ostrich","zebra","giraffe","tiger","cheetah","\0"}程序用编号序列的方式表达了产生式规则,如资料中规则15,如果动物是鸟,且善飞,则该动物是信天翁。

动物识别系统代码

动物识别系统代码
default: printf("错误选择!\n"); break;
}
}
void ungulate()//哺乳动物识别
{
int e;
printf("**************************************\n");
printf("1.黑白条纹\n2.有暗斑点,且长腿,长脖子\n3.无上述特点\n");
简易动物识别专家系统源代码(调试无错!)
#include <stdio.h>
void birds()
{
int a;
printf("**************************************\n");
printf("1.长腿,长脖子,黑色,不会飞。\n");
printf("2.不会飞,会游泳,黑色.\n");
{
case 1: printf("该动物属于\"鸟类\"\n");birds(); break;
case 2: printf("该动物属于\"哺乳类动物\"\n");ungulate(); break;
case 3: printf("该动物属于\"食肉动物\"\n");carnivore(); break;
printf("1.有羽毛或会飞或会下蛋\n2.该动物有蹄或会反刍\n3.吃肉或有犬齿\n");
printf("**************************************\n\n");

产生式系统例子

产生式系统例子
鸵鸟 r13

r3
有羽毛
长腿
长脖子
ቤተ መጻሕፍቲ ባይዱ不会飞
2.3.3 产生式系统的例子——动物识别系统
鸵鸟 r13

r3
有羽毛
长腿
长脖子
不会飞
2.3.3 产生式系统的例子——动物识别系统


规则表示:
产生式 一阶谓词逻辑(2.2节)
r3: IF 动物有羽毛 THEN 动物是鸟
it_is("鸟"):- positive("有羽毛")
r13:IF 动物是鸟 AND 长脖子 AND 长腿 AND 不会飞 THEN 动物是鸵鸟 animal_is("鸵鸟"):- it_is("鸟"), positive("长脖子"), positive(" 长腿"), positive("不会飞")
2.3.3 产生式系统的例子——动物识别系统


规则表示:
产生式 一阶谓词逻辑(2.2节)
2.3.3 产生式系统的例子——动物识别系统
规则库
推理机
综合数据库
有羽毛
长腿
长脖子
不会飞
2.3.3 产生式系统的例子——动物识别系统

有羽毛
长腿
长脖子
不会飞
2.3.3 产生式系统的例子——动物识别系统

python猫狗识别课程设计

python猫狗识别课程设计

python猫狗识别课程设计一、课程目标知识目标:1. 学生能理解并掌握Python编程语言中基本的图像处理方法;2. 学生能掌握使用机器学习算法进行图像分类的基本原理;3. 学生能了解神经网络和卷积神经网络在图像识别中的应用。

技能目标:1. 学生能运用Python的图像处理库(如OpenCV)进行图片的读取、显示和预处理;2. 学生能通过实践操作,运用机器学习库(如scikit-learn)实现猫狗图像的分类;3. 学生能运用TensorFlow或Keras等深度学习框架搭建简单的卷积神经网络模型进行图像识别。

情感态度价值观目标:1. 学生培养对人工智能技术的兴趣和热情,增强对编程和机器学习的自信心;2. 学生在团队合作中培养沟通、协作能力,学会分享和尊重他人;3. 学生通过学习猫狗识别项目,认识到人工智能在现实生活中的应用价值,提高社会责任感和创新意识。

本课程针对的学生群体为有一定Python编程基础和图像处理知识储备的中学高年级学生。

课程性质为实践性较强的项目制课程,注重培养学生的动手能力和实际问题解决能力。

在教学过程中,教师应关注学生的个体差异,引导他们通过小组合作、讨论和分享,达到课程目标。

课程目标的设定旨在让学生在完成项目的同时,掌握相关理论知识,提高编程技能,并培养积极向上的情感态度价值观。

通过本课程的学习,学生将具备一定的图像识别能力,为未来深入学习人工智能领域打下坚实基础。

文档下载链接</span>。

</p></li><li><p>学生能够独立完成猫狗图像的预处理工作,包括图像的读取、显示、缩放、裁剪等。

</p></li><li><p>学生能够运用机器学习算法(如支持向量机、决策树等)对猫狗图像进行分类,并评估分类模型的性能。

</p></li><li><p>学生能够了解并实现简单的卷积神经网络结构,对猫狗图像进行深度学习训练,并分析训练结果。

动物识别专家系统实验报告

动物识别专家系统实验报告

题目:动物识别专家系统一.实验目的理解和掌握产生式只是表示方法,能够用选定的编程语言实现产生式系统的规则库。

二.实验内容(1)以动物识别系统的产生式规则为例。

(2)用选定的编程语言建造规则库和综合数据库,并能对它们进行增加、删除和修改操作。

三.实验原理动物识别专家系统是流行的专家系统实验模型,它用产生式r来表示知识,共15条r、可以识别七种动物,这些r既少又简单,可以改造他们,也可以加进新的r,还可以用来识别其他东西的新r来取代这些r。

动物识别15条r:r1:IF 动物有毛发THEN 该动物是哺乳动物r2: IF 动物能产奶THEN该单位是哺乳动物r3: IF 该动物有羽毛THEN该动物是鸟r4: IF动物会飞AND会下蛋THEN该动物是鸟r5: IF动物吃肉THEN该动物是肉食动物r6: IF动物有犬齿AND有爪AND眼盯前方THEN该动物是食肉动物r7: IF动物是哺乳动物AND有蹄THEN该动物是有蹄动物r8: IF动物是哺乳动物AND是反刍动物THEN该动物是有蹄动物r9: IF动物是哺乳动物AND是食肉动物AND是黄褐色的AND有暗斑点THEN该动物是豹r10:IF动物是黄褐色的AND 是哺乳动物AND 是食肉AND 有黑条纹THEN该动物是虎r11:IF动物有暗斑点AND 有长腿AND 有长脖子AND 是有蹄类THEN该动物是长颈鹿r12:IF动物有黑条纹AND 是有蹄类动物THEN该动物是斑马r13:IF动物有长腿AND 有长脖子AND 是黑色的AND 是鸟AND 不会飞THEN该动物是鸵鸟r14:IF动物是鸟AND 不会飞AND 会游泳AND 是黑色的THEN该动物是企鹅r15:IF动物是鸟AND 善飞THEN该动物是信天翁四.推理树部分推理树如下:五.代码程序是用java编写的规则对象代码:public class Rule {private ArrayList<Integer> premise = new ArrayList<Integer>();private int result;public void addPremise(int item) { premise.add(item);}public int size() {return premise.size();}public int getPremiseAt(int index) {return premise.get(index);}public void setResult(int result) {this.result = result;}public int getResult() {return result;}}规则库代码如下:public class RuleBase {private ArrayList<Rule> rules= new ArrayList<Rule>();public int size() {return rules.size();}public RuleBase() {init();}public void addRule(Rule rule) {rules.add(rule);}public Rule getRuleAt(int index) {return rules.get(index);}public void init() {Rule rule1 = new Rule();rule1.addPremise(0); rule1.setResult(20);rules.add(rule1);Rule rule2 = new Rule();rule2.addPremise(1); rule2.setResult(20);rules.add(rule2);Rule rule3 = new Rule();rule3.addPremise(2); rule3.setResult(21);rules.add(rule3);Rule rule4 = new Rule();rule4.addPremise(3); rule4.addPremise(13); rule4.setResult(21);rules.add(rule4);Rule rule5 = new Rule();rule5.addPremise(19); rule5.setResult(22);rules.add(rule5);Rule rule6 = new Rule();rule6.addPremise(4); rule6.addPremise(15); rule6.addPremise(12); rule6.setResult(22);rules.add(rule6);Rule rule7 = new Rule();rule7.addPremise(20); rule7.addPremise(9); rule7.setResult(23);rules.add(rule7);Rule rule8 = new Rule();rule8.addPremise(20); rule8.addPremise(18); rule8.setResult(23);rules.add(rule8);Rule rule9 = new Rule();rule9.addPremise(20); rule9.addPremise(22); rule9.addPremise(14); rule9.addPremise(11);rule9.setResult(24);rules.add(rule9);Rule rule10 = new Rule();rule10.addPremise(20); rule10.addPremise(22); rule10.addPremise(11); rule10.addPremise(5);rule10.setResult(25);rules.add(rule10);Rule rule11 = new Rule();rule11.addPremise(23); rule11.addPremise(6); rule11.addPremise(7); rule11.addPremise(14);rule11.setResult(30);Rule rule12 = new Rule();rule12.addPremise(23); rule12.addPremise(5); rule12.setResult(26);rules.add(rule12);Rule rule13 = new Rule();rule13.addPremise(21); rule13.addPremise(6); rule13.addPremise(17); rule13.addPremise(7);rule13.setResult(27);rules.add(rule13);Rule rule14 = new Rule();rule14.addPremise(21); rule14.addPremise(10); rule14.addPremise(17); rule14.addPremise(8);rule14.setResult(28);rules.add(rule14);Rule rule15 = new Rule();rule15.addPremise(21); rule15.addPremise(16); rule15.setResult(29);}}综合数据库代码如下:public class Database {ArrayList<Integer> db = new ArrayList<Integer>();public void addFact(int item) {db.add(item);}public boolean contains(int item) {return db.contains(item);}}控制系统代码如下:public class Machine {public static String inference(Database db) { RuleBase ruleBase = new RuleBase();int result = 0;for (int i = 0; i < ruleBase.size(); i++) { int size = ruleBase.getRuleAt(i).size();boolean flag = true;for (int j = 0; j < size; j++) {if(!db.contains(ruleBase.getRuleAt(i).getPremiseAt(j))) { flag = false;break;}}if (flag) {int fact = ruleBase.getRuleAt(i).getResult();db.addFact(fact);if (fact >= 24) {result = fact;break;}}}switch (result) {case 24:return"金钱豹";case 25:return"老虎";case 26:return"斑马";case 27:return"鸵鸟";case 28:return"企鹅";case 29:return"信天翁";case 30:return"长颈鹿";default:return"不存在";}}}六.截图七.感想通过这次课程设计我对专业课的学习有了更加深刻的认识,让我知道了学无止境的道理。

AI实验-七种动物识别系统

AI实验-七种动物识别系统

AI实验-七种动物识别系统AI-动物识别⼀、实验⽬的1. 理解产⽣式系统的结构原理与实际应⽤。

 2. 掌握产⽣式规则表⽰及规则库组建的实现⽅法。

 3. 熟悉和掌握产⽣式系统的运⾏机制,掌握基于规则推理的基本⽅法。

⼆、实验原理产⽣式系统⽤来描述若⼲个不同的以⼀个基本概念为基础的系统,这个基本概念就是产⽣式规则或产⽣式条件和操作对。

在产⽣式系统中,论域的知识分为两部分:⽤事实表⽰静态知识;⽤产⽣式规则表⽰推理过程和⾏为1.实验要求运⽤所学知识,设计并编程⼀个⼩型的动物识别系统,识别对象:虎、⾦钱豹、斑马、长颈⿅、鸵鸟、企鹅、信天翁七种动物2.识别规则库R1: 有⽑(1) --> 哺乳动物(12)R2: 有奶(2) --> 哺乳动物(12)R3: 有⽻⽑(3) --> 鸟类(13)R4: 会飞(4) & 会下蛋 --> 鸟类(13)R5: 吃⾁(6) --> ⾷⾁动物(14)R6: ⽝齿(7) & 有⽖(8) & 盯前⽅(9) --> ⾷⾁动物(14)R7: 哺乳动物(12) & 有蹄(10) --> 有蹄类动物(15)R8: 哺乳动物(12) & 反刍(11) --> 有蹄类动物(15)R9: 哺乳动物(12) & ⾷⾁动物(14) & 黄褐⾊(16) & 暗斑点(17) --> ⾦钱豹(a)R10: 哺乳动物(12) & ⾷⾁动物(14) & 黄褐⾊(16) & ⿊⾊条纹(18) --> 虎(b)R11: 有蹄类动物(15) & 长脖(19) & 长腿(20) & 暗斑⾊(17) --> 长颈⿅(c)R12: 有蹄类动物(15) & ⿊⾊条纹(18) & --> 斑马(d)R13: 鸟类(13) & 长脖(19) & 长腿(20) & 不会飞(21) & ⿊⽩两⾊(22) --> 鸵鸟(e)R14: 鸟类(13) & 会游泳(23) & 不会飞(21) & ⿊⽩⼆⾊(22) --> 企鹅(f)R15: 鸟类(13) & 善飞(24) --> 信天翁(g)以上为:动物识别规则的15条规则,已编码3.思路分析1. 第⼀次编写时:采⽤的是,条件对应原则,每个条件对应的动物做⼀个集合,多个条件集合取交集,得到对应动物。

动物识别系统

动物识别系统

动物识别系统产生式系统产生式系统:把一组产生式放在一起,并让它们互相配合,协同作用,一个产生式生成的结论可以供另一个产生式作为已知事实使用,以求得问题的解决。

产生式的基本形式产生式基本形式是:P→Q或者 if P then Q(1)规则库用于描述相应领域内知识的产生式集合称为规则库。

(2)综合数据库综合数据库又称为全局数据库,或称为事实库、黑板。

用于存放问题求解过程中各种当前信息,例如问题的初始事实、原始证据、推理中得到的中间结论以及最终结论。

综合数据库的内容随着推理的进行是在不断动态变化的。

(3)控制机构控制机构又称为推理机构或推理机,由一组程序组成,实现对问题的推理求解。

*******************************************************#include <stdio.h>#include <stdlib.h>int main(int argc, char** argv) {printf("-------------人工智能-----------\n");printf("----------动物专家识别系统------\n");printf("------------作者:s*******----------\n");printf("----------班级:**级(*)班-------\n");printf("---------学号:**********-------\n\n\n");printf("Copyright 2011 s*******.All rights reserved.\n");printf("Version 1.0\n");printf("\n\n\n");printf("\n\n\n");printf("现在开始识别:\n\n");int x1;int x2;int x3;int x4;//哺乳动物判断int a1, a2;scanf("%d", &a1);//printf("%d",a1);printf("Q2:有奶吗?\n1:YES\n0:NO\n");scanf("%d", &a2);// printf("%d",a2);printf("\n\n\n初步结果:\n");if (a1 == 1 && a2 == 1) {printf("----------是哺乳动物----------\n\n"); x1 = 1;} else {printf("----------不是哺乳动物----------\n\n"); x1 = 0;}printf("\n\n");//鸟判断int b1, b2, b3;printf("Q3:有羽毛吗?\n1:YES\n0:NO\n");scanf("%d", &b1);printf("Q4:会飞吗?\n1:YES\n0:NO\n");scanf("%d", &b2);printf("Q5:会下蛋吗?\n1:YES\n0:NO\n");scanf("%d", &b3);printf("\n\n\n初步结果:\n");if (b1 == 1) {printf("----------是鸟----------\n\n");x2 = 1;} else if (b2 == 1 && b3 == 1) {printf("----------是鸟----------\n\n");x2 = 1;} else {printf("----------不是鸟----------\n\n");x2 = 0;}printf("\n\n");//食肉动物判断int c1, c2, c3, c4;printf("Q6:吃肉吗?\n1:YES\n0:NO\n");scanf("%d", &c1);printf("Q7:有犬齿吗?\n1:YES\n0:NO\n");scanf("%d", &c2);scanf("%d", &c3);printf("Q9:眼盯前方吗?\n1:YES\n0:NO\n");scanf("%d", &c4);printf("\n\n\n初步结果:\n");if (c1 == 1) {printf("----------是食肉动物----------\n\n");x3 = 1;} else if (c2 == 1 && c3 == 1 && c3 == 1) {printf("----------是食肉动物----------\n\n");x3 = 1;} else {printf("----------不是食肉动物----------\n\n"); x3 = 0;}printf("\n\n");//有蹄类动物判断int d1, d2;printf("Q10:有蹄吗?\n1:YES\n0:NO\n");scanf("%d", &d1);printf("Q11:反刍吗?\n1:YES\n0:NO\n");scanf("%d", &d2);printf("\n\n\n初步结果:\n");if (d1 == 1 && x1 == 1) {printf("----------是有蹄类动物----------\n\n"); x4 = 1;} else if (d2 == 1 && x1 == 1) {printf("----------是有蹄类动物----------\n\n"); x4 = 1;} else {printf("----------不是有蹄类动物----------\n\n"); x4 = 0;}printf("\n\n\n\n");printf("下面进行详细判断:\n\n");int n1, n2, n3, n4, n5, n6, n7, n8;printf("Q12:是黄褐色吗?\n1:YES\n0:NO\n");scanf("%d", &n1);printf("Q13:身上有暗斑点?\n1:YES\n0:NO\n");scanf("%d", &n2);printf("Q14:有黑色条纹吗?\n1:YES\n0:NO\n");scanf("%d", &n3);printf("Q15:有长脖子吗?\n1:YES\n0:NO\n");scanf("%d", &n4);printf("Q16:有长腿吗?\n1:YES\n0:NO\n");scanf("%d", &n5);printf("Q17:善飞吗?\n1:YES\n0:NO\n");scanf("%d", &n6);printf("Q18:有黑白二色吗?\n1:YES\n0:NO\n");scanf("%d", &n7);printf("Q19(最后一个问题):会游泳吗?\n1:YES\n0:NO\n");scanf("%d", &n8);printf("\n\n");printf("最终结果:\n");//r9if (x1 == 1 && x2 == 0 && x3 == 1 && x4 == 0 && n1 == 1 && n2 == 1 && n3 == 0 && n4 == 0 && n5 == 0 && n6 == 0 && n7 == 0 && n8 == 0)printf("----------该动物是金钱豹----------");//r10else if (x1 == 1 && x2 == 0 && x3 == 1 && x4 == 0 && n1 == 1 && n2 == 0 && n3 == 1 && n4 == 0 && n5 == 0 && n6 == 0 && n7 == 0 && n8 == 0) printf("----------该动物是虎----------");//r11else if (x1 == 1 && x2 == 0 && x3 == 0 && x4 == 1 && n1 == 0 && n2 == 1 && n3 == 0 && n4 == 1 && n5 == 1 && n6 == 0 && n7 == 0 && n8 == 0) printf("----------该动物是长颈鹿----------");//r12else if (x1 == 1 && x2 == 0 && x3 == 0 && x4 == 1 && n1 == 0 && n2 == 0 && n3 == 1 && n4 == 0 && n5 == 0 && n6 == 0 && n7 == 0 && n8 == 0) printf("----------该动物是斑马----------");//r13else if (x1 == 0 && x2 == 1 && x3 == 0 && x4 == 0 && n1 == 0 && n2 == 0 && n3 == 0 && n4 == 1 && n5 == 1 && n6 == 0 && n7 == 1 && n8 == 0) printf("----------该动物是鸵鸟----------");//r14else if (x1 == 0 && x2 == 1 && x3 == 0 && x4 == 0 && n1 == 0 && n2 == 0 && n3 == 0 && n4 == 0 && n5 == 0 && n6 == 0 && n7 == 1 && n8 == 1) printf("----------该动物是企鹅----------");//r15else if (x1 == 0 && x2 == 1 && x3 == 0 && x4 == 0 && n1 == 0 && n2 == 0 && n3 == 0 && n4 == 0 && n5 == 0 && n6 == 1 && n7 == 0 && n8 == 0) printf("----------该动物是信天翁----------");else printf("没见过");printf("\n\n\n\n\n");getchar();getchar();printf("判断完毕,按任意键退出\n");return (EXIT_SUCCESS);}*******************************************************。

动物识别系统实验报告

动物识别系统实验报告

人工智能实验报告二班级:XXXX 姓名:XXXX 学号:XXXXX 一.实验目的1. 理解并掌握基于规则系统的表示与推理。

2. 学会编写小型的产生式系统,理解正向推理和反向推理的过3. 程以及两者的差别。

4. 学会设计简单的人机交互界面。

二.实验预习内容及实验环境:1. 了解动物识别系统问题;2. 产生式系统的组成部分,正向推理,逆向推理的算法和产生式系统的类型。

三、实验内容和步骤:1.内容:结合第五章内容,以动物识别系统(或货物袋装系统)为例,实现基于规则的系统构造实验。

2.要求:1>结果显示要求(1)有若干选择动物特征的选择列表;(2)表现判断动物时,使用了哪些规则;(3)表现数据库的变化;(正向推理中表现每使用一次规则后,产生新事实。

反向推理中表现新的目标事实有哪些需要证明,哪些已经得到证实);(4)显示规则的调用次序;(5)显示最后的结果,包含动物能识别出来和动物不能识别出来两种情况。

(6)至少检查两个例子实现正向推理和反向推理的区别;老虎的例子如上所示,以下为金钱豹的例子:正向推理:反向推理:2>指出综合数据库和规则库分别使用哪些函数实现的?综合数据库和规则库均采用数组完成。

其中的综合数据库为一个string类型的数组,内容为事实的名称字符串,下标则为该事实的序号。

数组长度为33,表示共有33个事实(最后7个为动物名称)。

代码如下:string facts[factnum]={"有爪","有犬齿","有奶","有毛发","目视前方","吃肉","有蹄","有羽毛","会飞","生蛋","不会飞","黑白色","会游泳","善飞","不怕风浪","长腿","长脖子","有暗斑点","白色","黑色斑点","黑色条纹","黄褐色","食肉动物","鸟","哺乳动物","有蹄动物","老虎","金钱豹","长颈鹿","斑马","鸵鸟","企鹅","海燕"};规则库为一个结构体数组。

基于Python的动物识别专家系统

基于Python的动物识别专家系统

基于Python的动物识别专家系统1. 利用pyqt5来设计专家系统的界面。

如下图一:图一起始界面相应的运行过程的界面,如图二:图二相应的运行过程界面2. 设置规则文本 guizhe.txt有毛发哺乳动物有奶哺乳动物有羽毛鸟会飞下蛋鸟吃肉食肉动物有犬齿有爪眼盯前方食肉动物哺乳动物有蹄有蹄类动物哺乳动物嚼反刍动物有蹄类动物哺乳动物食肉动物黄褐色暗斑点金钱豹哺乳动物食肉动物黄褐色黑色条纹虎有蹄类动物长脖子长腿暗斑点长颈鹿有蹄类动物黑色条纹斑马鸟长脖子长腿黑白二色不飞鸵鸟鸟会游泳不飞黑白二色企鹅鸟善飞信天翁3. 编写思路1)首先将规则库里面的规则进行相应的排序和数据处理,以便之后的推理信息的匹配,在这里我们将规则信息进行相应的拓扑排序,代码如下:inn = []for i in P: sum = 0 for x in i: if Q.count(x) > 0: # 能找到,那么sum +=Q.count(x) inn.append(sum)while (1): x = 0 if inn.count(-1) == inn.__len__(): break for i in inn: if i == 0: str = ' '.join(P[x]) # print("%s %s" %(str, Q[x])) ans = ans + str + " " + Q[x] + "\n" # 写入结果 # print("%s -- %s" %(P[x],Q[x])) inn[x] = -1 # 更新入度y = 0 for j in P: if j.count(Q[x]) == 1: inn[y] -= 1 y += 1 x += 12)整理好规则库之后,我们开始进行推理功能的编写,在这里我们根据相应的规则匹配模式,对用户输入的需要推理的信息进行相应的判断,然后一步步的询问用户相关的规则信息,进行进一步的推理,直到完全匹配出推理信息。

产生式动物识别系统方案

产生式动物识别系统方案

实验7:产生式动物识别系统一、实验目的理解和掌握产生式系统的推理方法,能够用选定的编程语言实现推理机。

二、编程环境本文主要编译环境是Windows 10 Visual Studio 2015三、问题描述设计一个用于动物识别的产生式系统,该系统通过规则库识别老虎、金钱豹、斑马、长颈鹿、企鹅、信天翁、鸵鸟7种动物。

四、解决方案1.规则库:用于描述相应领域内知识的产生式集合称为规则库。

本规则库包括以下规则R1:if 动物有毛发then 动物是哺乳动物R2:if 动物有奶then 动物是哺乳动物R3:if 动物有羽毛then 动物是鸟R4:if 动物会飞and 会生蛋 then 动物是鸟R5:if 动物吃肉 then 动物是食肉动物R6:if 动物有犀利牙齿 and 有爪 and 眼向前方then 动物是食肉动物R7:if 动物是哺乳动物and有蹄then动物是有蹄类动物R8:if 动物是哺乳动物and反刍then动物是有蹄类动物R9:if 动物是哺乳动物and是食肉动物and有黄褐色and 有暗斑点 then 动物是豹R10:if 动物是哺乳动物 and是食肉动物and有黄褐色 and 有黑色条纹then 动物是虎R11:if动物是有蹄类动物and 有长脖子and有长腿and有暗斑点 then 动物是长颈鹿R12:if 动物是有蹄类动物 and有黑色条纹 then 动物是斑马R13:if 动物是鸟and不会飞 and有长脖子and有长腿 and有黑白二色then 动物是鸵鸟R14:if 动物是鸟 and不会飞 and会游泳 and有黑白二色then 动物是企鹅R15:if 动物是鸟 and善飞 then 动物是信天翁2.综合数据库char *ans0 = "抱歉,我也不知道这是什么动物";char *ans1 = "这个动物是金钱豹";char *ans2 = "这个动物是老虎";char *ans3 = "这个动物是长颈鹿";char *ans4 = "这个动物有斑马";char *ans5 = "这个动物是企鹅";char *ans6 = "这个动物是鸵鸟";char *ans7 = "这个动物是信天翁";3.推理机(1) 初始化综合数据库,即把欲解决问题的已知事实送入综合数据库中;(2) 检查规则库中是否有未使用过的规则,若无转 (7);(3) 检查规则库的未使用规则中是否有其前提可与综合数据库中已知事实相匹配的规则,若有,形成当前可用规则集;否则转(6);(4) 按照冲突消解策略,从当前可用规则集中选择一个规则执行,并对该规则作上标记。

人工智能动物识别系统JAVA

人工智能动物识别系统JAVA
实验报告课程名称人工智能与专家系统实验名称动物分类专家系统设计系别电子信息科学学院专业班级指导教师学号姓名实验日期201641实验成绩一实验目的1加深理解专家系统的结构原理与实际应用
实验报告
课程名称
系别电子信息科学学院专业班级指导教师
学号____________姓名____________实验日期2016.4.1实验成绩___________
}
jp.add(lblImage);lblImage.setBounds(630,30,300,400);this.add(jp);
this.setTitle("动物识别系统");this.setBounds(100,100,1000,500);this.setVisible(true);
}
publicvoidactionPerformed(ActionEvente){
/用数组创复选框
{newCheckbox("有毛发"),newCheckbox("有奶"),newCheckbox("有羽毛"),
newCheckbox("会飞,且生蛋"),newCheckbox("吃肉"),
newCheckbox("有犬齿,且有爪,且眼盯前方"),newCheckbox("有蹄"),
publicclassRZSextendsJFrameimplementsActionListener{privatestaticJPaneljp=newJPanel();
privateJLabeljl1=newJLabel("请选择条件:");sta ticCheckbox[]Checkbox=

实验一:产生式系统-动物识别系统

实验一:产生式系统-动物识别系统

《人工智能导论》实验报告实验一:产生式系统——动物识别系统一、实验目的1、掌握知识的产生式表示法2、掌握用程序设计语言编制智能程序的方法二、实验内容1、所选编程语言:C语言;2.拟订的规则:(1)若某动物有奶,则它是哺乳动物。

(2)若某动物有毛发,则它是哺乳动物。

(3)若某动物有羽毛,则它是鸟。

(4)若某动物会飞且生蛋,则它是鸟。

(5)若某动物是哺乳动物且有爪且有犬齿且目盯前方,则它是食肉动物。

(6)若某动物是哺乳动物且吃肉,则它是食肉动物。

(7)若某动物是哺乳动物且有蹄,则它是有蹄动物。

(8)若某动物是哺乳动物且反刍食物,则它是有蹄动物。

(9)若某动物是食肉动物且黄褐色且有黑色条纹,则它是老虎。

(10)若某动物是食肉动物且黄褐色且有黑色斑点,则它是金钱豹。

(11)若某动物是有蹄动物且长腿且长脖子且黄褐色且有暗斑点,则它是长颈鹿。

(12)若某动物是有蹄动物且白色且有黑色条纹,则它是斑马。

(13)若某动物是鸟且不会飞且长腿且长脖子且黑白色,则它是驼鸟。

(14)若某动物是鸟且不会飞且会游泳且黑白色,则它是企鹅。

(15)若某动物是鸟且善飞,则它是海燕。

2、设计思路:用户界面:采用问答形式;知识库(规则库):存放产生式规则,推理时用到的一般知识和领域知识,比如动物的特征,动物的分类标准,从哺乳动物、食肉动物来分,再具体地添加一些附加特征得到具体动物;建立知识库的同时也建立了事实库。

事实库是一个动态链表,一个事实是链表的一个结点。

知识库通过事实号与事实库发生联系。

数据库:用来存放用户回答的问题,存放初始状态,中间推理结果,最终结果;推理机:采用正向推理,推理机是动物识别的逻辑控制器,它控制、协调系统的推理,并利用知识库中的规则对综合数据库中的数据进行逻辑操作。

推理机担负两项基本任务:一是检查已有的事实和规则,并在可能的情况下增加新的事实;二是决定推理的方式和推理顺序。

将推理机制同规则对象封装在一起,事实对象记录了当前的状态,规则对象首先拿出前提条件的断言(只有这些前提都有符合时才会做这条规则的结论),询问事实对象集,如事实对象集不知道,则询问用户,如所有前提条件都被证实为真则结论为真,否则系统不知道结论真假。

人工智能实验报告

人工智能实验报告

暨南大学人工智能实验报告题目:动物识别系统院系:信科院计算机系专业:计算机软件与理论学号: 0934061004学生姓名:张韶远成绩:日期: 2009年11月10日一、目的与要求1.掌握人工智能的知识表示技术,能用产生式表示法表示知识,并实现一个用于识别的专家系统。

2.推理策略采用正向推理和反向推理两种。

二、主要内容1.学习人工智能的知识表示技术,关键掌握产生式知识表示的具体应用方法。

2.实现的动物识别系统的主要功能如下:2.1系统能通过正向、反向推理得到正确的动物识别结果。

2.2系统能动态地添加规则、能显示推理过程。

三.实验原理产生式表示:产生式表示是知识表示的一种。

这种方法是建立在因果关系的基础上的,可很容易的描述事实、规则及其不确定性度量。

1.事实的表示:事实可看成是断言一个语言变量的值或是多个语言变量间的关系的陈述句,语言变量的值或语言变量间的关系可以是一个词。

不一定是数字。

一般使用三元组(对象,属性,值)或(关系,对象1,对象2)来表示事实,其中对象就是语言变量,若考虑不确定性就成了四元组表示(增加可信度)。

这种表示的机器内部实现就是一个表。

如事实“老李年龄是35岁”,便写成(Lee,age,35)事实“老李、老张是朋友”,可写成(friend,Lee,Zhang)2.规则的表示:规则用于表示事物间的因果关系,以if condition then action 的单一形式来描述,将规则作为知识的单位。

其中的condition 部分称为条件式前件或模式,而action部分称作动作、后件或结论。

后件。

前件和后件也可以是有“与”、“或”、“非”等逻辑运算符的组合的表达式。

条件部分常是一些事实的合取或析取,而结论常是某一事实B。

如果不考虑不确定性,需另附可信度度量值。

产生式过则的含义是:如果前件满足,则可得到后件的结论或者执行后件的相应动作,即后件由前件来触发。

一个产生式生成的结论可以作为另一个产生式的前提或语言变量使用,进一步可构成产生式系统。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

简易动物识别专家系统源代码(调试无错!)
#include <stdio.h>
void birds()
{
int a;
printf("**************************************\n");
printf("1.长腿,长脖子,黑色,不会飞。

\n");
printf("2.不会飞,会游泳,黑色.\n");
printf("3.善飞\n");
printf("4.无上述特征\n");
printf("**************************************\n\n");
printf("请选择该动物特点:\n");
scanf_s("%d", &a);
switch(a)
{
case 1: printf("该动物为\"鸵鸟\"\n\n"); break;
case 2: printf("该动物为\"企鹅\"\n\n"); break;
case 3: printf("该动物为\"信天翁\"\n\n"); break;
case 4: printf("\"我们将会尽快升级系统,谢谢使用。

\"\n\n"); break;
default: printf("错误选择!\n"); break;
}
}
void carnivore()//食肉动物识别
{
int d;
printf("**************************************\n");
printf("1.黄褐色有暗斑\n2.黄褐色有褐色条纹\n3.无上述特点\n");
printf("**************************************\n\n");
printf("请选择该动物特点:\n");
scanf_s("%d", &d);
switch(d)
{
case 1: printf("该动物为\"猎豹\"\n\n"); break;
case 2: printf("该动物为\"老虎\"\n\n"); break;
case 3: printf("\"我们将会尽快升级系统,谢谢使用。

\"\n\n"); break;
default: printf("错误选择!\n"); break;
}
}
void ungulate()//哺乳动物识别
{
int e;
printf("**************************************\n");
printf("1.黑白条纹\n2.有暗斑点,且长腿,长脖子\n3.无上述特点\n");
printf("**************************************\n");
printf("请选择该动物特点:\n\n");
scanf_s("%d", &e);
switch(e)
{
case 1: printf("该动物为\"斑马\"\n\n"); break;
case 2: printf("该动物为\"长颈鹿\"\n\n"); break;
case 3: printf("\"我们将会尽快升级系统,谢谢使用。

\"\n\n"); break;
default: printf("错误选择!\n"); break;
}
}
int main()
{
while(1)
{
int c;
printf("欢迎使用动物专家识别系统(简易版)\n\n");
printf("**************************************\n");
printf("1.有羽毛或会飞或会下蛋\n2.该动物有蹄或会反刍\n3.吃肉或有犬齿\n");
printf("**************************************\n\n");
printf("请选择该动物特点:\n");
scanf_s("%d", &c);
switch(c)
{
case 1: printf("该动物属于\"鸟类\"\n");birds(); break;
case 2: printf("该动物属于\"哺乳类动物\"\n");ungulate(); break;
case 3: printf("该动物属于\"食肉动物\"\n");carnivore(); break;
case 4: printf("\"我们将会尽快升级系统,谢谢使用。

\"\n"); break;
default: printf("错误选择!\n"); break;
}
}
}。

相关文档
最新文档