⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student.java~255~

📁 图形化界面
💻 JAVA~255~
📖 第 1 页 / 共 4 页
字号:
package studentinformation;

import java.awt.* ;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.event.*;
import java.awt.CheckboxGroup;
import java.awt.Checkbox;
import java.util.Vector;
import java.awt.event.ItemEvent;
import java.io.IOException;
import java.io.File;
import java.io.RandomAccessFile;
//import java.awt.Label;

/**
 * <p>Title: 学生信息管理与分析系统</p>
 * <p>Description: 此系统尚处于完善阶段,其目的并不在于简单的对学生信息进行处理
 *                ,而在于帮助老师对学生信息进行分析,得到有关学生的各方面的信息,
 *                 从而使得老师们能依据这些信息调整教学计划和方案.
 *                  --By CS0405,熊殿(04281146)</p>
 * <p>Copyright: AcoolX Copyright (c) 2006\03\22</p>
 * <p>Company:AcoolX工作室 </p>
 * @author not attributable
 * @version 1.0
 * 修改记录:
 *   本次修改主要是完善了有关功能.
 *   新增加的功能包括动态创建各种信息的统计列表
 */

public class student
{
  public static void main(String args[])
  {
    new menuFrame ();
  }
}

//*******主菜单
class menuFrame extends Frame
      implements ActionListener
   {
     float []fl={0,0,0,0,0,0};
    public static Vector NewSetStudent=new Vector(30,1);//定义一个学生信息数据库
      MenuBar StudentMenu;                                  //每10的增加
      PopupMenu popM;
      Menu files,tools,picture,helps,pictures,ways;
      MenuItem open,newfile,close,save,save_as,sort,delete,change,seach,
         insert,main_help,show,show_0,newfile_0,save_0,divide;
      MenuItem[] text;
      public static  TextArea ta;
      FileDialog fd;
      Dialog SaveFile;
     boolean informationChange=false;
      Button yes,no,quit;
      Frame frm;
      public static  int picture_start=0,picture_end=100;
      public static   int picture_divide=5;
      int[][]divide_student_number;//专门用来保存每个科目和均分的各段学生人数

    menuFrame()//这是主菜单类的构造函数
    {
      super("菜单");

      divide_student_number=new int[7][20];// 初始化
      for(int dsn1=0;dsn1<7;dsn1++)
        for(int dsn2=0;dsn2<20;dsn2++)
      {
          divide_student_number[dsn1][dsn2]=0;
      }

      SaveFile =new Dialog(this,"保存文件?",true);
      yes=new Button("是");
      no=new Button("否");
      quit=new Button("取消");

      ta=new TextArea("\t\t\t\t\t\t欢迎您的使用\n",25,100);
      add("Center",ta);
      StudentMenu=new MenuBar();

     files=new Menu("文件");
     open=new MenuItem("打开");
     newfile=new MenuItem("新建");
     close=new MenuItem("关闭");
     save=new MenuItem("保存");
     save_as=new MenuItem("另存为");
     open.addActionListener(this);
     newfile.addActionListener(this);
     close.addActionListener(this);
     save.addActionListener(this);
     save_as.addActionListener(this);
     files.add(open);
     files.add(newfile);
     files.add(close);
     files.add(save);
     files.add(save_as);
     StudentMenu.add(files);

     tools=new Menu("工具箱");
     seach=new MenuItem("查找");
     sort=new MenuItem("排序");
     delete=new MenuItem("删除");
     change=new MenuItem("修改");
     insert=new MenuItem("插入");
     seach.addActionListener(this);
     sort.addActionListener(this);
     delete.addActionListener(this);
     change.addActionListener(this);
     insert.addActionListener(this);
     tools.add(seach);
     tools.add(sort);
     tools.add(delete);
     tools.add(change);
     tools.add(insert);
     StudentMenu.add(tools);

     pictures=new Menu("绘图");
     divide=new MenuItem("标准");
     ways=new Menu("选择");
     text=new MenuItem[7];
     text[0]=new MenuItem("Java");
     text[1]=new MenuItem("汇编");
     text[2]=new MenuItem("计组");
     text[3]=new MenuItem("英语");
     text[4]=new MenuItem("随机");
     text[5]=new MenuItem("图论");
     text[6]=new MenuItem("均分");

     for(int m=0;m<7;m++)
     {
       ways.add(text[m]);
       text[m].addActionListener(this);
     }
     pictures.add(ways);
     pictures.add(divide);
     divide.addActionListener(this);
     StudentMenu.add(pictures);

     helps=new Menu("帮助");
     main_help=new MenuItem("关于主题");
     show=new MenuItem("刷新");
     main_help.addActionListener(this);
     show.addActionListener(this);
     helps.add(show);
     helps.add(main_help);
     StudentMenu.add(helps);

     ta.addMouseListener(new HandelMouse(this));
     popM=new PopupMenu();
     show_0=new MenuItem("刷新");
     save_0=new MenuItem("保存");
     newfile_0=new MenuItem("新建");
     popM.add(newfile_0);
     popM.add(show_0);
     popM.add(save_0);
     ta.add(popM);
     newfile_0.addActionListener(this);
     show_0.addActionListener(this);
     save_0.addActionListener(this);

     yes.addActionListener(this);
     no.addActionListener(this);
     quit.addActionListener(this);

     addWindowListener(new closeWin());
     setSize(new Dimension(818,818));
     setVisible(true) ;

     this.setMenuBar( StudentMenu);
   }//主菜单类的构造函数结束了

  public static void showInformation()//这是主菜单类的一个公有方法
   {
      String[]sr=new String[8];
      ta.setText("\t\t欢迎您的使用,如果您认为结果显示不正常请选择刷新\n");
      ta.append("NewSetStudent.size()="+ // 为什么在新建调用时它总是不正确呢?
                Integer.toString(NewSetStudent.size())+"\n");
      ta.append("姓名\t学号\t班级\t性别\tJava\t汇编\t计组\t英语\t随机\t图论"
                +"\t均分\t名次\n");
     for(int i=0;i<NewSetStudent.size();i++)
      {
        ta.append(((setStudent)NewSetStudent.elementAt(i)).getName()+"\t");
        ta.append(((setStudent)NewSetStudent.elementAt(i)).getNumber()+"\t");
        ta.append(((setStudent)NewSetStudent.elementAt(i)).getToclass()+"\t");
        ta.append(((setStudent) NewSetStudent.elementAt(i)).getSex()+"\t");
       for (int j = 0; j < 6; j++)
        {
          sr[j]=Float.toString(
            ((setStudent) NewSetStudent.elementAt(i)).getMark(j));
          ta.append(sr[j]+"\t");
        }
        sr[6]=Float.toString(
          ((setStudent)NewSetStudent.elementAt(i)).getAverage());
        sr[7]=Integer.toString(
          ((setStudent) NewSetStudent.elementAt(i)).getIndex()) ;
        ta.append(sr[6]+"\t");
        ta.append(sr[7]+"\n");
   }
 }//该方法结束

//方法,数出各个分数段内的学生人数
 public void getNumber()
 {
   float marks[]=new float[7];
   for(int snum1=0;snum1<7;snum1++)
      for(int snum2=0;snum2<20;snum2++)
        divide_student_number[snum1][snum2]=0;
   for(int j=0;j<=100-picture_divide;j+= picture_divide)
     for(int i=0;i<NewSetStudent.size();i++)
    {
      for (int k = 0; k< 6; k++)
       {
        marks[k]=((setStudent) NewSetStudent.elementAt(i)).getMark(k);
        if((marks[k]>=j)&&(marks[k]<j+picture_divide))
           divide_student_number[k][j/picture_divide]+=1;
                      //这一步将得到第k门科目的第j/picture_divide段的人数
      }
      marks[6]=((setStudent)NewSetStudent.elementAt(i)).getAverage();
     if((marks[6]>=j)&&(marks[6]<j+picture_divide))
           divide_student_number[6][j/picture_divide]+=1;
                    //这一步将得到均分的第j/picture_divide段的人数
    }
 }
   public void actionPerformed(ActionEvent e)//事件响应的实现
   {
        String[] sr=new String[8];
       if(e.getActionCommand()=="关闭")
       {
         if(informationChange==false)
         {
          dispose();
          System.exit(0);
         }
         else
         {
           Label label=new Label("您要保存现在的信息吗?");
           Panel p=new Panel();
           p.add(new Label("您要保存现在的信息吗?"));//这里运行时还有一点错误
           SaveFile.add("Center",p);                //估计应该跟没有delete Label
           p.add(yes);                              //有一点关系,但是暂时还不知道
           p.add(no);                               //该怎么修改
           p.add(quit);
           SaveFile.setSize(180,100);
           SaveFile.setLocation(150,150);
           SaveFile.setVisible(true);
           SaveFile.show() ;
         }
       }
       else
         if(e.getActionCommand()=="关于主题")
         {
           ta.setText("\n\t您现在使用的是由计算机学院熊殿编写的"
                      +"\n\t一个学生信息管理系统。作为一个作业希"
                      +"\n\t望它能让您满意.本帮助尚需补充,请等待." );
         }
       else
         if(e.getActionCommand()=="新建")
         {
           ta.setText("\t\t\t\t\t\t欢迎您的使用\n");
           newfile.setEnabled(false) ;
           open.setEnabled(false) ;
          new enterInformationFrame();
          new getAveIndex();
           newfile.setEnabled(true) ;
            open.setEnabled(true) ;
            menuFrame.showInformation(); //为什么它就是不执行呢?
           ta.append("\n\t\t\t如果您认为文本区没有显示正常的信息,"+
                     "请在帮助菜单下选择刷新") ;
         }
       else
         if(e.getActionCommand()=="排序")
          {
          if(!NewSetStudent.isEmpty())
           {
            ta.setText("") ;
            ta.setText("\t\t\t\t欢迎您的使用,如果结果不正常请按刷新\n");
            ta.append("NewSetStudent.size()="+
                      Integer.toString(NewSetStudent.size())+"\n");
            ta.append("姓名\t学号\t班级\t性别\tJava\t汇编\t计组\t英语"+
                      "\t随机\t图论\t均分\t名次\n");
          for(int i=1;i<=NewSetStudent.size();i++)
             for(int j=0;j<NewSetStudent.size();j++)
               if(((setStudent) NewSetStudent.elementAt(j)).getIndex()==i)
                {
                ta.append(
                  ((setStudent)NewSetStudent.elementAt(j)).getName()+"\t");
                ta.append(
                  ((setStudent)NewSetStudent.elementAt(j)).getNumber()+"\t");
                ta.append(
                  ((setStudent)NewSetStudent.elementAt(j)).getToclass()+"\t");
                ta.append(
                  ((setStudent)NewSetStudent.elementAt(j)).getSex()+"\t");
              for (int k = 0; k< 6;k++)
               {
                sr[k] = Float.toString(
                    ((setStudent)NewSetStudent.elementAt(j)).getMark(j));
                ta.append(sr[k] + "\t");
               }
               sr[6]=Float.toString(
                  ((setStudent)NewSetStudent.elementAt(j)).getAverage());
               sr[7]=Integer.toString(
                  ((setStudent)NewSetStudent.elementAt(j)).getIndex());
               ta.append(sr[6]+"\t");
               ta.append(sr[7]+"\n");
            }
         }
        else
          {
            ta.setText("");
            ta.append("\t\t\t\t找不到对象,请先建立\n");
          }
       }
      else
        if(e.getActionCommand()=="查找")
        {
        if(!NewSetStudent.isEmpty())
        {
         new seachFrame();
        }
       else
        {
         ta.setText("");
         ta.append("\t\t\t\t找不到对象,请先建立\n");
        }
       }
     else
       if(e.getActionCommand()=="删除")
        {
         if(!NewSetStudent.isEmpty())
          {
           new deleteFrame();
           new getAveIndex();
            ta.setText("");
            menuFrame.showInformation();
          }
         else
          {
            ta.setText("");
            ta.append("\t\t\t\t找不到对象,请先建立\n");
          }
        }
     else
       if(e.getActionCommand()=="修改")
        {
         if(!NewSetStudent.isEmpty())
          {
           new changeFrame();
           new getAveIndex();
            ta.setText("");
            ta.setText("\t\t\t\t\t\t欢迎您的使用\n");
            showInformation();
          }
      }
    else
      if(e.getActionCommand()=="插入")
        {
          ta.append("\t请直接使用新建+插入\n");
        }
    else
      if(e.getActionCommand()=="保存")
      {
       try
       {
         File studentFile=new File(
            "C:\\Documents and Settings\\zhlab\\桌面","学生信息");
         RandomAccessFile raf=new RandomAccessFile(studentFile,"rw");
         raf.writeUTF("姓名\t学号\t班级\t性别\tJava\t汇编\t计组\t英语"+
                      "\t随机\t图论\t均分\t名次\n") ;
         for(int i=0;i<NewSetStudent.size() ;i++)
         {
          raf.writeUTF(
              ((setStudent)NewSetStudent.elementAt(i)).getName());
          raf.writeUTF("\t");
          raf.writeUTF(
              ((setStudent)NewSetStudent.elementAt(i)).getNumber());
          raf.writeUTF("\t");
          raf.writeUTF(
              ((setStudent)NewSetStudent.elementAt(i)).getToclass());
          raf.writeUTF("\t");
          raf.writeUTF(
              ((setStudent)NewSetStudent.elementAt(i)).getSex());
          raf.writeUTF("\t");
         for(int k=0;k<6;k++)
         {
           raf.writeUTF(Float.toString(
              ((setStudent)NewSetStudent.elementAt(i)).getMark(k)));
           raf.writeUTF("\t");
         }
         raf.writeUTF(Float.toString(
             ((setStudent)NewSetStudent.elementAt(i)).getAverage()));
         raf.writeUTF("\t");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -