流程图:
https://blog.csdn.net/weixin_39644536/article/details/97019752?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.channel_param
#include<iostream> #include<vector> #include<map> using namespace std; vector<string> str{ "暗斑点","长脖子","长腿","奶","蹄" }; map<int, string> rule { {1,"哺乳动物"}, //r1 {2,"哺乳动物"}, //r2 {3,"鸟"}, //r3 {4,"鸟"}, //r4 {5,"肉食动物"}, //r5 {6,"肉食动物"}, //r6 {7,"有蹄类动物"}, //r7 {8,"有蹄类动物"}, //r8 {9,"金钱豹"}, //r9 {10,"虎"}, //r10 {11,"长颈鹿"}, //r11 {12,"斑马"}, //r12 {13,"鸵鸟"}, //r13 {14,"企鹅"}, //r14 {15,"信天翁"} //r15 }; bool noHave(string s) { for (auto x : str) if (x == s) { return 0; } return 1; } bool Have(string s) { for (auto x : str) if (x == s) { return 1; } return 0; } int main() { for (auto r : rule) { if (r.first == 1) { if (Have("毛发") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 2) { if (Have("奶") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 3) { if (Have("毛发") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 4) { if (Have("会飞") && Have("会下蛋") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 5) { if (Have("吃肉") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 6) { if (Have("犬齿") && Have("爪") && Have("眼盯前方") && (r.first == 1)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 7) { if (Have("哺乳动物") && Have("蹄") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 8) { if (Have("哺乳动物") && Have("反刍动物") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 9) { if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("暗斑点") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 10) { if (Have("哺乳动物") && Have("食肉动物") && Have("黄褐色") && Have("黑色条纹") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 11) { if (Have("有蹄类动物") && Have("长脖子") && Have("长腿") && Have("暗斑点") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 12) { if (Have("有蹄类动物") && Have("黑色条纹") && Have("") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 13) { if (Have("鸟") && Have("长脖子") && Have("长腿") && Have("不会飞") && Have("黑白二色") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 14) { if (Have("鸟") && Have("会游泳") && Have("不会飞") && Have("黑白二色") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } if (r.first == 15) { if (Have("鸟") && Have("善飞") && noHave(r.second)) { str.push_back(r.second); cout << "规则r" << r.first << " 加入: " << r.second << endl; } } } cout << "综合数据库内容: "; for (auto x : str) cout << x << " "; cout << endl; return 0; }[执行完成,耗时:0 ms]