#include <iostream>
#include <string>
#include <vector>
using namespace std;
void runAssessment(string target) {
string cat, risk, impact, suggestion;
// --- 环境化学专业级识别矩阵 ---
// 1. 有害垃圾 (新增化学试剂:酸、碱、汞试剂、苯、氯仿等)
if (target.find("电池") != string::npos || target.find("药") != string::npos ||
target.find("汞") != string::npos || target.find("酸") != string::npos ||
target.find("碱") != string::npos || target.find("苯") != string::npos ||
target.find("氯仿") != string::npos || target.find("试剂") != string::npos) {
cat = "有害垃圾 (Hazardous / Chemical Waste)";
risk = "强腐蚀性、剧毒或具有潜在致癌性的化学物质。";
impact = "可能改变土壤pH值,或通过挥发造成大气光化学烟雾污染,具有高环境持久性。";
suggestion = "严格分类!严禁倒入下水道!需装入专用化学废液桶,分类暂存。";
}
// 2. 可回收物 (维持原有逻辑,增加金属实验室耗材)
else if (target.find("瓶") != string::npos || target.find("纸") != string::npos ||
target.find("塑料") != string::npos || target.find("铝") != string::npos ||
target.find("金属") != string::npos || target.find("罐") != string::npos) {
cat = "可回收物 (Recyclable)";
risk = "可再利用的聚合物或无机金属材料。";
impact = "资源化利用可减少生产过程中的‘碳足迹’及矿产资源枯竭风险。";
suggestion = "确保无化学残留后投放至蓝色桶。";
}
// 3. 厨余垃圾 (生物质)
else if (target.find("皮") != string::npos || target.find("菜") != string::npos ||
target.find("果") != string::npos || target.find("剩") != string::npos) {
cat = "厨余垃圾 (Food Waste)";
risk = "易降解有机碳源。";
impact = "填埋产生的渗滤液COD极高,建议通过生物处理降低环境负荷。";
suggestion = "投放至绿色桶。";
}
// 4. 其他垃圾 (增加实验室碎玻璃、废弃纸巾)
else if (target.find("烟") != string::npos || target.find("陶瓷") != string::npos ||
target.find("纸巾") != string::npos || target.find("碗") != string::npos ||
target.find("碎玻璃") != string::npos) {
cat = "其他垃圾 (Residual)";
risk = "性质相对稳定的无机残留物。";
impact = "无法自然降解,主要通过末端焚烧实现无害化。";
suggestion = "投放至灰色桶(碎玻璃请包裹好防止割伤)。";
}
else {
cat = "未知/待评估物质";
risk = "需进行理化性质鉴定。";
impact = "建议参考该物质的 MSDS (化学品安全技术说明书)。";
suggestion = "暂按危险废弃物预处理。";
}
cout << "\n[鉴定结论]: " << cat << endl;
cout << "------------------------------------------" << endl;
cout << "【化学风险】: " << risk << endl;
cout << "【环境影响报告】: " << impact << endl;
cout << "【专业处理建议】: " << suggestion << endl;
}
int main() {
string userInput;
cout << "Environmental Chemistry: Hazardous Substance Manager v3.0" << endl;
cout << "Ready for Chemical Identification..." << endl;
if (!(cin >> userInput)) userInput = "未知";
runAssessment(userInput);
return 0;
}