java编写的简单的学生信息标准管理系统源码需求分析.doc
《java编写的简单的学生信息标准管理系统源码需求分析.doc》由会员分享,可在线阅读,更多相关《java编写的简单的学生信息标准管理系统源码需求分析.doc(31页珍藏版)》请在咨信网上搜索。
学生信息管理系统 一、 需求分析 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("<html><font color=#000000 size='6'><i>欢迎进入学生管理系统</i></font>",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=str[0]; psw=str[1]; if(t1.getText().trim().equals(name)&&t2.getText().trim().equals(psw)){ new Test(); f.hide(); br.close(); }else{ JOptionPane.showMessageDialog(null,"该用户不存在","提醒!", JOptionPane.YES_NO_OPTION); } t1.setText(""); t2.setText(""); //for(int i=0;i>str.length;i++){ //System.out.println(str[i]); //} } } public void actionPerformed(ActionEvent e) { String cmd=e.getActionCommand(); if(cmd.equals("确定")){ 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.*; 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){ this.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();} else{sex=女.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();} else{sex=女.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){ 学号.setTe- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 编写 简单 学生 信息 标准 管理 系统 源码 需求 分析
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【快乐****生活】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【快乐****生活】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文