《java编写的简单的学生信息管理系统(源码、需求分析).pdf》由会员分享,可在线阅读,更多相关《java编写的简单的学生信息管理系统(源码、需求分析).pdf(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、学生信息管理系统 一、需求分析 1、可行性分析 知识爆炸的时代里,求学的人数越来越多,但学校的数量及学校所能提供的资源很有限。为优化管理学生的人力资源,设计了这个系统。2、任务概述 1)目标 在计算机网络,数据库和先进的开发平台上,利用现有 的软件、硬件资源,开发一个具有开放体系结构的,易扩充的,易维护的,具有良好人机交互界面的学 生信息管理系统。2)需求要求 这个简单的学生信息管理系统包括以下两个基本功能:管理员登陆 学生信息管理 二、层次图 三、界面预览 登录界面 学生信息管理系统 管理员登陆 学生信息管理 增加学生信息 查询学生信息 修改学生信息 删除学生信息 显示学生信息 该管理员不存
2、在 学生信息管理界面 填写学生信息 录入学生信息 按学号进行查询 查询后可以进行信息的修改 学生信息的删除 显示全部学生信息 四、系统说明 1 该系统并未使用数据库,只是把信息存放在了一个新建立的文本文档中 2关于管理员信息,必须现在C盘建立一个名为Login的文本文档,在 Login 中存入用户名和密码且必须分行写入 3 若要修改学生信息必须先进行信息的查询,查询后方可进行信息修改 五、源代码 登录界面源代码 import java.awt.event。;import javax.swing。;import java。awt。;import java。awt.event.ActionEven
3、t;import java。awt。event.ActionListener;import java.awt。event.WindowAdapter;import java.awt。event.WindowEvent;import java.io.BufferedReader;import java。io.File;import java。io.FileReader;import java.io.IOException;import java。util.;import java。sql.;class Login extends JFrame implements ActionListener
4、Container cp=null;String name=null;String psw=null;JFrame f=null;JButton j1,j2;JTextField t1;JPasswordField t2;JLabel jlable1,jlable2;Color c;JPanel jp1,jp2;Login()f=new JFrame(”学生管理系统);j1=new JButton(”确定”);j2=new JButton(取消);cp=f。getContentPane();jlable1=new JLabel(输入用户名”);jlable2=new JLabel(用户密码);
5、jp1=new JPanel();jp2=new JPanel();t1=new JTextField(18);t2=new JPasswordField(18);jp1。add(jlable1);jp1.add(t1);jp1.add(jlable2);jp1。add(t2);JLabel JL=new JLabel(”i欢迎进入学生管理系统/istr。length;i+)/System.out。println(stri);/public void actionPerformed(ActionEvent e)String cmd=e.getActionCommand();if(cmd。equ
6、als(确定))try confirm();catch(IOException e1)/TODO Auto-generated catch block e1。printStackTrace();else if(cmd.equals(取消”)f。dispose();public static void main(String arg)Login a=new Login();学生信息管理界面源代码 import java.awt。*;import java。awt.event.*;import javax.swing。;import java。io。*;import java。util。*;cla
7、ss Student implements java。io。Serializable String number,name,specialty,grade,borth,sex;public Student();public void setNumber(String number)this。number=number;public String getNumber()return number;public void setName(String name)this。name=name;public String getName()return name;public void setSex(
8、String sex)this.sex=sex;public String getSex()return sex;public void setSpecialty(String specialty)this.specialty=specialty;public String getSpecialty()return specialty;public void setGrade(String grade)this.grade=grade;public String getGrade()return grade;public void setBorth(String borth)this。bort
9、h=borth;public String getBorth()return borth;public class Test extends JFrame JLabel lb=new JLabel(”录入请先输入记录,查询、删除请先输入学号,修改是对查询+”内容改后的保存!”);JTextField 学号,姓名,专业,年级,出生;JRadioButton 男,女;ButtonGroup group=null;JButton 录入,查询,删除,修改,显示;JPanel p1,p2,p3,p4,p5,p6,pv,ph;Student 学生=null;Hashtable 学生散列表=null;Fil
10、e file=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;FileOutputStream outOne=null;ObjectOutputStream outTwo=null;public Test()super(学生信息管理系统”);学号=new JTextField(10);姓名=new JTextField(10);专业=new JTextField(10);年级=new JTextField(10);出生=new JTextField(10);group=new ButtonGroup();男=new JR
11、adioButton(男”,true);女=new JRadioButton(”女”,false);group.add(男);group.add(女);录入=new JButton(”录入);查询=new JButton(”查询”);删除=new JButton(删除);修改=new JButton(”修改);显示=new JButton(显示);录入.addActionListener(new InputAct());查询.addActionListener(new InquestAct();修改。addActionListener(new ModifyAct();删除。addActionL
12、istener(new DeleteAct();显示.addActionListener(new ShowAct();修改。setEnabled(false);p1=new JPanel();p1。add(new JLabel(”学号:”,JLabel.CENTER));p1。add(学号);p2=new JPanel();p2。add(new JLabel(姓名:,JLabel。CENTER);p2.add(姓名);p3=new JPanel();p3。add(new JLabel(性别:,JLabel。CENTER));p3。add(男);p3.add(女);p4=new JPanel()
13、;p4.add(new JLabel(”专业:,JLabel。CENTER));p4。add(专业);p5=new JPanel();p5.add(new JLabel(”年级:”,JLabel.CENTER);p5。add(年级);p6=new JPanel();p6。add(new JLabel(出生:”,JLabel.CENTER));p6。add(出生);pv=new JPanel();pv.setLayout(new GridLayout(6,1));pv。add(p1);pv.add(p2);pv。add(p3);pv。add(p4);pv。add(p5);pv。add(p6);p
14、h=new JPanel();ph.add(录入);ph.add(查询);ph。add(修改);ph.add(删除);ph。add(显示);file=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
15、();catch(IOException e)Container con=getContentPane();con.setLayout(new BorderLayout());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);public static void main(String arg
16、s)new Test();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();inOne。close();in
17、Two.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,确认,JOptionPane。YES_NO
18、_OPTION,JOptionPane。INFORMATION_MESSAGE);if(ok=JOptionPane.YES_OPTION)String name=姓名。getText();String specialty=专业。getText();String grade=年级.getText();String borth=出生.getText();String sex=null;if(男。isSelected())sex=男。getText();elsesex=女。getText();学生=new Student();学生.setNumber(number);学生。setName(name
19、);学生。setSpecialty(specialty);学生。setGrade(grade);学生。setBorth(borth);学生.setSex(sex);try outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);学生散列表.put(number,学生);outTwo.writeObject(学生散列表);outTwo.close();outOne.close();catch(Exception ee)System.out。println(输出散列表出现问题!”);学号。setText(nul
20、l);姓名.setText(null);专业.setText(null);年级.setText(null);出生。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 ActionListener public void acti
21、onPerformed(ActionEvent e)String number=”;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)System.out.println(”散列表有问题!);if(学生散列表。containsKey(number))修改
22、.setEnabled(true);Student stu=(Student)学生散列表.get(number);姓名。setText(stu。getName());专业。setText(stu.getSpecialty());年级。setText(stu.getGrade());出生。setText(stu。getBorth();if(stu。getSex().equals(男”))男。setSelected(true);else女。setSelected(true);else 修改。setEnabled(false);String warning=”该学号不存在!”;JOptionPane
23、.showMessageDialog(null,warning,警告,JOptionPane。WARNING_MESSAGE);else 修改。setEnabled(false);String warning=必须输入学号!”;JOptionPane。showMessageDialog(null,warning,”警告,JOptionPane.WARNING_MESSAGE);class ModifyAct implements ActionListener public void actionPerformed(ActionEvent e)String number=学号.getText()
24、;String name=姓名.getText();String specialty=专业。getText();String grade=年级.getText();String borth=出生.getText();String sex=null;if(男。isSelected()sex=男。getText();elsesex=女.getText();Student 学生=new Student();学生.setNumber(number);学生.setName(name);学生.setSpecialty(specialty);学生。setGrade(grade);学生。setBorth(bo
25、rth);学生.setSex(sex);try outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);学生散列表。put(number,学生);outTwo。writeObject(学生散列表);outTwo。close();outOne。close();学号。setText(null);姓名。setText(null);专业。setText(null);年级。setText(null);出生。setText(null);catch(Exception ee)System。out。println(”录入修
26、改出现异常!);修改.setEnabled(false);class DeleteAct implements ActionListener public void actionPerformed(ActionEvent e)修改。setEnabled(false);String number=学号。getText();if(number。length()0)try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);学生散列表=(Hashtable)inTwo。readObject();inOne。close(
27、);inTwo。close();catch(Exception ee)if(学生散列表。containsKey(number)Student stu=(Student)学生散列表.get(number);姓名.setText(stu。getName());专业.setText(stu。getSpecialty();年级.setText(stu.getGrade();出生.setText(stu。getBorth());if(stu.getSex().equals(”男”))男。setSelected(true);else女.setSelected(true);String m=”确定要删除该学
28、生的记录吗?”;int ok=JOptionPane。showConfirmDialog(null,m,确认,JOptionPane。YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);if(ok=JOptionPane.YES_OPTION)学生散列表.remove(number);try outOne=new FileOutputStream(file);outTwo=new ObjectOutputStream(outOne);outTwo.writeObject(学生散列表);outTwo.close();outOne.close();学号.setT
29、ext(null);姓名.setText(null);专业.setText(null);年级.setText(null);出生.setText(null);catch(Exception ee)System。out.println(ee);else if(ok=JOptionPane.NO_OPTION)学号。setText(null);姓名。setText(null);专业.setText(null);年级。setText(null);出生.setText(null);else String warning=该学号不存在!;JOptionPane。showMessageDialog(null
30、,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 extends JDialog Hashtable 学生散列表=n
31、ull;JTextArea 显示=null;FileInputStream inOne=null;ObjectInputStream inTwo=null;File file=null;public StudentShow(File file)super(new JFrame(),”显示对话框);this。file=file;显示=new JTextArea(16,30);try inOne=new FileInputStream(file);inTwo=new ObjectInputStream(inOne);学生散列表=(Hashtable)inTwo.readObject();inOne
32、.close();inTwo。close();catch(Exception ee)if(学生散列表。isEmpty()显示.append(”目前还没有学生的信息记录!n);else 显示.setText(学号 姓名 性别 专业 年级 出生n”);for(Enumeration enm=学生散列表.elements();enm.hasMoreElements();)Student stu=(Student)enm。nextElement();String sex=”;if(stu.getSex().equals(”男”)sex=”男”;else sex=”女”;String str=stu。g
33、etNumber()+”,”+stu.getName()+”,”+sex+”,+stu。getSpecialty()+”,+stu。getGrade()+,”+stu。getBorth()+n;显示。append(str);JScrollPane scroll=new JScrollPane(显示);Container con=getContentPane();con。add(Center,scroll);con。validate();setVisible(true);setBounds(200,200,400,300);addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)setVisible(false););