मैं प्रोग्रामिंग में नया हूं और अपनी पहली बड़ी समस्या को हल करने और अपना पहला बड़ा कार्यक्रम लिखने की कोशिश कर रहा हूं। मैंने सीखने के लिए कोड के ओपन सोर्स उदाहरणों की तलाश की है, लेकिन अभी तक मैंने केवल उन भाषाओं में कोड पाया है जिन्हें मैं पूरी तरह से नहीं समझता या जो मेरे लिए वास्तव में सीखने के लिए संबंधित लेकिन फिर भी बहुत दूर की चीजें हैं। मुझे यहां कुछ वैचारिक कदम उठाने में परेशानी हो रही है।
मैं निर्माण करने, संशोधित करने और बाद में छोटे कार्बनिक अणुओं का प्रतिनिधित्व करने के लिए सॉफ्टवेयर का एक सरल टुकड़ा बनाना चाहता हूं। यह मुख्य रूप से सीखने का अभ्यास है। एक उपयोगकर्ता SMILES स्ट्रिंग देगा या स्टार्टर अणुओं के एक मूल सेट से चुन सकता है, और फिर उस अणु पर या तो रेखांकन या पाठ इनपुट सिंटैक्स के माध्यम से बना सकता है। हालाँकि, मैं जटिलता के उस बिंदु पर भी नहीं हूँ। मैं पूरी तरह से समझ भी नहीं सकता कि अणुओं को संग्रहीत करने के लिए कक्षाएं / वस्तु कैसे बनाऊं। इसलिए, मेरा प्रश्न पूरी तरह से: मैं जानकारी के सभी स्तरों को बनाए रखते हुए अणुओं का निर्माण करने के लिए कक्षाओं / वस्तुओं का उपयोग कैसे करूं, और मुझे किन वस्तुओं के लिए डेटा संरचनाओं का उपयोग करना चाहिए? और, क्या वस्तुएं अन्य वस्तुओं के लिए विशेषता हो सकती हैं?
यहाँ मेरी अब तक की विचारधारा है: मैं एक "अणु" वर्ग, फिर एक "परमाणु" वर्ग / उपवर्ग और एक "बॉन्ड" उपवर्ग, और शायद एक "कार्यात्मक समूह" उपवर्ग भी सोच रहा था। यह शुरू करने के लिए एक अच्छी जगह की तरह लगता है, लेकिन शायद मैं OOP को गलत समझ रहा हूं और यह बुरा है। लेकिन तब मेरी समस्या वास्तव में भ्रमित हो जाती है (मेरे लिए)। भले ही मेरे पास इन सभी अवधारणाओं / विचारों / वर्गों हैं, मैं पूरी तरह से समझ नहीं पाता कि अणु का प्रतिनिधित्व करने के लिए डेटास्ट्रक्चर क्या आवश्यक है। परमाणुओं की एक सूची एक अच्छी बात होगी। क्या वह सूची एटम वस्तुओं की सूची हो सकती है? मुझे कनेक्टिविटी को स्टोर करने का एक तरीका भी होना चाहिए। एक 2 डी मैट्रिक्स एक अच्छा विचार की तरह लगता है, मैट्रिक्स पदों में पूर्णांक के रूप में बांड क्रम के साथ।
इस बिंदु पर मैं कार्य से अभिभूत होने लगा हूं। क्या मैं अब तक जो कुछ भी कर रहा हूं उससे सब समझ में आता है? इसके शीर्ष पर एक डिस्प्ले / ड्राइंग पहलू को संलग्न करने का मतलब यह हो सकता है कि मुझे इन चीजों को फिर से लिखने / फिर से तैयार करने की आवश्यकता है, लेकिन मैं सिर्फ एक बिंदु पर पहुंचने की कोशिश कर रहा हूं जहां मैं प्रासंगिक डेटा के साथ कम से कम अणुओं को स्टोर कर सकता हूं और फिर पहुंच सकता हूं उस डेटा को जांच / संशोधित करने के लिए। मैं पायथन में ऐसा करने के बारे में सोच रहा था, इसलिए कोड / कक्षाएं शायद कुछ इस तरह दिखेंगी : http://pastebin.com/uUi1BMzr
शायद यह वास्तव में स्टैकऑवरफ्लो के लिए एक प्रोग्रामिंग प्रश्न है, लेकिन मैंने सोचा कि यह यहां जाने के लिए पर्याप्त विशिष्ट था। किसी भी सहायता की बहुत सराहना की जाएगी, भले ही आप सिर्फ यह इंगित करें कि मैंने कहां वैचारिक ब्लंडर किया है। अग्रिम में धन्यवाद।