Java课程设计-学生信息管理系统

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

《面向对象程序设计》课程设计报告题目:《**********》课程设计
学院:信息工程学院
姓名:*************
学号:******
专业:计算科学与技术
班级:*****
指导教师:*****
2015 年12月
目录
目录0
摘要0
1。

引言0
2.设计目的与任务0
3. 设计方案1
3。

1总体设计1
3。

2开发环境1
3。

3层次图2
3。

4界面预览2
3。

4.1登录界面2
3.4。

2该管理员不存在(用户名:name 用户密码:psw )2
3。

4.3学生信息管理界面2
3。

4.4填写学生信息2
3。

4。

5录入学生信息2
3。

4.6查询学生信息2
3。

4。

7修改学生信息2
3。

4.8删除学生信息2
3。

4.9显示所有学生信息2
4.系统说明2
5.设计体会与小结2
6。

附录3
6。

1登录界面源代码Login.java3
6。

2学生信息管理系统源码Student。

java5
摘要
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长.面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。

通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。

目前社会上信息管理系统发展飞快,各个企业事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少。

该报告中的程序是简单的学生管理系统,该系统完全独立开发,力求使系统功能简
洁明了,但功能齐全且易于操作.使用Java程序编写,能够进行学生信息录入、修改、查看、删除等操作。

该程序主要用到了Java swing和事件监听等。

1.引言
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。

后来它的开发者们发现它还可以被用于更大范围的Internet上。

1995年,Java语言的名字从Oak编程了Java。

1997年J2SE1.1发布。

1998年J2SE1。

2发布,标志Java2的诞生。

十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。

Java的体系结构由Java语言、Java class组成.它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。

Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。

Java的平台标准有Java ME,Java SE和Java EE.Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。

目前在众多的支持Java的开发工具中主要的7有Java Development Kit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse 等。

其中Java Development Kit 简称JDK是大多开发工具的基础。

以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具. 在本程序设计中,因为需要开发的是学生管理系统程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator 开发工具.
2。

设计目的与任务
学生信息管理系统是一个教育单位不可缺少的部分。

一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。

所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段.但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会
的各个领域并发挥着来越重要的作用。

在计算机网络,数据库和先进的开发平台上,利用现有的软件、硬件资源,开发一个具有开放体系结构的,易扩充的,易维护的,具有良好人机交互界面的学生信息管理系统。

这个简单的学生信息管理系统包括以下两个基本功能:
·管理员登陆
·学生信息管理
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生管理信息系统.
3.设计方案
3.1 总体设计
本程序要构建的学生管理系统程序其功能有以下几个方面:
(1)首先是学生管理系统主界面“管理员登录界面”。

(2)管理员登录之后的子界面“学生信息管理界面”。

(3)学生信息管理界面可对学生信息进行填写操作。

(4)学生信息管理界面底端并含有“录入、查询、修改、删除、显示”五个操作按钮。

3.2 开发环境
Windows XP;myeclipse—8。

5.0—win32
3.3 层次图 3.4 界面预览 3.
4.1 登录界面
3.4.2 该管理员不存在( 用户名:name 用户密码:psw ) 3.4.3 学生信息管理界面 3.4.4 填写学生信息 3.4.5 录入学生信息 3.4.6 查询学生信息 3.4.7 修改学生信息 3.4.8 删除学生信息 3.4.9 显示所有学生信息
4.系统说明
1、该系统并未使用数据库,只是把信息存放在了一个新建立的文本文档中。

2、关于管理员信息,必须现在C 盘建立一个名为 Login 的文本文档,在 Login 中存入用户名和密码且必须分行写入。

3、若要修改学生信息必须先进行信息的查询,查询后方可进行信息修改。

5。

设计体会与小结
通过这次课程设计,我们大家在老师的帮助下收获的不仅仅是课程上的知识得到实际应用,还有编程的基本习惯和开发系统时应注意的流程。

编程是个艰难的过程,很多功能语句都需要上网或者是查其他书籍来查看他们的用法,课本上的东西对我们来说远远不够,我们要把目光放长远一些。

这次的课程设计使我对JAVA 的许多东西都有了更深一步的了解,以前对自己的要求是看得懂就行,现在才发现,光能看懂是远远不够的,能看懂并不代表你会!课本被翻过很多遍,很多以前不知道的东西就这样豁然开朗了.
本次Java 课程设计的锻炼,不仅我们的分析问题跟解决问题的能力都得到明显的提高,在这次事件过程中收获很多,对我们而言,知识上的收回,尽管遇到了困难,但还是通过各种途径克服问题。

做小小的测试,通过了就很开心,收获颇多,但是知识还是欠缺,我们会继续努力.
学生信息管理系统
管理员登陆
学生信息管理
添加学生信息
查询学生信息
修改学生信息
删除学生信息
显示学生信息
6。

附录
6。

1登录界面源代码Login.java
package aa;
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=#CC00FF size='4’〉〈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(){
publicvoid windowClosing(WindowEvent e){
System。

exit(0);


);

publicvoid 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()。

equals(psw))){
new Test();
f.hide();
br.close();
}else{
JOptionPane.showMessageDialog(null,”该用户不存在",”提
示?”,JOptionPane.YES_NO_OPTION);

t1。

setText(”");
t2。

setText(”");


publicvoid actionPerformed(ActionEvent e)
{
String cmd=e.getActionCommand();
if(cmd.equals(”确定")){
try{
confirm();
} catch(IOException e1){
e1。

printStackTrace();
}
}
elseif(cmd。

equals(”取消”)){
f。

dispose();

}
publicstaticvoid main(String[] args){
Login a=new Login();
}

6.2学生信息管理系统源码Student.java
package aa;
import java。

awt.*;
import java.awt。

event。

*;
import javax。

swing.*;
import java。

io。

*;
import java.util.*;
publicclass Student implements java。

io。

Serializable{
String number,name,specialty,grade,borth,sex;
public Student(){};
publicvoid setNumber(String number){this.number=number;}
public String getNumber(){return number;}
publicvoid setName(String name){this。

name=name;}
public String getName(){ return name;}
publicvoid setSex(String sex){this。

sex=sex;}
public String getSex(){return sex;}
publicvoid setSpecialty(String specialty){this。

specialty=specialty;} public String getSpecialty(){return specialty;}
publicvoid setGrade(String grade){this.grade=grade;}
public String getGrade(){return grade;}
publicvoid setBorth(String borth){this.borth=borth;}
public String getBorth(){ return borth;}

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);
}
publicstaticvoid main(String[] args){
new Test();}
class InputAct implements ActionListener{
publicvoid 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);
}//endif1
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
}//endif0
else{
String warning=”必须输入学号?”;
JOptionPane.showMessageDialog(null,warning,
" 警告",JOptionPane。

WARNING_MESSAGE);
}//end else0
}//end actionPerformed
}//end class
class InquestAct implements ActionListener{
publicvoid 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{
publicvoid 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{ publicvoid 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);}
}
elseif(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{
publicvoid 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(){
publicvoid windowClosing(WindowEvent e){setVisible(false);}
});}}}。

相关文档
最新文档