java学籍管理系统报告

时间:2024.4.20

JAVA技术大作业

院 (系)         电气与信息工程学院                

专业班级          计算机科学与技术09-02             

学生姓名                学号     2008441106    

成绩                                                         

    

20##年  08 月 31  日

摘要

随着高校的扩招,大学生的数量也不断的在增加,传统的“一支笔,一本通讯录”的学籍管理方式也慢慢的无法适应形势的变化。随着信息技术的发展,计算机已被广泛的用于社会的各个领域,成为推动社会发展的技术动力。而在计算机应用中,软件的作用十分突出,软件已经发展成为信息技术的核心,主导着信息产品的开发和信息技术市场的进一步的开拓。软件产业已成为社会信息化进程中的一个战略性产业。在软件技术的应用中软件的开发技术尤其是应用型软件产品的开发技术成了重中之重。不断开发适应用户需求、市场需要的新型软件产品。随着社会的发展,软件也在不断的更新换代。

由于有些学校里对学生的成绩、入学、毕业等的一些繁琐处理都是通过手工进行记载并进行处理的,对学生数据的处理工作量特别大,不仅浪费大量的人力物力,而且还很容易出错。如果有这样一套完整的学籍管理软件,只需点击几下鼠标就可完成所需操作,那样就会大大的提高教师的工作效率和管理水平。并能进一步提高学校的工作效率并使学校实施规范化管理。

学生学籍管理系统是一个教育单位不可缺少的部分。它的内容对于学校的决策者和管理者乃至教师和学生来说都至关重要, 所以学生学籍管理系统应该能够为用户提供充足的信息和快捷的查询手段。一直以来人们使用传统人工的方式管理学生工作, 这种管理方式存在着许多缺点, 如: 效率低、保密性差, 另外时间一长, 将产生大量的冗余文件和数据, 这给查找、更新和维护工作都带来了很大的困难。鉴于学生学籍管理中存在的诸多问题, 我们在此次课程设计中以学生学籍管理系统为研究课题,对此系统进行了全面的设计。

关键词  查询,学籍管理,学生信息


目    录

摘要.................................................................. Ⅰ

目    录.............................................................. Ⅱ

1 设计目的与内容........................................................ 1

1.1 课程设计目的..................................................................................................... 1

1.2 课程设计内容..................................................................................................... 1

2 具体要求............................................................. 2

2.1 设计要求............................................................................................................. 2

2.2 开发环境............................................................................................................. 2

3 总体设计思路.......................................................... 3

3.1 系统的功能模块划分......................................................................................... 3

3.2 系统总体功能框图............................................................................................. 3

4 详细设计............................................................. 4

4.1程序流程图如下.................................................................................................. 4

4.2主界面函数的设计.............................................................................................. 4

4.3录入界面设计...................................................................................................... 5

4.5修改界面和函数的设计....................................................................................... 8

4.6 删除界面和函数的设计.................................................................................... 12

5 功能调试与测试....................................................... 15

5.1主界面和函数的测试......................................................................................... 15

5.2学生信息的录入测试:..................................................................................... 16

5.3学生信息的查询测试:..................................................................................... 16

5.4修改学生信息的测试:..................................................................................... 17

5.5删除学生信息的测试:..................................................................................... 18

6 总结................................................................ 19

致谢.................................................................. 20

参考文献.............................................................. 21

附源程序.............................................................. 23


1 设计目的与内容

1.1 课程设计目的

通过设计图形用户界面的学籍管理系统,提高学生Java语言的综合运用。Java语言是从事软件开发的一门必修的专业基础课,这次的课程设计目的将Java的知识点系统的结合起来,理解并加深对教师所授内容的理解和掌握,掌握其开发技巧,为以后从事Java程序开发打下基础。

1.2 课程设计内容

“录入学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“录入学生基本信息”功能的界面,通过该界面可以录入学生的学号、姓名、性别、出生日期、专业和照片等信息。

修改学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“修改学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行修改。

查询学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“查询与打印学生基本信息”功能的界面,通过该界面可以对已录入的学生信息进行查询。

删除学生基本信息功能的界面。用户可以通过菜单选项让程序呈现“删除学生基本信息”功能的界面,通过该界面可以删除已录入的学生信息。

2 具体要求

2.1 设计要求

要求设计出图形用户界面学籍管理系统,实现学生信息的录入、查询、修改、删除等。

界面要求:

 a.尽量使用图形界面实现,要符合日常软件使用规范来设计菜单和界面。

 b.若无法实现图形界面,则在命令行方式下也需要提供菜单,方便用户操作。

其他要求:

 a. 标识符命名遵循Windows命名规范。

 b. 能够注意各种异常处理,注重提高程序运行效率。

 

2.2 开发环境

NetBeans IDE 6.8并装有Jdk的计算机。

3 总体设计思路

3.1 系统的功能模块划分

通过“public class StudentManager extends JFrame implements ActionListener”此类来生成学籍管理系统的主界面再通过函数public void actionPerformed(ActionEvent e)来实现对各个类得调用。如:调用StudentSituation类来完成对基本信息录入;调用ModifySituation类来完成对学生基本信息修改;调用Inquest类来完成对学生基本信息查询;调用Delete类来完成对学生基本信息删除。

3.2 系统总体功能框图

 

3-1学籍管理系统功能总框图

4 详细设计

4.1程序流程图如下

4.2主界面函数的设计

主界面主要是用来调用程序中的给个类来实现对学生信息的管理和一个欢迎界面的设计以及菜单项的内容。

主界面主要是通过StudentManager.StudentManager()函数来实现一个欢迎界面和菜单选项(包括录入学生基本信息、修改学生基本信息、查询学生基本信息、删除学生基本信息),然后再通过StudentManager.actionPerformed(ActionEvent)函数来实现对各个类得调用从而实现对信息的录入、修改、查询、删除等事件的处理。

4.3录入界面设计

录入信息的界面主要是通过StudentSituation类来实现的。其中通过函数StudentSituation.StudentSituation(File)来实现界面的内容。通过函数StudentSituation.actionPerformed(ActionEvent)来实现具体内容的录入。具体设计如下:

    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="基本信息将被录入!";

                   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();

                           }

                     学生=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);

      }

  }

}

4.4查询界面函数的设计

查询信息的界面主要是通过Inquest类来实现的。其中通过函数Inquest.Inquest(JFrame, File)来实现界面的设计和外观。通过函数Inquest.actionPerformed(ActionEvent)来实现具体信息的输出。输出信息具体设计如下:

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);

            }

      }

  }

}

4.5修改界面和函数的设计

修改信息的界面主要是通过ModifySituation类来实现的。其中通过函数ModifySituation.ModifySituation(File)来实现界面的设计和外观。通过函数ModifySituation.actionPerformed(ActionEvent)来实现具体信息的修改和保存。信息修改的具体设计如下:

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.6 删除界面和函数的设计

删除信息的界面主要是通过Delete类来实现的。其中通过函数Delete.Delete(File)来实现界面的设计和外观。通过函数Delete.actionPerformed(ActionEvent)来实现具体数据的删除和管理。信息删除的具体设计如下:

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_OPTION,

                                                 JOptionPane.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 功能调试与测试

5.1主界面和函数的测试:

                       图5.1主界面函数

5.2学生信息的录入测试:

图5.2录入学生信息

5.3学生信息的查询测试:

图5.3查询信息

5.4修改学生信息的测试:

图5.4修改信息

5.5删除学生信息的测试:

                            图5.5删除信息

6 总结

这次的课程设计主要有以下几点心得

(1)确定课题后,先将熟悉该课程主要设计的主要目的,熟读设计要求。

(2)编写程序之前首先要进行总体设计,确定该设计需要由哪几部分组成,并确定各部分的功能,确定主类。

(3)分析完成之后画出程序流程图,并开始编写程序。在编写程序的过程中要注意不能将关键字打错,这样的错误不容易查出。

(4)在程序打包时要先给电脑安装Jdk,若不安装,则在Dos环境下会出现找不到源文件的提示。

这次的课程设计不仅仅巩固了java的知识,也让我对编程的步骤有了新的理解,以前总是先看程序,再理清各部分之间的关系,最后才会画出程序流程图,这次的课程设计纠正了以前的错误,也为以后编写 java程序奠定了一定的基础。

致谢

首先要感谢同学的帮忙,在他们的帮助下我才能完成这次课程设计。在这次课程设计中我遇到了很多困难,在遇到这些困难的时候,我觉得很烦,有点想放弃。但我们宿舍的人安慰我说:“加油,努力就一定能完成的。”在他们的鼓励下,我又重新鼓起勇气,继续做下去,所以我要感谢我们宿舍的舍友。在完成程序的过程中难免会出现好多问题,俗话说:“当局者迷,旁观者清”。我总是发现不了自己的错误,然后我就会让同学帮我看看。最后在同学的帮助下终于把程序做出来了。我对他们深表感谢。我要感谢我们指导老师,他给我提出了许多宝贵的指导。在他的帮助下我可以把它搞得更加完美。在这里我感谢每一个帮助过我的人,感谢他们对我的帮助。同时我还要感谢学校给我们提供优良的上机环境,让我们能够在良好的环境下完成本次课程设计。

参考文献

[1]耿祥义,张跃平.Java2实用教程(第三版)[M] . 北京:清华大学出版社,2006
[2]耿祥义.Java课程设计(第二版)[M] . 北京:清华大学出版社,2004

[3]张跃平.Java2实用教程实验指导与习题解答(第二版)[M]. 北京:清华大学出版社,2004

   


附源程序

/*主界面的设计*/

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=null;

   JPanel pCenter;

   public StudentManager()

   {

        setTitle("学籍管理系统");

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

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

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

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

     bar=new JMenuBar();

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

     fileMenu.add(录入);

     fileMenu.add(修改);

     fileMenu.add(查询);

     fileMenu.add(删除);

     bar.add(fileMenu);

     setJMenuBar(bar);

     label=new JLabel("欢迎使用学籍管理系统",JLabel.CENTER);

     label.setFont(new Font("TimesRoman",Font.BOLD,24));

     label.setForeground(Color.red);

     基本信息=new Hashtable();

     录入.addActionListener(this);

     修改.addActionListener(this);

     查询.addActionListener(this);

     删除.addActionListener(this);

     card=new CardLayout();

     con=getContentPane();

     pCenter=new JPanel();

     pCenter.setLayout(card);

     pCenter.setBackground(Color.green);

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

     if(!file.exists())

      {

       try{

           FileOutputStream out=new FileOutputStream(file);

           ObjectOutputStream objectOut=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();

   }

}

/*学生类的设计*/

/*请实现学生类*/

publicclassStudentimplements java.io.Serializable

{

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

   public Student()

     {

     }

   publicvoid setNumber(String number)

     {

       this.number=number;

     }

    public String getNumber()

     {

       return number;

     }

   publicvoid setName(String name)

     {

       this.name=name;

     }

   public String getName()

     {

       return name;

     }

   publicvoid setDiscipling(String discipling)

     {

       this.discipling=discipling;

     }

   public String getDisciping()

     {

       return discipling;

     }

   publicvoid setGrade(String grade)

     {

       this.grade=grade;

     }

    public String getGrade()

     {

       return grade;

     }

    publicvoid setBorth(String borth)

     {

       this.borth=borth;

     }

    public String getBorth()

     {

       return borth;

     }

     publicvoid setSex(String sex)

     {

       this.sex=sex;

     }

    public String getSex()

     {

       return sex;

     }

}

/*录入学生信息类设计*/

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="基本信息将被录入!";

                   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();

                           }

                     学生=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);

      }

  }

}

/*修改学生信息类得设计*/

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);

      }

  }

}

/*查询学生信息类得设计*/

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);

            }

      }

  }

}

/*删除学生信息类得设计*/

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_OPTION,

                                                 JOptionPane.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);

            }

      }

  }

}

更多相关推荐:
java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一.实验目的及实验环境实验目的:在如今的高校日常管理当中,学生成绩管理系统就是其中非常重要的一环,特别是当前学生规模大,课程门类多,校区分散等实际情况,学生成绩管理系统更具有…

java学生管理系统实训报告

Java学生管理系统实训报告学号姓名班级指导老师1一项目计划1项目名称学生信息管理系统2实训地点3小组成员二系统总体设计1需求分析学生信息管理系统是对学生的个人信息课程信息成绩信息以信息化的方式进行管理最大限度...

学生管理系统JAVA实训报告

实训报告书实训名称基础项目实训系部专业班级网络工程121学生姓名芦志强学号20xx23010117指导教师王鸽完成日期20xx1214山东科技大学课程实训报告书目录目录31实训概述32Java访问并处理数据库的...

学生管理系统实训报告(java语言)

Java实训设计报告学生管理系统一项目需求通过与科信学院教务人员的详细交流目标系统具备以下功能1教师客户端功能可以更改密码可以添加学生并要求填写学生基本信息可以根据学号查询学生基本信息及其成绩有权限控制每个管理...

java学生成绩管理系统实验报告

JAVA课内实验报告学生成绩管理系统一实验目的及实验环境实验目的在如今的高校日常管理当中学生成绩管理系统就是其中非常重要的一环特别是当前学生规模大课程门类多校区分散等实际情况学生成绩管理系统更具有非常大的实际应...

基于Java的学生管理系统设计实验报告

河北工业大学Java程序设计课程设计报告学生信息管理系统的设计与实现班级软件Z102班姓名曹立红学号104431指导教师姜子敬目录1前言12系统功能121运行环境122操作说明13系统流程图24程序调试及参数设...

java超市管理系统实训报告

11课程设计的目的通过本次课程设计使学生能够全面深刻地掌握数据库系统的设计流程根据在数据库原理课程中所学到的数据库理论知识结合某个具体的实际需求最终开发出一个较为实用的数据库系统12课程设计的背景和意义121课...

java超市进销存管理系统实训报告

基于Java的超市管理系统姓名学号课程名称JavaCS架构超市管理系统综合实训指导老师CS摘要超市的日常管理工作往往是很复杂很繁琐的再加上管理的货物种类繁多因此超市管理必须实现计算机化超市进销存管理系统是用计算...

学生管理系统实训报告

学生管理系统实训报告姓名xxxx学号xxxxxxxxxxx班级软件外包时间20xx年6月26日指导老师xxx目录一设计需求分析3二概要设计4三程序整体设计说明5四程序部分代码与注释6五测试结果9六设计心得122...

java超市进销存管理系统实训报告

基于Java的超市管理系统姓名学号课程名称JavaCS架构超市管理系统综合实训指导老师CS摘要超市的日常管理工作往往是很复杂很繁琐的再加上管理的货物种类繁多因此超市管理必须实现计算机化超市进销存管理系统是用计算...

javaweb上机实验报告(学生管理系统)

一实验题目在线学生管理系统二开发背景简介随着网络技术的发展和普及许多以前基于CS的应用都开始向BS方向发展而Java在这方面的应用有着许多其他技术不具备的优点Java开发Web应用的主要技术是Servlet和J...

C语言程序设计学生成绩管理系统实验报告 2

福建师范大学人民武装学院C语言程序设计报告书设计名称学生成绩管理系统专业软件工程指导老师陈琳姓名黄强学号119xx20xx02620xx415一实验目的1在编辑应用程序过程中逐步加深对C语言编程的理解2加强实践...

java学生管理系统实训报告(16篇)