您好,欢迎来到星星旅游。
搜索
您的当前位置:首页java编写的简单的学生信息管理系统(源码、需求分析)

java编写的简单的学生信息管理系统(源码、需求分析)

来源:星星旅游
学生信息管理系统

一、需求分析

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\);

jp1。setBackground(Color。lightGray);

Toolkit kit=Toolkit。getDefaultToolkit(); Dimension screen=kit。getScreenSize(); int x=screen.width;

/*取得显示器窗口的

宽度*/

int y=screen。height;

/*取得显示器窗口的

高度*/

f.setSize(300,300);

//setSize(x,y); /*让系统窗口平铺整个显示器窗口*/

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){ }

if(temp==null){

System。out.println(); temp+=”,\"+line;

}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) {

public static void main(String []arg){

Login a=new Login();

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();

}

学生信息管理界面源代码 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(\"学号:\)); 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 ObjectOutputStream(out);

objectOut。writeObject(学生散列表); objectOut.close(); out。close(); }

objectOut=new

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);

学inTwo.readObject();

生散列表=(Hashtable)

inOne。close(); inTwo.close(); }

catch(Exception ee){System。out。println(\"创建散列表出现问题!”);}

if(学生散列表.containsKey(number)){ String warning=\"该生信息已存在,请到修改页面修改!\";

JOptionPane.showMessageDialog(nullwarning,\"警告”,

JOptionPane.WARNING_MESSAGE); }//end if1 else{

String m=”该生信息将被录入!\"; int (null,m,\"确认”,

JOptionPane.YES_NO_OPTION,JOptionPane.INFORMATION_MESSAGE);

if(ok==JOptionPane.YES_OPTION){

ok=JOptionPane.showConfirmDialog

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 (file);

outTwo=new ObjectOutputStream(outOne);

学生散列表.put(number,学生); outTwo。writeObject(学生散列

FileOutputStream

表);

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, ”WARNING_MESSAGE); } } else{

修改。setEnabled(false);

String warning=\"必须输入学号!”;

JOptionPane。showMessageDialog(null,warning, ”WARNING_MESSAGE); } } }

class ModifyAct implements ActionListener{ public void actionPerformed(ActionEvent e){

\

”,

JOptionPane

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 (outOne);

outTwo.writeObject(学生散列表); ObjectOutputStream

(ee);}

outTwo。close(); outOne.close(); 学号.setText(null); 姓名.setText(null); 专业.setText(null); 年级。setText(null); 出生。setText(null); }

catch(Exception ee){System。out。println}

else if(ok==JOptionPane.NO_OPTION){ 学号.setText(null); 姓名.setText(null); 专业。setText(null); 年级。setText(null);

出生。setText(null); } else{

String warning=”该学号不存在!\"; JOptionPane.showMessageDialog(nullwarning,

,,

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 学生散列表= null; 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。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.getNumber()+\。getName()+\",\"+sex+\

+stu.getSpecialty()+\。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);} }); } } }

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- stra.cn 版权所有 赣ICP备2024042791号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务