[解決済み] 家系図ソフトのサイクル
質問
私はある家系図ソフト(C++とQtで書かれています)の開発者です。顧客の一人が私にバグレポートを郵送してくるまでは、何の問題もありませんでした。問題は、その顧客が自分の娘との間に二人の子供を持ち、その結果、エラーのために私のソフトウェアを使うことができないということです。
これらのエラーは、処理中の家族グラフに関する私のさまざまなアサーションや不変条件(たとえば、1サイクル歩いた後、プログラムはXがYの父と祖父の両方であることはできないと述べる)の結果です。
すべてのデータ・アサーションを削除せずに、これらのエラーを解決するにはどうすればよいですか?
どのように解決するのですか?
家系図とは何か、根本的に誤解しているようです。
私も家系図を製品として持っている会社で働いていますが、同じような問題で悩んでいます。
この問題は、私たちの場合、そしてあなたの場合も同様だと思います。 GEDCOM このフォーマットは、家族のあり方について極めて独断的なものです。しかし、このフォーマットには、家系図が実際にどのようなものであるかについて、深刻な誤解が含まれているのです。
GEDCOM には、同性間の関係や近親相姦などとの非互換性など、多くの問題があります...。特に、1700年から1800年にかけての時代には)想像以上に頻繁に起こることなのです。
私たちは、現実の世界で起こることを家系図にモデル化しています。イベント(例えば、誕生、結婚式、婚約、結婚、死亡、養子縁組など)です。論理的に不可能なこと(例えば、人は自分の親になれない、関係は2人の個人を必要とする、など)を除いて、これらには何の制限も加えていません。
検証を行わないことで、より現実的で、よりシンプルで、より柔軟なソリューションが実現します。
この具体的なケースに関しては、アサーションは普遍的に成立するものではないので、削除することをお勧めします。
表示に関する問題(今後発生する可能性があります)については、同じノードを必要なだけ描き、そのうちの1つを選択するとすべてのコピーが点灯することで重複をほのめかすようにすることをお勧めします。
関連
-
[解決済み] テスト
-
[解決済み】構造体のベクター初期化について
-
[解決済み】coutはstdのメンバではない
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】fpermissiveフラグは何をするのですか?
-
[解決済み] 式はクラス型を持つ必要があります。
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み] error: 'if' の前に unqualified-id を期待した。
-
[解決済み] クラスにデフォルトコンストラクタが存在しない。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み] to_string は std のメンバーではない、と g++ が言っている (mingw)
-
[解決済み】有向グラフのサイクルを検出する最適なアルゴリズム【クローズド