我正在尝试在android中使用确定性因子方法构建项目专家系统,但是在显示用户输入的最高值时遇到了麻烦。
这是我的代码:
public void diagn() {
for (int i = 0; i < listCheckBox.size(); i++) {
if (listCheckBox.get(i).isChecked()) {
idGejala.add(listGejala.get(i).getId_gejala());
}
}
for (int i = 0; i < idGejala.size(); i++) {
Cursor kursor = db.getNilaiCFdanIDpenyakit(idGejala.get(i));
while (!kursor.isAfterLast()) {
Kaidah kaidahku = new Kaidah();
kaidahku.setId_penyakit(kursor.getString(0));
kaidahku.setNilai_CF(kursor.getDouble(1));
kaidah.add(kaidahku);
kursor.moveToNext();
}
}
Penyakit penyakit;
for (int i = 0; i < listPenyakit.size(); i++) {
penyakit = listPenyakit.get(i);
CfPenyakit cfpenyakit = new CfPenyakit();
cfpenyakit.setId_penyakit(penyakit.getId_penyakit());
cfpenyakit.setNama_penyakit(penyakit.getNama_penyakit());
for (int j = 0; j < kaidah.size(); j++) {
Kaidah kaidahku = kaidah.elementAt(j);
if (penyakit.getId_penyakit().equals(kaidahku.getId_penyakit())) {
cfpenyakit.addCF(kaidahku.getNilai_CF());
}
}
if (cfpenyakit.getFinalCF() > 0)
cf.add(cfpenyakit);
}
String[] penyakitku = new String[cf.size()];
String[] cfku = new String[cf.size()];
String[] idPenyakit = new String[cf.size()];
for (int i = 0; i < cf.size(); i++) {
CfPenyakit data = cf.elementAt(i);
penyakitku[i] = data.getNama_penyakit();
idPenyakit[i] = data.getId_penyakit();
double orim = (data.getFinalCF()*100);
cfku[i] = Double.toString(data.getFinalCF() * 100);
cfku[i] = String.format("%.2f", orim) + "%";
}
db.close();
Intent intent = new Intent(this, Diag2.class);
intent.putExtra("penyakit", penyakitku);
intent.putExtra("cf", cfku);
intent.putExtra("idPenyakit", idPenyakit);
startActivity(intent);
finish();
}