?? student.java~261~
字號(hào):
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: 學(xué)生信息管理與分析系統(tǒng)</p>
* <p>Description: 此系統(tǒng)尚處于完善階段,其目的并不在于簡(jiǎn)單的對(duì)學(xué)生信息進(jìn)行處理
* ,而在于幫助老師對(duì)學(xué)生信息進(jìn)行分析,得到有關(guān)學(xué)生的各方面的信息,
* 從而使得老師們能依據(jù)這些信息調(diào)整教學(xué)計(jì)劃和方案.
* --By CS0405,熊殿(04281146)</p>
* <p>Copyright: AcoolX Copyright (c) 2006\03\22</p>
* <p>Company:AcoolX工作室 </p>
* @author not attributable
* @version 1.0
* 修改記錄:
* 本次修改主要是完善了有關(guān)功能.
* 新增加的功能包括動(dòng)態(tài)創(chuàng)建各種信息的統(tǒng)計(jì)列表
*/
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);//定義一個(gè)學(xué)生信息數(shù)據(jù)庫(kù)
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;//專門(mén)用來(lái)保存每個(gè)科目和均分的各段學(xué)生人數(shù)
menuFrame()//這是主菜單類的構(gòu)造函數(shù)
{
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("打開(kāi)");
newfile=new MenuItem("新建");
close=new MenuItem("關(guān)閉");
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("標(biāo)準(zhǔn)");
ways=new Menu("選擇");
text=new MenuItem[7];
text[0]=new MenuItem("Java");
text[1]=new MenuItem("匯編");
text[2]=new MenuItem("計(jì)組");
text[3]=new MenuItem("英語(yǔ)");
text[4]=new MenuItem("隨機(jī)");
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("關(guān)于主題");
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);
}//主菜單類的構(gòu)造函數(shù)結(jié)束了
public static void showInformation()//這是主菜單類的一個(gè)公有方法
{
String[]sr=new String[8];
ta.setText("\t\t歡迎您的使用,如果您認(rèn)為結(jié)果顯示不正常請(qǐng)選擇刷新\n");
ta.append("NewSetStudent.size()="+ // 為什么在新建調(diào)用時(shí)它總是不正確呢?
Integer.toString(NewSetStudent.size())+"\n");
ta.append("姓名\t學(xué)號(hào)\t班級(jí)\t性別\tJava\t匯編\t計(jì)組\t英語(yǔ)\t隨機(jī)\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");
}
}//該方法結(jié)束
//方法,數(shù)出各個(gè)分?jǐn)?shù)段內(nèi)的學(xué)生人數(shù)
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門(mén)科目的第j/picture_divide段的人數(shù)
}
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段的人數(shù)
}
}
public void actionPerformed(ActionEvent e)//事件響應(yīng)的實(shí)現(xiàn)
{
String[] sr=new String[8];
if(e.getActionCommand()=="關(guān)閉")
{
if(informationChange==false)
{
dispose();
System.exit(0);
}
else
{
Label label=new Label("您要保存現(xiàn)在的信息嗎?");
Panel p=new Panel();
p.add(new Label("您要保存現(xiàn)在的信息嗎?"));//這里運(yùn)行時(shí)還有一點(diǎn)錯(cuò)誤
SaveFile.add("Center",p); //估計(jì)應(yīng)該跟沒(méi)有delete Label
p.add(yes); //有一點(diǎn)關(guān)系,但是暫時(shí)還不知道
p.add(no); //該怎么修改
p.add(quit);
SaveFile.setSize(180,100);
SaveFile.setLocation(150,150);
SaveFile.setVisible(true);
SaveFile.show() ;
}
}
else
if(e.getActionCommand()=="關(guān)于主題")
{
ta.setText("\n\t您現(xiàn)在使用的是由計(jì)算機(jī)學(xué)院熊殿編寫(xiě)的"
+"\n\t一個(gè)學(xué)生信息管理系統(tǒng)。作為一個(gè)作業(yè)希"
+"\n\t望它能讓您滿意.本幫助尚需補(bǔ)充,請(qǐng)等待." );
}
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) ;
showInformation(); //為什么它就是不執(zhí)行呢?
ta.append("\n\t\t\t如果您認(rèn)為文本區(qū)沒(méi)有顯示正常的信息,"+
"請(qǐng)?jiān)趲椭藛蜗逻x擇刷新") ;
}
else
if(e.getActionCommand()=="排序")
{
if(!NewSetStudent.isEmpty())
{
ta.setText("") ;
ta.setText("\t\t\t\t歡迎您的使用,如果結(jié)果不正常請(qǐng)按刷新\n");
ta.append("NewSetStudent.size()="+
Integer.toString(NewSetStudent.size())+"\n");
ta.append("姓名\t學(xué)號(hào)\t班級(jí)\t性別\tJava\t匯編\t計(jì)組\t英語(yǔ)"+
"\t隨機(jī)\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找不到對(duì)象,請(qǐng)先建立\n");
}
}
else
if(e.getActionCommand()=="查找")
{
if(!NewSetStudent.isEmpty())
{
new seachFrame();
}
else
{
ta.setText("");
ta.append("\t\t\t\t找不到對(duì)象,請(qǐng)先建立\n");
}
}
else
if(e.getActionCommand()=="刪除")
{
if(!NewSetStudent.isEmpty())
{
new deleteFrame();
new getAveIndex();
ta.setText("");
showInformation();
}
else
{
ta.setText("");
ta.append("\t\t\t\t找不到對(duì)象,請(qǐng)先建立\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請(qǐng)直接使用新建+插入\n");
}
else
if(e.getActionCommand()=="保存")
{
try
{
File studentFile=new File(
"C:\\Documents and Settings\\zhlab\\桌面","學(xué)生信息");
RandomAccessFile raf=new RandomAccessFile(studentFile,"rw");
raf.writeUTF("姓名\t學(xué)號(hào)\t班級(jí)\t性別\tJava\t匯編\t計(jì)組\t英語(yǔ)"+
"\t隨機(jī)\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");
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -