




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生信息管理系统一、 需求分析1、可行性分析 知识爆炸的时代里,求学的人数越来越多,但学校的数量及学校所能提供的资源很有限。为优化管理学生的人力资源,设计了这个系统。2、任务概述1)目标 在计算机网络,数据库和先进的开发平台上,利用现有的软件、硬件资源,开发一个具有开放体系结构的,易扩充的,易维护的,具有良好人机交互界面的学生信息管理系统。2)需求要求 这个简单的学生信息管理系统包括以下两个基本功能: 管理员登陆 学生信息管理二、 层次图 学生信息管理系统管理员登陆 学生信息管理增加学生信息查询学生信息修改学生信息删除学生信息显示学生信息三、界面预览登录界面该管理员不存在学生信息管理界面填写学生信息录入学生信息按学号进行查询查询后可以进行信息的修改学生信息的删除显示全部学生信息四、系统说明 1该系统并未使用数据库,只是把信息存放在了一个新建立的文本文档中 2关于管理员信息,必须现在C盘建立一个名为Login的文本文档,在Login中存入用户名和密码且必须分行写入 3若要修改学生信息必须先进行信息的查询,查询后方可进行信息修改五、源代码登录界面源代码import java.awt.event.*;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;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 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( 用户密码); 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(欢迎进入学生管理系统,SwingConstants.CENTER); cp.add(JL,North);jp2.add(j1);jp2.add(j2); cp.add(jp1,Center); cp.add(South,jp2);jp1.setBackground(Color.lightGray); Toolkit kit=Toolkit.getDefaultToolkit();Dimension screen=kit.getScreenSize();int x=screen.width;/*取得显示器窗口的宽度*/int y=screen.height;/*取得显示器窗口的高度*/setSize(x,y); /*让系统窗口平铺整个显示器窗口*/ f.setSize(300,300); int xcenter=(x-300)/2; int ycenter=(y-300)/2; f.setLocation(xcenter,ycenter);/*显示在窗口中央*/ f.setVisible(true); /- j1.addActionListener(this);/注册事件监听器 j2.addActionListener(this); f.addWindowListener(new WindowAdapter()public void windowClosing(WindowEvent e)System.exit(0);); public void confirm() throws IOException/验证用户和密码是否存在 File file = new File(C:/Login.txt);try if(!file.exists()file.createNewFile(); catch (IOException e) e.printStackTrace();BufferedReader br = new BufferedReader(new FileReader(file);String temp=br.readLine();String line;while(line=br.readLine()!=null)temp+=,+line;if(temp=null)System.out.println();else/分割字符串String str=temp.split(,);name=str0;psw=str1;if(t1.getText().trim().equals(name)&t2.getText().trim().equals(psw)new Test();f.hide();br.close();elseJOptionPane.showMessageDialog(null,该用户不存在,提示!, JOptionPane.YES_NO_OPTION); t1.setText();t2.setText();/for(int i=0;istr.length;i+)/System.out.println(stri);/ public void actionPerformed(ActionEvent e) String cmd=e.getActionCommand(); if(cmd.equals(确定) try confirm(); catch (IOException e1) / TODO Auto-generated catch blocke1.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.*;class 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) =name; public String getName() return name; public void setSex(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.borth=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; File 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 JRadioButton(男,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(); 删除.addActionListener(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(); 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); ph=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(); 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 args) 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(); 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,确认, JOptionPane.YES_NO_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); 学生.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(null); 姓名.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 actionPerformed(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) 修改.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.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(); 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(borth); 学生.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(录入修改出现异常!); 修改.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(); 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=确定要删除该学生的记录吗?; 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(); 学号.setText(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,warning, 警告,JOptionPane.WARNING_MESSAGE); else String warning=必须输入学号!; JOptionPane.showMessageDialog(null,warning, 警告,JOptionPane.WARNING_MESSA
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年港口货物仓储合同协议
- 2025年家居维修保养服务合同协议
- 2025年道路货运合同运输操作协议
- 共享电车无人驾驶技术运用总结报告报告
- Linux系统运维管理手册
- 酒店餐饮节假日用餐预订规定
- 天然气环保监控方案
- 企业文档版本管理规定
- 地方国有政策性投资公司战略抉择:以H公司为镜鉴
- 地域视角下大学生购物决策风格与购买决策过程的差异化剖析
- UL2108标准中文版-2017低压照明系统UL中文版标准
- 怎样写好硬笔字-硬笔书法教程课件 4-1 硬笔隶书笔画技法
- 旅行社旅游突发公共事件应急预案
- 便利店陈列培训
- 学校食堂餐厅投诉处理制度
- SolidWorks-全套基础培训教程
- 安吉汽车物流运输优化方案全套
- 变更董事股东会决议
- 中国功夫介绍英文
- 驾驶员管理台帐
- 部编版五年级道德与法治上册第3课《主动拒绝烟酒与毒品》优秀课件【最新】
评论
0/150
提交评论