<prompt> Tekeleza kikokotoo cha msingi kwa kutumia C inayoauni shughuli za kujumlisha, kutoa, kuzidisha na kugawanya kwenye nambari kamili. Kikokotoo kinapaswa kuwa na uwezo wa kuchanganua usemi wa ingizo katika nukuu ya infix k.m., 5 3 2 na kurudisha tokeo sahihi. Tumia kanuni za upangaji zinazolenga kitu ili kuunda kikokotoo.PLINFORMAT  <response>: pamoja na pamoja na pamoja na pamoja na Kikokotoo cha darasa umma: int mahesabu const std::string expression std::istringstream issmaneno; std::vector nambari; std::vector waendeshaji; nambari ya int; char op; wakati iss num namba.sukuma_nyumanambari; ikiwa !iss op itavunjika; wakati !operators.empty precedenceop precedenceoperators.back int kulia namba.nyuma; namba.pop_back; int left numbers.back; namba.pop_back; char curr_op operators.back; waendeshaji.pop_back; namba.push_backfanya kazikushoto, curr_op, kulia; waendeshaji.push_backop; wakati !operators.empty int kulia namba.nyuma; namba.pop_back; int left numbers.back; namba.pop_back; char curr_op operators.back; waendeshaji.pop_back; namba.push_backfanya kazikushoto, curr_op, kulia; nambari za kurudisha.mbele ; Privat: int precedencechar op kubadili op kesi : kesi -: kurudi 1; kesi : kesi : kurudi 2; chaguo-msingi: kurudi -1; int fanya kazi int kushoto, char op, int kulia kubadili op kesi : kurudi kushoto kulia; kesi -: kurudi kushoto - kulia; kesi : kurudi kushoto kulia; kesi : kurudi kushoto kulia; chaguo-msingi: kutupa std::invalid_argumentOpereta batili; ;int main Calculator ya Calculator; std:: usemi wa kamba; std::cout Ingiza usemi katika nukuu ya infix k.m., 5 3 2: ; std::getlinestd::cin, expression; jaribu int result calculator.calculateexpression; std::cout Matokeo: matokeo std::endl; catch const std::invalid_argument e std::cerr Error: e.what std::endl; kurudi 0; 