アドレス帳の作成
名前、電話番号、メールアドレスをキーボードから入力し、 CSVファイル形式のファイルに書き込む。
アドレス(名前、電話番号、メールアドレス)は最大 10件まで登録可能であること。
11件目を登録しようとすると、 CSVファイルを作成し、プログラム終了させる。
名前の入力がない場合(名前の文字数が 0の場合)、登録終了とし、登録済みのデータで CSVファイルを作成し、プログラムを終了させる。
仕様 入力仕様
(1)名前
入力可能文字半角のみのアルファベット文字、空白文字入力最大数 32文字入力可能。
(2)電話番号
入力可能文字半角の数値
入力最大数 16文字入力可能。
入力数が 0の場合、エラーとする。
(3)メールアドレス
入力可能文字半角アルファベット文字、@、ピリオド (.)、入力最大数 32文字入力可能。入力数が 0の場合、エラーとする。
※電話番号、メールアドレスは、正規表現のチェックを行わなくてもよい。
ファイルフォーマット仕様
(1)ファイル名
address.csvとする。
(2) 1レコード分
名前 ,電話番号 ,メールアドレス
名前、電話番号、メールアドレスをカンマ [,]で区切り、改行を入れる
(3)最大 10レコード分作成する。
(4)ファイルは上書きしてもよい。
プログラム仕様
(1)アドレス(名前、電話番号、メールアドレス)は構造体を使用、構造体名は
次の名前にすること。構造体名 struct adress 構造体のメンバー名は、以下のものにすること。 name名前 telno電話番号 mailメールアドレス
(2)構造体を typedefして名前を ST_ADRESSとすること。
(3)名前、電話番号、メールアドレスの最大入力数を #defineで定義すること。
(4)最大登録数 (10件)を#defineで定義すること
(5)名前、電話番号、メールアドレスの入力は教本にあるgetline関数を改造し使用すること。
(6)名前入力を開始する前に入力を促すプロンプトとして「 NAME>」を表示させること。
(7)電話番号入力を開始する前に入力を促すプロンプトとして
「TELNO>」を表示させること。
(8)メールアドレス入力を開始する前に入力を促すプロンプトとして
「MAIL ADRESS>」を表示させること。
(9)名前の入力チェック関数 check_nameを完成させること。
(10)電話番号の入力チェック関数 check_telnoを完成させること。
(11)メールアドレスの入力チェック関数 check_mailを完成させること。
(12)名前、電話番号、メールアドレスの入力毎で入力チェックを行い、エラーの場合、エラー
メッセージを出力し、名前の入力に戻ること。
電話番号、メールアドレスの入力がない場合、名前入力に戻ること。
(13) 10件分の構造体のポインタ配列を用意すること。
配列名は pAdrとし、外部変数とすること。
(14)
アドレス(名前、電話番号、メールアドレス)を示す 1件分の構造体を引数にし、メモリを確保し、確保した構造体のポインタを返す関数 alloc_data
を完成させること。
(15)
alloc_dataの戻り値である構造体をのポインタを構造体のポインタ配列に格納すること。
(16)
ファイルに書き込む前に名前で昇順にソートすること
ソート方法は、クイックソートを使用すること。
(17)
ファイル仕様書どおりに CSV形式でファイルに書き込むこと。
関数 write_fileを完成させること
(18)
ファイル書き込み後、メモリ確保している領域をすべて解放させる
関数 free_dataを完成させること。
私はCの勉強を始めたばかりです。友人からの質問に答えられるレベルでは無く悔しい思いをしています^^;
皆様だったら上記の内容をどのようにコーディングしますでしょうか?私も自分なりに調べながら上記の内容を作成し、他の人の書いたコードと見比べたいと思っています。
時間の余裕のある方、よろしくお願いします。これは質問ではないですね^^;
A 回答 (3件)
- 最新から表示
- 回答順に表示
No.3
- 回答日時:
#1 に同意. ど~せ自分でコードを書くんだから, 自分のコードを完成させてから他人の書いたコードを見ても問題ないよね.
その「友人」の (あるいは友人を騙ったあなたの) 課題だったりして.
No.2
- 回答日時:
> 私も自分なりに調べながら上記の内容を作成し、他の人の書いたコードと見比べたいと思っています。
他人のコードと見比べるより、
自分で作ったコードを載せて批判してもらった方がよっぽど勉強になる。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(スマートフォン・携帯電話・VR) 某信用金庫の通帳アプリ 4 2023/04/09 11:01
- X(旧Twitter) 【至急】twitterを乗っ取られたのでしょうか? 1 2022/09/08 02:34
- Java java 次の機能を有するメソッドを自クラスに作成し、実装したいです。 機能 名前判定機能 →名前が 3 2022/06/16 16:08
- X(旧Twitter) Twitterが凍結されてしまいました 1 2023/02/03 15:37
- その他(プログラミング・Web制作) 入力フォームへ、データを自動的に入力するプログラム。どうやって作る? 4 2023/01/16 10:24
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- その他(動画サービス) u-nextの31日間無料体験に申し込むためのdアカウントの電話番号登録について 3 2022/08/27 00:29
- Yahoo!メール Yahooメールにログインできません 2 2022/12/12 07:46
- Excel(エクセル) 【VBA】PDF出力に任意のファイル名前を付ける方法 3 2023/07/21 10:55
- C言語・C++・C# C言語 プログラミング 4 2022/05/22 11:53
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ハイフンとマイナス
-
scanf( )で日本語を入力する方...
-
VBAのTextBoxに半角数字のみ入...
-
STEAMでゲームを購入したところ...
-
ネット内で「事後通販」という...
-
カードの請求でApple.combillみ...
-
バイクの自賠責をau pay(簡単...
-
NHKの受信料の明細書と領収書
-
steamの購入エラーについて
-
メルカリで永久バンされ 親のケ...
-
大和芋の種芋
-
市販(通販)で販売されている家...
-
【YAHOO JAPAN】 ...
-
https://m.cozaka.net このcoza...
-
PayPal 住所変更必要?
-
郵送で営業所止めを指定した後
-
クレジットカードの名義人の入...
-
Amazonについてです。 アカウン...
-
https://distinction.djryow.be...
-
paypalのゆうちょ銀行の口座振...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ハイフンとマイナス
-
VBAのTextBoxに半角数字のみ入...
-
TextBoxに半角数字のみの入力し...
-
scanf( )で日本語を入力する方...
-
テキストボックスの入力制限
-
VB2005 TextBoxに何も入力しな...
-
VB.net テキストボックスの入力...
-
教えて!全角文字「μ」の半角文...
-
入力フォーム(電話番号)
-
WinAPIで日本語入力モード(倍...
-
ショートメールの文字入力
-
VISAカードの会員番号とは??
-
PHP, Mysql で名前のあいまい...
-
メールが送れません
-
単純なコマンドプロンプトが動...
-
「FROM 句の構文エラーです」が...
-
アクセスのフォーム入力時に文...
-
Kompozerについて
-
フォーム入力の際、電話番号等...
-
EZ-web用のHDMLについて No2
おすすめ情報