这是概念学习的一个简单示例的C++代码。
1 #include <iostream>
2 using namespace std;
3 typedef enum Sky{Sunny,Rainy}Sky;
4 typedef enum AirTemp{Warm,Cold,Cool}AirTemp;
5 typedef enum Humidity{Normal,High}Humidity;
6 typedef enum Wind{Strong}Wind;
7 //typedef enum Water{Warm,Cold}Water;
8 typedef enum Forecast{Same,Change}Forecast;
9 typedef struct Sample
10 {
11 Sky sky;
12 AirTemp airTemp;
13 Humidity humidity;
14 Wind wind;
15 AirTemp water;
16 Forecast forecast;
17 bool EnjoySport;
18 }Sample;
19 typedef struct Record
20 {
21 Sample yangben;
22 int xiabiao[6];
23 }Record;
24 void InitSampleArray(Sample sap[4])
25 {
26 sap[0].sky = Sunny;
27 sap[0].airTemp = Warm;
28 sap[0].humidity = Normal;
29 sap[0].wind = Strong;
30 sap[0].water = Warm;
31 sap[0].forecast = Same;
32 sap[0].EnjoySport = true;
33 sap[1].sky = Sunny;
34 sap[1].airTemp = Warm;
35 sap[1].humidity = High;
36 sap[1].wind = Strong;
37 sap[1].water = Warm;
38 sap[1].forecast = Same;
39 sap[1].EnjoySport = true;
40 sap[2].sky = Rainy;
41 sap[2].airTemp = Cold;
42 sap[2].humidity = High;
43 sap[2].wind = Strong;
44 sap[2].water = Warm;
45 sap[2].forecast = Change;
46 sap[2].EnjoySport = false;
47 sap[3].sky = Sunny;
48 sap[3].airTemp = Warm;
49 sap[3].humidity = High;
50 sap[3].wind = Strong;
51 sap[3].water = Cool;
52 sap[3].forecast = Change;
53 sap[3].EnjoySport = true;
54 }
55 void InitRecord(Sample& s,Record& r)
56 {
57 r.yangben.airTemp = s.airTemp;
58 r.yangben.EnjoySport = s.EnjoySport;
59 r.yangben.forecast = s.forecast;
60 r.yangben.humidity = s.humidity;
61 r.yangben.sky = s.sky;
62 r.yangben.water = s.water;
63 r.yangben.wind = s.wind;
64 for(int i = 0;i < 6;i++)
65 r.xiabiao[i] = 1;
66
67 }
68 void GenerateRule(Sample sap[],Record& record)
69 {
70 for(int i = 1;i < 4;i++)
71 {
72 if(sap[i].EnjoySport == true)
73 {
74 if(sap[i].airTemp != record.yangben.airTemp)
75 {
76 record.xiabiao[0] = 0;
77 }
78 if(sap[i].forecast != record.yangben.forecast)
79 {
80 record.xiabiao[1] = 0;
81 }
82 if(sap[i].humidity != record.yangben.humidity)
83 {
84 record.xiabiao[2] = 0;
85 }
86 if(sap[i].sky != record.yangben.sky)
87 {
88 record.xiabiao[3] = 0;
89 }
90 if(sap[i].water != record.yangben.water)
91 {
92 record.xiabiao[4] = 0;
93 }
94 if(sap[i].wind != record.yangben.wind)
95 {
96 record.xiabiao[5] = 0;
97 }
98 }
99 }
100 for(int i = 0;i < 6;i++)
101 {
102 cout << record.xiabiao[i] << endl;
103 }
104 }
105 void Test(Sample& test,Record& record)
106 {
107 test.EnjoySport = true;
108 if(record.xiabiao[0] == 1)
109 {
110 if(record.yangben.airTemp != test.airTemp)
111 {
112 test.EnjoySport = false;
113 }
114 }
115 else if(record.xiabiao[1] == 1)
116 {
117 if(record.yangben.forecast != test.forecast)
118 {
119 test.EnjoySport = false;
120 }
121 }
122 else if(record.xiabiao[2] == 1)
123 {
124 if(record.yangben.humidity != test.humidity)
125 {
126 test.EnjoySport = false;
127 }
128 }
129 else if(record.xiabiao[3] == 1)
130 {
131 if(record.yangben.sky != test.sky)
132 {
133 test.EnjoySport = false;
134 }
135 }
136 else if(record.xiabiao[4] == 1)
137 {
138 if(record.yangben.water != test.water)
139 {
140 test.EnjoySport = false;
141 }
142 }
143 else if(record.xiabiao[5] == 1)
144 {
145 if(record.yangben.wind != test.wind)
146 {
147 test.EnjoySport = false;
148 }
149 }
150
151 if(test.EnjoySport == true)
152 {
153 cout << "喜欢运动!" << endl;
154 }
155 else
156 {
157 cout << "不喜欢运动!" << endl;
158 }
159 }
160 int main()
161 {
162 Sample sap[4];
163 InitSampleArray(sap);
164 Record record;
165 InitRecord(sap[0],record);
166 GenerateRule(sap,record);
167 Sample test;
168 test.airTemp = Cool;
169 test.forecast = Change;
170 test.humidity = Normal;
171 test.sky = Rainy;
172 test.water = Cold;
173 test.wind = Strong;
174 Test(test,record);
175 getchar();
176 }
概念学习(Concept Learning),布布扣,bubuko.com
原文:http://www.cnblogs.com/AmitX-moten/p/3712203.html