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

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

新規登録して質問してみよう
ただいま回答率
85.48%
C

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

Q&A

0回答

2073閲覧

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

P_Beginner

総合スコア99

C

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

0グッド

0クリップ

投稿2017/11/29 12:52

ソースにおいて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);
}

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KoichiSugiyama

2017/11/30 02:33 編集

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問