用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - java代码库

学生信息

2019-06-26 作者:云代码会员举报

[java]代码库

import java.awt.*; 
import java.awt.event.*; 
import java.io.*; 

public class StudentInformation implements ActionListener { 
Frame mainFrame; 
Frame inputFrame; 
Frame searchFrame; 
TextArea stuInfo; 
Label lb[] = new Label[9]; 
Label lb2[] = new Label[2]; 
TextField tf[] = new TextField[9]; 
TextField tf2[] = new TextField[2]; 
Button btn[] = new Button[3]; 
Button btn2[] = new Button[2]; 
Panel p1, p2, p3, p4; 
IOOperation ioo; 
Student stu; 
Student student[] = new Student[100]; 

public StudentInformation() { 
/** 
* set mainframe 
*/ 
mainFrame = new Frame("Student Information"); 
mainFrame.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
System.exit(0); 
} 
}); 

MenuItem item1 = new MenuItem("Record"); 
MenuItem item2 = new MenuItem("Search"); 
MenuItem item3 = new MenuItem("Modify"); 
MenuItem item4 = new MenuItem("Exit"); 
MenuItem item5 = new MenuItem("About"); 
item1.addActionListener(this); 
item2.addActionListener(this); 
item3.addActionListener(this); 
item4.addActionListener(this); 
item5.addActionListener(this); 

Menu menu1 = new Menu("File"); 
menu1.add(item1); 
menu1.add(item2); 
menu1.add(item3); 
menu1.addSeparator(); 
menu1.add(item4); 

Menu menu2 = new Menu("Help"); 
menu2.add(item5); 

MenuBar mb = new MenuBar(); 
mb.add(menu1); 
mb.add(menu2); 
mainFrame.setMenuBar(mb); 

stuInfo = new TextArea(); 
stuInfo.setFont(new Font("serif", Font.PLAIN, 18)); 
mainFrame.add(stuInfo); 

mainFrame.setSize(400, 250); 
mainFrame.setLocation(200, 100); 
mainFrame.setVisible(true); 

/** 
* set inputFrame which is used to record student information 
*/ 
inputFrame = new Frame(); 
inputFrame.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
inputFrame.setVisible(false); 
} 
}); 

p1 = new Panel(new GridLayout(9, 2)); 
p2 = new Panel(); 
String lbname[] = {"Code:", "Name:", "Sex:", "BirthPlace:", 
"Class:", "Chinese:", "Math:", "English:", "TotalScore:"}; 
String btnname[] = {"Save", "Delete", " Exit "}; 
for(int i=0; i<9; i++) { 
lb[i] = new Label(lbname[i]); 
tf[i] = new TextField(15); 
p1.add(lb[i]); 
p1.add(tf[i]); 
} 
for(int i=0; i<3; i++) { 
btn[i] = new Button(btnname[i]); 
btn[i].addActionListener(this); 
p2.add(btn[i]); 
} 
btn[2].setActionCommand("input"); 
inputFrame.add(p1, BorderLayout.CENTER); 
inputFrame.add(p2, BorderLayout.SOUTH); 

inputFrame.pack(); 
inputFrame.setLocationRelativeTo(mainFrame); 

/** 
* set searchFrame which is used to search student information 
*/ 
searchFrame = new Frame("Search student"); 
searchFrame.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
searchFrame.setVisible(false); 
} 
}); 

p3 = new Panel(new GridLayout(2, 2)); 
p4 = new Panel(); 
String lbname2[] = {"Code:", "Name:"}; 
String btnname2[] = {"Search", " Exit "}; 
for(int i=0; i<2; i++) { 
lb2[i] = new Label(lbname2[i]); 
tf2[i] = new TextField(15); 
p3.add(lb2[i]); 
p3.add(tf2[i]); 
} 
for(int i=0; i<2; i++) { 
btn2[i] = new Button(btnname2[i]); 
btn2[i].addActionListener(this); 
p4.add(btn2[i]); 
} 
btn2[1].setActionCommand("search"); 
searchFrame.add(p3, BorderLayout.CENTER); 
searchFrame.add(p4, BorderLayout.SOUTH); 

searchFrame.pack(); 
searchFrame.setLocationRelativeTo(mainFrame); 

/** 
* IO operation object 
*/ 
ioo = new IOOperation(); 
student = ioo.getAllStudent(); 

} 

public void actionPerformed(ActionEvent e) { 
/** 
* MenuItem action 
*/ 
if (e.getSource() instanceof MenuItem) { 
MenuItem mi = (MenuItem) e.getSource(); 
if (mi.getLabel().equals("Record")) { 
inputFrame.setTitle("Record"); 
for(int i=0; i<9; i++) 
tf[i].setText(""); 
p2.remove(btn[1]); 
btn[0].setActionCommand("input"); 
inputFrame.setVisible(true); 
} 
else if (mi.getLabel().equals("Search")) { 
searchFrame.setVisible(true); 
} 
else if (mi.getLabel().equals("Modify")) { 
inputFrame.setTitle("Modify"); 
if(stu != null) { 
tf[0].setText(stu.getCode()); 
tf[1].setText(stu.getName()); 
tf[2].setText(stu.getSex()); 
tf[3].setText(stu.getBirthPlace()); 
tf[4].setText(stu.getStuClass()); 
tf[5].setText(stu.getChinese() + ""); 
tf[6].setText(stu.getMath() + ""); 
tf[7].setText(stu.getEnglish() + ""); 
tf[8].setText(stu.getTotalScore() + ""); 
} 
p2.remove(btn[2]); 
p2.add(btn[1]); 
p2.add(btn[2]); 
btn[0].setActionCommand("modify"); 
inputFrame.setVisible(true); 
} 
else if (mi.getLabel().equals("Exit")) 
System.exit(0); 
else if (mi.getLabel().equals("About")) { 
final Dialog progInfo = new Dialog(mainFrame, "ProgInfo", true); 
progInfo.addWindowListener(new WindowAdapter() { 
public void windowClosing(WindowEvent e) { 
progInfo.dispose(); 
} 
}); 
progInfo.setLayout(new FlowLayout()); 
Label l = new Label("Student Information System"); 
progInfo.add(l); 
progInfo.setSize(200, 80); 
progInfo.setLocationRelativeTo(mainFrame); 
progInfo.setVisible(true); 
} 
} 
/** 
* Button action 
*/ 
else { 
Button btn = (Button)e.getSource(); 
if(btn.getLabel().equals("Save")) { 
if(!tf[0].getText().equals("") && 
!tf[1].getText().equals("") && 
!tf[2].getText().equals("") && 
!tf[3].getText().equals("") && 
!tf[4].getText().equals("") && 
!tf[5].getText().equals("") && 
!tf[6].getText().equals("") && 
!tf[7].getText().equals("") && 
!tf[8].getText().equals("")) { 
Student s = new Student(tf[0].getText(), tf[1].getText(), 
tf[2].getText(), tf[3].getText(), tf[4].getText(), 
Integer.parseInt(tf[5].getText()), 
Integer.parseInt(tf[6].getText()), 
Integer.parseInt(tf[7].getText()), 
Integer.parseInt(tf[8].getText())); 
if(btn.getActionCommand().equals("input")) { 
for(int i=0; i<student.length; i++) { 
if(student[i] == null) { 
student[i] = s; 
break; 
} 
} 
ioo.write(student); 
} 
else { 
for(int i=0; i<student.length; i++) { 
if(student[i].equals(stu)) { 
student[i] = s; 
break; 
} 
} 
ioo.write(student); 
} 
} 
inputFrame.setVisible(false); 
stuInfo.setText(""); 
} 
else if(btn.getLabel().equals("Delete")) { 
int index = 200; 
if(stu != null) { 
for(int i=0; i<student.length; i++) { 
if(student[i]!=null && student[i].equals(stu)) { 
index = i; 
if(i != student.length-1) 
student[i] = student[i+1]; 
else 
student[i] = null; 
} 
if(i==index && student[i+1]==null) 
break; 
else if(i>index && i<student.length-1) { 
student[i] = student[i+1]; 
if(i == student.length - 1) 
student[i] = null; 
} 
} 
ioo.write(student); 
} 
stu = null; 
inputFrame.setVisible(false); 
stuInfo.setText(""); 
/*for(int i=0; i<student.length; i++) { 
if(student[i]!=null) 
System.out.println(i + " " + student[i].getCode()); 
}*/ 
} 
else if(btn.getLabel().equals("Search")) { 
stu = null; 
if(!tf2[0].getText().equals("") || 
!tf2[1].getText().equals("")) { 
String condition = ""; 
if(!tf2[0].getText().equals("")) { 
condition = tf2[0].getText(); 
} 
else 
condition = tf2[1].getText(); 
for(int i=0; i<student.length; i++) { 
if (student[i] != null) { 
if (student[i].getCode().equals(condition) || 
student[i].getName().equals(condition)) { 
stu = student[i]; 
break; 
} 
} 
} 
} 
if(stu != null) { 
stuInfo.setText("Code: " + stu.getCode() + "\n" + 
"Name: " + stu.getName() + "\n" + 
"Sex: " + stu.getSex() + "\n" + 
"BirthPlace: " + stu.getBirthPlace() + "\n" + 
"Class: " + stu.getStuClass() + "\n" + 
"Chinese: " + stu.getChinese() + "\n" + 
"Math: " + stu.getMath() + "\n" + 
"English: " + stu.getEnglish() + "\n" + 
"TotalScore: " + stu.getTotalScore()); 
} 
searchFrame.setVisible(false); 
} 
else if(btn.getLabel().equals(" Exit ")) 
if(btn.getActionCommand().equals("input")) 
inputFrame.setVisible(false); 
else 
searchFrame.setVisible(false); 
} 
} 

public static void main(String[] args) { 
new StudentInformation(); 
} 
} 

/** 
* class which is used to store student information 
*/ 
class Student implements Serializable { 
private String code; 
private String name; 
private String sex; 
private String birthPlace; 
private String stuClass; 
private int Chinese; 
private int Math; 
private int English; 
private int totalScore; 

public Student(String code, String name, String sex, String birthPlace, 
String stuClass, int chinese, int math, int english, int totalScore) { 
super(); 
this.code = code; 
this.name = name; 
this.sex = sex; 
this.birthPlace = birthPlace; 
this.stuClass = stuClass; 
Chinese = chinese; 
Math = math; 
English = english; 
this.totalScore = totalScore; 
} 

public String getBirthPlace() { 
return birthPlace; 
} 

public int getChinese() { 
return Chinese; 
} 

public String getCode() { 
return code; 
} 

public int getEnglish() { 
return English; 
} 

public int getMath() { 
return Math; 
} 

public String getName() { 
return name; 
} 

public String getSex() { 
return sex; 
} 

public String getStuClass() { 
return stuClass; 
} 

public int getTotalScore() { 
return totalScore; 
} 

public boolean equals(Object obj) { 
if(obj != null && (obj instanceof Student)) 
if(this.getCode().equals(((Student)obj).getCode()) && 
this.getName().equals(((Student)obj).getName()) && 
this.getSex().equals(((Student)obj).getSex()) && 
this.getBirthPlace().equals(((Student)obj).getBirthPlace()) && 
this.getStuClass().equals(((Student)obj).getStuClass()) && 
this.getChinese() == ((Student)obj).getChinese() && 
this.getMath() == ((Student)obj).getMath() && 
this.getEnglish() == ((Student)obj).getEnglish() && 
this.getTotalScore() == ((Student)obj).getTotalScore()) 
return true; 
return false; 
} 
} 

/** 
* class which is used to do I/O operation 
*/ 
class IOOperation { 
private File file = new File("C:\\stuinfo.txt"); 

public IOOperation() { 
try { 
if(!file.exists()) 
file.createNewFile(); 
} catch (IOException e) { 
e.printStackTrace(); 
} 
} 

/** 
* write to file 
*/ 
public void write(Student[] s) { 
try { 
FileOutputStream fos = new FileOutputStream(file); 
ObjectOutputStream objOut = new ObjectOutputStream(fos); 
objOut.writeObject(s); 
objOut.close(); 
fos.close(); 
} catch(Exception e) { 
e.printStackTrace(); 
} 
} 

/** 
* read all student information from file 
*/ 
public Student[] getAllStudent() { 
Student ss[] = new Student[100]; 
try { 
if (file.length() > 0) { 
FileInputStream fis = new FileInputStream(file); 
ObjectInputStream ois = new ObjectInputStream(fis); 
ss = (Student[]) ois.readObject(); 
ois.close(); 
fis.close(); 
} 
} catch(Exception e) { 
e.printStackTrace(); 
} 
return ss; 
} 
}


分享到:
更多

网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。