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

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

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

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

712閲覧

2つのデータファイルを使って、指定した出身地の人の平均点をコンソール出力したい。

a_r_u_e_r_i_a_n

総合スコア0

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2020/06/15 02:51

編集2020/06/15 03:14

前提・実現したいこと

初めて投稿します。
JAVAを学び始めて2か月の初心者です。自分でも調べたのですが、解決に至らなかったため質問させていただきました。つたない部分もあると思いますが、ご理解いただけると幸いです。長文となると思いますが、どうかお付き合いください。

やりたいことは、2つのデータファイル「学生一覧(student.txt)」と「テスト結果一覧(test.txt)」を使用して、東京出身の学生の全教科の平均点をコンソールに出力することです。この2つは最後に記載します。

条件としまして、
● 下記の1⃣~5⃣の機能を使うこと。
● 1⃣~5⃣とは別クラスに、mainメソッドを作成すること。
● 制作したmainメソッドから必要な機能を呼び出し、東京出身の学生の全教科の平均点をコンソールに出力することです。

 ◆◇◆ 機能 ◆◇◆

 1⃣ ファイル読み込み機能。
引数に渡されたテキストファイルのパスから、ファイルのデータを読み込み、1行ずつリストに格納し返却する。

※ 引数 String型(対象ファイルのパス)、戻り値 ArrayList<String> (対象ファイルのデータリスト)

 2⃣ 引数として渡した出身地と合致する学生人数を数える機能。
機能1⃣を利用し、学生一覧を読み込み(機能1⃣の引数に該当ファイルのパスを渡す)、読み込んだデータから出身地があう学生人数を算出し、返却する。

※ 第一引数 String型 (出身地) , / 第二引数 String型 (対象ファイルパス)

※ 戻り値 ArrayList<String> (学生番号のデータリスト)

 3⃣ 引数として渡した出身地と合致する学生の学生番号をリスト化する機能。
機能1⃣を利用し、学生一覧を読み込み(機能1⃣の引数に該当ファイルパスを渡す)、読み込んだデータから出身地が合う学生の学生番号をリスト化し、返却する。

※ 第一引数 String型 (出身地) , / 第二引数 String型 (対象ファイルパス)

※ 戻り値 ArrayList<String> (学生番号のデータリスト)

 4⃣ 指定した学生番号全員の、全教科合計点を算出する機能。
機能1⃣を利用し、テスト結果一覧を読み込む(機能1⃣の引数に第一因数パスを渡す)。
読み込んだテスト結果一覧から、第二引数の学士番号リストに合うテスト結果を全て合計し、返却する。全員分の全教科合計を戻り値として返却する。

※ 第一引数 String型 (対象ファイルのパス) , / 第二引数 ArrayList<String> (学生番号のデータリスト)

※ 戻り値 int型 (全員の全教科合計点)

 5⃣ 指定したい出身地の学生の全教科の平均点を算出する機能。
第一引数、第二引数を利用し、全教科の平均点を算出し、返却する。

※ 第一引数 int型 (対象出身地の学生人数) , / 第二引数 int型 (全員の全教科合計点)

※ 戻り値 int型 (全教科の平均点)

◆◇◆◇◆◇◆◇◆◇◇◆◇◆◇

長文失礼しました。よろしくお願いします!

発生している問題・エラーメッセージ

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
PATH を変数に解決できません
PATH を変数に解決できません
PATH2 を変数に解決できません
menber を変数に解決できません

at training.test8.main(test8.java:12)

該当のソースコード

メインメソッドはこのようにしました。
他の各種機能は test801,maruiti/test802,maruni/test803,marusan/testmaruyon/test805,marugo としました。

package training;

import java.io.IOException;
import java.util.ArrayList;

public class test8 {

public static void main(String[] args)throws IOException { try { //機能② 東京出身の学生人数 int member = test802.maruit2("Tokyo",PATH); //機能③ 東京出身の学生番号リスト ArrayList<String> numList = test803.marusan("Tokyo",PATH); //機能④ 東京の学生の、全教科合計点 int sum = test804.maruyon(PATH2,numList); //機能⑤ 全教科の平均点出力 System.out.println("東京の学生の平均点:"+test5.marugo(sum,menber)); } catch (IOException e) { e.printStackTrace(); } }

}

package training;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;

public class test801 {

public static ArrayList<String> maruiti(String path) throws IOException { return new ArrayList<String>(Files.readAllLines(Paths.get(path))); }

}

package training;

import java.io.IOException;
import java.util.ArrayList;

public class test802 {
// 機能② 人数を数える機能
public static int maruni() throws IOException {
ArrayList<String> list = new ArrayList<String>();

String studentFilePath1 = "C:\Users\user\Documents\Student.txt"; list = test701.maruiti(studentFilePath1); return (int) list.stream().filter(s -> s.contains("S00")).count(); }

}

package training;

import java.io.IOException;
import java.util.ArrayList;

public class test803 {
//機能③ 指定した教科の合計点を出す機能
public static int marusan( String Japanese) throws IOException {

String testResultsFilePath ="C:\Users\user\Documents\test.txt"; ArrayList<String> list = new ArrayList<String>(); list = test701.maruiti(testResultsFilePath); return (int) list.stream().filter(s -> s.contains(Japanese)) .map(sub -> sub.split(",")[3]).mapToInt(Integer::parseInt).sum(); } }

試したこと

スッキリわかるJava入門、Javaの絵本購読。各サイトを調べる。

補足情報(FW/ツールのバージョンなど)

2つのデータファイルの中身

 ● student.txt
S001,saito,Tokyo
S002,tanaka,Osaka
S003,suzuki,Kyoto
S004,yamada,Tokyo
S005,sato,Tokyo
S006,goto,Hokkaido
S007,suzuki,Tokyo
S008,watanabe,Tokyo
S009,yamamoto,Osaka
S0010,takahashi,Osaka

 ● test.txt
S001,Japanese,2020-02-23,50
S001,Mathematics,2020-02-23,70
S001,Science,2020-02-23,40
S001,history,2020-02-23,60
S002,Japanese,2020-02-23,40
S002,Mathematics,2020-02-23,90
S002,Science,2020-02-23,20
S002,history,2020-02-23,60
S003,Japanese,2020-02-23,50
S003,Mathematics,2020-02-23,60
S003,Science,2020-02-23,90
S003,history,2020-02-23,60
S004,Japanese,2020-02-23,70
S004,Mathematics,2020-02-23,90
S004,Science,2020-02-23,40
S004,history,2020-02-23,100
S005,Japanese,2020-02-23,50
S005,Mathematics,2020-02-23,60
S005,Science,2020-02-23,70
S005,history,2020-02-23,70
S006,Japanese,2020-02-23,80
S006,Mathematics,2020-02-23,40
S006,Science,2020-02-23,50
S006,history,2020-02-23,90
S007,Japanese,2020-02-23,70
S007,Mathematics,2020-02-23,80
S007,Science,2020-02-23,60
S007,history,2020-02-23,30
S008,Japanese,2020-02-23,40
S008,Mathematics,2020-02-23,60
S008,Science,2020-02-23,40
S008,history,2020-02-23,70
S009,Japanese,2020-02-23,50
S009,Mathematics,2020-02-23,90
S009,Science,2020-02-23,90
S009,history,2020-02-23,50
S010,Japanese,2020-02-23,70
S010,Mathematics,2020-02-23,70
S010,Science,2020-02-23,40
S010,history,2020-02-23,80

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

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

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

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

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

y_waiwai

2020/06/15 02:54

現状のコードの問題点、エラーメッセージなどを提示しましょう ざんねんながら、コード作成依頼は受け付けてません
a_r_u_e_r_i_a_n

2020/06/15 03:02

回答ありがとうございます。 自力で数日悩んだ結果最後の望みとして投稿しました。検索したらここを紹介されました。 最初に書いた通り全くの初心者ですので、ご理解いただきますと幸いです。エラーメッセージは追記したいと思います。
swordone

2020/06/15 03:05

これ、ほぼ何もやっていないに等しいですよね。
a_r_u_e_r_i_a_n

2020/06/15 03:13

回答ありがとうございます。 最初に書いた通り全くの初心者ですので、ご理解いただきますと幸いです。 何もやってない訳ではありませんので、現状できているところを更新しました。エラーメッセージも追加しております。
Rocky

2020/06/15 03:14

学校の先生に正直に質問したり指導を仰いだ方がご自身のためかと思いますよ
a_r_u_e_r_i_a_n

2020/06/15 03:17

回答ありがとうございます。 もう既に何度も行なっております。しかし、解決できないため、最後の望みとして投稿しました。どうかご理解ください。
guest

回答1

0

こんなに細々とクラスを分ける必要はないはずです(課題の指定でない限り)。全部test8クラス内で事足ります。
で、エラーメッセージはそのままで、平たく言うなら「PATHって何やねん」ってことです。

投稿2020/06/15 03:32

swordone

総合スコア20651

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問