ฉันยังใหม่กับการเขียนโปรแกรมและฉันพยายามที่จะแก้ปัญหาใหญ่ครั้งแรกของฉันและเขียนโปรแกรมใหญ่ครั้งแรกของฉัน ฉันได้ค้นหาตัวอย่างโค้ดโอเพนซอร์ซที่จะเรียนรู้ แต่จนถึงขณะนี้มีเพียงพบรหัสในภาษาที่ฉันไม่เข้าใจอย่างสมบูรณ์หรือสิ่งที่เกี่ยวข้อง แต่ยังห่างไกลเกินไปที่ฉันจะเรียนรู้จากจริง ๆ ฉันมีปัญหาในการทำตามขั้นตอนบางอย่างที่นี่
ฉันต้องการสร้างซอฟต์แวร์ง่ายๆเพื่อสร้างดัดแปลงและต่อมาเป็นตัวแทนของโมเลกุลอินทรีย์ขนาดเล็ก นี่คือการออกกำลังกายการเรียนรู้เป็นหลัก ผู้ใช้จะให้สตริง SMILES หรือเลือกจากชุดโมเลกุลเริ่มต้นพื้นฐานและจากนั้นสามารถสร้างบนโมเลกุลนั้นทั้งแบบกราฟิกหรือผ่านไวยากรณ์อินพุตข้อความ อย่างไรก็ตามฉันยังไม่ถึงจุดที่ซับซ้อน ฉันไม่เข้าใจอย่างถ่องแท้ถึงวิธีการสร้างคลาส / วัตถุเพื่อจัดเก็บโมเลกุล ดังนั้นคำถามของฉันอย่างชัดเจน: ฉันจะใช้คลาส / วัตถุเพื่อสร้างโมเลกุลในขณะที่เก็บข้อมูลในทุกระดับได้อย่างไรและฉันควรใช้โครงสร้างข้อมูลใดเป็นคุณลักษณะของวัตถุใด และวัตถุสามารถเป็นคุณลักษณะของวัตถุอื่นได้หรือไม่?
นี่คือความคิดของฉันจนถึงตอนนี้ฉันกำลังคิดว่าจะมีคลาส "โมเลกุล" จากนั้นก็เป็นคลาส / คลาสย่อย "อะตอม" และคลาสย่อย "บอนด์" และอาจเป็นคลาสย่อย "FunctionalGroup" ด้วย ดูเหมือนจะเป็นจุดเริ่มต้นที่ดี แต่บางทีฉันอาจเข้าใจผิดว่า OOP และนี่เป็นสิ่งที่ไม่ดี แต่แล้วปัญหาของฉันก็ทำให้สับสน (สำหรับฉัน) แม้ว่าฉันจะมีแนวคิด / ความคิด / ชั้นเรียนเหล่านี้ทั้งหมด แต่ฉันไม่เข้าใจอย่างเต็มที่ว่าโครงสร้างข้อมูลใดที่จำเป็นสำหรับการแทนโมเลกุล รายการของอะตอมน่าจะดี รายการนั้นอาจเป็นรายการวัตถุ Atom หรือไม่ ฉันจะต้องมีวิธีในการจัดเก็บการเชื่อมต่อ เมทริกซ์ 2D ดูเหมือนจะเป็นความคิดที่ดีโดยมีการสั่งซื้อพันธบัตรเป็นจำนวนเต็มในตำแหน่งเมทริกซ์
เมื่อมาถึงจุดนี้ฉันเริ่มรู้สึกสับสนกับภารกิจ ทุกสิ่งที่ฉันทำจนถึงทำให้รู้สึก? การแนบจอแสดงผล / การวาดภาพด้านบนอาจหมายความว่าฉันต้องเขียนใหม่ / ทำใหม่สิ่งเหล่านี้มากมาย แต่ฉันแค่พยายามไปยังจุดที่ฉันสามารถจัดเก็บโมเลกุลอย่างน้อยด้วยข้อมูลที่เกี่ยวข้องแล้วเข้าถึง ข้อมูลนั้นเพื่อตรวจสอบ / แก้ไข ฉันกำลังคิดที่จะทำสิ่งนี้ใน Python ดังนั้นโค้ด / คลาสอาจมีลักษณะเช่นนี้: http://pastebin.com/uUi1BMzr
บางทีนี่อาจเป็นคำถามการเขียนโปรแกรมสำหรับ StackOverflow แต่ฉันคิดว่ามันเจาะจงพอที่จะไปที่นี่ ความช่วยเหลือใด ๆ จะได้รับการชื่นชมอย่างมากแม้ว่าคุณเพิ่งจะชี้ให้เห็นว่าฉันได้ทำผิดพลาดทางความคิด ขอบคุณล่วงหน้า.