java课程设计(班级管理系统)(毕设+实现+源码+数据库)

88 篇文章 0 订阅
86 篇文章 0 订阅

一:需求分析

1.功能需求

1).能够实现对班级学生基本资料的录入,包括学生的学号,姓名,性别,所学专业,家庭住址以及出生年月等。

2).能够实现对学生基本资料的修改。

3).根据学号对学生资料进行查询。

4).能够删除某些学生的资料。

二:总体设计

  本班级管理系统共有6个java源文件。

类之间的主要关系如下图所示:

   

各主类的主要作用如下:

1).StudentManager.java

该java文件的类负责创建班级学生管理系统的主窗口。该类包含main方法,程序从该类开始执行。

2).StudentStituation.java

该文件的类负责创建班级学生管理系统的学生信息录入界面。

3).ModifySituation.java

该文件的类负责创建班级学生管理系统的学生基本信息修改界面。

4).Inquest.java

该文件的类负责创建班级学生管理系统的学生基本信息查询界面。

5).Delete.java

该文件的类负责创建班级学生管理系统的学生信息删除界面。

6).Student.java

负责创建存放学生信息的对象。

三:详细设计

  1. 主类StudentManager.java

1).成员变量

主要成员变量

成员变量描述

变量类型

变量名称

基本信息录入界面

基本信息修改界面

基本信息查询界面

基本信息删除界面

菜单选项

 存基本信息的散列表

存放散列表的文件

StudentSituation

ModifySituation

Inquest

Delete

JMenuItem

Hashtable

File

基本信息录入

基本信息修改

基本信息查询

基本信息删除

录入,修改,查询,删除

基本信息

file

2).方法

主要方法

名称

功能

备注

StudentManager

actionPerformed

main

创建程序主窗口

 处理ActionEvent事件

程序开始运行

构造方法

接口方法

3).代码

StudentManager.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.Hashtable;

public class StudentManager extends JFrame implements ActionListener

{

   StudentSituation 基本信息录入=null;          

   ModifySituation  基本信息修改=null;          

   Inquest          基本信息查询=null;

   Delete           基本信息删除=null;

   JMenuBar bar;

   JMenu fileMenu;

   JMenuItem 录入,修改,查询,删除,退出;      

   Container con=null;

   Hashtable 基本信息=null;                    

   File file=null;                             

   CardLayout card=null;                       

   JLabel label;

   JPanel pCenter;

   public StudentManager()

   {

     setTitle("欢迎进入班级管理系统");

     录入=new JMenuItem("录入学生基本信息");

     修改=new JMenuItem("修改学生基本信息");

     查询=new JMenuItem("查询学生基本信息");

     删除=new JMenuItem("删除学生基本信息");

     退出=new JMenuItem("退出本系统");

     退出.addActionListener(new ActionListener()

         {

            public void actionPerformed(ActionEvent event)

            {

               System.exit(0);

            }

         });

     bar=new JMenuBar();

     fileMenu=new JMenu("菜单选项");

     fileMenu.add(录入);

     fileMenu.addSeparator();

     fileMenu.add(修改);

     fileMenu.addSeparator();

     fileMenu.add(查询);

     fileMenu.addSeparator();

     fileMenu.add(删除);

     fileMenu.addSeparator();

     fileMenu.addSeparator();

     fileMenu.add(退出);

     bar.add(fileMenu);

     setJMenuBar(bar);

     label=new JLabel("欢迎进入班级管理系统!",label.CENTER);

     label.setFont(new Font("隶书",Font.BOLD,30));

     label.setForeground(Color.blue);

     基本信息=new Hashtable();

     录入.addActionListener(this);

     修改.addActionListener(this);

     查询.addActionListener(this);

     删除.addActionListener(this);

     

     card=new CardLayout();

     con=getContentPane();

     pCenter=new JPanel();

     pCenter.setLayout(card);

     file=new File("学生基本信息.txt");

     if(!file.exists())

      {

       try{

           FileOutputStream out=new FileOutputStream(file);

           ObjectOutputStreamobjectOut=new ObjectOutputStream(out);

           objectOut.writeObject(基本信息);

           objectOut.close();

           out.close();

          }

       catch(IOException e)

          {

          }

      }

     基本信息录入=new StudentSituation(file);

     基本信息修改=new ModifySituation(file);

     基本信息查询=new Inquest(this,file);

     基本信息删除=new Delete(file);

     pCenter.add("欢迎语界面",label);

     pCenter.add("录入界面",基本信息录入);

     pCenter.add("修改界面",基本信息修改);    

     pCenter.add("删除界面",基本信息删除);

     con.add(pCenter,BorderLayout.CENTER);

     con.validate();

     addWindowListener(new WindowAdapter()

                    { public void windowClosing(WindowEvent e)

                       {

                          System.exit(0);

                      }

                    });

    setVisible(true);

    setBounds(100,50,420,380);

    validate();

   }

  public void actionPerformed(ActionEvent e)

   {

     if(e.getSource()==录入)

       {

         card.show(pCenter,"录入界面");

       }

     else if(e.getSource()==修改)

       {

         card.show(pCenter,"修改界面");

       }

     else if(e.getSource()==查询)

      {

         基本信息查询.setVisible(true);

      }

     else if(e.getSource()==删除)

      {

         card.show(pCenter,"删除界面");

      }

   }

  public static void main(String args[])

   {

     new StudentManager();

   }

}

2.录入界面

1).成员变量

主要成员变量属性

描述

变量类型

变量名称

存放“学生”对象的散列表

输入学生基本信息的文本

存放学生信息的对象

Hashtable

JTextField

Student

基本信息表

学号,姓名,所学专业,家庭住址,出生

学生

2).方法

主要方法

名称

功能

备注

StudentSituation

actionPerformed

创建学生信息录入界面

处理ActionEvent事件

构造方法

接口方法

3).代码

StudentSituation.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

public class StudentSituation extends JPanel implements ActionListener

{

  Hashtable 基本信息表=null;                           

  JTextField 学号,姓名,所学专业,家庭住址,出生;                 

  JRadioButton 男,女;

  Student  学生=null;

  ButtonGroup group=null;

  JButton 录入,重置;

  FileInputStream inOne=null;

  ObjectInputStream inTwo=null;

  FileOutputStream outOne=null;

  ObjectOutputStream outTwo=null;

  File file=null;                                           

  public StudentSituation(File file)

  {

   this.file=file;

   学号=new JTextField(10);

   姓名=new JTextField(10);

   所学专业=new JTextField(10);

   家庭住址=new JTextField(10);

   出生=new JTextField(10);

   group=new ButtonGroup();

   男=new JRadioButton("男",true);

   女=new JRadioButton("女",false);

   group.add(男);

   group.add(女);

   录入=new JButton("录入");

   重置=new JButton("重置");

   录入.addActionListener(this);

   重置.addActionListener(this);

   Box box1=Box.createHorizontalBox();              

   box1.add(new JLabel("学号:",JLabel.CENTER));

   box1.add(学号);

   Box box2=Box.createHorizontalBox();              

   box2.add(new JLabel("姓名:",JLabel.CENTER));

   box2.add(姓名);

   Box box3=Box.createHorizontalBox();              

   box3.add(new JLabel("性别:",JLabel.CENTER));

   box3.add(男);

   box3.add(女);

   Box box4=Box.createHorizontalBox();              

   box4.add(new JLabel("所学专业:",JLabel.CENTER));

   box4.add(所学专业);

   Box box5=Box.createHorizontalBox();              

   box5.add(new JLabel("家庭住址:",JLabel.CENTER));

   box5.add(家庭住址);

   Box box6=Box.createHorizontalBox();              

   box6.add(new JLabel("出生:",JLabel.CENTER));

   box6.add(出生);

   Box boxH=Box.createVerticalBox();              

   boxH.add(box1);

   boxH.add(box2);

   boxH.add(box3);

   boxH.add(box4);

   boxH.add(box5);

   boxH.add(box6);

   boxH.add(Box.createVerticalGlue());          

   JPanel pCenter=new JPanel();

   pCenter.add(boxH);

   setLayout(new BorderLayout());

   add(pCenter,BorderLayout.CENTER);

   JPanel pSouth=new JPanel();

   pSouth.add(录入);

   pSouth.add(重置);

   add(pSouth,BorderLayout.SOUTH);

   validate();

  }

 public void actionPerformed(ActionEvent e)

  {

    if(e.getSource()==录入)

      {

        String number="";

        number=学号.getText();

        

         if(number.length()>0)

            {

              try {

                    inOne=new FileInputStream(file);

                    inTwo=new ObjectInputStream(inOne);

                    基本信息表=(Hashtable)inTwo.readObject();

                    inOne.close();

                    inTwo.close();

                  }

               catch(Exception ee)

                   {

                   }

              if(基本信息表.containsKey(number))          

                 {

                 String warning="该生基本信息已存在,请到修改页面修改!";

                 JOptionPane.showMessageDialog(this,warning,警告",JOptionPane.WARNING_MESSAGE);

                 }

              else

                 {  

                   String m="基本信息将被录入!";

 intok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);

                  if(ok==JOptionPane.YES_OPTION)

                    {

                     String name=姓名.getText();

                     String discipling=所学专业.getText();

                     String grade=家庭住址.getText();

                     String borth=出生.getText();

                     String sex=null;

                        if(男.isSelected())

                           {

                             sex=男.getText();

                           }

                        else

                           {

                             sex=女.getText();

                           }

                     学生=new Student();

                     学生.setNumber(number);

                     学生.setName(name);

                     学生.setDiscipling(discipling);

                     学生.setGrade(grade);

                     学生.setBorth(borth);

                     学生.setSex(sex);

                       try{

                           outOne=new FileOutputStream(file);

                           outTwo=new ObjectOutputStream(outOne);

                           基本信息表.put(number,学生);

                           outTwo.writeObject(基本信息表);

                           outTwo.close();

                           outOne.close();

                           学号.setText(null);

                           姓名.setText(null);                                

                           所学专业.setText(null);

                           家庭住址.setText(null);

                           出生.setText(null);

                          }

                       catch(Exception ee)

                          {

                           System.out.println(ee);

                          }

                   }

                }

            }

        else

            {

              String warning="必须要输入学号!";

              JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

            }

      }

    if(e.getSource()==重置)

      {

        学号.setText(null);

        姓名.setText(null);

        所学专业.setText(null);

        家庭住址.setText(null);

        出生.setText(null);

     }

  }

}

3.查询界面

1).成员变量

主要成员变量属性

描述

变量类型

变量名称

存放“学生”对象的散表

显示学生基本信息的文本

Hashtable

JTextField

基本信息表

学号,姓名,所学专业,家庭住址,出生

2).方法

主要方法

名称

功能

备注

Inquest

actionPerformed

创建查询界面

处理ActionEvent事件

构造方法

接口方法

3).代码

Inquest.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

public class Inquest extends JDialog implements ActionListener

{

  Hashtable 基本信息表=null;                           

  JTextField 学号,姓名,所学专业,家庭住址,出生;                 

  JRadioButton 男,女;

  JButton 查询;

  ButtonGroup group=null;

  FileInputStream inOne=null;

  ObjectInputStream inTwo=null;

  File file=null;                                           

  public Inquest(JFrame f,File file)

  {

   super(f,"查询对话框",false);                           

   this.file=file;

   学号=new JTextField(10);

   查询=new JButton("查询");

   学号.addActionListener(this);

   查询.addActionListener(this);

   姓名=new JTextField(10);

   姓名.setEditable(false);

   所学专业=new JTextField(10);

   所学专业.setEditable(false);

   家庭住址=new JTextField(10);

   家庭住址.setEditable(false);

   出生=new JTextField(10);

   出生.setEditable(false);

   男=new JRadioButton("男",false);

   女=new JRadioButton("女",false);

   group=new ButtonGroup();

   group.add(男);

   group.add(女);

   Box box1=Box.createHorizontalBox();              

   box1.add(new JLabel("输入要查询的学号:",JLabel.CENTER));

   box1.add(学号);

   box1.add(查询);

   Box box2=Box.createHorizontalBox();              

   box2.add(new JLabel("姓名:",JLabel.CENTER));

   box2.add(姓名);

   Box box3=Box.createHorizontalBox();              

   box3.add(new JLabel("性别:",JLabel.CENTER));

   box3.add(男);

   box3.add(女);

   Box box4=Box.createHorizontalBox();              

   box4.add(new JLabel("所学专业:",JLabel.CENTER));

   box4.add(所学专业);

   Box box5=Box.createHorizontalBox();              

   box5.add(new JLabel("家庭住址:",JLabel.CENTER));

   box5.add(家庭住址);

   Box box6=Box.createHorizontalBox();              

   box6.add(new JLabel("出生:",JLabel.CENTER));

   box6.add(出生);

   Box boxH=Box.createVerticalBox();              

   boxH.add(box1);

   boxH.add(box2);

   boxH.add(box3);

   boxH.add(box4);

   boxH.add(box5);

   boxH.add(box6);

   boxH.add(Box.createVerticalGlue());          

   JPanel pCenter=new JPanel();

   pCenter.add(boxH);

   Container con=getContentPane();

   con.add(pCenter,BorderLayout.CENTER);

   con.validate();

   setVisible(false);

   setBounds(100,200,360,270);

   addWindowListener(new WindowAdapter()

                    { public void windowClosing(WindowEvent e)

                       {

                         setVisible(false);

                      }

                    });

  }

 public void actionPerformed(ActionEvent e)

  {    

     姓名.setText(null);

     所学专业.setText(null);

     家庭住址.setText(null);

     出生.setText(null); 

    if(e.getSource()==查询||e.getSource()==学号)

      {

         String number="";

         number=学号.getText();

        

         if(number.length()>0)

            {

              try {

                    inOne=new FileInputStream(file);

                    inTwo=new ObjectInputStream(inOne);

                    基本信息表=(Hashtable)inTwo.readObject();

                    inOne.close();

                    inTwo.close();

                  }

               catch(Exception ee)

                   {

                   }

              if(基本信息表.containsKey(number))          

                 {

                   Student stu=(Student)基本信息表.get(number);

                   姓名.setText(stu.getName());

                   所学专业.setText(stu.getDisciping());

                   家庭住址.setText(stu.getGrade());

                   出生.setText(stu.getBorth());

                   if(stu.getSex().equals("男"))

                      {

                        男.setSelected(true);

                      }

                    else

                      {

                        女.setSelected(true);

                      }

                 }

              else

                 {

                  String warning="该学号不存在!";

                  JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

                 }

            }

        else

            {

              String warning="必须要输入学号!";

              JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

            }

      }

  }

}

3.修改界面

1).成员变量

主要成员变量

描述

变量类型

变量名称

存放“学生”对象的散列表

输入学生基本信息的文本条

Hashtabel

JTextField

基本信息表

学号,姓名,所学专业,家庭住址,出生

2).方法

主要方法

名称

功能

备注

ModifySituation

actionPerform

创建学生信息修改界面

处理ActionEvent事件

构造方法

接口方法

3).代码

ModifySituation.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

public class ModifySituation extends JPanel implements ActionListener

{

  Hashtable 基本信息表=null;                           

  JTextField 学号,姓名,所学专业,家庭住址,出生;                 

  JRadioButton 男,女;

  ButtonGroup group=null;

  JButton 开始修改,录入修改,重置;

  FileInputStream inOne=null;

  ObjectInputStream inTwo=null;

  FileOutputStream outOne=null;

  ObjectOutputStream outTwo=null;

  File file=null;                                           

  public ModifySituation(File file)

  {

   this.file=file;

   学号=new JTextField(10);

   姓名=new JTextField(10);                                

   所学专业=new JTextField(10);

   家庭住址=new JTextField(10);

   出生=new JTextField(10);

   group=new ButtonGroup();

   男=new JRadioButton("男",true);

   女=new JRadioButton("女",false);

   group.add(男);

   group.add(女);

   开始修改=new JButton("开始修改");

   录入修改=new JButton("录入修改");

   录入修改.setEnabled(false);

   重置=new JButton("重置");

   学号.addActionListener(this);

   开始修改.addActionListener(this);

   录入修改.addActionListener(this);

   重置.addActionListener(this);

   Box box1=Box.createHorizontalBox();              

   box1.add(new JLabel("输入要修改信息的学号:",JLabel.CENTER));

   box1.add(学号);

   box1.add(开始修改);

   Box box2=Box.createHorizontalBox();              

   box2.add(new JLabel("(新)姓名:",JLabel.CENTER));

   box2.add(姓名);

   Box box3=Box.createHorizontalBox();              

   box3.add(new JLabel("(新)性别:",JLabel.CENTER));

   box3.add(男);

   box3.add(女);

   Box box4=Box.createHorizontalBox();              

   box4.add(new JLabel("(新)所学专业:",JLabel.CENTER));

   box4.add(所学专业);

   Box box5=Box.createHorizontalBox();              

   box5.add(new JLabel("(新)家庭住址:",JLabel.CENTER));

   box5.add(家庭住址);

   Box box6=Box.createHorizontalBox();              

   box6.add(new JLabel("(新)出生:",JLabel.CENTER));

   box6.add(出生);

   Box boxH=Box.createVerticalBox();              

   boxH.add(box1);

   boxH.add(box2);

   boxH.add(box3);

   boxH.add(box4);

   boxH.add(box5);

   boxH.add(box6);

   boxH.add(Box.createVerticalGlue());           

   JPanel pCenter=new JPanel();

   pCenter.add(boxH);

   setLayout(new BorderLayout());

   add(pCenter,BorderLayout.CENTER);

   JPanel pSouth=new JPanel();

   pSouth.add(录入修改);

   pSouth.add(重置);

   add(pSouth,BorderLayout.SOUTH);

   validate();

  }

 public void actionPerformed(ActionEvent e)

 {

   if(e.getSource()==开始修改||e.getSource()==学号)

      {

         String number="";

        number=学号.getText();

        

         if(number.length()>0)

            {

              try {

                    inOne=new FileInputStream(file);

                    inTwo=new ObjectInputStream(inOne);

                    基本信息表=(Hashtable)inTwo.readObject();

                    inOne.close();

                    inTwo.close();

                  }

               catch(Exception ee)

                   {

                   }

              if(基本信息表.containsKey(number))          

                 {

                   录入修改.setEnabled(true);

                   Student stu=(Student)基本信息表.get(number);

                   姓名.setText(stu.getName());

                   所学专业.setText(stu.getDisciping());

                   家庭住址.setText(stu.getGrade());

                   出生.setText(stu.getBorth());

                   if(stu.getSex().equals("男"))

                      {

                        男.setSelected(true);

                      }

                    else

                      {

                        女.setSelected(true);

                      }

                 }

              else

                 {

                  录入修改.setEnabled(false);

                  

                  String warning="该学号不存在!";

                  JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

                  学号.setText(null);

                  姓名.setText(null);                                

                  所学专业.setText(null);

                  家庭住址.setText(null);

                  出生.setText(null);

    }

            }

        else

            {

              录入修改.setEnabled(false);

              String warning="必须要输入学号!";

              JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

              学号.setText(null);

              姓名.setText(null);                                

              所学专业.setText(null);

              家庭住址.setText(null);

              出生.setText(null);

            }

      }

  else if(e.getSource()==录入修改)

      {

        String number="";

        number=学号.getText();

        if(number.length()>0)

           {

            try {

                 inOne=new FileInputStream(file);

                 inTwo=new ObjectInputStream(inOne);

                 基本信息表=(Hashtable)inTwo.readObject();

                 inOne.close();

                 inTwo.close();

                }

            catch(Exception ee)

                {

                }

            if(基本信息表.containsKey(number))          

                {

  String question="该生基本信息已存在,您想修改他(她)的基本信息吗?"; JOptionPane.showMessageDialog(this,question,"警告",JOptionPane.QUESTION_MESSAGE); 

String m="基本信息将被修改!";

int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);

                  if(ok==JOptionPane.YES_OPTION)

                    {

                      String name=姓名.getText();

                      String discipling=所学专业.getText();

                      String grade=家庭住址.getText();

                      String borth=出生.getText();

                      String sex=null;

                        if(男.isSelected())

                           {

                             sex=男.getText();

                           }

                        else

                           {

                             sex=女.getText();

                           }

                     Student  学生=new Student();

                     学生.setNumber(number);

                     学生.setName(name);

                     学生.setDiscipling(discipling);

                     学生.setGrade(grade);

                     学生.setBorth(borth);

                     学生.setSex(sex);

                     try

                      {

                       outOne=new FileOutputStream(file);

                       outTwo=new ObjectOutputStream(outOne);

                       基本信息表.put(number,学生);

                       outTwo.writeObject(基本信息表);

                       outTwo.close();

                       outOne.close();

                       学号.setText(null);

                       姓名.setText(null);                                

                       所学专业.setText(null);

                       家庭住址.setText(null);

                       出生.setText(null);

                     }

                     catch(Exception ee)

                      {

                       System.out.println(ee);

                      }

                     录入修改.setEnabled(false);

                   }

                 else if(ok==JOptionPane.NO_OPTION)

                   {

                     录入修改.setEnabled(true);

                   }

               }

             else

               {

                String warning="该学号没有基本信息,不能修改!";

                 JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

                 录入修改.setEnabled(false);

               }

           }

        else

           {String warning="必须要输入学号!";

              JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

              录入修改.setEnabled(false);

           }

       }

   if(e.getSource()==重置)

      {

        学号.setText(null);

        姓名.setText(null);

        所学专业.setText(null);

        家庭住址.setText(null);

        出生.setText(null);

      }

  }

}

4.删除界面

1).成员变量

主要成员变量

描述

变量类型

变量名称

存放“学生”对象的散列表

显示学生基本信息的文本条

Hashtable

JTextField

基本信息表

学号,姓名,所学专业,家庭住址,出生

2).方法

主要方法

名称

功能

备注

Delete

actionPerformed

创建学生信息删除界面

处理ActionEvent

构造方法

接口方法

3).代码

Delete.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.io.*;

import java.util.*;

public class Delete extends JPanel implements ActionListener

{

  Hashtable 基本信息表=null;                           

  JTextField 学号,姓名,所学专业,家庭住址,出生;                 

  JRadioButton 男,女;

  JButton 删除;

  ButtonGroup group=null;

  FileInputStream inOne=null;

  ObjectInputStream inTwo=null;

  FileOutputStream outOne=null;

  ObjectOutputStream outTwo=null;

  File file=null;                                           

  public Delete(File file)

  {

   this.file=file;

   学号=new JTextField(10);

   删除=new JButton("删除");

   学号.addActionListener(this);

   删除.addActionListener(this);

   姓名=new JTextField(10);

   姓名.setEditable(false);

   所学专业=new JTextField(10);

   所学专业.setEditable(false);

   家庭住址=new JTextField(10);

   家庭住址.setEditable(false);

   出生=new JTextField(10);

   出生.setEditable(false);

   男=new JRadioButton("男",false);

   女=new JRadioButton("女",false);

   group=new ButtonGroup();

   group.add(男);

   group.add(女);

   Box box1=Box.createHorizontalBox();              

   box1.add(new JLabel("输入要删除的学号:",JLabel.CENTER));

   box1.add(学号);

   box1.add(删除);

   Box box2=Box.createHorizontalBox();              

   box2.add(new JLabel("姓名:",JLabel.CENTER));

   box2.add(姓名);

   Box box3=Box.createHorizontalBox();              

   box3.add(new JLabel("性别:",JLabel.CENTER));

   box3.add(男);

   box3.add(女);

   Box box4=Box.createHorizontalBox();              

   box4.add(new JLabel("所学专业:",JLabel.CENTER));

   box4.add(所学专业);

   Box box5=Box.createHorizontalBox();              

   box5.add(new JLabel("家庭住址:",JLabel.CENTER));

   box5.add(家庭住址);

   Box box6=Box.createHorizontalBox();              

   box6.add(new JLabel("出生:",JLabel.CENTER));

   box6.add(出生);

   Box boxH=Box.createVerticalBox();              

   boxH.add(box1);

   boxH.add(box2);

   boxH.add(box3);

   boxH.add(box4);

   boxH.add(box5);

   boxH.add(box6);

   boxH.add(Box.createVerticalGlue());          

   JPanel pCenter=new JPanel();

   pCenter.add(boxH);

   setLayout(new BorderLayout());

   add(pCenter,BorderLayout.CENTER);

   validate();

  }

 public void actionPerformed(ActionEvent e)

  {

    if(e.getSource()==删除||e.getSource()==学号)

      {

        String number="";

        number=学号.getText();

        

         if(number.length()>0)

            {

              try {

                    inOne=new FileInputStream(file);

                    inTwo=new ObjectInputStream(inOne);

                    基本信息表=(Hashtable)inTwo.readObject();

                    inOne.close();

                    inTwo.close();

                  }

               catch(Exception ee)

                   {

                   }

              if(基本信息表.containsKey(number))          

                 {

                   Student stu=(Student)基本信息表.get(number);

                   姓名.setText(stu.getName());

                   所学专业.setText(stu.getDisciping());

                   家庭住址.setText(stu.getGrade());

                   出生.setText(stu.getBorth());

                   if(stu.getSex().equals("男"))

                      {

                        男.setSelected(true);

                      }

                    else

                      {

                        女.setSelected(true);

                      }

                  String m="确定要删除该学号及全部信息吗?";

                  int ok=JOptionPane.showConfirmDialog(this,m,"确认",JOptionPane.YES_NO_OPTIONJOptionPane.QUESTION_MESSAGE);

                  if(ok==JOptionPane.YES_OPTION)

                     {

                       基本信息表.remove(number);

                       try

                        {

                          outOne=new FileOutputStream(file);

                          outTwo=new ObjectOutputStream(outOne);

                          outTwo.writeObject(基本信息表);

                          outTwo.close();

                          outOne.close();

                          学号.setText(null);

                          姓名.setText(null);                                

                          所学专业.setText(null);

                          家庭住址.setText(null);

                          出生.setText(null);

                        }

                       catch(Exception ee)

                        {

                         System.out.println(ee);

                        }

                     }

                   else if(ok==JOptionPane.NO_OPTION)

                     {

                        学号.setText(null);

                        姓名.setText(null);

                        所学专业.setText(null);

                        家庭住址.setText(null);

                        出生.setText(null);

                     }

                 }

              else

                 {

                  String warning="该学号不存在!";

                  JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

                 }

            }

        else

            {

              String warning="必须要输入学号!";

              JOptionPane.showMessageDialog(this,warning,"警告",JOptionPane.WARNING_MESSAGE);

            }

      }

  }

}

5.学生对象

1).成员变量

主要成员变量

描述

变量类型

变量名称

学号

姓名

所学专业

家庭住址

出生

性别

String

String

String

String

String

String

Number

Name

Discipling

Grade

Borth

Sex

2). 方法

主要方法

名称

功能

Setnumber

Setnumber

Setname

Setname

setDisciping

setDisciping

setGrade

setGrade

setBorth

setBorth

setSex

setSex

设置学号

获取学号

设置姓名

获取姓名

设置所学专业

获取所学专业

设置家庭住址

获取家庭住址

设置出生

获取出生

设置性别

获取性别

3).代码

Student.java

public class Student implements java.io.Serializable

{

   String number,name,discipling,grade,borth,sex;

   public Student()

     {

     }

   public void setNumber(String number)

     {

       this.number=number;

     }

    public String getNumber()

     {

       return number;

     }

   public void setName(String name)

     {

       this.name=name;

     }

   public String getName()

     {

       return name;

     }

   public void setDiscipling(String discipling)

     {

       this.discipling=discipling;

     }

   public String getDisciping()

     {

       return discipling;

     }

   public void setGrade(String grade)

     {

       this.grade=grade;

     }

    public String getGrade()

     {

       return grade;

     }

    public void setBorth(String borth)

     {

       this.borth=borth;

     }

    public String getBorth()

     {

       return borth;

     }

     public void setSex(String sex)

     {

       this.sex=sex;

     }

    public String getSex()

     {

       return sex;

     }

}

四:测试结果及问题分析

    本程序为一简单的班级管理系统,功能比较单一,但是基本功能还是实现了,能够对学生基本资料的录入,修改,删除以及查询。由于java程序对各变量的大小写要求比较严格,所以在程序调试阶段花了不少时间,而且程序的运行环境为JDK1.4.2,图形界面的输出要编写大量的代码实现。如果在编程环境为JBuilder,可能会比较简洁一点。

程序运行的主要界面如下所示:

系统主窗口

学生信息录入界面

学生信息修改界面

学生信息查询界面

学生信息删除界面

五:用户手册

  1. 本程序运行环境为JDK1.4.2,可在windows98/windows2000/windows XP下运行。
  2. 为了发布应用程序,我把本JAVA应用程序中涉及到的类文件压缩成一个JAR文件,名为StudentManager.jar,现在只要将StudentManager.jar文件拷贝到任何一个安装了JAVA运行环境(版本应为1.4.0及以上)的计算机上,双击鼠标就可以运行JAVA应用程序了。但如果计算机上安装了中文版的WinRAR解压缩软件并将该JAR文件与压缩软件做了关联,WinRAR解压缩软件会自动运行进行解压缩操作,使的JAVA程序无法运行。因此,创建了一个StudentManager.bat的批处理文件。所以,只要双击这个批处理文件就可以直接运行本程序了,省去了每次运行程序都要运行JDK软件的麻烦。

      

六.参考书籍

1.java面向对象程序设计 (清华大学出版社)

2. java课程设计 (清华大学出版社)

3. java信息系统设计与开发实例 (机械工业出版社)

                

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值