こんにちは、私は大学のプロジェクトのために線形単一連結リストに基づく C データベース プログラムを実行しています。私がまだ理解していない問題は、入出力プログラムです。
基本的にプログラムの入力はこのようにする必要があります
INSERT
001 // indicates patient's number
John // indicates patient's name
M // indicates patient's gender
#
002
Mary
F
#
SELECT // which means print the list
* // indicates all the list to be print
#
EXIT
入力が完了し、次の行が出力です
Data is added.
#
Hospital ID : 001
Name : John
Gender : M
#
Hospital ID : 002
Name : Mary
Gender : F
#
それで全部です。これが私がやっていることです(説明で)
- 最初の行はコマンドの gets です
- while コマンドを実行することは exit ではなく、 char の # 記号ではありません。strcmp を使用して「INSERT」または「SELECT」であるかどうかをチェックします。
- 次の行は、linkedlist コマンドで使用される入力を取得します。ここで、コマンドが挿入されている場合は int でフラグを指定し、3 回要求するか、strcmp を使用した char 記号の * である場合は SELECT を指定します。
- したがって、基本的には、(gets を使用して) 入力行を要求する (フラグ) 回を繰り返した後、# が入力された場合、再度コマンドを要求します (その char[size] の前に言及するのを忘れました)。
- そのため、コマンドを印刷して印刷出力用のキューに入れます
- EXIT が入力されるまでエンキューを保持し、それ以外の場合はキューが NULL になるまでデキューします (キューの先頭を char temp に入れます)
しかし、プログラムはINSERT関数に対してのみ正しく機能するため、アルゴリズム全体が機能していないようです。
それから C の本に戻って、マクロやパラメータなどについて読み、インターネットを調べて、 # 自体を定義するアイデアを見つけて、さらにコマンドを要求するコマンドにします。
しかし、物事がどのように機能するかを完全には理解していないようです。適切な入力と出力を得るために何をすべきか考えていますか? この種の strcmp while および if を使用するか、または # 自体を定義しますか?
よろしくお願いします。どんな助けでも本当に感謝しています。