用java编写学生信息管理系统.docx
《用java编写学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《用java编写学生信息管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
用java编写学生信息管理系统
用java编写学生信息管理系统
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
classStudentimplementsjava.io.Serializable{
Stringnumber,name,specialty,grade,borth,sex;
publicStudent(){};
publicvoidsetNumber(Stringnumber){this.number=number;}
publicStringgetNumber(){returnnumber;}
publicvoidsetName(Stringname){this.name=name;}
publicStringgetName(){returnname;}
publicvoidsetSex(Stringsex){this.sex=sex;}
publicStringgetSex(){returnsex;}
publicvoidsetSpecialty(Stringspecialty){this.specialty=specialty;}
publicStringgetSpecialty(){returnspecialty;}
publicvoidsetGrade(Stringgrade){this.grade=grade;}
publicStringgetGrade(){returngrade;}
publicvoidsetBorth(Stringborth){this.borth=borth;}
publicStringgetBorth(){returnborth;}
}
publicclassStudentManagerextendsJFrame{
JLabellb=newJLabel("录入请先输入记录,查询、删除请先输入学号,修改是对查询"+
"内容改后的保存!
");
staticJTextFieldJnumber,Jname,Jspecialty,Jgrade,Jborth;
staticJRadioButtonboy,girl;
staticButtonGroupgroup=null;
staticJButtonLogin,select,delete,update,show;
staticJPanelp1,p2,p3,p4,p5,p6,pv,ph;
staticStudentstudent=null;
staticHashtableShashtable=null;
staticFilefile=null;
staticFileInputStreaminOne=null;
staticObjectInputStreaminTwo=null;
staticFileOutputStreamoutOne=null;
staticObjectOutputStreamoutTwo=null;
publicStudentManager(){
super("学生基本信息管理系统");
Jnumber=newJTextField(10);
Jname=newJTextField(10);
Jspecialty=newJTextField(10);
Jgrade=newJTextField(10);
Jborth=newJTextField(10);
group=newButtonGroup();
boy=newJRadioButton("男",true);
girl=newJRadioButton("女",false);
group.add(boy);
group.add(girl);
Login=newJButton("录入");
select=newJButton("查询");
delete=newJButton("删除");
update=newJButton("修改");
show=newJButton("显示");
Login.addActionListener(newInputAct());
select.addActionListener(newInquestAct());
update.addActionListener(newModifyAct());
delete.addActionListener(newDeleteAct());
show.addActionListener(newShowAct());
update.setEnabled(false);
p1=newJPanel();
p1.add(newJLabel("学号:
",JLabel.CENTER));
p1.add(Jnumber);
p2=newJPanel();
p2.add(newJLabel("姓名:
",JLabel.CENTER));
p2.add(Jname);
p3=newJPanel();
p3.add(newJLabel("性别:
",JLabel.CENTER));
p3.add(boy);
p3.add(girl);
p4=newJPanel();
p4.add(newJLabel("专业:
",JLabel.CENTER));
p4.add(Jspecialty);
p5=newJPanel();
p5.add(newJLabel("年级:
",JLabel.CENTER));
p5.add(Jgrade);
p6=newJPanel();
p6.add(newJLabel("出生:
",JLabel.CENTER));
p6.add(Jborth);
pv=newJPanel();
pv.setLayout(newGridLayout(6,1));
pv.add(p1);
pv.add(p2);
pv.add(p3);
pv.add(p4);
pv.add(p5);
pv.add(p6);
ph=newJPanel();
ph.add(Login);
ph.add(select);
ph.add(update);
ph.add(delete);
ph.add(show);
file=newFile("学生信息.txt");
Shashtable=newHashtable();
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(Shashtable);
objectOut.close();
out.close();
}
catch(IOExceptione){}
}
Containercon=getContentPane();
con.setLayout(newBorderLayout());
con.add(lb,BorderLayout.NORTH);
con.add(pv,BorderLayout.CENTER);
con.add(ph,BorderLayout.SOUTH);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setBounds(100,100,600,300);
setVisible(true);
}
publicstaticvoidmain(String[]args){newStudentManager();}
classInputActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
update.setEnabled(false);
Stringnumber="";
number=Jnumber.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
Shashtable=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("创建散列表出现问题!
");}
if(Shashtable.containsKey(number)){
Stringwarning="该生信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(null,warning,"警告",
JOptionPane.WARNING_MESSAGE);
}//endif1
else{
Stringm="该生信息将被录入!
";
intok=JOptionPane.showConfirmDialog(null,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Stringname=Jname.getText();
Stringspecialty=Jspecialty.getText();
Stringgrade=Jgrade.getText();
Stringborth=Jborth.getText();
Stringsex=null;
if(boy.isSelected()){sex=boy.getText();}
else{sex=girl.getText();}
student=newStudent();
student.setNumber(number);
student.setName(name);
student.setSpecialty(specialty);
student.setGrade(grade);
student.setBorth(borth);
student.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
Shashtable.put(number,student);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
}
catch(Exceptionee){System.out.println("输出散列表出现问题!
");}
Jnumber.setText(null);
Jname.setText(null);
Jspecialty.setText(null);
Jgrade.setText(null);
Jborth.setText(null);
}
}//endelse1
}//endif0
else{
Stringwarning="必须输入学号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}//endelse0
}//endactionPerformed
}//endclass
classInquestActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber="";
number=Jnumber.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
Shashtable=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("散列表有问题!
");}
if(Shashtable.containsKey(number)){
update.setEnabled(true);
Studentstu=(Student)Shashtable.get(number);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
if(stu.getSex().equals("男")){boy.setSelected(true);}
else{girl.setSelected(true);}
}
else{
update.setEnabled(false);
Stringwarning="该学号不存在!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
else{
update.setEnabled(false);
Stringwarning="必须输入学号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
classModifyActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber=Jnumber.getText();
Stringname=Jname.getText();
Stringspecialty=Jspecialty.getText();
Stringgrade=Jgrade.getText();
Stringborth=Jborth.getText();
Stringsex=null;
if(boy.isSelected()){sex=boy.getText();}
else{sex=girl.getText();}
Student学生=newStudent();
学生.setNumber(number);
学生.setName(name);
学生.setSpecialty(specialty);
学生.setGrade(grade);
学生.setBorth(borth);
学生.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
Shashtable.put(number,学生);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(null);
Jname.setText(null);
Jspecialty.setText(null);
Jgrade.setText(null);
Jborth.setText(null);
}
catch(Exceptionee){
System.out.println("录入修改出现异常!
");
update.setEnabled(false);
}
}
}
classDeleteActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
update.setEnabled(false);
Stringnumber=Jnumber.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
Shashtable=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){}
if(Shashtable.containsKey(number)){
Studentstu=(Student)Shashtable.get(number);
Jname.setText(stu.getName());
Jspecialty.setText(stu.getSpecialty());
Jgrade.setText(stu.getGrade());
Jborth.setText(stu.getBorth());
if(stu.getSex().equals("男")){boy.setSelected(true);}
else{girl.setSelected(true);}
}
Stringm="确定要删除该学生的记录吗?
";
intok=JOptionPane.showConfirmDialog(null,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Shashtable.remove(number);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
outTwo.writeObject(Shashtable);
outTwo.close();
outOne.close();
Jnumber.setText(null);
Jname.setText(null);
Jspecialty.setText(null);
Jgrade.setText(null);
Jborth.setText(null);
}
catch(Exceptionee){System.out.println(ee);}
}
elseif(ok==JOptionPane.NO_OPTION){
Jnumber.setText(null);
Jname.setText(null);
Jspecialty.setText(null);
Jgrade.setText(null);
Jborth.setText(null);
}
else{
Stringwarning="该学号不存在!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
else{
Stringwarning="必须输入学号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
classShowActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
newStudentShow(file);
}
}
classStudentShowextendsJDialog{
Hashtable学生散列表=null;
JTextArea显示=null;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
Filefile=null;
publicStudentShow(Filefile){
super(newJFrame(),"显示对话框");
this.file=file;
显示=newJTextArea(16,30);
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
学生散列表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){}
if(学生散列表.isEmpty())显示.append("目前还没有学生的信息记录!
\n");
else{
显示.setText("学号姓名性别专业年级出生\n");
for(Enumerationenm=学生散列表.elements();enm.hasM