面向对象程序设计》课程设计报告
级:
指导教师:
2015 年 12 月 目:《********** 》课程设计
院
:
信息工程学院 名
:
号
:
业
:
计算科学与技术
目录
目录.........................................................................
摘要.........................................................................
1........................................................................ 引言
2.设计目的与任务 .......................................................
3.设计方案................................................................
3.1总体设计 .......................................................
3.2开发环境 .......................................................
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.系统说明................................................................
5.设计体会与小结 .......................................................
6.附录 .....................................................................
6.1登录界面源代码Login.java ............................................... 6.2学生信息管理系统源码Student.java ...................................
摘要
随着学校的规模不断扩大,学生数量急剧增加,有关学生的各种信息量也成倍增长。面对庞大的信息量需要有学生管理系统来提高学生管理工作的效率。通过这样的系统可以做到信息的规范管理、科学统计和快速查询、修改、增加、删除等,从而减少管理方面的工作量。目前社会上信息管理系统发展飞快, 各个企业事业单位都引入了信息管理软件来管理自己日益增长的各种信息,学生管理系统也是有了很大的发展, 商业化的学生信息管理软件也不少。
该报告中的程序是简单的学生管理系统,该系统完全独立开发, 力求使系统功能简洁明了,但功能齐全且易于操作。使用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 开发环境
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 .*;
import javax.swing.*;
import java.awt.*;
import import
import import
import
import
import
import
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. CENTE)R;
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(){
public void windowClosing(WindowEvent e){
System. exit (0);
}
}
);
}
public void confirm() throws IOException // 验证用户和密码是否存在File file = new File();
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_OPTI)O; N
}
t1 .setText( "" );
t2 .setText( "" );
}
}
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
if (cmd.equals( " 确定")){
try {
confirm();
} catch (IOException e1){
e1.printStackTrace();
}
}
else if (cmd.equals( "取消")){
f .dispose();
}
}
public static void main(String[] args){ Login a= new Login();
}
6.2学生信息管理系统源码Student.java
package aa;
import java.awt.*;
import
import javax.swing.*;
import java.io.*;
import java.util.*;
public class Student implements
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 ;}
}
class Test extends JFrame{
JLabel lb =newJLabel( " 录入请先输入记录、查询、删除请先输入学号?修改是对查询" +"内容改后的保存?");
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();