विषयसूची:

Arduino टचस्क्रीन कैलकुलेटर: 7 कदम
Arduino टचस्क्रीन कैलकुलेटर: 7 कदम

वीडियो: Arduino टचस्क्रीन कैलकुलेटर: 7 कदम

वीडियो: Arduino टचस्क्रीन कैलकुलेटर: 7 कदम
वीडियो: How to make calculator using arduino #shorts 2024, जुलाई
Anonim
Arduino टचस्क्रीन कैलकुलेटर
Arduino टचस्क्रीन कैलकुलेटर

नमस्कार! यह Arduino Uno और TFT LCD शील्ड का उपयोग करके टचस्क्रीन कैलकुलेटर बनाने की एक परियोजना है। मैं अपने होमस्कूल प्रोग्रामिंग कक्षा के लिए अवधारणा के साथ आया था, और इस परियोजना के निर्माण का अनुभव बहुत दिलचस्प था। यह कैलकुलेटर चार सरल गणितीय संचालन (जोड़, घटाव, गुणा और भाग) कर सकता है। यह उन विभाजन उत्तरों के लिए अधिकतम दो दशमलव अंक भी प्रदर्शित करता है जो उनके पास हैं। चलो सही में गोता लगाएँ! इस परियोजना के लिए आपूर्ति नीचे सूचीबद्ध हैं।

आपूर्ति

- Arduino Uno

- २.४ टीएफटी एलसीडी शील्ड (यहां मैंने इसे खरीदा है:

- USB A से B केबल (Arduino को कंप्यूटर से जोड़ने के लिए कॉर्ड)

- Arduino IDE वाला कंप्यूटर स्थापित

- आपको दो लाइब्रेरी भी डाउनलोड करनी होंगी: MCUFRIEND_kbv और टचस्क्रीन। पहला जिसे आप जीथब पर पा सकते हैं (लिंक: https://github.com/prenticedavid/MCUFRIEND_kbv) या आप लाइब्रेरी ज़िप फ़ाइल का उपयोग कर सकते हैं जिसे मैंने नीचे शामिल किया है। दूसरा स्थापना के लिए Arduino लाइब्रेरी मैनेजर में है।

चरण 1: हार्डवेयर कनेक्शन

हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन
हार्डवेयर कनेक्शन

Arduino Uno से टचस्क्रीन शील्ड का कनेक्शन सरल और त्वरित है। आपको बस इतना करना है कि ढाल पर सबसे कम पिन को Arduino पर सबसे कम पिन के साथ पंक्तिबद्ध करें और ढाल को पिन में धकेलें। शीर्ष 5V पिन और पावर साइड पर बिना लेबल वाले पिन में शील्ड से पिन नहीं होने चाहिए, बोर्ड के दूसरी तरफ SCL और SDA लेबल वाले पिन के लिए समान पैरामीटर लागू होते हैं। अब, हम कोड करने के लिए तैयार हैं!

चरण 2: कोड: वैश्विक परिभाषाएँ और सेटअप

#शामिल

एमसीयूएफआरआईEND_kbv tft; // यूएनओ शील्ड्स के लिए वैसे भी हार्ड-वायर्ड।

#शामिल

# परिभाषित करें YP A3

#एक्सएम ए2 परिभाषित करें

# परिभाषित करें वाईएम 9

# परिभाषित करें XP 8

टचस्क्रीन टीएस = टचस्क्रीन (एक्सपी, वाईपी, एक्सएम, वाईएम, 300);

#मिनप्रेशर 10 परिभाषित करें

यह कोड की शुरुआत है, जहां हम पुस्तकालयों (एमसीयूएफआरआईEND_kbv और टचस्क्रीन) को शामिल करते हैं, एक्स और वाई पिन को परिभाषित करते हैं, टचस्क्रीन पैरामीटर सेट करते हैं, और उपयोगकर्ता प्रेस को पंजीकृत करने के लिए Arduino के लिए आवश्यक न्यूनतम दबाव को परिभाषित करते हैं।

इंट आईडी;

int उपयोगकर्ता_चयन;

फ्लोट सेव्ड_नंबर = 0;

फ्लोट टर्म1;

int op_num;

फ्लोट परिणाम;

इंट कर्सरलोक्स = 5;

इंट कर्सर लोकी = 20;

सेटअप से ठीक पहले, हमें कुछ वैश्विक चर सेट करने की आवश्यकता है। आईडी टचस्क्रीन को ऊपर उठाने और चलाने में मदद करती है। user_selection में एक संख्या होती है जो उस कुंजी से मेल खाती है जिसे उपयोगकर्ता टचस्क्रीन दबाते समय चुनता है। save_number वह चर है जिसे हम उपयोगकर्ता प्रविष्टि के बाद स्क्रीन पर प्रिंट करते हैं (इस पर लूप में अधिक)। यह एक फ्लोट है इसलिए यह दशमलव संख्याओं के साथ-साथ पूर्णांक भी धारण कर सकता है। टर्म 1 वह चर है जिसमें एक ऑपरेंड के चयन के बाद समीकरण की पहली संख्या सहेजी जाती है। op_num संकार्य को एक संख्या के रूप में सहेजता है (जोड़ने के लिए 1, घटाव के लिए 2, गुणा के लिए 3 और भाग के लिए 4)। परिणाम वह चर है जो उपयोगकर्ता द्वारा बराबर चिह्न दबाए जाने के बाद स्क्रीन पर मुद्रित होता है। यह भी एक फ्लोट है। कर्सरलोक्स और कर्सर लोकी टचस्क्रीन पर मैपिंग पॉइंट हैं जहां कर्सर को कई बार सेट किया जाता है (यह शीर्ष पर ग्रे बार में स्थित होता है, अन्यथा परिणाम फ़ील्ड के रूप में जाना जाता है)।

व्यर्थ व्यवस्था(){

tft.रीसेट ();

आईडी = tft.readID ();

tft.begin (आईडी);

tft.setRotation(0);

tft.fillScreen (TFT_DARKGREY);

वर्ग ();

संख्याएं ();

tft.setTextSize(3);

tft.setTextColor (TFT_BLUE, TFT_DARKGREY);

}

हमारे सेटअप फ़ंक्शन में सबसे पहले टचस्क्रीन शील्ड (लाइन 1-3) के लिए इनिशियलाइज़ेशन होता है। शील्ड का ओरिएंटेशन tft.setRotation() कमांड का उपयोग करके सेट किया गया है, जिसमें 0 सीधा है। पूरी स्क्रीन tft.fillScreen() कमांड के साथ गहरे भूरे रंग की है, जिसे हम (परिणाम फ़ील्ड को छोड़कर) के शीर्ष पर लिखेंगे। वर्ग () और संख्या () फ़ंक्शन कैलकुलेटर के वर्गों को आकर्षित करते हैं, एक बिसात पैटर्न में वर्गों को काले और सफेद रंग में रंगते हैं, और नीले रंग में वर्गों पर संख्याएं/संचालन लिखते हैं। हम अगले चरण में उन तक पहुंचेंगे। tft.setTextSize() कमांड परिणाम फ़ील्ड के टेक्स्ट आकार को 3 पर सेट करता है, जो एक मध्यम फ़ॉन्ट है। tft.setTextColor() कमांड परिणाम फ़ील्ड के टेक्स्ट रंग को नीले रंग में सेट करता है, जो कि गहरे भूरे रंग के क्षेत्र पर लिखा जाता है।

चरण 3: कोड: लूप

शून्य लूप () {नंबर चयन करें ();

देरी (100);

अगर (user_selection == 16){

;

}अन्यथा{

अगर (उपयोगकर्ता_चयन <10){

सेव्ड_नंबर = सेव्ड_नंबर * 10 + यूजर_सेलेक्शन;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.print(saved_number);

}और अगर (user_selection > 10){

स्विच (user_selection){

मामला 11:

op_num = 1;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("+");

टर्म 1 = सेव्ड_नंबर;

सहेजा गया_नंबर = 0;

टूटना;

मामला 12:

op_num = 2;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("-");

टर्म 1 = सेव्ड_नंबर;

सहेजा गया_नंबर = 0;

टूटना;

मामला 13:

op_num = 3;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("एक्स");

टर्म 1 = सेव्ड_नंबर;

सहेजा गया_नंबर = 0;

टूटना;

मामला 14:

op_num = 4;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("/");

टर्म 1 = सेव्ड_नंबर;

सहेजा गया_नंबर = 0;

टूटना;

मामला 15:

सहेजा गया_नंबर = 0;

टर्म 1 = 0;

op_num = 0;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("");

टूटना;

}

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

यह चबाने के लिए बहुत कुछ है, इसलिए मैं समझाता हूँ कि ऊपर क्या है। हम नंबर सेलेक्ट () फ़ंक्शन को कॉल करके शुरू करते हैं, जो टचस्क्रीन पर प्रत्येक वर्ग को एक नंबर प्रदान करता है। जब कोई उपयोगकर्ता उन वर्गों में से किसी एक को दबाता है, तो फ़ंक्शन user_selection चर को वर्ग की संख्या पर सेट करता है। पहला यदि कथन केवल लूप के माध्यम से चलाना है यदि एक वैध उपयोगकर्ता चयन किया गया है। यदि ऐसा है, तो अगला यदि कथन पूछता है कि क्या user_selection में १० से कम संख्या सहेजी गई है (संख्या ०-९)। यदि ऐसा होता है, तो save_number को 10 से गुणा किया जाता है और user_selection की संख्या को save_number में जोड़ दिया जाता है, जो कि टचस्क्रीन पर परिणाम फ़ील्ड में मुद्रित होता है। यदि ऐसा नहीं होता है, तो अगला यदि कथन पूछता है कि क्या user_selection में 10 से अधिक संख्या सहेजी गई है (संचालन संख्या: 11 के लिए +, 12 के लिए -, 13 के लिए X, 14 के लिए /, और 15 स्पष्ट स्क्रीन वर्ग के लिए) एक स्विच फ़ंक्शन प्रत्येक मामले का ख्याल रखता है (user_selection द्वारा निर्धारित)। चर op_num को एक संख्या दी जाती है जो उस ऑपरेंड से मेल खाती है जिसे चुना गया था (1 के लिए +, 2 के लिए -, 3 के लिए X, और 4 के लिए /)। सेव्ड_नंबर में मान को वेरिएबल टर्म 1 में सेव किया जाता है ताकि सेव्ड_नंबर वेरिएबल का उपयोग समीकरण के दूसरे भाग के लिए किया जा सके। परिणाम फ़ील्ड में किसी भी संख्या को साफ़ करने के साथ-साथ ऑपरेंड प्रतीक स्क्रीन पर मुद्रित होता है। एकमात्र अपवाद स्पष्ट स्क्रीन वर्ग है, जो सभी गणना चर को रीसेट करता है और उस पर किसी भी चीज़ के परिणाम फ़ील्ड को साफ़ करता है।

}अन्यथा{

स्विच (op_num) {

मामला एक:

परिणाम = टर्म 1 + सेव्ड_नंबर;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.print (डबल (परिणाम));

टूटना;

मामला 2:

परिणाम = टर्म1 - सेव्ड_नंबर;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.print (डबल (परिणाम));

टूटना;

मामला 3:

परिणाम = टर्म 1 * सेव्ड_नंबर;

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.print (डबल (परिणाम));

टूटना;

मामला 4:

परिणाम = फ्लोट (टर्म 1) / फ्लोट (सेव्ड_नंबर);

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट (परिणाम);

टूटना;

}

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

सहेजा गया_नंबर = परिणाम;

टर्म 1 = 0;

op_num = 0;

देरी (1000);

}

}

}

लूप का अंतिम भाग उपयोगकर्ता द्वारा समान चिह्न (user_selection == 10) का चयन करने की घटना से संबंधित है। एक अन्य स्विच फ़ंक्शन चार गणितीय कार्यों (op_num द्वारा निर्धारित) के माध्यम से काम करता है। जोड़ केस (केस 1) टर्म 1 और सेव्ड_नंबर को एक साथ जोड़ता है और नंबर को रिजल्ट वेरिएबल में सेव करता है। परिणाम परिणाम फ़ील्ड में डबल के रूप में मुद्रित होता है। घटाव केस (केस 2) टर्म 1 से सहेजे गए_नंबर को घटाता है और संख्या को परिणाम चर में सहेजता है। परिणाम परिणाम फ़ील्ड में डबल के रूप में मुद्रित होता है। गुणन केस (केस 3) टर्म 1 को सेव्ड_नंबर से गुणा करता है और नंबर को रिजल्ट वेरिएबल में सेव करता है। परिणाम परिणाम फ़ील्ड में डबल के रूप में मुद्रित होता है। डिवीजन केस (केस 4) टर्म 1 को सेव्ड_नंबर द्वारा एक साथ विभाजित करता है और संख्या को परिणाम चर में सहेजता है। परिणाम परिणाम फ़ील्ड में एक फ्लोट के रूप में मुद्रित होता है (क्योंकि विभाजन के उत्तर दशमलव संख्या हो सकते हैं)। किसी संख्या, संकार्य, या परिणाम के स्क्रीन पर मुद्रित होने की घटना के बाद, कर्सर रीसेट हो जाता है, सहेजे गए_नंबर को पिछले परिणाम पर सेट कर दिया जाता है, और टर्म 1 और op_num रीसेट कर दिया जाता है।

कुछ नोट्स: दशमलव बिंदु वर्ग की कमी के कारण उपयोगकर्ता कैलकुलेटर में दशमलव संख्या दर्ज नहीं कर सकता है। साथ ही, उपयोगकर्ता एक समय में केवल एक समीकरण ही कर सकता है। आप किसी परिणाम की गणना नहीं कर सकते हैं और फिर उस परिणाम को जोड़/घटाना/गुणा/विभाजित कर सकते हैं। संख्या चयन () फ़ंक्शन में, एक फ़ंक्शन होता है जो परिणाम मुद्रित होने के बाद स्क्रीन को साफ़ करता है यदि उपयोगकर्ता ने किसी अन्य वर्ग को दबाया है।

चरण 4: कोड: वर्ग फ़ंक्शन

शून्य वर्ग (){

// काले और सफेद वर्ग प्रत्येक पंक्ति पर वैकल्पिक होते हैं और पहली और तीसरी पंक्तियों में दूसरी और चौथी पंक्तियों की तुलना में विपरीत पैटर्न होता है

tft.fillRect (0, 60, 60, 65, TFT_BLACK); // वर्गों की पहली पंक्ति शुरू होती है, काले से सफेद tft.fillRect (६०, ६०, ६०, ६५, TFT_WHITE);

tft.fillRect (120, 60, 60, 65, TFT_BLACK);

tft.fillRect (180, 60, 60, 65, TFT_WHITE); // वर्गों की पहली पंक्ति समाप्त होती है

tft.fillRect(0, 125, 60, 65, TFT_WHITE); // वर्गों की दूसरी पंक्ति शुरू होती है, सफेद से काली tft.fillRect(60, 125, 60, 65, TFT_BLACK);

tft.fillRect (120, 125, 60, 65, TFT_WHITE);

tft.fillRect (180, 125, 60, 65, TFT_BLACK); // वर्गों की दूसरी पंक्ति समाप्त होती है

tft.fillRect(0, 190, 60, 65, TFT_BLACK); // वर्गों की तीसरी पंक्ति शुरू होती है, काले से सफेद tft.fillRect(60, 190, 60, 65, TFT_WHITE);

tft.fillRect (120, 190, 60, 65, TFT_BLACK);

tft.fillRect (180, 190, 60, 65, TFT_WHITE); // वर्गों की तीसरी पंक्ति समाप्त होती है

tft.fillRect(0, 255, 60, 65, TFT_WHITE); // चौकों की चौथी पंक्ति शुरू होती है, सफेद से काली tft.fillRect(60, 255, 60, 65, TFT_BLACK);

tft.fillRect (120, 255, 60, 65, TFT_WHITE);

tft.fillRect (180, 255, 60, 65, TFT_BLACK); // चौकों की चौथी पंक्ति समाप्त होती है

}

वर्ग() फ़ंक्शन बहुत सीधा है। tft.fillRect(X1, Y1, X2, Y2, TFT_COLOR) कमांड इसे दिए गए मापदंडों के अनुसार एक आयत बनाता है, जो x और y की पहली स्थिति, x और y की दूसरी स्थिति और आयत से भरा रंग है।. यह फ़ंक्शन वर्गों की सभी चार पंक्तियों (तकनीकी रूप से आयत) को खींचता है और प्रत्येक वर्ग को उसमें दिए गए रंग से भर देता है।

चरण 5: कोड: संख्या कार्य

शून्य संख्या () {

tft.setTextColor (TFT_BLUE); // नंबर/कैरेक्टर कलर को ब्लू पर सेट करता है

tft.setTextSize(5); // संख्या/वर्ण आकार को 5. पर सेट करता है

tft.setCursor(18, 75); // संख्याओं/वर्णों की पहली पंक्ति के लिए कर्सर सेट करता है

tft.print ("7 8 9 /"); // संख्याओं / वर्णों की पहली पंक्ति को प्रिंट करता है

tft.setCursor(18, 140); // संख्याओं/वर्णों की दूसरी पंक्ति के लिए कर्सर सेट करता है

tft.print ("4 5 6 एक्स"); // संख्याओं / वर्णों की दूसरी पंक्ति को प्रिंट करता है

tft.setCursor(18, 205); // संख्याओं/वर्णों की तीसरी पंक्ति के लिए कर्सर सेट करता है

tft.print ("1 2 3 -"); // संख्याओं / वर्णों की तीसरी पंक्ति को प्रिंट करता है

tft.setCursor(18, 270); // संख्याओं/वर्णों की चौथी पंक्ति के लिए कर्सर सेट करता है

tft.print ("सी 0 = +"); // संख्याओं / वर्णों की चौथी पंक्ति को प्रिंट करता है

}

संख्या () फ़ंक्शन भी सीधा है। पहली दो पंक्तियों में टेक्स्ट का आकार बड़ा और रंग नीला हो गया है। tft.setCursor() कमांड कर्सर को प्रत्येक पंक्ति में उस स्थिति पर सेट करता है जहां से संख्याओं का लेखन शुरू होता है। फिर tft.print() कमांड वर्गों पर संख्याओं/वर्णों को प्रिंट करता है।

चरण 6: कोड: संख्या चयन समारोह

शून्य संख्या चुनें () {

TSPoint p = ts.getPoint ();

पिनमोड (एक्सएम, आउटपुट);

पिनमोड (वाईपी, आउटपुट);

अगर (पी.जेड> मिनप्रेशर) {

p.x = मानचित्र (p.x, २५०, ८४५, ०, २३९);

पी.वाई = नक्शा (पी.वाई, 245, 860, 0, 319);

अगर (परिणाम!= 0){

परिणाम = 0;

सहेजा गया_नंबर = 0;

tft.print ("स्पष्ट मान");

देरी (500);

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

tft.प्रिंट ("");

tft.setCursor (कर्सर लोकएक्स, कर्सर लोकी);

}

संख्या चयन () फ़ंक्शन को शुरू करने के लिए, हम ts.getPoint() कमांड के साथ टचस्क्रीन से उपयोगकर्ता इनपुट मांगते हैं। एक बार वह डेटा एकत्र हो जाने के बाद, हम यह देखने के लिए जांच करते हैं कि क्या न्यूनतम दबाव पार हो गया है (या, दूसरे शब्दों में, यदि उपयोगकर्ता ने टचस्क्रीन पर कहीं दबाया है)। यदि ऐसा है, तो x और y निर्देशांक कार्टेशियन निर्देशांक से टचस्क्रीन-विशिष्ट निर्देशांक में मैप किए जाते हैं। (0, 0) टचस्क्रीन का ऊपरी बाएँ हाथ का कोना है, जिसमें x अक्ष पार जा रहा है और y अक्ष नीचे जा रहा है। अगला भाग यह देखने के लिए जाँच करता है कि क्या परिणाम में कोई संख्या सहेजी गई है। यदि वहाँ है, तो परिणाम और सहेजे गए_नंबर 0 पर रीसेट हो जाते हैं। "स्पष्ट मान" संदेश परिणाम फ़ील्ड पर मुद्रित होता है, और स्क्रीन को कर्सर के साथ अपनी प्रारंभिक स्थिति में वापस साफ़ कर दिया जाता है।

अगर (पी.वाई 60){// वर्गों की पहली पंक्ति

अगर (पीएक्स <60)

उपयोगकर्ता_चयन = 7;

और अगर (पी.एक्स <120)

उपयोगकर्ता_चयन = 8;

और अगर (पी.एक्स <180)

उपयोगकर्ता_चयन = 9;

अन्य उपयोगकर्ता_चयन = 14;

}else if (p.y 125){//वर्गों की दूसरी पंक्ति

अगर (पीएक्स <60)

उपयोगकर्ता_चयन = 4;

और अगर (पी.एक्स <120)

उपयोगकर्ता_चयन = 5;

और अगर (पी.एक्स <180)

उपयोगकर्ता_चयन = 6;

अन्य उपयोगकर्ता_चयन = १३;

}else if (p.y 190){// वर्गों की तीसरी पंक्ति

अगर (पीएक्स <60)

उपयोगकर्ता_चयन = 1;

और अगर (पी.एक्स <120)

उपयोगकर्ता_चयन = 2;

और अगर (पी.एक्स <180)

उपयोगकर्ता_चयन = 3;

अन्य उपयोगकर्ता_चयन = 12;

}else if (p.y>255){// चौकों की चौथी पंक्ति

अगर (पीएक्स <60)

user_selection = १५;

और अगर (पी.एक्स <120)

उपयोगकर्ता_चयन = 0;

और अगर (पी.एक्स <180)

उपयोगकर्ता_चयन = 10;

अन्य उपयोगकर्ता_चयन = 11;

}

}अन्यथा{

उपयोगकर्ता_चयन = 16; // user_selection 16 पर सेट है (कुछ भी परिवर्तनशील नहीं)

}

}

यह वह हिस्सा है जो निर्धारित करता है कि कौन सा बटन चुना गया है। वर्गों की शीर्ष पंक्ति से शुरू होकर और निचली पंक्ति के साथ समाप्त होने पर, Arduino यह देखता है कि स्क्रीन वास्तव में कहाँ दबाई गई थी। यह तब वर्ग को एक संख्या प्रदान करता है और उस संख्या को user_selection में सहेजता है। संख्या 0-9 संख्या वर्गों के अनुरूप है, संख्या 11-15 संकार्य वर्ग और स्पष्ट वर्ग के अनुरूप है, और संख्या 10 बराबर चिह्न वर्ग से मेल खाती है। यदि कोई वर्ग नहीं चुना गया है, तो user_selection 16 पर सेट है, जो लूप को फिर से शुरू कर देगा (लूप फ़ंक्शन देखें)।

चरण 7: अपनी तैयार परियोजना का आनंद लें

ये लो! अब आपके पास एक टचस्क्रीन कैलकुलेटर है जो जोड़, घटाव, गुणा और भाग कर सकता है। इस परियोजना ने पूरी तरह से बदल दिया जिस तरह से मुझे लगा कि एक कैलकुलेटर काम करता है। जैसा कि मैं इस परियोजना पर काम कर रहा था, मुझे याद है कि मैंने कक्षा में अपने प्रशिक्षक से कहा था, "मैं कैलकुलेटर को फिर कभी उसी तरह नहीं देखूंगा!" जब आप अपने विचार का अनुकरण करने की कोशिश कर रहे कंप्यूटर के पीछे होते हैं, तो एक उपयोगकर्ता के रूप में आप जिन कार्यों को आसान समझते हैं, वे कुछ कठिन होते हैं। मुझे आशा है कि आपने परियोजना का आनंद लिया है, और मुझे आशा है कि कैलकुलेटर कैसे काम करता है, इस बारे में आपकी मानसिकता भी बदल गई है!

आपकी सुविधा के लिए यहां पूरा कोड है। यह टिप्पणियों से भरा है, इसलिए यदि आपको कोई समस्या है तो उन्हें आपको दिखाना चाहिए कि प्रत्येक पंक्ति क्या करती है।

सिफारिश की: