《学生信息管理系统java语言实现.doc》由会员分享,可在线阅读,更多相关《学生信息管理系统java语言实现.doc(14页珍藏版)》请在三一办公上搜索。
1、Java程序设计实验报告Java Programming Assignment 专 业: 信息与计算科学 班 级: 1002班 学 号: 1008060207 姓 名: 屈敏华 2012年 6月 7 日一、 任务(问题)描述 设计一个图形用户界面来实现一个信息管理系统。这里我做的是学生信息管理系统。基本上实现学生信息的录入,修改,查询,删除。要求有类的继承,封装,接口的实现,还有基本的图形用户界面设计,要求用菜单条,菜单,下拉列表和基本的容器嵌套。为了使存储空间得到很好地利用,我采用散列表来实现对信息的基本的操作。二、设计与实现(多少个Java文件,每个文件中的类)类 名属 性方 法备 注Ma
2、nageInformationPublic static void mainStudentString number,name,specialty,grade,borth,sex; public Student()public void setNumberpublic String getNumberpublic void setNamepublic String getNamepublic void setSex public String getSexpublic void setSpecialtypublic String getSpecialtypublic void setGrade
3、public String getGradepublic void setBorthpublic String getBorth在student类里边有用另外一个类的对象作为这个类的成员变量,写在构造方法里 ,。 TextJTextField 学号,姓名,专业,年级,出生; JRadioButton 男,女; ButtonGroup group; JButton 录入,查询,删除,修改,显示; JPanel p1,p2,p3,p4,p5,p6,pv,ph; Student 学生; Hashtable 学生散列表; File file;FileInputStream inOne; ObjectI
4、nputStream inTwo; FileOutputStream outOne; ObjectOutputStream outTwo; public Test()录入=new JButton(录入); 录入.addActionListener(new InputAct(); p1=new JPanel(); p1.add(new JLabel(学号:,JLabel.CENTER); trycatch(IOException e) setDefaultCloseOperation(EXIT_ON_CLOSE); setBounds(100,100,600,300); setVisible(t
5、rue); 继承了Jframe,实现图形界面。DeleteAct public void actionPerformed(ActionEvent e)setEnabled()getText()containsKey()JOptionPane.showConfirmDialogJOptionPane.YES_OPTIONSystem.out.println()JOptionPane.NO_OPTIONsetVisible() JOptionPane.showMessageDialog删除信息InputAct public void actionPerformed(ActionEvent e)JO
6、ptionPane.showMessageDialog(null,warning,警告, JOptionPane.WARNING_MESSAGE); setVisible()录入InquestAct public void actionPerformed(ActionEvent e)setEnabled()JOptionPane.showMessageDialog()得到信息ShowAct public void actionPerformed(ActionEvent e)setVisible()显示信息StudentShow isEmpty()windowClosingsetVisible(
7、)window Button button1,button2,button3,button4,tuichu; Panel p1,p2,p3; Label l1,l2,l3; TextField a1,a2; Box b1,b2,b3,b4,b5;setFont(new Font(,Font.BOLD,45); setBackground(Color.white);dispose(); System.exit(0); getSource()getText().equals( ) JOptionPane.showMessageDialogpublic void windowClosing窗口 Mo
8、difyActreadObject()isEmpty()append( )enm.hasMoreElements()修改信息附:源程序代码框架import java.awt.event.*; import javax.swing.*; import java.io.*; import java.util.*; import javax.swing.border.*; public class ManageIformation public static void main(String args) new window(); class Student String number,name,s
9、pecialty,grade,borth,sex; public Student() new Test(); ; public void setNumber(String number) this.number=number; public String getNumber() return number; 。public void setBorth(String borth) this.borth=borth; public String getBorth() return borth; class Test extends JFrame . public Test() super(学生信息
10、管理系统); 学号=new JTextField(10); . group.add(男); group.add(女); 录入.addActionListener(new InputAct(); . 修改.setEnabled(false); p1=new JPanel(); p1.add(new JLabel(学号:,JLabel.CENTER); p1.add(学号); . pv=new JPanel(); pv.setLayout(new GridLayout(6,1); pv.add(p1); . pv.add(p6); ph=new JPanel(); ph.add(录入); .fil
11、e=new File(学生信息.txt); 学生散列表=new Hashtable(); if(!file.exists() try FileOutputStream out=new FileOutputStream(file); ObjectOutputStream objectOut=new ObjectOutputStream(out); objectOut.writeObject(学生散列表); objectOut.close(); out.close(); catch(IOException e) Container con=getContentPane(); con.setLayo
12、ut(new BorderLayout(); . class InputAct implements ActionListener public void actionPerformed(ActionEvent e) 修改.setEnabled(false); String number=; number=学号.getText(); if(number.length()0) try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 学生散列表=(Hashtable)inTwo.readObject(); i
13、nOne.close(); inTwo.close(); catch(Exception ee)System.out.println(创建散列表出现问题); if(学生散列表.containsKey(number) String warning=该生信息已存在请到修改页面修改; JOptionPane.showMessageDialog(null,warning,警告, JOptionPane.WARNING_MESSAGE); /end if1 else String m=该生信息将被录入; int ok=JOptionPane.showConfirmDialog(null,m,确认, JO
14、ptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE); if(ok=JOptionPane.YES_OPTION) if(男.isSelected()sex=男.getText(); elsesex=女.getText(); 学生=new Student(); . try outOne=new FileOutputStream(file); outTwo=new ObjectOutputStream(outOne); 学生散列表.put(number,学生); outTwo.writeObject(学生散列表); outTwo.clo
15、se(); outOne.close(); catch(Exception ee)System.out.println(输出散列表出现问题); 学号.setText(null); 。. /end else1 /end if0 else String warning=信息不能为空; JOptionPane.showMessageDialog(null,warning, 警告,JOptionPane.WARNING_MESSAGE); /end else0 /end actionPerformed /end class class InquestAct implements ActionListe
16、ner public void actionPerformed(ActionEvent e) String number=; . else 修改.setEnabled(false); String warning=必须输入学号; JOptionPane.showMessageDialog(null,warning, 警告,JOptionPane.WARNING_MESSAGE); class ModifyAct implements ActionListener public void actionPerformed(ActionEvent e) try outOne=new FileOutp
17、utStream(file); outTwo=new ObjectOutputStream(outOne); 学生散列表.put(number, 学生); outTwo.writeObject(学生散列表); outTwo.close(); outOne.close(); . atch(Exception ee) System.out.println(录入修改出现异常!); 修改.setEnabled(false); class DeleteAct implements ActionListener public void actionPerformed(ActionEvent e) 修改.s
18、etEnabled(false); String 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); . St
19、ring m=确定要删除该学生的记录吗; int ok=JOptionPane.showConfirmDialog(null,m,确认, JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE); if(ok=JOptionPane.YES_OPTION) 学生散列表.remove(number); try 。. catch(Exception ee)System.out.println(ee); else if(ok=JOptionPane.NO_OPTION) . 。 else String warning=该学号不存在; JOptio
20、nPane.showMessageDialog(null,warning,警告,JOptionPane.WARNING_MESSAGE); else String warning=必须输入学号; JOptionPane.showMessageDialog(null,warning, 警告,JOptionPane.WARNING_MESSAGE); class ShowAct implements ActionListener public void actionPerformed(ActionEvent e) new StudentShow(file); class StudentShow e
21、xtends JDialog .try inOne=new FileInputStream(file); inTwo=new ObjectInputStream(inOne); 学生散列表=(Hashtable)inTwo.readObject(); . catch(Exception ee) if(学生散列表.isEmpty()显示.append(目前还没有学生的信息记录n); else for(Enumeration enm=学生散列表.elements(); enm.hasMoreElements();) . JScrollPane scroll=new JScrollPane(显示);
22、 Container con=getContentPane(); . addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e)setVisible(false); ); class window extends Frame implements ActionListener . window() button1=new Button(登陆); p1=new Panel(); l1=new Label(学生信息管理系统,Label.CENTER); l1.setFont(new Font(宋体,F
23、ont.BOLD,45); l1.setBackground(Color.white); addWindowListener(new WindowAdapter() public void windowClosing(WindowEvent e) dispose(); ); setVisible(true); validate(); public void actionPerformed(ActionEvent e) if(e.getSource()=tuichu) System.exit(0); if(e.getSource()=button1) if(a1.getText().equals(xiaoqu)&a2.getText().equals(1234) JOptionPane.showMessageDialog(null, 欢 迎 进 入学 生 信息 管 理 系 统); new Student(); dispose(); else JOptionPane.showMessageDialog(null, 输入的用户名不正确); 三、 界面设计与事件处理 四 其他 用散列表对学生信息的操作以及对数据的存储都起到了简化的作用,是操作更简单,存储更加灵活,能够根据所需来分配内存,使得内存的利用里大大的提高,这是指用散列表的好处。唯一不好的事,没有做到显示信息的功能。
链接地址:https://www.31ppt.com/p-2385982.html