java簡單的學生管理系統(無界面)
<span style="font-size:14px;">package Students;
public class Students {
private String Name;
private long Number;
private String Class;
private int Score;//不將數據域定義爲私有的,定義爲共有的,將使編寫代碼變得簡單一些,可以省去很多方法
public Students(){
this("sdiuf h",6544534,"ef esf",48);//無意義
}
public Students(String Name,long Number,String Class){
this(Name,Number,Class,0);//主要是想嘗試一下this引用本類
}
public Students(String Name,long Number,String Class,int Score){
this.Name = Name;
this.Number = Number;
this.Score = Score;
this.Class = Class;
}
public void SetName(String Name){
this.Name = Name;
}
public void SetNumber(long Number){
this.Number = Number;
}
public void SetClass(String Class){
this.Class = Class;
}
public void SetScore(int Score){
this.Score = Score;
}
public String GetName(){
return Name;
}
public long GetNumber(){
return Number;
}
public String GetClass(){
return Class;
}
public int GetScore(){
return Score;
}
}
</span>
<span style="font-size:14px;"><pre name="code" class="java">package Students;
import java.util.Scanner;
import java.io.*;
public class MainStudents {
static int i = 0;
public static void main(String[] args) throws FileNotFoundException, IOException, Exception{
Scanner Input = new Scanner(System.in);
int choose;
do{
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("--------------【0】、退出應用----------------------");
choose = Input.nextInt();
switch(choose){
case 1: Students1(); break;
case 2: Students2(); break;
case 3: Students3(); break;
case 4: Students4(); break;
case 5: Students5(); break;
case 6: Students6(); break;
case 0: Students0(); break;
default:
System.out.println("你輸入的信息有誤,請重新輸入!");
}
}while(choose != 0);
}
private static void Students1() throws FileNotFoundException{
Students[] stu = new Students[100];//這裏只輸入一組數據,可以不用對象數組,而直接用Students類
Scanner Input = new Scanner(System.in);
stu[i] = new Students();
System.out.println("請輸入學生的班級:");//以String類儲存漢字,可能會出現亂碼的情況
stu[i].SetClass(Input.next());
System.out.println("請輸入學生的學號:");
stu[i].SetNumber(Input.nextLong());
System.out.println("請輸入學生的姓名:");
stu[i].SetName(Input.next());
System.out.println("請輸入學生的成績:");
stu[i].SetScore(Input.nextInt());
System.out.println(stu[i].GetClass());
File fl = new File("Students.txt");
try (PrintWriter output = new PrintWriter(fl)) {
output.print(stu[i].GetName() + "\t");
output.print(stu[i].GetNumber() + "\t");
output.print(stu[i].GetClass() + "\t");
output.println(stu[i].GetScore());
}
i++;
File Fl = new File("Number.txt");
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
}
private static void Students2() throws IOException{
Scanner Input = new Scanner(System.in);
File Fl = new File("Number.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
try (FileWriter out = new FileWriter("Students.txt",true)) {//以在文件末尾添加數據的方式創建向文件內輸入數據的類
System.out.println("請輸入學生的姓名");
out.write("\t" + Input.next() + "\t");
System.out.println("請輸入學生的學號");
out.write(Input.nextLong() + "\t");
System.out.println("請輸入學生的班級");
out.write(Input.next() + "\t");
System.out.println("請輸入學生的成績");
out.write(Input.nextInt() + "\n");
}
i++;
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
}
private static void Students3() throws Exception{
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("請輸入你想修改學生的學號");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先將對象數組初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t學號\t班級\t成績");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
System.out.println("你確定刪除這組數據?(Y/N)(不區分大小寫)");
String choose = input.next();
System.out.println(choose);
if("Y".equals(choose)||"y".equals(choose)){//不能使用choose == "y"語句
j--;
i--;
}
}
}
}
try(PrintWriter output = new PrintWriter(Fl)){
output.print(i);
}
if(i == 0){
try (PrintWriter output = new PrintWriter(fl)) {
}
}
else{
try (PrintWriter output = new PrintWriter(fl)) {
for(int j = 0;j < i;j ++){
output.print(stu[j].GetName() + "\t");
output.print(stu[j].GetNumber() + "\t");
output.print(stu[j].GetClass() + "\t");
output.println(stu[j].GetScore());
}
}
}
}
private static void Students4() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("請輸入你想修改學生的學號");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先將對象數組初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t學號\t班級\t成績");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
System.out.println("請輸入學生新的班級");
stu[j].SetClass(input.next());
System.out.println("請輸入學生新的成績");
stu[j].SetScore(input.nextInt());
}
}
}
try (PrintWriter output = new PrintWriter(fl)) {
for(int j = 0;j < i;j ++){
output.print(stu[j].GetName() + "\t");
output.print(stu[j].GetNumber() + "\t");
output.print(stu[j].GetClass() + "\t");
output.println(stu[j].GetScore());
}
}
}
private static void Students5() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
System.out.println("請輸入你想查看學生的學號");
Scanner input = new Scanner(System.in);
long Number = input.nextLong();
Students[] stu = new Students[i];
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先將對象數組初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
if(Number == stu[j].GetNumber()){
System.out.println("姓名\t學號\t班級\t成績");
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
}
}
}
}
private static void Students6() throws FileNotFoundException {
File Fl = new File("Number.txt");
File fl = new File("Students.txt");
try (Scanner input = new Scanner(Fl)) {
i = input.nextInt();
}
Students[] stu = new Students[i];
System.out.println("姓名\t學號\t班級\t成績");
try(Scanner Input = new Scanner(fl)){
for(int j =0;j < i;j++){
stu[j] = new Students();//要先將對象數組初始化
stu[j].SetName(Input.next());//不能使用nextLine(),此爲輸入以\n爲結尾的所有數
stu[j].SetNumber(Input.nextLong());
stu[j].SetClass(Input.next());
stu[j].SetScore(Input.nextInt());
System.out.println(stu[j].GetName() + "\t" + stu[j].GetNumber() +
"\t" + stu[j].GetClass() + "\t" + stu[j].GetScore());
}
}
}
private static void Students0() {
System.out.println("你將退出程序!");
}
}</span>
爲對象數組賦值是可以用此形式代替
stu[j] = new Students(Input.next(),Input.nextLong(),Input.next(),Input.nextInt());
因爲在Students類裏面已經定義此方法