<prompt> Anzisha programu ya C inayoiga mashine rahisi ya ATM, inayowaruhusu watumiaji kuweka, kutoa na kuangalia salio lao. Programu inapaswa kutumia kanuni zinazolenga kitu na kuingiliana na hifadhidata ya SQLite ili kuhifadhi maelezo ya mtumiaji.PLINFORMAT  <response>: pamoja na pamoja na ATM.hint main ATM ya ATM; atm.run; kurudi 0;ifndef ATM_Hfafanua ATM_HATM ya darasa umma: kukimbia utupu ;;endif ATM_Hpamoja na pamoja na ATM.hpamoja na Mtumiaji.hpamoja na Database.hATM batili::run Hifadhidata dbatm.db; chaguo la ndani; wakati kweli std::cout nKaribu kwenye Mashine Rahisi ya ATMn; std::cout 1. Amanan; std::cout 2. Toan; std::cout 3. Angalia Mizanin; std::cout 4. Tokan; std::cout Ingiza chaguo lako: ; std::cin chaguo; kubadili chaguo kesi 1: db.amana; mapumziko; kesi 2: db.toa; mapumziko; kesi 3: db.checkBalance; mapumziko; kesi 4: kutoka 0; chaguo-msingi: std::cout Chaguo batili. Tafadhali jaribu tena.n; ifndef DATABASE_Hfafanua DATABASE_Hpamoja na pamoja na sqlite3.hHifadhidata ya darasa umma: Hifadhidata waziconst std::string filename; Hifadhidata; amana batili ; utupu kujiondoa ; hundi batiliMizani;Privat: sqlite3 db;;endif DATABASE_Hpamoja na pamoja na Database.hstatic int callbackbatili data, int argc, char argv, char azColName kwa int i 0; i kiasi; const char sql WEKA NDANI YA WATUMIAJI USAWA THAMANI ?;; sqlite3_stmt stmt; sqlite3_prepare_v2db, sql, -1, stmt, nullptr; sqlite3_bind_doublestmt, 1, kiasi; ikiwa sqlite3_stepstmt ! SQLITE_DONE std::cerr Hitilafu ya SQL wakati wa kuwekan; nyengine std::cout Kiasi kilichowekwa kwa mafanikio.n; sqlite3_finalizestmt;Hifadhidata utupu::withdraw kiasi mara mbili; std::cout Ingiza kiasi cha kutoa: ; std::cin kiasi; Unaweza kuongeza mantiki zaidi hapa ili kuangalia usawa wa kutosha kabla ya kujiondoa const char sql SASISHA WATUMIAJI WEKA USAWAZIKO USAWAZIKO - ? WAPI ID CHAGUA MAXKITAMBULISHO KUTOKA KWA WATUMIAJI;; sqlite3_stmt stmt; sqlite3_prepare_v2db, sql, -1, stmt, nullptr; sqlite3_bind_doublestmt, 1, kiasi; ikiwa sqlite3_stepstmt ! SQLITE_DONE std::cerr Hitilafu ya SQL wakati wa kujiondoan; nyengine std::cout Kiasi kimetolewa kwa mafanikio.n; sqlite3_finalizestmt;Hifadhidata tupu::checkBalance const char sql CHAGUA SAWAZI KUTOKA KWA WATUMIAJI AMBAPO ID CHAGUA MAXKITAMBULISHO KUTOKA KWA WATUMIAJI;; char errMsg nullptr; ikiwa sqlite3_execdb, sql, callback, nullptr, errMsg ! SQLITE_OK std::cerr SQL error: errMsg n; sqlite3_freeerrMsg; 