public class students {
private String id;
private String name;
private String age;
private String address;
private int[] score=new int[3];
public students() {
}
public students(String id, String name, String age, String address,int arr[]) {
this.id = id;
this.name = name;
this.age = age;
this.address = address;
for(int i=0;i<3;i++)
{
this.score[i]=arr[i];
}
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public void setScore(int arr[]) {
for(int i=0;i<3;i++)
{
this.score[i]=arr[i];
}
}
public int getChineseScore() {
return score[0];
}
public void setChineseScore(int score) {
this.score[0]=score;
}
public int getMathScore() {
return score[1];
}
public void setMathScore(int score) {
this.score[1]=score;
}
public int getEnglishScore() {
return score[2];
}
public void setEnglishScore(int score) {
this.score[2]=score;
}
}
import java.util.ArrayList;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.*;
public class StuMange {
public static void main(String[] args) throws IOException {
ArrayList<students> array=new ArrayList<students>();
LoadAllInfo(array);
while (true) {
System.out.println("--------歡迎來到學生管理系統,請選擇:--------");
System.out.println("1 查看所有學生");
System.out.println("2 添加學生");
System.out.println("3 刪除學生");
System.out.println("4 修改學生");
System.out.println("5 成績排序");
System.out.println("6 學號排序");
System.out.println("7 退出");
System.out.println("請輸入你的選擇:");
Scanner sc = new Scanner(System.in);
String choiceString = sc.nextLine();
switch (choiceString) {
case "1":
findAllStudent(array);
break;
case "2":
addStudent(array);
break;
case "3":
deleteStudent(array);
break;
case "4":
updateStudent(array);
break;
case "5":
default:
System.out.println("謝謝你的使用 ");
System.exit(0);
break;
}
}
}
private static void LoadAllInfo(ArrayList<students>arrayList) throws IOException {
BufferedReader br = new BufferedReader(new FileReader("student.txt"));
String line;
while((line=br.readLine())!=null) {
String [] strAString=line.split(",");
students s2=new students();
s2.setId(strAString[0]);
s2.setName(strAString[1]);
s2.setAge(strAString[2]);
s2.setAddress(strAString[3]);
s2.setChineseScore(Integer.parseInt(strAString[4]));
s2.setMathScore(Integer.parseInt(strAString[5]));
s2.setEnglishScore(Integer.parseInt(strAString[6]));
arrayList.add(s2);
}
}
private static void updateStudent(ArrayList<students> array) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要修改學生的學號:");
String id = sc.nextLine();
int index = -1;
for (int x = 0; x < array.size(); x++) {
students s = array.get(x);
if (s.getId().equals(id)) {
index = x;
break;
}
}
if (index != -1) {
System.out.println("請輸入新姓名:");
String name = sc.nextLine();
System.out.println("請輸入新年齡:");
String age = sc.nextLine();
System.out.println("請輸入新地址:");
String address = sc.nextLine();
System.out.println("請輸入新的成績單(語數外)");
int arr[]=new int [3];
for(int i=0;i<3;i++)
{
arr[i]=sc.nextInt();
}
students s = new students();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
s.setScore(arr);
array.set(index, s);
System.out.println("修改學生成功");
RefreshInfo(array);
} else {
System.out.println("不好意思,你要修改的學號對應的學生信息不存在,請回去重新選擇你的操作");
return;
}
}
private static void deleteStudent(ArrayList<students> array) throws IOException {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入你要刪除學生的學號:");
String id = sc.nextLine();
int index = -1;
for (int x = 0; x < array.size(); x++) {
students s = array.get(x);
if (s.getId().equals(id)) {
index = x;
break;
}
}
if (index != -1) {
array.remove(index);
RefreshInfo(array);
System.out.println("刪除學生成功");
} else {
System.out.println("不好意思,你要刪除的學號對應的學生信息不存在,請回去重新選擇你的操作");
return;
}
}
private static void RefreshInfo(ArrayList<students> array) throws IOException {
BufferedWriter bW=new BufferedWriter(new FileWriter("student.txt"));
for(int i=0;i<array.size();i++)
{
StringBuilder strbuilder=new StringBuilder();
students s1=array.get(i);
strbuilder.append(s1.getId()).append(",").
append(s1.getName()).append(",").
append(s1.getAge()).append(",").
append(s1.getAddress()).append(",").
append(s1.getChineseScore()).append(",").
append(s1.getMathScore()).append(",").
append(s1.getEnglishScore());
bW.write(strbuilder.toString());
bW.newLine();
bW.flush();
}
bW.close();
}
private static void addStudent(ArrayList<students> array) throws IOException {
Scanner sc = new Scanner(System.in);
String id;
while (true) {
System.out.println("請輸入學號:");
id = sc.nextLine();
boolean flag = false;
for (int x = 0; x < array.size(); x++) {
students s = array.get(x);
if (s.getId().equals(id)) {
flag = true;
}
}
if (flag == true) {
System.out.println("你輸入的學號已經被占用,請重新輸入");
} else {
break;
}
}
System.out.println("請輸入姓名:");
String name = sc.nextLine();
System.out.println("請輸入年齡:");
String age = sc.nextLine();
System.out.println("請輸入地址:");
String address = sc.nextLine();
System.out.println("請輸入語文,數學,英語的成績");
int arr[]=new int[3];
for(int i=0;i<3;i++)
{
arr[i]=sc.nextInt();
}
students s = new students();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
s.setScore(arr);
array.add(s);
RefreshInfo(array);
System.out.println("添加學生成功");
}
private static void findAllStudent(ArrayList<students> array) {
if (array.size() == 0) {
System.out.println("不好意思,目前沒有學生信息可供查看,請回去重新選擇你的操作");
return;
}
System.out.println("學號\t姓名\t年齡\t居住地\t語文\t數學\t英語");
for (int x = 0; x < array.size(); x++) {
students s = array.get(x);
System.out.println(s.getId() + "\t" + s.getName() + "\t" + s.getAge() + "\t"
+s.getAddress()+"\t"+s.getChineseScore()+"\t"+s.getMathScore()+"\t"+s.getEnglishScore());
}
}
}