Java课程设计学生信息管理系统.docx
- 文档编号:28831153
- 上传时间:2023-07-20
- 格式:DOCX
- 页数:27
- 大小:374.21KB
Java课程设计学生信息管理系统.docx
《Java课程设计学生信息管理系统.docx》由会员分享,可在线阅读,更多相关《Java课程设计学生信息管理系统.docx(27页珍藏版)》请在冰豆网上搜索。
Java课程设计学生信息管理系统
《面向对象程序设计》课程设计报告
题目:
《**********》课程设计
学院:
信息工程学院
姓名:
*************
学号:
******
专业:
计算科学与技术
班级:
*****
指导教师:
*****
2015年12月
摘要
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。
面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。
通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。
目前社会上信息管理系统发展飞快,各个企业事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展,商业化的学生信息管理软件也不少。
该报告中的程序是简单的学生管理系统,该系统完全独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。
使用Java程序编写,能够进行学生信息录入、修改、查看、删除等操作。
该程序主要用到了Javaswing和事件监听等。
1.引言
Java的前身是Oak,它一开始只是被应用于消费性电子产品中。
后来它的开发者们发现它还可以被用于更大范围的Internet上。
1995年,Java语言的名字从Oak编程了Java。
1997年J2SE1.1发布。
1998年J2SE1.2发布,标志Java2的诞生。
十多年来,Java编程语言及平台成功地运用在网络计算及移动等各个领域。
Java的体系结构由Java语言、Javaclass组成。
它具有简单、面向对象、健壮、安全、结构中立、可移植和高效能等众多优点。
Java支持多线程编程,Java运行时系统在多线程同步方面具有成熟的解决方案。
Java的平台标准有JavaME,JavaSE和JavaEE。
Java发展到今天,它的卓越成就及在业界的地位毋庸置疑。
目前在众多的支持Java的开发工具中主要的7有JavaDevelopmentKit,NetBeans,Jcreator,JBuilder,JDeveloper和Eclipse等。
其中JavaDevelopmentKit简称JDK是大多开发工具的基础。
以上的每种开发工具都有优缺点,对于开发者来说,重要的是要根据自己的开发规模、开发内容和软硬件环境等因素来选择一种合适的开发工具。
在本程序设计中,因为需要开发的是学生管理系统程序,规模较小,内容较少,所以选择了适合初学者使用的JCreator开发工具。
2.设计目的与任务
学生信息管理系统是一个教育单位不可缺少的部分。
一个功能齐全、简单易用的信息管理系统不但能有效地减轻学校相关工作人员的工作负担,它的内容对于学校的决策者和管理者来说都至关重要。
所以学生信息管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件档案、统计和查询数据,这种管理方式存在着许多缺点,如:
效率低、保密性差,人工的大量浪费;另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少困难。
随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着来越重要的作用。
在计算机网络,数据库和先进的开发平台上,利用现有的软件、硬件资源,开发一个具有开放体系结构的,易扩充的,易维护的,具有良好人机交互界面的学生信息管理系统。
这个简单的学生信息管理系统包括以下两个基本功能:
·管理员登陆
·学生信息管理
本系统主要用于学校学生信息管理,总体任务是实现学生信息关系的系统化、规范化和自动化,其主要任务是用计算机对学生各种信息进行日常管理,如查询、修改、增加、删除,针对这些要求设计了学生管理信息系统。
3.设计方案
3.1总体设计
本程序要构建的学生管理系统程序其功能有以下几个方面:
(1)首先是学生管理系统主界面“管理员登录界面”。
(2)管理员登录之后的子界面“学生信息管理界面”。
(3)学生信息管理界面可对学生信息进行填写操作。
(4)学生信息管理界面底端并含有“录入、查询、修改、删除、显示”五个操作按钮。
3.2开发环境
WindowsXP;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
packageaa;
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("
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().equals(psw))){
newTest();
f.hide();
br.close();
}else{
JOptionPane.showMessageDialog(null,"该用户不存在","提示?
",JOptionPane.YES_NO_OPTION);
}
t1.setText("");
t2.setText("");
}
}
publicvoidactionPerformed(ActionEvente)
{
Stringcmd=e.getActionCommand();
if(cmd.equals("确定")){
try{
confirm();
}catch(IOExceptione1){
e1.printStackTrace();
}
}
elseif(cmd.equals("取消")){
f.dispose();
}
}
publicstaticvoidmain(String[]args){
Logina=newLogin();
}
}
6.2学生信息管理系统源码Student.java
packageaa;
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.io.*;
importjava.util.*;
publicclassStudentimplementsjava.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;}
}
classTestextendsJFrame{
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="该生信息将被录入?
";
int
ok=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=new
FileOutputStream(file);
outTwo=new
ObjectOutputStream(outOne);
学生散列表.put(number,学生);
outTwo.writeObject(学生散列表);
outTwo.close();
outOne.close();
}
catch(Exceptionee){System.out.println("输出散列表出现问题?
");}
学号.setText(null);
姓名.setText(null);
专业.s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 课程设计 学生 信息管理 系统