【小白学编程Java方向】项目练习第10期(参考答案)


参考答案:

import java.io.EOFException;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.;
public class SSM {
    public static void main(String[] args) throws IOException{
         MainMenu mainmenu=new MainMenu();
         mainmenu.Startmenu();
    }
}
class Student implements Serializable{
    int stunum;
    String stuname;
    int score;
    Student(int stuno,String stun,int sco){
        stunum=stuno;
        stuname=stun;
        score=sco;
    }
    public String toString(){
        return 学号+stunum+    姓名+stuname+   分数+score;
    }
}
class StudentList {
    ArrayListStudent list = new ArrayListStudent();
    Boolean IsEmpty(){
        if(!list.isEmpty())
            return true;
        else{
            System.out.print(错误!列表为空!!);
            return false;
            }
        } 
    void CreatList(){ 
        Scanner scan=new Scanner(System.in);
        System.out.println(有几位学生);
        int n=scan.nextInt();
        System.out.println(输入学生学号、姓名和成绩(number name score格式));
        for(int i=0;in;i++){
            int number=scan.nextInt();
            String name=scan.next();
            int  score=scan.nextInt();
            Student student=new Student(number,name,score);
            list.add(student);
          }
    }
    void OutPut(){
            for(Student s list)
                System.out.println(s);
    } 
    void NameSearch(String name){
           for(Student s list){
              if(s.stuname.equals(name))
                  System.out.println(s);
            }
    }
    void NumberSearch(int number){
        for(Student s list){
            if(s.stunum==number)
                System.out.println(s);
                }
    }
    void Sort(final int n){
        ComparatorStudent comparator = new ComparatorStudent(){
            public int compare(Student s1, Student s2) { 
                       if(n==4)
                            return s1.stunum-s2.stunum;    
                       else
                           return s2.score-s1.score;
            }
         };
         Collections.sort(list,comparator);
         for(Student s list)
                System.out.println(s);
         }
    void Save() {
        try{ 
            FileOutputStream fs = new FileOutputStream(Student.txt); 
            ObjectOutputStream os = new ObjectOutputStream(fs); 
            for(Student s list)
                os.writeObject(s); 
            os.close(); 
            }catch(Exception ex){ 
                ex.printStackTrace(); 
                } 
        System.out.print(保存成功!!);
        }
    void Load(){
        try{ 
            FileInputStream fis = new FileInputStream(Student.txt); 
            ObjectInputStream ois = new ObjectInputStream(fis); 
            while(true){
                try{
                    Student stu =(Student) ois.readObject();
                    list.add(stu);
                    }catch (EOFException e) {
                         ois.close();
                         break;
                         }
                }
            }catch(Exception ex){ 
                ex.printStackTrace(); 
                } 
        System.out.println(加载成功!!);
    }
    public void remove() {
        list.removeAll(list);
        
    }
}
class MainMenu{
    void Startmenu(){
         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(0退出);
         StudentList studentlist=new StudentList();
         Scanner scan=new Scanner(System.in);
         int a=scan.nextInt();
         while(true){
         switch(a){
         case 1 
             System.out.println(输入学生信息……);
             studentlist.CreatList();
             studentlist.OutPut();
             break;
         case 2
             System.out.println(由姓名查询……);         
             if(studentlist.IsEmpty()){
                 System.out.println(输入名字:);
                 String name=scan.next();
                 studentlist.NameSearch(name);
             }
              break;
         case 3
             System.out.println(由学号查询……);            
             if(studentlist.IsEmpty()){
                 System.out.println(输入学号:);
                 int number=scan.nextInt();
                 studentlist.NumberSearch(number);
                  }
             break;
         case 4
                  if(studentlist.IsEmpty()){
                      System.out.println(由学号排序(升序)……);
                      studentlist.Sort(4);
                      }
              break;
         case 5
             if(studentlist.IsEmpty()){
                  System.out.println(由分数排序(降序)……);
                  studentlist.Sort(5);
                  }
             break;
         case 6
             System.out.println(保存学生数据……);    
             studentlist.Save();
             break;
         case 7
             System.out.println(加载学生数据……);    
             studentlist.remove();
             studentlist.Load();
             studentlist.OutPut();
             break;
         case 0
             System.out.println(退出……);
            System.exit(0);
         default
            System.out.print(选择错误,请重新选择);
         }
         a=scan.nextInt();
       }
     }
}

#Java#
全部评论

相关推荐

11-21 09:17
门头沟学院 Java
投递多益网络等公司6个岗位
点赞 评论 收藏
分享
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务