码迷,mamicode.com
首页 > 其他好文 > 详细

学生管理小系统

时间:2015-07-08 18:05:50      阅读:89      评论:0      收藏:0      [点我收藏+]

标签:

PO:有哪几个对象构成   : (学生)学号 姓名 性别 成绩

 

持久化层:改造对象方法:addAStu(); delAStu();updateAStuScore();queryAllStu();queryAStu();

 

界面:显示信息.

学生类 Student .java

public class Student {

   private String stuNo; // 学号

   private String name;  // 姓名

   private char sex;     // 性别

   private int score;    // 成绩

   public Student(){}

   public Student(String stuNo,String name,char sex,int score){

      this.stuNo = stuNo;

      this.name = name;

      this.sex = sex;

      this.score = score;

    }

   public void setStuNo(String stuNo){

      this.stuNo = stuNo;

    }

   public String getStuNo(){

      return stuNo;

    }

    public void setName(String name){

      this.name = name;

    }

   public String getName(){

      return name;

    }

    public void setSex(char sex){

      this.sex = sex;

    }

    public char getSex(){

      return sex;

    }

    public void setScore(int score){

      this.score = score;

    }

    public int getScore(){

      return score;

    }

}

学生系统功能接口类 StudentDaoI.java

import java.util.List;

public interface StudentDaoI{

    /*

     *增加一个学生

     *parameter:stuNo表示学号

     *parameter:name表示姓名

     *parameter:sex表示性别

     *parameter:score表示分数

     *return :返回正确错误

     */     

    public boolean addAStu(String stuNo,String name,char sex,int score); 

    /*

     *删除一个学生

     *parameter:stuNo表示学号

     *return :返回正确错误

     */

    public boolean delAStu(String stuNo);

     /*

     *修改一个学生成绩

     *parameter:stuNo表示学号

     *parameter:score表示新分数

     *return :返回正确错误

     */    

    public boolean updateAStuScore(String stuNo,int score);

     /*

     *返回学生信息列表

     *return :返回一个动态数组

     */  

    public List queryAllStu();

    /*

     *根据学号查询学生相关信息

     *parameter:stuNo表示学号

     *return :返回这个学生

     */  

    public Student queryAStu(String stuNo);

}

实现功能接口类 StudentDaoImpl.Java

import java.util.List;

import java.util.Scanner;

import java.io.File;

import java.util.ArrayList;

import java.io.*;

public class StudentDaoImpl implements StudentDaoI {

  /*

     *增加一个学生

     *parameter:stuNo表示学号

     *parameter:name表示姓名

     *parameter:sex表示性别

     *parameter:score表示分数

     *return :返回正确错误

     */    

public boolean addAStu(String stuNo,String name,char sex,int score) {

     try{   

        // OutputStream out  ---> OutputStreamWriter ---> FileWriter

        //该语句是一个输出流,FileWriter("StudentsInfo.txt"true) FileWriter("StudentsInfo.txt")          

               //的区别有true:在原有内容后追加 没有true:覆盖或清空 

           PrintWriter pw=new PrintWriter(new FileWriter("StudentsInfo.txt",true));

               String str=stuNo+":"+name+":"+sex+":"+score;

               pw.write(str+"\r\n");

               pw.flush();

               pw.close();

             }

     catch(Exception e){

             e.printStackTrace();

              return false;

  }

         return true;

    

     }

    /*

     *删除一个学生

     *parameter:stuNo表示学号

     *return :返回正确错误

     */

    public boolean delAStu(String stuNo) {     

        try{ 

     Scanner scan=new Scanner(new File("StudentsInfo.txt"));

     ArrayList ar=new ArrayList();                    while(scan.hasNextLine()){

                    String   line= scan.nextLine();

if(!(line.startsWith(stuNo))){

    ar.add(line);

       }

  scan.close();    }

                         System.out.println(ar.size());

//该语句是一个输出流,FileWriter("StudentsInfo.txt"true)FileWriter("StudentsInfo.txt")

//的区别有true:在原有内容后追加 没有true:覆盖或清空 

PrintWriter  pw=new PrintWriter(new FileWriter("StudentsInfo.txt"));

                for(int i=0;i<ar.size();i++){           

                     pw.write(ar.get(i)+"\r\n");            

  } 

         pw.flush();

 pw.close();      

            }

catch(Exception e){

                 e.printStackTrace();

  return false;

}

        return true;

     }

     /*

     *修改一个学生成绩

     *parameter:stuNo表示学号

     *parameter:score表示新分数

     *return :返回正确错误

     */    

    public boolean updateAStuScore(String stuNo,int score) {

        ArrayList ar=new ArrayList();

  

        try{ 

              

  Scanner scan=new Scanner(new File("StudentsInfo.txt")); 

 

    while(scan.hasNextLine()){

String line= scan.nextLine();

if(line.startsWith(stuNo)){

String[] s=line.split(":");

    s[3]=score+"";

line=s[0]+":"+s[1]+":"+s[2]+":"+s[3]; 

}

                     scan.close();

ar.add(line);

    }

try{ 

//该语句是一个输出流,FileWriter("StudentsInfo.txt"true)FileWriter("StudentsInfo.txt")

//的区别有true:追加 没有true:覆盖或清空

PrintWriter  pw=new PrintWriter(new FileWriter("StudentsInfo.txt"));

 for(int i=0;i<ar.size();i++){

     pw.write(ar.get(i)+"\r\n");  

  } 

         pw.flush();

 pw.close();         

                 }  catch(Exception e){

                 e.printStackTrace();

  return false;

}   

            }

catch(Exception e){

                 e.printStackTrace();

  return false;

}

        return true;

     }

              /*

     *返回学生信息列表

     *return :返回一个动态数组

     */  

    public List queryAllStu() {

           ArrayList ar=new ArrayList();

          try{ 

          Scanner scan=new Scanner(new File("StudentsInfo.txt"));    

          while(scan.hasNextLine()){

               String s= scan.nextLine();

                 ar.add(s);   

           }

              scan.close();

            

         }

         catch(Exception e)

          {

              e.printStackTrace();

              

          }

                 return ar;          

     }

     /*

     *根据学号查询学生相关信息

     *parameter:stuNo表示学号

     *return :返回这个学生

     */  

    public Student queryAStu(String stuNo) {

            try{

              Scanner scan=new Scanner(new File("StudentsInfo.txt"));

                   while(scan.hasNextLine()){

                       String line= scan.nextLine();                                           

                       if(line.startsWith(stuNo)){

                         String[] s=line.split(":"); 

                         Student st=new Student();  

                           st.setStuNo(s[0]);

                           st.setName(s[1]);

                           st.setSex(s[2].charAt(0));

                           st.setScore(Integer.parseInt(s[3]));

                           return st;

                       }

                 }

 scan.close();

             }

   catch(Exception e){

              e.printStackTrace();

             }

           return null;

     }

}

 

建立存放学生信息文件  

StudentsInfo.txt

130101:张三::12

130102:王山::12

130103:黄金::12

 

 

学生主界面类

MainMenu.java

 

import java.util.Scanner;

import java.util.List;

public class MainMenu {

  public static void main(String[] args){

  

    StudentDaoI stuDao = new StudentDaoImpl();

  

    while(true) {

     System.out.println("==================================");

     System.out.println("=[0]主菜单========================");

     System.out.println("=[1]查找学生======================");

     System.out.println("=[2]增加学生======================");

     System.out.println("=[3]删除学生======================");

     System.out.println("=[4]学生列表======================");

     System.out.println("=[5]更新成绩======================");   

          System.out.println("=[x]退出系统======================");        

        Scanner scan = new Scanner(System.in);        

        String command = scan.next();        

        String no = "";

        String name = "";

        String sex = "";

        int score = 0;        

        switch(command.charAt(0)){ 

           case ‘1‘ :

                System.out.println("请输入学号:");

                no = scan.next();

                Student stu = stuDao.queryAStu(no);                

                System.out.println("此学生的信息如下:");

                System.out.println(stu.getStuNo()+stu.getName()+stu.getSex()+stu.getScore());                 

                break;             

           case ‘2‘ :

                System.out.println("请输入学号:");

                no = scan.next();                 

                System.out.println("请输入姓名:");

                name = scan.next();                 

                System.out.println("请输入性别:");

                sex = scan.next();                 

                System.out.println("请输入成绩:");

                score = scan.nextInt(); 

                System.out.println("此学生的信息如下:");

   stuDao.addAStu(no,name,sex.charAt(0),score);

                break;        

           case ‘3‘ :

                System.out.println("请输入学号:");

                  no = scan.next();

    stuDao.delAStu(no);

                break;             

           case ‘4‘ :   

           

                    List myList = stuDao.queryAllStu(); 

                    for (int i = 0;i < myList.size();i++){

                       System.out.println(myList.get(i));                     

                     }  

                    

                              

                    break;                       

           case ‘5‘ :

                                   System.out.println("请输入学号:");

                no = scan.next();

                System.out.println("请输入成绩:");

                score = scan.nextInt();

                System.out.println("此学生的信息如下:");

                                    stuDao.updateAStuScore(no,score);

                break;                 

   case ‘x‘ :         System.exit(0);

 

         }  

  

   }

  

  }

 

 

}

 

学生管理小系统

标签:

原文地址:http://www.cnblogs.com/wuguang/p/4630712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!