質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.36%

  • C

    2530questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

名簿作成でいくつかの機能の加えたいのですがわかりません。

受付中

回答 0

投稿 2017/11/29 21:52

  • 評価
  • クリップ 0
  • VIEW 82

b-boy_apple

score 0

ソースにおいてcase1,2,9はできたのですが、case3~8のソースがわかりません。コメント文に書いてある処理を付け足してほしいです(必要であれば下のソースを変えてもいいですが・・・)。
ただし、
caseごとに関数を作ること(関数名は指定しません)。
case5,8は実行時に名簿番号(名前の入力不要)を入力できるようにして、一致したものがあったら表示や削除(削除した名簿を表示すること)をする。
case6,7の.txtのファイル名は両方 namelist とする。

コメント文に //生徒人数 と表したものがありますが、30人を超えてデータを入力できてもいいです。

ちなみに私は、構造体自体をあまり理解していない状態でそれの関数化をしているため、わかりやすい説明があると助かります。

/* プログラムソース */

include<stdio.h>

include<string.h>

struct student{
char number[10]; //名簿番号
char name[50]; //氏名
};

void dataout(struct student *std); //表示
void datain(struct student *std); //入力

int main(void)
{
struct student std[30]; //生徒人数
int n=0,i,menu,end=0;
while(1){
printf("メニュー画面\n");
printf("1:データ入力\n");
printf("2:データ出力\n");
printf("3:小さい順に整列\n");
printf("4:大きい順に整列\n");
printf("5:データ削除\n");
printf("6:ファイルからのデータ読み込み\n");
printf("7:ファイルからのデータ書き込み\n");
printf("8:データ検索\n");
printf("9:終了\n");
printf("項目選択(1~9)-->");
scanf("%d%*c",&menu);
switch(menu){
case 1: //入力
datain(&std[n]);
n++;
break;
case 2: //表示
for(i=0;i<n;i++)
dataout(&std[i]);
if(n==0)
printf("表示するデータがありません\n");
printf("\n");
break;
case 3: //小さい順に表示
case 4: //大きい順に表示
case 5: //データ削除
case 6: //ファイルからデータの読み込み
case 7: //ファイルからデータの書き込み
case 8: //データ検索
case 9: //終了
end=1;
break;
default: //エラー
printf("入力番号がありません\n");
}
if(end==1)
break;
}
return 0;
}

void dataout(struct student *std)
{
printf("%s\t%s\n",std->number,std->name);
}

void datain(struct student *std)
{
printf("名簿番号-->");
gets(std->number);
printf("氏名-->");
gets(std->name);
}

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • 退会済みユーザー

    2017/11/30 08:44

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

  • KoichiSugiyama

    2017/11/30 11:33 編集

    初心者の方だと思いますが、まず、このサイトの「推奨していない質問」(https://teratail.com/help/avoid-asking)を読んでみてください。判らないのは仕方ないですが、丸投げは歓迎されません。何をどういうふうにやったけどできなかった、とか、どういう風に考えていいか判らない、など具体的な疑問であれば親切に回答してくださる方もおられると思います。あと、何かの課題だと思いますが、プログラムの仕様が不明だとアドバイスのしようもないので、どういうことを実現するプログラムなのかある程度詳しく説明したほうがいいです(例えば「小さい順」とは何が小さい順なのかなど)。

    キャンセル

まだ回答がついていません

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.36%

関連した質問

同じタグがついた質問を見る

  • C

    2530questions

    C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。