Java_学生信息管理系统——数组版——尝试将main函数单独放了一个类,并加了文件

开学后学习Java文件操作,并为了研究main究竟放在那里的问题,又写了一遍学生信息管理系统。这次放弃用Array List,就用了普通的一维数组。顺便整理上来。

 1 package Student;
 2 
 3 public class Student
 4 {
 5     private String stunumber; 
 6     private String name;
 7     private int age;
 8     private boolean sex;//man=false,woman=true
 9     private Double score;
10     Student ()
11     {
12         stunumber="";
13         name="";
14         age=0;
15         sex=false;
16         score=0.0;
17     }
18     Student (String a,String b,int c,boolean d,Double e)
19     {
20         stunumber=a;
21         name=b;
22         age=c;
23         sex=d;
24         score=e;
25     }
26     public void set_stunumber(String str)
27     {
28         stunumber=str;
29     }
30     public void set_name(String str)
31     {
32         name=str;
33     }
34     public void set_age(int n)
35     {
36         age=n;
37     }
38     public void set_sex(boolean bool)
39     {
40         sex=bool;
41     }
42     public void set_score(Double n)
43     {
44         score=n;
45     }
46     public String get_stunumber()
47     {
48         return stunumber;
49     }
50     public String get_name()
51     {
52         return name;
53     }
54     public int get_age()
55     {
56         return age;
57     }
58     public boolean get_sex()
59     {
60         return sex;
61     }
62     public Double get_score()
63     {
64         return score;
65     }
66 
67 }
  1 package Student;
  2 import java.util.Scanner;
  3 import java.io.*;
  4 public class StudentManager
  5 {
  6     private Student stu[]=new Student[100];
  7     private int number;
  8     StudentManager()
  9     {
 10         number=0;
 11         
 12     }
 13     public void showStudent()
 14     {
 15         String s;
 16         for(int i=0;i<number;i++)
 17         {
 18             if(stu[i].get_sex()==true)
 19             {
 20                 s="女";
 21             }
 22             else
 23             {
 24                 s="男";
 25             }
 26             System.out.print("("+(i+1)+")	");
 27             System.out.print("学号: ");
 28             System.out.print(stu[i].get_stunumber());
 29             System.out.print("  姓名: ");
 30             System.out.print(stu[i].get_name());
 31             System.out.print("  年龄: ");
 32             System.out.print(stu[i].get_age());
 33             System.out.print("  性别: ");
 34             System.out.print(s);
 35             System.out.print("  成绩: ");
 36             System.out.println(stu[i].get_score());
 37         }
 38     }
 39     public void addStudent()
 40     {
 41         Scanner input=new Scanner(System.in);
 42         String a, b,f;
 43         int c;
 44         boolean d=false;
 45         Double e;
 46         int f1=1;
 47         do
 48         {
 49             System.out.println("请依次输入学号 姓名 年龄 性别 成绩");
 50             a=input.next();
 51             b=input.next();
 52             c=input.nextInt();
 53             f=input.next();
 54             e=input.nextDouble();
 55             if(f.equals("女"))
 56             {
 57                 d=true;
 58             }
 59             else
 60             {
 61                 d=false;
 62             }
 63             if(judgeSame(a)==true)
 64             {
 65                 stu[number]=new Student();
 66                 stu[number].set_stunumber(a);
 67                 stu[number].set_name(b);
 68                 stu[number].set_age(c);
 69                 stu[number].set_sex(d);
 70                 stu[number].set_score(e);
 71                 number++;
 72                 System.out.println("是否继续?是 1  否 0");
 73                 f1=input.nextInt();
 74             }
 75             else
 76             {
 77                 System.out.println("学号重复!该学生已存在!");
 78                 f1=1;
 79             }
 80         }while(f1==1);
 81     }
 82     private boolean judgeSame(String s)
 83     {
 84         for(int i=0;i<number;i++)
 85         {
 86             if(s.equals(stu[i].get_stunumber())==true)
 87             {
 88                 return false;
 89             }
 90         }
 91         return true;
 92     }
 93     public void deleteStudent()
 94     {
 95         Scanner input=new Scanner(System.in);
 96         String s;
 97         System.out.println("请输入要删除的学生的学号:");
 98         s=input.next();
 99         boolean f=false;
100         for(int i=0;i<number;i++)
101         {
102             if(s.equals(stu[i].get_stunumber()))
103             {
104                 f=true;
105                 number--;
106                 for(int t=i;t<number;t++)
107                 {
108                     stu[t]=stu[t+1];
109                 }
110             }
111         }
112         if(f==false)
113         {
114         System.out.println("删除失败!该学生不存在");
115         }
116     }
117     public void selectStudent()
118     {
119         Scanner input=new Scanner(System.in);
120         String s;
121         System.out.println("请输入要查询的学生的学号:");
122         s=input.next();
123         boolean flag=false;
124         for(int i=0;i<number;i++)
125         {
126             if(s.equals(stu[i].get_stunumber()))
127             {
128                 flag=true;
129                 if(stu[i].get_sex()==true)
130                 {
131                     s="女";
132                 }
133                 else
134                 {
135                     s="男";
136                 }
137                 System.out.print("学号: ");
138                 System.out.print(stu[i].get_stunumber());
139                 System.out.print("  姓名: ");
140                 System.out.print(stu[i].get_name());
141                 System.out.print("  年龄: ");
142                 System.out.print(stu[i].get_age());
143                 System.out.print("  性别: ");
144                 System.out.print(s);
145                 System.out.print("  成绩: ");
146                 System.out.println(stu[i].get_score());
147             }
148         }
149         if(flag==false)
150         {
151         System.out.println("该学生不存在!");
152         }
153     }
154     public void updateStudent()
155     {
156         Scanner input=new Scanner(System.in);
157         String s;
158         String a, b,f;
159         int c;
160         boolean d=false;
161         Double e;
162         System.out.println("请输入要修改的学生的学号:");
163         s=input.next();
164         boolean flag=false;
165         for(int i=0;i<number;i++)
166         {
167             if(s.equals(stu[i].get_stunumber()))
168             {
169                 flag=true;
170                 System.out.println("请依次输入学号 姓名 年龄 性别 成绩");
171                 a=input.next();
172                 b=input.next();
173                 c=input.nextInt();
174                 f=input.next();
175                 e=input.nextDouble();
176                 if(f.equals("女"))
177                 {
178                     d=true;
179                 }
180                 else
181                 {
182                     d=false;
183                 }
184                 if(judgeSame(a)==true)
185                 {
186                     stu[i]=new Student();
187                     stu[i].set_stunumber(a);
188                     stu[i].set_name(b);
189                     stu[i].set_age(c);
190                     stu[i].set_sex(d);
191                     stu[i].set_score(e);
192                 }
193                 else
194                 {
195                     System.out.println("修改失败!学号重复!该学生已存在!");
196                 }
197             }
198         }
199         if(flag==false)
200         {
201         System.out.println("修改失败!该学生不存在!");
202         }
203     }
204     public void infile()
205     {
206         String s;
207         number=0;
208         int i=0;
209         boolean d=false;
210         try
211         {
212             Scanner input=new Scanner(System.in);
213             System.out.println("请输入文件路径:");
214             s=input.next();
215             FileReader fr=new FileReader(s);
216             Scanner r=new Scanner(fr);
217             while(r.hasNext())
218             {
219                 stu[i]=new Student();
220                 stu[i].set_stunumber(r.next());
221                 stu[i].set_name(r.next());
222                 stu[i].set_age(r.nextInt());
223                 stu[i].set_sex(r.nextBoolean());
224                 stu[i].set_score(r.nextDouble());
225                 i++;
226             }
227             
228             fr.close();
229             r.close();
230         }
231         catch(IOException e)
232         {
233             System.out.println("读取错误!");
234             e.printStackTrace();
235             
236         }
237         number=i;
238     }
239     public void outfile()
240     {
241         String s;
242         Scanner input=new Scanner(System.in);
243         System.out.println("请输入文件路径:");
244         s=input.next();
245         File f=new File(s);
246         try
247         {
248             FileWriter fw=new FileWriter(f);
249             PrintWriter pw=new PrintWriter(fw);
250             
251             for(int i=0;i<number;i++)
252             {
253                 pw.print(stu[i].get_stunumber()+" ");
254                 pw.print(stu[i].get_name()+" ");
255                 pw.print(stu[i].get_age()+" ");
256                 pw.print(stu[i].get_sex()+" ");
257                 pw.println(stu[i].get_score());
258             }
259             fw.flush();
260             fw.close();
261             pw.close();
262         }
263         catch(IOException e)
264         {
265             System.out.println("输出错误!");
266             e.printStackTrace();
267         }
268     }
269 }
 1 package Student;
 2 import java.util.Scanner;
 3 public class Main
 4 {
 5 
 6     public static void main(String[] args)
 7     {
 8         Scanner input=new Scanner(System.in);
 9         StudentManager m=new StudentManager();
10         int select=1;
11         for(;;)
12         {
13             face();
14             do
15             {
16             select=input.nextInt();
17             }while(select<1||select>7);
18             switch(select)
19             {
20                 case 1:m.showStudent();break;
21                 case 2:m.addStudent();break;
22                 case 3:m.deleteStudent();break;
23                 case 4:m.updateStudent();break;
24                 case 5:m.selectStudent();break;
25                 case 6:m.infile();break;
26                 case 7:m.outfile();break;
27             }
28         }
29     }
30     private static void face()
31     {
32         System.out.println("***************************************************");
33         System.out.println("    石家庄铁道大学信息科学与技术学院");
34         System.out.println("        学生信息管理系统");
35         System.out.println("***************************************************");
36         System.out.println("        1.遍历输出学生信息");
37         System.out.println("        2.新学生信息录入");
38         System.out.println("        3.删除学生信息");
39         System.out.println("        4.修改学生信息");
40         System.out.println("        5.查询学生信息");
41         System.out.println("        6.导入文件");
42         System.out.println("        7.导出文件");
43         System.out.println("***************************************************");
44     }
45 }