検索、登録、更新、削除の機能を追加
メインシステムをMain.javaに移行
This commit is contained in:
@@ -1,202 +1,258 @@
|
|||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
|
import java.nio.file.StandardOpenOption;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class Main {
|
public class Main {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
System.out.println("会社名:" + EmployeeData.COMPANY_NAME);
|
ArrayList<BaseData> employees = new ArrayList<BaseData>();
|
||||||
|
|
||||||
BaseData employee = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
|
|
||||||
"yamada@hoge.jp", "aaa", "10");
|
|
||||||
System.out.println(employee.toCSV());
|
|
||||||
System.out.println(employee.getPrimaryKeyValue());
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
BaseData[] employees = new BaseData[5];
|
|
||||||
|
|
||||||
//setterがBaseData.javaにはないためコンストラクタで代入
|
|
||||||
// for (int i = 0; i < employees.length; i++) {
|
|
||||||
// employees[i] = new EmployeeData();
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// employees[0].setIdEmployee("10000");
|
|
||||||
// employees[0].setNmEmployee("山田龍也");
|
|
||||||
// employees[0].setKnEmployee("ヤマダタツヤ");
|
|
||||||
// employees[0].setMailAddress("yamada@hoge.jp");
|
|
||||||
// employees[0].setPassword("aaa");
|
|
||||||
// employees[0].setIdDepartment("10");
|
|
||||||
//
|
|
||||||
// employees[1].setIdEmployee("10001");
|
|
||||||
// employees[1].setNmEmployee("高橋準\t");
|
|
||||||
// employees[1].setKnEmployee("タカハシジュン");
|
|
||||||
// employees[1].setMailAddress("jtaka@hoge.jp");
|
|
||||||
// employees[1].setPassword("bbb");
|
|
||||||
// employees[1].setIdDepartment("10");
|
|
||||||
//
|
|
||||||
// employees[2].setIdEmployee("10002");
|
|
||||||
// employees[2].setNmEmployee("麻枝史明");
|
|
||||||
// employees[2].setKnEmployee("マエダフミアキ");
|
|
||||||
// employees[2].setMailAddress("fmak@hoge.jp");
|
|
||||||
// employees[2].setPassword("ccc");
|
|
||||||
// employees[2].setIdDepartment("11");
|
|
||||||
//
|
|
||||||
// employees[3].setIdEmployee("10003");
|
|
||||||
// employees[3].setNmEmployee("丸戸章介");
|
|
||||||
// employees[3].setKnEmployee("マルトショウスケ");
|
|
||||||
// employees[3].setMailAddress("marusyo@hoge.jp");
|
|
||||||
// employees[3].setPassword("ddd");
|
|
||||||
// employees[3].setIdDepartment("12");
|
|
||||||
//
|
|
||||||
// employees[4].setIdEmployee("10004");
|
|
||||||
// employees[4].setNmEmployee("三宅武\t");
|
|
||||||
// employees[4].setKnEmployee("ミヤケタケシ");
|
|
||||||
// employees[4].setMailAddress("miya@hoge.jp");
|
|
||||||
// employees[4].setPassword("eee");
|
|
||||||
// employees[4].setIdDepartment("13");
|
|
||||||
employees[0] = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
|
|
||||||
"yamada@hoge.jp", "aaa", "10");
|
|
||||||
employees[1] = new EmployeeData("10001", "高橋準", "タカハシジュン",
|
|
||||||
"jtaka@hoge.jp", "bbb", "10");
|
|
||||||
employees[2] = new EmployeeData("10002", "麻枝史明", "マエダフミアキ",
|
|
||||||
"fmak@hoge.jp", "ccc", "11");
|
|
||||||
employees[3] = new EmployeeData("10003", "丸戸章介", "マルトショウスケ",
|
|
||||||
"marusyo@hoge.jp", "ddd", "12");
|
|
||||||
employees[4] = new EmployeeData("10004", "三宅武", "ミヤケタケシ",
|
|
||||||
"miya@hoge.jp", "eee", "13");
|
|
||||||
|
|
||||||
for (BaseData e : employees) {
|
|
||||||
System.out.println(e);
|
|
||||||
}
|
|
||||||
System.out.println("現在の社員のデータ件数:" + EmployeeData.getEmpCount() + "件");
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
//社員データ+部署データ
|
|
||||||
BaseData[] allData = new BaseData[11];
|
|
||||||
for (int i = 0; i < employees.length; i++) {
|
|
||||||
allData[i] = employees[i];
|
|
||||||
|
|
||||||
}
|
|
||||||
DepartmentData[] dept = new DepartmentData[6];
|
|
||||||
for (int i = 0; i < dept.length; i++) {
|
|
||||||
dept[i] = new DepartmentData();
|
|
||||||
}
|
|
||||||
dept[0].setIdDepartment("10");
|
|
||||||
dept[0].setNmDepartment("役員");
|
|
||||||
allData[5] = dept[0];
|
|
||||||
dept[1].setIdDepartment("11");
|
|
||||||
dept[1].setNmDepartment("人事・総務部");
|
|
||||||
allData[6] = dept[1];
|
|
||||||
dept[2].setIdDepartment("12");
|
|
||||||
dept[2].setNmDepartment("経理部");
|
|
||||||
allData[7] = dept[2];
|
|
||||||
dept[3].setIdDepartment("13");
|
|
||||||
dept[3].setNmDepartment("システム開発事業部");
|
|
||||||
allData[8] = dept[3];
|
|
||||||
dept[4].setIdDepartment("14");
|
|
||||||
dept[4].setNmDepartment("教育事業部");
|
|
||||||
allData[9] = dept[4];
|
|
||||||
dept[5].setIdDepartment("15");
|
|
||||||
dept[5].setNmDepartment("営業企画部");
|
|
||||||
allData[10] = dept[5];
|
|
||||||
|
|
||||||
int employeeCount = 0;
|
|
||||||
int deptCount = 0;
|
|
||||||
for (BaseData data : allData) {
|
|
||||||
System.out.println(data);
|
|
||||||
if (data instanceof EmployeeData) {
|
|
||||||
employeeCount++;
|
|
||||||
} else if (data instanceof DepartmentData) {
|
|
||||||
deptCount++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println("社員データ:" + employeeCount + "件\n部署データ:" + deptCount + "件");
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
System.out.println("メールアドレス表示");
|
|
||||||
for (BaseData data : allData) {
|
|
||||||
if (data instanceof EmployeeData) {
|
|
||||||
System.out.println(((EmployeeData) data).getMailAddress());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
//nullおよび前後の空白を取り除いた結果が空文字チェック
|
|
||||||
BaseData emp = new EmployeeData("10000", "デフォルト", "ヤマダタツヤ", "yamada@hoge.jp", "aaa", "10");
|
|
||||||
System.out.println(emp);
|
|
||||||
((EmployeeData) emp).setNmEmployee(null);
|
|
||||||
System.out.println(emp);
|
|
||||||
((EmployeeData) emp).setNmEmployee(" ");
|
|
||||||
System.out.println(emp);
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
System.out.println("コンストラクタに全てから文字で");
|
|
||||||
BaseData emptyEmployee = new EmployeeData("", "", "", "", "", "");
|
|
||||||
System.out.println(emptyEmployee);
|
|
||||||
|
|
||||||
System.out.println();
|
|
||||||
|
|
||||||
|
System.out.println("システムを開始します\n");
|
||||||
|
//検索
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.println("検索したい部署名を入力してください(終了する場合は0)");
|
employees = inportEmployeesCSV();
|
||||||
|
System.out.println("1:検索 2:登録 3:更新 4:削除 0:終了");
|
||||||
System.out.print(">>>>");
|
System.out.print(">>>>");
|
||||||
String searchDeptNm = scanner.nextLine();
|
String str = scanner.nextLine().strip();
|
||||||
String searchDeptId = "";
|
switch (str) {
|
||||||
if (endChack(searchDeptNm))
|
case "0":
|
||||||
|
System.out.println("システムを終了します");
|
||||||
|
return;
|
||||||
|
case "1":
|
||||||
|
System.out.println("1:全検索 2:条件検索 それ以外:戻る");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
str = scanner.nextLine().strip();
|
||||||
|
Display(str, employees);
|
||||||
break;
|
break;
|
||||||
for (BaseData data : allData) {
|
case "2":
|
||||||
if (data instanceof DepartmentData) {
|
append();
|
||||||
if (((DepartmentData) data).getNmDepartment().equals(searchDeptNm)) {
|
break;
|
||||||
searchDeptId = ((DepartmentData) data).getIdDepartment();
|
case "3":
|
||||||
}
|
update(employees);
|
||||||
}
|
break;
|
||||||
}
|
case "4":
|
||||||
if (searchDeptId.equals("")) {
|
delete(employees);
|
||||||
System.out.println("該当する部署が見つかりませんでした");
|
break;
|
||||||
continue;
|
default:
|
||||||
}
|
System.out.println("指定の番号を入力してください");
|
||||||
for (BaseData data : allData) {
|
|
||||||
if (data instanceof EmployeeData) {
|
|
||||||
if (((EmployeeData) data).getIdDepartment().equals(searchDeptId)) {
|
|
||||||
System.out.println(
|
|
||||||
((EmployeeData) data).getNmEmployee() + "\t" + ((EmployeeData) data).getMailAddress());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
}
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
System.out.println("検索したい社員IDを入力してください(終了する場合は0)");
|
|
||||||
System.out.print(">>>>");
|
|
||||||
String findId = scanner.nextLine();
|
|
||||||
if (endChack(findId))
|
|
||||||
break;
|
break;
|
||||||
boolean matchFlag = false;
|
|
||||||
|
|
||||||
for (BaseData e : employees) {
|
|
||||||
if (e.getPrimaryKeyValue().equals(findId)) {
|
|
||||||
System.out.println(e);
|
|
||||||
matchFlag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!matchFlag) {
|
|
||||||
System.out.println("該当する社員が見つかりませんでした");
|
|
||||||
}
|
}
|
||||||
System.out.println();
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static boolean endChack(String input) {
|
//削除
|
||||||
if (input.equals("0")) {
|
private static void delete(ArrayList<BaseData> allData) {
|
||||||
System.out.println("システムを終了します");
|
Scanner scanner = new Scanner(System.in);
|
||||||
return true;
|
ArrayList<String> dataList = new ArrayList<String>();
|
||||||
|
Path path = Path.of("employees.csv");
|
||||||
|
System.out.println("IDを入力してください");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
String str = scanner.nextLine().strip();
|
||||||
|
boolean matchFlag = false;
|
||||||
|
|
||||||
|
for (BaseData e : allData) {
|
||||||
|
if (e.getPrimaryKeyValue().equals(str)) {
|
||||||
|
matchFlag = true;
|
||||||
|
} else {
|
||||||
|
dataList.add(e.toCSV());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return false;
|
if (!matchFlag) {
|
||||||
|
System.out.println("入力された値で情報がみつかりませんでした");
|
||||||
|
} else {
|
||||||
|
|
||||||
|
System.out.println("指定されたIDの情報を削除します? Y/y\n(Y/y以外の入力であればキャンセル)");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
str = scanner.nextLine().strip();
|
||||||
|
if (str.equalsIgnoreCase("y")) {
|
||||||
|
try {
|
||||||
|
Files.write(path, dataList);
|
||||||
|
System.out.println("削除が完了しました");
|
||||||
|
} catch (IOException e1) {
|
||||||
|
// TODO 自動生成された catch ブロック
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
System.out.println("削除をキャンセルしました");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
//更新
|
||||||
|
private static void update(ArrayList<BaseData> allData) {
|
||||||
|
//更新するファイルのパス
|
||||||
|
Path path = Path.of("employees.csv");
|
||||||
|
//ID以外の更新するデータの項目
|
||||||
|
String[] appendData = { "社員名", "フリガナ", "メールアドレス", "パスワード", "部署ID" };
|
||||||
|
boolean zeroCheck = true; //入力されたデータが空白かのチェック用変数
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.println("IDを入力してください");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
String str = scanner.nextLine().strip();
|
||||||
|
boolean matchFlag = false;
|
||||||
|
ArrayList<String> dataList = new ArrayList<String>();
|
||||||
|
String content;
|
||||||
|
for (BaseData e : allData) {
|
||||||
|
content = e.toCSV();
|
||||||
|
if (e.getPrimaryKeyValue().equals(str)) {
|
||||||
|
|
||||||
|
for (int i = 0; i < appendData.length; i++) {
|
||||||
|
while (zeroCheck) {
|
||||||
|
zeroCheck = false;
|
||||||
|
System.out.println(appendData[i] + "を入力してください");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
String scanString = scanner.nextLine().strip();
|
||||||
|
|
||||||
|
if (scanString == null || scanString.strip().length() == 0) {
|
||||||
|
System.out.println(appendData[i] + "は入力必須です");
|
||||||
|
zeroCheck = true;
|
||||||
|
}
|
||||||
|
str += ",";
|
||||||
|
str += scanString;
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
zeroCheck = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
matchFlag = true;
|
||||||
|
content = str;
|
||||||
|
}
|
||||||
|
|
||||||
|
dataList.add(content);
|
||||||
|
}
|
||||||
|
if (!matchFlag) {
|
||||||
|
System.out.println("入力された値で情報がみつかりませんでした");
|
||||||
|
} else {
|
||||||
|
try {
|
||||||
|
Files.write(path, dataList);
|
||||||
|
System.out.println("更新が完了しました");
|
||||||
|
} catch (IOException e1) {
|
||||||
|
// TODO 自動生成された catch ブロック
|
||||||
|
e1.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void Display(String str, ArrayList<BaseData> data) {
|
||||||
|
switch (str) {
|
||||||
|
case "1":
|
||||||
|
allDisplay(data);
|
||||||
|
break;
|
||||||
|
case "2":
|
||||||
|
employeeSeach(data);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void allDisplay(ArrayList<BaseData> data) {
|
||||||
|
|
||||||
|
data.stream().forEach(d -> {
|
||||||
|
System.out.println(d); //一覧表示
|
||||||
|
});
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
|
||||||
|
//ID検索
|
||||||
|
private static void employeeSeach(ArrayList<BaseData> allData) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
|
System.out.println("検索したい社員IDを入力してください");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
String str = scanner.nextLine().strip();
|
||||||
|
boolean matchFlag = false;
|
||||||
|
|
||||||
|
for (BaseData e : allData) {
|
||||||
|
if (e.getPrimaryKeyValue().equals(str)) {
|
||||||
|
System.out.println(e);
|
||||||
|
|
||||||
|
matchFlag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!matchFlag) {
|
||||||
|
System.out.println("入力された値で情報がみつかりませんでした");
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//書き込み ※社員IDが被っていても追加出来てしまう
|
||||||
|
private static void append() {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
String scanString;
|
||||||
|
String str = "";
|
||||||
|
String[] appendData = { "社員ID", "社員名", "フリガナ", "メールアドレス", "パスワード", "部署ID" };
|
||||||
|
boolean zeroCheck = true;
|
||||||
|
|
||||||
|
for (int i = 0; i < appendData.length; i++) {
|
||||||
|
while (zeroCheck) {
|
||||||
|
zeroCheck = false;
|
||||||
|
System.out.println(appendData[i] + "を入力してください");
|
||||||
|
System.out.print(">>>>");
|
||||||
|
scanString = scanner.nextLine().strip();
|
||||||
|
|
||||||
|
if (scanString == null || scanString.strip().length() == 0) {
|
||||||
|
System.out.println(appendData[i] + "は入力必須です");
|
||||||
|
zeroCheck = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
str += scanString;
|
||||||
|
System.out.println();
|
||||||
|
}
|
||||||
|
if (i < appendData.length - 1)
|
||||||
|
str += ",";
|
||||||
|
zeroCheck = true;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Path path = Path.of("employees.csv");
|
||||||
|
try {
|
||||||
|
Files.writeString(path, str + "\n", StandardOpenOption.APPEND);
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO 自動生成された catch ブロック
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//社員CSVの読み込み
|
||||||
|
private static ArrayList<BaseData> inportEmployeesCSV() {
|
||||||
|
final String employeesCSVPath = "employees.csv";
|
||||||
|
ArrayList<BaseData> employees = new ArrayList<BaseData>();
|
||||||
|
|
||||||
|
Path pathEmp = Path.of(employeesCSVPath);
|
||||||
|
ArrayList<String> content = new ArrayList<String>();
|
||||||
|
try {
|
||||||
|
// content = Files.readString(path);
|
||||||
|
content = (ArrayList<String>) (Files.readAllLines(pathEmp));
|
||||||
|
} catch (IOException e) {
|
||||||
|
// TODO 自動 生成された catch ブロック
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
content.stream().forEach(data -> {
|
||||||
|
|
||||||
|
ArrayList<String> content2 = new ArrayList<String>(Arrays.asList(data.split(",")));
|
||||||
|
employees.add(
|
||||||
|
new EmployeeData(content2.get(0), content2.get(1), content2.get(2), content2.get(3),
|
||||||
|
content2.get(4), content2.get(5)));
|
||||||
|
});
|
||||||
|
return employees;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,165 +1,202 @@
|
|||||||
import java.io.IOException;
|
|
||||||
import java.nio.file.Files;
|
|
||||||
import java.nio.file.Path;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Scanner;
|
import java.util.Scanner;
|
||||||
|
|
||||||
public class Sub {
|
public class Sub {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
final String employeesCSVPath = "employees.csv";
|
System.out.println("会社名:" + EmployeeData.COMPANY_NAME);
|
||||||
final String departmentsCSVPath = "departments.csv";
|
|
||||||
|
|
||||||
ArrayList<BaseData> employees = new ArrayList<BaseData>();
|
BaseData employee = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
|
||||||
ArrayList<BaseData> departments = new ArrayList<BaseData>();
|
"yamada@hoge.jp", "aaa", "10");
|
||||||
|
System.out.println(employee.toCSV());
|
||||||
|
System.out.println(employee.getPrimaryKeyValue());
|
||||||
|
|
||||||
//社員CSVの読み込み
|
|
||||||
Path pathEmp = Path.of(employeesCSVPath);
|
|
||||||
ArrayList<String> content = new ArrayList<String>();
|
|
||||||
try {
|
|
||||||
// content = Files.readString(path);
|
|
||||||
content = (ArrayList<String>) (Files.readAllLines(pathEmp));
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO 自動 生成された catch ブロック
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
content.stream().forEach(data -> {
|
|
||||||
|
|
||||||
ArrayList<String> content2 = new ArrayList<String>(Arrays.asList(data.split(",")));
|
|
||||||
employees.add(
|
|
||||||
new EmployeeData(content2.get(0), content2.get(1), content2.get(2), content2.get(3),
|
|
||||||
content2.get(4), content2.get(5)));
|
|
||||||
});
|
|
||||||
|
|
||||||
//部門CSVの読み込み
|
|
||||||
content.clear();//使いまわしたいから
|
|
||||||
|
|
||||||
Path pathDept = Path.of(departmentsCSVPath);
|
|
||||||
|
|
||||||
try {
|
|
||||||
// content = Files.readString(path);
|
|
||||||
content = (ArrayList<String>) (Files.readAllLines(pathDept));
|
|
||||||
} catch (IOException e) {
|
|
||||||
// TODO 自動 生成された catch ブロック
|
|
||||||
e.printStackTrace();
|
|
||||||
}
|
|
||||||
content.stream().forEach(data -> {
|
|
||||||
|
|
||||||
ArrayList<String> content2 = new ArrayList<String>(Arrays.asList(data.split(",")));
|
|
||||||
employees.add(
|
|
||||||
new DepartmentData(content2.get(0), content2.get(1)));
|
|
||||||
});
|
|
||||||
|
|
||||||
ArrayList<BaseData> allData = new ArrayList<BaseData>();
|
|
||||||
allData.addAll(employees);
|
|
||||||
allData.addAll(departments);
|
|
||||||
|
|
||||||
//intを配列にしたらエラーが出なかった 理由不明
|
|
||||||
int employeeCount = 0;
|
|
||||||
int deptCount = 0;
|
|
||||||
int[] counter = { 0, 0 };
|
|
||||||
|
|
||||||
allData.stream().forEach(data -> {
|
|
||||||
System.out.println(data); //一覧表示
|
|
||||||
if (data instanceof EmployeeData) {
|
|
||||||
counter[0]++;
|
|
||||||
} else if (data instanceof DepartmentData) {
|
|
||||||
counter[1]++;
|
|
||||||
}
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
System.out.println("社員データ:" + counter[0] + "件\n部署データ:" + counter[1] + "件");
|
|
||||||
System.out.println();
|
System.out.println();
|
||||||
|
|
||||||
//検索
|
BaseData[] employees = new BaseData[5];
|
||||||
Scanner scanner = new Scanner(System.in);
|
|
||||||
while (true) {
|
//setterがBaseData.javaにはないためコンストラクタで代入
|
||||||
System.out.println("検索したい項目を入力してください\n社員ID:1 部署名:2 終了:0");
|
// for (int i = 0; i < employees.length; i++) {
|
||||||
System.out.print(">>>>");
|
// employees[i] = new EmployeeData();
|
||||||
String str = scanner.nextLine().strip();
|
// }
|
||||||
switch (str) {
|
//
|
||||||
case "1":
|
// employees[0].setIdEmployee("10000");
|
||||||
EmployeeSeach(allData);
|
// employees[0].setNmEmployee("山田龍也");
|
||||||
break;
|
// employees[0].setKnEmployee("ヤマダタツヤ");
|
||||||
case "2":
|
// employees[0].setMailAddress("yamada@hoge.jp");
|
||||||
DepartmentSearch(allData);
|
// employees[0].setPassword("aaa");
|
||||||
break;
|
// employees[0].setIdDepartment("10");
|
||||||
case "0":
|
//
|
||||||
System.out.println("システムを終了します");
|
// employees[1].setIdEmployee("10001");
|
||||||
return;
|
// employees[1].setNmEmployee("高橋準\t");
|
||||||
default:
|
// employees[1].setKnEmployee("タカハシジュン");
|
||||||
break;
|
// employees[1].setMailAddress("jtaka@hoge.jp");
|
||||||
}
|
// employees[1].setPassword("bbb");
|
||||||
|
// employees[1].setIdDepartment("10");
|
||||||
|
//
|
||||||
|
// employees[2].setIdEmployee("10002");
|
||||||
|
// employees[2].setNmEmployee("麻枝史明");
|
||||||
|
// employees[2].setKnEmployee("マエダフミアキ");
|
||||||
|
// employees[2].setMailAddress("fmak@hoge.jp");
|
||||||
|
// employees[2].setPassword("ccc");
|
||||||
|
// employees[2].setIdDepartment("11");
|
||||||
|
//
|
||||||
|
// employees[3].setIdEmployee("10003");
|
||||||
|
// employees[3].setNmEmployee("丸戸章介");
|
||||||
|
// employees[3].setKnEmployee("マルトショウスケ");
|
||||||
|
// employees[3].setMailAddress("marusyo@hoge.jp");
|
||||||
|
// employees[3].setPassword("ddd");
|
||||||
|
// employees[3].setIdDepartment("12");
|
||||||
|
//
|
||||||
|
// employees[4].setIdEmployee("10004");
|
||||||
|
// employees[4].setNmEmployee("三宅武\t");
|
||||||
|
// employees[4].setKnEmployee("ミヤケタケシ");
|
||||||
|
// employees[4].setMailAddress("miya@hoge.jp");
|
||||||
|
// employees[4].setPassword("eee");
|
||||||
|
// employees[4].setIdDepartment("13");
|
||||||
|
employees[0] = new EmployeeData("10000", "山田龍也", "ヤマダタツヤ",
|
||||||
|
"yamada@hoge.jp", "aaa", "10");
|
||||||
|
employees[1] = new EmployeeData("10001", "高橋準", "タカハシジュン",
|
||||||
|
"jtaka@hoge.jp", "bbb", "10");
|
||||||
|
employees[2] = new EmployeeData("10002", "麻枝史明", "マエダフミアキ",
|
||||||
|
"fmak@hoge.jp", "ccc", "11");
|
||||||
|
employees[3] = new EmployeeData("10003", "丸戸章介", "マルトショウスケ",
|
||||||
|
"marusyo@hoge.jp", "ddd", "12");
|
||||||
|
employees[4] = new EmployeeData("10004", "三宅武", "ミヤケタケシ",
|
||||||
|
"miya@hoge.jp", "eee", "13");
|
||||||
|
|
||||||
|
for (BaseData e : employees) {
|
||||||
|
System.out.println(e);
|
||||||
|
}
|
||||||
|
System.out.println("現在の社員のデータ件数:" + EmployeeData.getEmpCount() + "件");
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
//社員データ+部署データ
|
||||||
|
BaseData[] allData = new BaseData[11];
|
||||||
|
for (int i = 0; i < employees.length; i++) {
|
||||||
|
allData[i] = employees[i];
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
DepartmentData[] dept = new DepartmentData[6];
|
||||||
|
for (int i = 0; i < dept.length; i++) {
|
||||||
|
dept[i] = new DepartmentData();
|
||||||
|
}
|
||||||
|
dept[0].setIdDepartment("10");
|
||||||
|
dept[0].setNmDepartment("役員");
|
||||||
|
allData[5] = dept[0];
|
||||||
|
dept[1].setIdDepartment("11");
|
||||||
|
dept[1].setNmDepartment("人事・総務部");
|
||||||
|
allData[6] = dept[1];
|
||||||
|
dept[2].setIdDepartment("12");
|
||||||
|
dept[2].setNmDepartment("経理部");
|
||||||
|
allData[7] = dept[2];
|
||||||
|
dept[3].setIdDepartment("13");
|
||||||
|
dept[3].setNmDepartment("システム開発事業部");
|
||||||
|
allData[8] = dept[3];
|
||||||
|
dept[4].setIdDepartment("14");
|
||||||
|
dept[4].setNmDepartment("教育事業部");
|
||||||
|
allData[9] = dept[4];
|
||||||
|
dept[5].setIdDepartment("15");
|
||||||
|
dept[5].setNmDepartment("営業企画部");
|
||||||
|
allData[10] = dept[5];
|
||||||
|
|
||||||
|
int employeeCount = 0;
|
||||||
|
int deptCount = 0;
|
||||||
|
for (BaseData data : allData) {
|
||||||
|
System.out.println(data);
|
||||||
|
if (data instanceof EmployeeData) {
|
||||||
|
employeeCount++;
|
||||||
|
} else if (data instanceof DepartmentData) {
|
||||||
|
deptCount++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println("社員データ:" + employeeCount + "件\n部署データ:" + deptCount + "件");
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
System.out.println("メールアドレス表示");
|
||||||
|
for (BaseData data : allData) {
|
||||||
|
if (data instanceof EmployeeData) {
|
||||||
|
System.out.println(((EmployeeData) data).getMailAddress());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
//nullおよび前後の空白を取り除いた結果が空文字チェック
|
||||||
|
BaseData emp = new EmployeeData("10000", "デフォルト", "ヤマダタツヤ", "yamada@hoge.jp", "aaa", "10");
|
||||||
|
System.out.println(emp);
|
||||||
|
((EmployeeData) emp).setNmEmployee(null);
|
||||||
|
System.out.println(emp);
|
||||||
|
((EmployeeData) emp).setNmEmployee(" ");
|
||||||
|
System.out.println(emp);
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
|
System.out.println("コンストラクタに全てから文字で");
|
||||||
|
BaseData emptyEmployee = new EmployeeData("", "", "", "", "", "");
|
||||||
|
System.out.println(emptyEmployee);
|
||||||
|
|
||||||
|
System.out.println();
|
||||||
|
|
||||||
private static void DepartmentSearch(ArrayList<BaseData> allData) {
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.println("検索したい部署名を入力してください(戻る場合は0)");
|
System.out.println("検索したい部署名を入力してください(終了する場合は0)");
|
||||||
System.out.print(">>>>");
|
System.out.print(">>>>");
|
||||||
String str = scanner.nextLine().strip();
|
String searchDeptNm = scanner.nextLine();
|
||||||
String searchDeptId = "";
|
String searchDeptId = "";
|
||||||
switch (str) {
|
if (endChack(searchDeptNm))
|
||||||
case "0":
|
|
||||||
System.out.println("検索一覧に戻ります\n");
|
|
||||||
return;
|
|
||||||
default:
|
|
||||||
for (BaseData data : allData) {
|
|
||||||
if (data instanceof DepartmentData) {
|
|
||||||
if (((DepartmentData) data).getNmDepartment().equals(str)) {
|
|
||||||
searchDeptId = ((DepartmentData) data).getIdDepartment();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (searchDeptId.equals("")) {
|
|
||||||
System.out.println("該当する部署が見つかりませんでした\n");
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
for (BaseData data : allData) {
|
|
||||||
if (data instanceof EmployeeData) {
|
|
||||||
if (((EmployeeData) data).getIdDepartment().equals(searchDeptId)) {
|
|
||||||
System.out.println(
|
|
||||||
((EmployeeData) data).getNmEmployee() + "\t"
|
|
||||||
+ ((EmployeeData) data).getMailAddress());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
break;
|
break;
|
||||||
|
for (BaseData data : allData) {
|
||||||
|
if (data instanceof DepartmentData) {
|
||||||
|
if (((DepartmentData) data).getNmDepartment().equals(searchDeptNm)) {
|
||||||
|
searchDeptId = ((DepartmentData) data).getIdDepartment();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (searchDeptId.equals("")) {
|
||||||
|
System.out.println("該当する部署が見つかりませんでした");
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (BaseData data : allData) {
|
||||||
|
if (data instanceof EmployeeData) {
|
||||||
|
if (((EmployeeData) data).getIdDepartment().equals(searchDeptId)) {
|
||||||
|
System.out.println(
|
||||||
|
((EmployeeData) data).getNmEmployee() + "\t" + ((EmployeeData) data).getMailAddress());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
private static void EmployeeSeach(ArrayList<BaseData> allData) {
|
|
||||||
Scanner scanner = new Scanner(System.in);
|
|
||||||
while (true) {
|
while (true) {
|
||||||
System.out.println("検索したい社員IDを入力してください(戻る場合は0)");
|
System.out.println("検索したい社員IDを入力してください(終了する場合は0)");
|
||||||
System.out.print(">>>>");
|
System.out.print(">>>>");
|
||||||
String str = scanner.nextLine().strip();
|
String findId = scanner.nextLine();
|
||||||
boolean matchFlag = false;
|
if (endChack(findId))
|
||||||
switch (str) {
|
|
||||||
case "0":
|
|
||||||
System.out.println("検索一覧に戻ります\n");
|
|
||||||
return;
|
|
||||||
default:
|
|
||||||
for (BaseData e : allData) {
|
|
||||||
if (e.getPrimaryKeyValue().equals(str)) {
|
|
||||||
System.out.println(e);
|
|
||||||
matchFlag = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (!matchFlag) {
|
|
||||||
System.out.println("該当する社員が見つかりませんでした");
|
|
||||||
}
|
|
||||||
System.out.println();
|
|
||||||
break;
|
break;
|
||||||
|
boolean matchFlag = false;
|
||||||
|
|
||||||
|
for (BaseData e : employees) {
|
||||||
|
if (e.getPrimaryKeyValue().equals(findId)) {
|
||||||
|
System.out.println(e);
|
||||||
|
matchFlag = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if (!matchFlag) {
|
||||||
|
System.out.println("該当する社員が見つかりませんでした");
|
||||||
|
}
|
||||||
|
System.out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static boolean endChack(String input) {
|
||||||
|
if (input.equals("0")) {
|
||||||
|
System.out.println("システムを終了します");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user