私はプログラミングが初めてで、最初の大きな問題を解決し、最初の大きなプログラムを作成しようとしています。私は学習するコードのオープンソースの例を探しましたが、これまでのところ、私が完全に理解していない言語、または関連するがまだあまりにも遠い言語のコードのみを見つけました。ここでいくつかの概念的な手順を実行するのに問題があります。
私は、小さな有機分子を構築し、修正し、後で表現するための簡単なソフトウェアを作りたいです。これは主に学習課題です。ユーザーは、SMILES文字列を指定するか、スターター分子の基本セットから選択し、グラフィカルに、またはテキスト入力構文を介してその分子を構築できます。しかし、私はまだ複雑さのその時点ではありません。クラス/オブジェクトを作成して分子を保存する方法を完全に理解することすらできません。だから、私の質問は簡潔に:すべてのレベルの情報を保持しながら分子を構築するためにクラス/オブジェクトをどのように使用し、どのオブジェクトの属性としてどのデータ構造を使用する必要がありますか?また、オブジェクトを他のオブジェクトの属性にすることはできますか?
これまでの私の思考の流れは次のとおりです。「分子」クラス、次に「アトム」クラス/サブクラス、「ボンド」サブクラス、そしておそらく「FunctionalGroup」サブクラスも考えていました。始めるには良い場所のように思えますが、OOPを誤解しているのかもしれませんが、これは悪いことです。しかし、その後、私の問題は本当に混乱します(私にとって)。これらの概念/アイデア/クラスはすべてありますが、分子を表現するためにどのデータ構造が必要かを完全には把握していません。原子のリストがあればいいでしょう。そのリストはAtomオブジェクトのリストですか?接続性を保存する方法も必要です。2Dマトリックスは、結合位置がマトリックス位置の整数であるため、良いアイデアのようです。
この時点で、私は仕事に圧倒され始めています。これまでにやっていることはすべて理にかなっていますか?この上に表示/描画アスペクトを追加することは、これらの多くのことを書き直し/再作業する必要があることを意味するかもしれませんが、少なくとも関連するデータで分子を保存してからアクセスできるポイントに到達しようとしていますチェック/変更するデータ。Pythonでこれを行うことを考えていたので、コード/クラスはおそらく次のようになります:http : //pastebin.com/uUi1BMzr
おそらくこれはStackOverflowのプログラミングの質問かもしれませんが、ここに行くのに十分具体的だと思いました。私が概念的な失敗をした場所を指摘しただけでも、どんな援助も大歓迎です。前もって感謝します。