java版學生信息管理系統
1.目標:可以實現學生信息的增刪改查以及對文件的導入導出
2.代碼:
1 import java.io.*; 2 import java.io.IOException; 3 import java.util.Scanner; 4 class Student{ 5 String stunumber; //學號 6 String name; //姓名 7 int age; //年齡 8 boolean sex; //性別 9 double score; //成績 10 public void setStunumber(String stunumber) { 11 this.stunumber=stunumber; 12 } 13 public void setName(String name) { 14 this.name=name; 15 } 16 public void setAge(int age) { 17 this.age=age; 18 } 19 public void setSex(boolean sex) { 20 this.sex=sex; 21 } 22 public void setScore(double score) { 23 this.score=score; 24 } 25 public String getStunumber() { 26 return stunumber; 27 } 28 public String getName() { 29 return name; 30 } 31 public int getAge() { 32 return age; 33 } 34 public boolean getSex() { 35 return sex; 36 } 37 public double getScore() { 38 return score; 39 } 40 public Student() {} 41 public Student(String stunumber,String name,int age,boolean sex,double score) { 42 this.stunumber=stunumber; 43 this.name=name; 44 this.age=age; 45 this.sex=sex; 46 this.score=score; 47 } 48 } 49 //StudentManage類 50 public class StudentManager { 51 static int num=0; 52 static Student[] stu=new Student[100]; 53 static Scanner in=new Scanner(System.in); 54 public static void showStudent() { 55 if(num==0) { 56 System.out.println("很抱歉,暫無學生信息!"); 57 return; 58 } 59 System.out.println("學號\t姓名\t年齡\t性別\t成績"); 60 for(int i=0;i<num;i++) { 61 System.out.println(stu[i].getStunumber()+"\t"+stu[i].getName()+"\t"+stu[i].getAge()+"\t"+stu[i].getSex()+"\t"+stu[i].getScore()); 62 } 63 } 64 //添加 65 public static void addStudent() { 66 String ch; 67 do { 68 String stunumber; 69 System.out.print("請輸入新同學學號:"); 70 stunumber=in.next(); 71 int a=find(stunumber); 72 if(a!=-1) { 73 System.out.println("該學生已經存在!"); 74 }else { 75 System.out.println("請輸入新同學的姓名、年齡、性別、分數:"); 76 stu[num]=new Student(); 77 stu[num].setStunumber(stunumber); 78 stu[num].setName(in.next()); 79 stu[num].setAge(in.nextInt()); 80 stu[num].setSex(in.nextBoolean()); 81 stu[num].setScore(in.nextDouble()); 82 num++; 83 } 84 System.out.println("錄入成功!"); 85 System.out.println("是否繼續錄入?Y/N"); 86 ch=in.next(); 87 }while(ch.equals("Y")); 88 } 89 //刪除 90 public static void deleteStudent() { 91 System.out.print("請輸入你要刪除的學號:"); 92 String i=in.next(); 93 int a=find(i); 94 if(a==-1) { 95 System.out.println("該學號不存在"); 96 }else { 97 for(int j=a;j<num-1;j++) { 98 stu[j].setStunumber(stu[j+1].getStunumber()); 99 stu[j].setName(stu[j+1].getName()); 100 stu[j].setAge(stu[j+1].getAge()); 101 stu[j].setSex(stu[j+1].getSex()); 102 stu[j].setScore(stu[j+1].getScore()); 103 } 104 num--; 105 System.out.println("刪除成功!"); 106 } 107 } 108 //修改 109 public static void updateStudent() { 110 System.out.print("請輸入你要修改的學號:"); 111 String m=in.next(); 112 int a=find(m); 113 if(a==-1) { 114 System.out.println("該學號不存在"); 115 }else { 116 System.out.println("請輸入修改后的姓名、年齡、性別、分數:"); 117 stu[a].setStunumber(m); 118 stu[a].setName(in.next()); 119 stu[a].setAge(in.nextInt()); 120 stu[a].setSex(in.nextBoolean()); 121 stu[a].setScore(in.nextInt()); 122 System.out.println("修改成功!"); 123 } 124 } 125 //查找 126 public static void findStudent() { 127 System.out.print("請輸入你要查找的學號:"); 128 String m=in.next(); 129 int a=find(m); 130 if(a==-1) { 131 System.out.println("該學號不存在"); 132 }else { 133 System.out.println("學號\t姓名\t年齡\t性別\t成績"); 134 System.out.println(stu[a].getStunumber()+"\t"+stu[a].getName()+"\t"+stu[a].getAge()+"\t"+stu[a].getSex()+"\t"+stu[a].getScore()); 135 } 136 } 137 //查找學號是否重復 138 public static int find(String a) { 139 int i=0,k=0; 140 for(i=0;i<num;i++) { 141 if(stu[i].getStunumber().compareTo(a)==0) { 142 k=1; 143 break; 144 } 145 } 146 if(k==0) { 147 return -1; //學號不重復 148 }else { 149 return i; 150 } 151 } 152 //導入文件 153 public static void inp() throws IOException{ 154 System.out.println("請輸入要導入的文件名:"); 155 String fileName=in.next(); 156 Reader reader=new FileReader(fileName); 157 158 reader.close(); 159 } 160 //導出文件 161 public static void out() throws IOException { 162 System.out.println("請輸入要導出的文件名:"); 163 String fileName=in.next(); 164 Writer writer=new FileWriter(fileName); 165 writer.write("學號\t姓名\t年齡\t性別\t成績\n"); 166 for(int i=0;i<num;i++) { 167 writer.write(stu[i].getStunumber()+"\t"+stu[i].getName()+"\t"+stu[i].getAge()+"\t"+stu[i].getSex()+"\t"+stu[i].getScore()+"\n"); 168 } 169 System.out.println("導出成功!"); 170 writer.close(); 171 } 172 public static void main(String[] args) throws IOException { 173 boolean t=true; 174 while(t) { 175 System.out.println("*************************************"); 176 System.out.println(" 石家庄鐵道大學信息科學與技術學院 "); 177 System.out.println(" 學生信息管理系統 v2.0 "); 178 System.out.println("*************************************"); 179 System.out.println(" 1、遍歷輸出學生信息"); 180 System.out.println(" 2、新學生信息錄入"); 181 System.out.println(" 3、刪除學生信息"); 182 System.out.println(" 4、修改學生信息"); 183 System.out.println(" 5、查詢學生信息"); 184 System.out.println(" 6、導入文件"); 185 System.out.println(" 7、導出文件"); 186 System.out.println("*************************************"); 187 int n; 188 Scanner in=new Scanner(System.in); 189 System.out.print("請輸入你要執行的操作:"); 190 n=in.nextInt(); 191 switch(n) { 192 case 1:showStudent();break; 193 case 2:addStudent();break; 194 case 3:deleteStudent();break; 195 case 4:updateStudent();break; 196 case 5:findStudent();break; 197 case 7:out();break; 198 default: 199 t=false; 200 System.out.println("歡迎再次使用本系統!"); 201 break; 202 } 203 System.out.println(); 204 } 205 } 206 }
3.測試截圖