java编写地简单地学生信息管理系统源码需求分析报告.docx
《java编写地简单地学生信息管理系统源码需求分析报告.docx》由会员分享,可在线阅读,更多相关《java编写地简单地学生信息管理系统源码需求分析报告.docx(26页珍藏版)》请在冰豆网上搜索。
java编写地简单地学生信息管理系统源码需求分析报告
学生信息管理系统
一、需求分析
1、可行性分析
知识爆炸的时代里,求学的人数越来越多,但学校的数量及学校所能提供的资源很有限。
为优化管理学生的人力资源,设计了这个系统。
2、任务概述
1)目标
在计算机网络,数据库和先进的开发平台上,利用现有
的软件、硬件资源,开发一个具有开放体系结构的,
易扩充的,易维护的,具有良好人机交互界面的学
生信息管理系统。
2)需求要求
这个简单的学生信息管理系统包括以下两个基本功能:
·管理员登陆
·学生信息管理
二、层次图
三、界面预览
登录界面
该管理员不存在
学生信息管理界面
填写学生信息
录入学生信息
按学号进行查询
查询后可以进行信息的修改
学生信息的删除
显示全部学生信息
四、系统说明
1该系统并未使用数据库,只是把信息存放在了一个新建立的文本文档中
2关于管理员信息,必须现在C盘建立一个名为Login的文本文档,在Login中存入用户名和密码且必须分行写入
3若要修改学生信息必须先进行信息的查询,查询后方可进行信息修改
五、源代码
登录界面源代码
importjava.awt.event.*;
importjavax.swing.*;
importjava.awt.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.awt.event.WindowAdapter;
importjava.awt.event.WindowEvent;
importjava.io.BufferedReader;
importjava.io.File;
importjava.io.FileReader;
importjava.io.IOException;
importjava.util.*;
importjava.sql.*;
classLoginextendsJFrameimplementsActionListener
{Containercp=null;
Stringname=null;
Stringpsw=null;
JFramef=null;
JButtonj1,j2;
JTextFieldt1;
JPasswordFieldt2;
JLabeljlable1,jlable2;
Colorc;
JPaneljp1,jp2;
Login(){
f=newJFrame("学生管理系统");
j1=newJButton("确定");
j2=newJButton("取消");
cp=f.getContentPane();
jlable1=newJLabel("输入用户名");
jlable2=newJLabel("用户密码");
jp1=newJPanel();
jp2=newJPanel();
t1=newJTextField(18);
t2=newJPasswordField(18);
jp1.add(jlable1);
jp1.add(t1);
jp1.add(jlable2);
jp1.add(t2);
JLabelJL=newJLabel("欢迎进入学生管理系统",SwingConstants.CENTER);
cp.add(JL,"North");
jp2.add(j1);
jp2.add(j2);
cp.add(jp1,"Center");
cp.add("South",jp2);
jp1.setBackground(Color.lightGray);
Toolkitkit=Toolkit.getDefaultToolkit();
Dimensionscreen=kit.getScreenSize();
intx=screen.width;/*取得显示器窗口的宽度*/
inty=screen.height;/*取得显示器窗口的高度*/
//setSize(x,y);/*让系统窗口平铺整个显示器窗口*/
f.setSize(300,300);
intxcenter=(x-300)/2;
intycenter=(y-300)/2;
f.setLocation(xcenter,ycenter);/*显示在窗口中央*/
f.setVisible(true);
//-----------------------------------------------------
j1.addActionListener(this);//注册事件监听器
j2.addActionListener(this);
f.addWindowListener(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}
);
}
publicvoidconfirm()throwsIOException//验证用户和密码是否存在
{
Filefile=newFile("C:
//Login.txt");
try{
if(!
file.exists())
file.createNewFile();
}catch(IOExceptione){
e.printStackTrace();
}
BufferedReaderbr=newBufferedReader(newFileReader(file));
Stringtemp=br.readLine();
Stringline;
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)){
newTest();
f.hide();
br.close();
}else{
JOptionPane.showMessageDialog(null,"该用户不存在","提示!
",
JOptionPane.YES_NO_OPTION);
}
t1.setText("");
t2.setText("");
//for(inti=0;i>str.length;i++){
//System.out.println(str[i]);
//}
}
}
publicvoidactionPerformed(ActionEvente)
{
Stringcmd=e.getActionCommand();
if(cmd.equals("确定")){
try{
confirm();
}catch(IOExceptione1){
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
}
elseif(cmd.equals("取消")){
f.dispose();
}
}
publicstaticvoidmain(String[]arg){
Logina=newLogin();
}
}
学生信息管理界面源代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
classStudentimplementsjava.io.Serializable{
Stringnumber,name,specialty,grade,borth,sex;
publicStudent(){};
publicvoidsetNumber(Stringnumber){this.number=number;}
publicStringgetNumber(){returnnumber;}
publicvoidsetName(Stringname){this.name=name;}
publicStringgetName(){returnname;}
publicvoidsetSex(Stringsex){this.sex=sex;}
publicStringgetSex(){returnsex;}
publicvoidsetSpecialty(Stringspecialty){this.specialty=specialty;}
publicStringgetSpecialty(){returnspecialty;}
publicvoidsetGrade(Stringgrade){this.grade=grade;}
publicStringgetGrade(){returngrade;}
publicvoidsetBorth(Stringborth){this.borth=borth;}
publicStringgetBorth(){returnborth;}
}
publicclassTestextendsJFrame{
JLabellb=newJLabel("录入请先输入记录,查询、删除请先输入学号,修改是对查询"+
"内容改后的保存!
");
JTextField学号,姓名,专业,年级,出生;
JRadioButton男,女;
ButtonGroupgroup=null;
JButton录入,查询,删除,修改,显示;
JPanelp1,p2,p3,p4,p5,p6,pv,ph;
Student学生=null;
Hashtable学生散列表=null;
Filefile=null;
FileInputStreaminOne=null;
ObjectInputStreaminTwo=null;
FileOutputStreamoutOne=null;
ObjectOutputStreamoutTwo=null;
publicTest(){
super("学生信息管理系统");
学号=newJTextField(10);
姓名=newJTextField(10);
专业=newJTextField(10);
年级=newJTextField(10);
出生=newJTextField(10);
group=newButtonGroup();
男=newJRadioButton("男",true);
女=newJRadioButton("女",false);
group.add(男);
group.add(女);
录入=newJButton("录入");
查询=newJButton("查询");
删除=newJButton("删除");
修改=newJButton("修改");
显示=newJButton("显示");
录入.addActionListener(newInputAct());
查询.addActionListener(newInquestAct());
修改.addActionListener(newModifyAct());
删除.addActionListener(newDeleteAct());
显示.addActionListener(newShowAct());
修改.setEnabled(false);
p1=newJPanel();
p1.add(newJLabel("学号:
",JLabel.CENTER));
p1.add(学号);
p2=newJPanel();
p2.add(newJLabel("姓名:
",JLabel.CENTER));
p2.add(姓名);
p3=newJPanel();
p3.add(newJLabel("性别:
",JLabel.CENTER));
p3.add(男);
p3.add(女);
p4=newJPanel();
p4.add(newJLabel("专业:
",JLabel.CENTER));
p4.add(专业);
p5=newJPanel();
p5.add(newJLabel("年级:
",JLabel.CENTER));
p5.add(年级);
p6=newJPanel();
p6.add(newJLabel("出生:
",JLabel.CENTER));
p6.add(出生);
pv=newJPanel();
pv.setLayout(newGridLayout(6,1));
pv.add(p1);
pv.add(p2);
pv.add(p3);
pv.add(p4);
pv.add(p5);
pv.add(p6);
ph=newJPanel();
ph.add(录入);
ph.add(查询);
ph.add(修改);
ph.add(删除);
ph.add(显示);
file=newFile("学生信息.txt");
学生散列表=newHashtable();
if(!
file.exists()){
try{
FileOutputStreamout=newFileOutputStream(file);
ObjectOutputStreamobjectOut=newObjectOutputStream(out);
objectOut.writeObject(学生散列表);
objectOut.close();
out.close();
}
catch(IOExceptione){}
}
Containercon=getContentPane();
con.setLayout(newBorderLayout());
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);
}
publicstaticvoidmain(String[]args){newTest();}
classInputActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
修改.setEnabled(false);
Stringnumber="";
number=学号.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
学生散列表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("创建散列表出现问题!
");}
if(学生散列表.containsKey(number)){
Stringwarning="该生信息已存在,请到修改页面修改!
";
JOptionPane.showMessageDialog(null,warning,"警告",
JOptionPane.WARNING_MESSAGE);
}//endif1
else{
Stringm="该生信息将被录入!
";
intok=JOptionPane.showConfirmDialog(null,m,"确认",
JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);
if(ok==JOptionPane.YES_OPTION){
Stringname=姓名.getText();
Stringspecialty=专业.getText();
Stringgrade=年级.getText();
Stringborth=出生.getText();
Stringsex=null;
if(男.isSelected()){sex=男.getText();}
else{sex=女.getText();}
学生=newStudent();
学生.setNumber(number);
学生.setName(name);
学生.setSpecialty(specialty);
学生.setGrade(grade);
学生.setBorth(borth);
学生.setSex(sex);
try{
outOne=newFileOutputStream(file);
outTwo=newObjectOutputStream(outOne);
学生散列表.put(number,学生);
outTwo.writeObject(学生散列表);
outTwo.close();
outOne.close();
}
catch(Exceptionee){System.out.println("输出散列表出现问题!
");}
学号.setText(null);
姓名.setText(null);
专业.setText(null);
年级.setText(null);
出生.setText(null);
}
}//endelse1
}//endif0
else{
Stringwarning="必须输入学号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}//endelse0
}//endactionPerformed
}//endclass
classInquestActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber="";
number=学号.getText();
if(number.length()>0){
try{
inOne=newFileInputStream(file);
inTwo=newObjectInputStream(inOne);
学生散列表=(Hashtable)inTwo.readObject();
inOne.close();
inTwo.close();
}
catch(Exceptionee){System.out.println("散列表有问题!
");}
if(学生散列表.containsKey(number)){
修改.setEnabled(true);
Studentstu=(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);
Stringwarning="该学号不存在!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
else{
修改.setEnabled(false);
Stringwarning="必须输入学号!
";
JOptionPane.showMessageDialog(null,warning,
"警告",JOptionPane.WARNING_MESSAGE);
}
}
}
classModifyActimplementsActionListener{
publicvoidactionPerformed(ActionEvente){
Stringnumber=学号.getText();
Stringname=姓名.getText();
Stringspecialty=专业.getText();
Stringgrade=年级.getText();
Stringborth=出生.getText();
Stringsex=null;
if(男.isSelected()){sex=男.getText();}
else{sex=女.getText();}
Student学生=newStudent();
学生.setNumber(number);
学生.setName(name);
学生.setSpecialty(specialty);
学生.setGrade(grade);
学生.setBorth(borth);
学