見出し画像

Dartで学校の教科別ランキングを作成してみた【Dart】

Dartを使用して教科別ランキングを作成してみました。

Studentクラス

今回は国語、理科、社会の点数を入力して各教科別のランキングをprintしていきます。

class Student {
  final String name;
  final int japaneseScore;
  final int mathScore;
  final int scienceScore;

  Student(this.name, this.japaneseScore, this.mathScore, this.scienceScore);
}

各教科のランキングを表示

// 日本語の成績でランキングを作成
  List<Student> japaneseRanking = List.from(students);
  japaneseRanking.sort((a, b) => b.japaneseScore.compareTo(a.japaneseScore));

  print('日本語の成績でランキング:');
  for (var i = 0; i < japaneseRanking.length; i++) {
    print(
        '${i + 1}. ${japaneseRanking[i].name}: ${japaneseRanking[i].japaneseScore}');
  }
  print('---------------------------');

  // 算数の成績でランキングを作成
  List<Student> mathRanking = List.from(students);
  mathRanking.sort((a, b) => b.mathScore.compareTo(a.mathScore));

  print('算数の成績でランキング:');
  for (var i = 0; i < mathRanking.length; i++) {
    print('${i + 1}. ${mathRanking[i].name}: ${mathRanking[i].mathScore}');
  }
  print('---------------------------');

  // 理科の成績でランキングを作成
  List<Student> scienceRanking = List.from(students);
  scienceRanking.sort((a, b) => b.scienceScore.compareTo(a.scienceScore));

  print('理科の成績でランキング:');
  for (var i = 0; i < scienceRanking.length; i++) {
    print(
        '${i + 1}. ${scienceRanking[i].name}: ${scienceRanking[i].scienceScore}');
  }
  print('---------------------------');

Listの豆知識

List.fromでListの複製を行いsortメソッドを使用して各教科のランキングを並べ替えています。

print結果

日本語の成績でランキング:
1. 鈴木: 92
2. 田中: 90
3. 中村: 90
4. 高橋: 88
5. 佐藤: 85
6. 小林: 85
7. 伊藤: 82
8. 山本: 80
9. 山田: 78
10. 渡辺: 75
---------------------------
算数の成績でランキング:
1. 渡辺: 92
2. 佐藤: 90
3. 山本: 88
4. 中村: 88
5. 田中: 85
6. 高橋: 85
7. 山田: 85
8. 小林: 84
9. 鈴木: 82
10. 伊藤: 78
---------------------------
理科の成績でランキング:
1. 田中: 95
2. 山本: 92
3. 小林: 92
4. 高橋: 90
5. 伊藤: 88
6. 渡辺: 84
7. 山田: 82
8. 佐藤: 80
9. 鈴木: 78
10. 中村: 75
---------------------------

全コード

class Student {
  final String name;
  final int japaneseScore;
  final int mathScore;
  final int scienceScore;

  Student(this.name, this.japaneseScore, this.mathScore, this.scienceScore);
}

void main() {
  List<Student> students = [
    Student('田中', 90, 85, 95),
    Student('山本', 80, 88, 92),
    Student('佐藤', 85, 90, 80),
    Student('鈴木', 92, 82, 78),
    Student('高橋', 88, 85, 90),
    Student('渡辺', 75, 92, 84),
    Student('伊藤', 82, 78, 88),
    Student('山田', 78, 85, 82),
    Student('中村', 90, 88, 75),
    Student('小林', 85, 84, 92),
  ];

  // 日本語の成績でランキングを作成
  List<Student> japaneseRanking = List.from(students);
  japaneseRanking.sort((a, b) => b.japaneseScore.compareTo(a.japaneseScore));

  print('日本語の成績でランキング:');
  for (var i = 0; i < japaneseRanking.length; i++) {
    print(
        '${i + 1}. ${japaneseRanking[i].name}: ${japaneseRanking[i].japaneseScore}');
  }
  print('---------------------------');

  // 算数の成績でランキングを作成
  List<Student> mathRanking = List.from(students);
  mathRanking.sort((a, b) => b.mathScore.compareTo(a.mathScore));

  print('算数の成績でランキング:');
  for (var i = 0; i < mathRanking.length; i++) {
    print('${i + 1}. ${mathRanking[i].name}: ${mathRanking[i].mathScore}');
  }
  print('---------------------------');

  // 理科の成績でランキングを作成
  List<Student> scienceRanking = List.from(students);
  scienceRanking.sort((a, b) => b.scienceScore.compareTo(a.scienceScore));

  print('理科の成績でランキング:');
  for (var i = 0; i < scienceRanking.length; i++) {
    print(
        '${i + 1}. ${scienceRanking[i].name}: ${scienceRanking[i].scienceScore}');
  }
  print('---------------------------');
}

初心者から始めるプログラミングスクールの紹介

我々Flutterラボは、大阪の梅田にあるコワーキングスペース『ONthe UMEDA』の料金プランとしてモバイルアプリ開発が学べるプログラミングスクールを運営しております。
オンラインではなく対面で学びたい方におすすめです。
※オンラインをご希望の方はFlutterラボのオンラインスクールをおすすめします。

以下のような方に適したプログラミングスクールです。

  • 大阪でFlutterを学びたい方

  • オフラインで現役エンジニアに教わりたい方

  • プログラミングの基礎から学びたい方

  • アプリを開発してみたい方

  • 初心者からスマホアプリをリリースしたい方

スタンダードコース

Flutter学習用のカリキュラムに合わせて、プログラミングの基礎からアプリ開発の応用まで学べるコースです。

プロコース

ご自身で開発したいアプリを、設計からリリースまですべてサポートするコースです。
ぜひ気軽にお問い合わせください。オフラインで受講ご希望の方はこちらからお問い合わせください。

この記事が気に入ったらサポートをしてみませんか?