C言語で成績管理システムを作る【仕様の決め方から解説】

AIを活用してC言語のアプリを作ってみたい!
構造体や配列も使った題材に挑戦したいな。

と思い立ち、VS2026とClaude(AI)を使ってC言語で成績管理システムを作ってみることにしました。

この記事では、「何を作るか」「どんな仕様にするか」をAIと相談した過程をそのまま紹介します。
プログラムを作ったことがない人でも、AIとのやり取りのイメージが掴めるような内容にしましたので、ぜひ参考にしてみてください。

この記事で分かること
  • AIを使ってプログラムを作るときの進め方
  • 成績管理システムの仕様をAIと一緒に決める方法
  • 構造体・配列の使い方
目次

なぜこのお題にしたか

成績管理システムを選んだ理由はこちらです。

  • 複数人分のデータをまとめて扱う「構造体」の使い方が学べる
  • 構造体の配列という、実務でもよく使う書き方が体験できる
  • 平均・最高・最低といった集計処理も一緒に学べる

じゃんけんゲームでは条件分岐・乱数・ループを扱いましたが、今回は構造体と配列という、まだ扱っていない要素に挑戦します。

なお、成績管理システムはC言語の課題としてもよく出される定番のお題です。

もし課題等で調べに来た方は、コードをそのまま写すのではなく、「なぜこの設計にしたか」の部分を読んでから自分で書いてみることをおすすめします。そのほうが確実に力になりますし、この記事もその流れで書いています。

今回使う環境

  • Windows 11
  • Visual Studio 2026(コードを書いて実行するツール)
  • Claude(AI)

VS2026のインストール方法は以下の記事で解説しています。

お題の範囲(仕様のたたき台)

大きくなりすぎないよう、最初にスコープを決めておきました。

  • 学生数名分(例: 5人)の名前・点数を構造体で管理
  • 構造体の配列で複数人分を保持
  • 平均点・最高点・最低点を計算して表示
  • 全員分の成績を一覧表示

ファイル保存やデータの動的追加まで手を広げると重くなりすぎるので、今回は「固定人数のデータを構造体配列で管理して集計する」くらいの範囲に絞りました。

この範囲でAI(Claude)に相談しながら仕様を詰めていきました。

AI(Claude)と一緒に仕様を決めてみた

「学生数名分の名前・点数を構造体で管理する」という大枠だけでは、実際にコードに落とし込むには曖昧な部分がいくつもありました。相談しながら、以下のような点を一つずつ具体化していきました。

AI(Claude)への相談内容/回答の様子

まずはAIに相談した内容と、AIからの回答をそのまま公開します。

AIの回答を基に、仕様を固めていきます!詳しくは続いての章で解説していきます。

データ構造の決定

ステップ1でAIからコメントがあったように、データ構造の仕様を決める必要があります。今回は以下のように決めました。

  • 名前は最大31文字
  • 点数は0〜100の整数(小数は無し)
  • 学生数は5人固定

機能の関数分割

「一覧表示」「平均計算」「最高点・最低点の特定」を、それぞれ独立した関数に分けることにしました。

特に最高点・最低点は、点数そのものではなく「何番目の学生か(配列の添字)」を返す設計にすることで、後から名前付きで表示できるようにしています。

入出力形式の決定

最初はキーボード入力ではなく、ソースコード内にデータを直接書き込む方式(初期化リスト)からスタートすることにしました。

動作確認がしやすく、次のステップで入力機能に発展させやすいためです。

特殊なケースの扱い

平均点計算時に人数が0だったら、同点の最高点が複数いたら、といった細かいケースも、「今回はこう割り切る」という形で先に決めておきました。

  • 人数が0のときの平均点は「0.0を返す」(ゼロ除算を避けるための安全策)
  • 最高点・最低点が同点で複数いる場合は「先に見つかった(配列で前にいる)学生を採用する」
  • 点数の範囲チェック(0〜100か)は行わない。
    データをソースコードに直接書き込む方式なので、正しい値を書く前提とした(キーボード入力に対応する第2回では、入力値の検証が必要になる見込み)

仕様まとめ

相談の結果、最終的に以下のような仕様に落ち着きました。

成績管理システムの仕様まとめ
  • 学生5人の名前(最大31文字)と点数(0〜100の整数)を構造体配列で保持する
  • データは以下のように段階的に対応する
    • 第1回:ソースコード内で初期化する
    • 第2回:キーボードから入力する
  • 全員の「名前・点数」を整形して一覧表示し、その後に平均点(小数第1位まで)、最高点と最低点(学生名付き)を表示する。

この記事の構成について

当初は1本の記事にまとめる予定でしたが、ステップごとに実際に手を動かしながら詰まった点も記事にしたかったため、シリーズ形式に変更しました。

この記事は仕様決めまでの「全体像」で、実際のコード・実行結果・詰まった点は各ステップの記事にまとめています。

  • 第1回: C言語の構造体配列で成績管理システムを作る(平均点・最高点・最低点の計算) → 準備中
  • 第2回: C言語で成績をscanf入力するプログラムの作り方 → 準備中
  • 第3回: C言語のswitch文でメニュー画面を作る → 準備中

各記事を書き終えたら、随時このページからリンクしていきます。

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次