java编写的学生信息管理系统_急求!!一个java程序编写的简单的学生信息管理系统...

展开全部

仅仅给你个参考

//Java Group Project_StudentManagement源码

//NetBeans IDE 6.5 环境

package studentmanager;

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 StudentManager extends JFrame{

JLabel lb=new JLabel("录入请先输入记录,查询、e68a84e8a2ad3231313335323631343130323136353331333238663031删除请先输入学号,修改是对查询" +

"内容改后的保存!");

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 StudentManager(){

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

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

学号.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_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()+","+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);}

}

);

}

}

}

2Q==

已赞过

已踩过<

你对这个回答的评价是?

评论

收起

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生成绩管理系统设计” A.问题描述 学生信息包括:学号、姓名、性别、年龄、班级等信息。 小学生除了包括学生所有信息外,还包括英语、数学和语文成绩。 中学生除了包括小学生所有信息外,还包括地理、历史成绩。 大学生除了包括学生所有信息外,还包括专业、英语、程序设计和高等数学等课程。 设计一程序能够对学生成绩进行管理,应用到继承、抽象类、虚函数、虚基类、多态和文件的输入/输出等内容。 B.功能要求 (1)添加功能:程序能够添加不同学生的记录,提供选择界面供用户选择所要添加的类别,要求学号要唯一,如果添加了重复学号的记录时,则提示数据添加重复并取消添加。 (2)查询功能:可根据学号、姓名等信息对已添加的学生记录进行查询,如果未找到,给出相应的提示信息,如果找到,则显示相应的记录信息。 (3)显示功能:可显示当前系统中所有学生的记录,每条记录占据一行。 (4)编辑功能:可根据查询结果对相应的记录进行修改,修改时注意学号的唯一性。 (5)删除功能:主要实现对已添加的学生记录进行删除。如果当前系统中没有相应的记录,则提示“记录为空!”并返回操作。 (6)统计功能:能根据多种参数进行统计。能统计学生人数、总分、单科的平均分等。 (7)保存功能:可将当前系统中各类记录存入文件中,存入方式任意。 (8)读取功能:可将保存在文件中的信息读入到当前系统中,供用户进行使用。 (9)排序功能:可按总分和单科成绩排名次。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值