Java语言是目前IT行业应用最多,也是最主流的开发语言之一(另一主流是.NET),其应用前景很广。Java语言本身主要用于开发桌面应用程序。与此相对应,JSP、Servlet和JavaBean等是基于Java语言开发Web应用程序的技术。本课程设计的任务就是使用Java或JSP、Servlet和JavaBean等组件开发一套桌面或Web应用程序。
我们准备开发一个全国大学生信息管理系统。系统功能包括如下:
添加学生信息
查看学生信息
修改学生信息
删除学生信息
相关技术简介:我们采用java编程技术,用到了数据库,图形化设计等。
市场需求:主要解决一个管理学生信息的问题,学生学号,班级,成绩之类的问题,旨在为各大高校提供一个开源、自由、免费的简单管理软件。这个问题要求我们提供一个管理学生信息安全的平台,避免学生信息的缺漏。人性化的图形管理界面,加上优美的背景音乐和可爱的开场动画,让管理者可以更加愉悦得对学生信息进行管理。
3.
编程环境:
JDK(Java
Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java
Runtime
Envirnment),一些Java工具和Java的核心类库(Java
API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。采用Eclipse工具,一个开放源代码的、基于Java的可扩展开发平台。
程序模块流程:
4.
详细设计
类设计:
SplashWindow
开始动画
LogIn
登陆界面,输入用户名,密码等
MySound
背景音乐播放
Student
主界面各种功能
QueryStudent
学生搜索
StudentIn
录入学生
DeleteStudent
学生删除
StudentInformationBrower
学生概览
UpdatePassword
修改密码
数据库设计:
学生名
|
学号
|
Java
|
数据结构
|
概率统计
|
入学时间
|
龙傲天
|
20151
|
59
|
34
|
47
|
2015
|
余笑
|
201419
|
38
|
24
|
36
|
2014
|
李四
|
201625
|
20
|
69
|
89
|
2016
|
金大牙
|
201513
|
75
|
89
|
96
|
2015
|
郑官圣
|
200615
|
59
|
89
|
79
|
2006
|
鲁方伟
|
20151346081
|
60
|
60
|
80
|
2015
|
详细代码:
//“删除学生信息”功能类代码
class
DeleteStudent
implements
ActionListener
{
JFrame f;
Container cp;
JPanel jpS,jpanelWest;
JButton
jbt1,jbt2,jbt3;//按钮,查询、取消、修改
JLabel label,L;
//标签:请输入学号
JTextField tf;
//定义文本框
JTable table;//用来接收数据库中返回的信息
Object columnName[]={"学生名","学号","Java","数据结构","概率统计","入学时间"};
Object ar[][] =new Object[80][6];
String sno;
//String count="xx";
DeleteStudent()
{
f=new
JFrame();
cp=f.getContentPane(); // 初始化面板、按钮、标签、文本框
jpS=new JPanel();
jpanelWest=new JPanel();
jbt1=new JButton("查询");
jbt2=new JButton("取消");
jbt3=new JButton("删除");
label=new JLabel("请输入要删除的学生名:",SwingConstants.CENTER);
label.setForeground(Color.blue);
table=new JTable(ar,columnName);//ar存放表中的数据,columnname表示列名
JScrollPane scrollpane = new JScrollPane(table);
tf=new JTextField(18);
jpS.add(jbt1);
jpS.add(jbt2);
jpS.add(jbt3);
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpE=new JPanel();
cp.add(jpanel,"North");
JPanel jp=new JPanel();
JPanel p=new JPanel();//用来放两个表
p.setLayout(new BorderLayout());
p.add(scrollpane);
cp.add(pp4,"West");
cp.add(p,"Center");
cp.add(jpS,"South");
cp.add(jpE,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f.setSize(400,330);
f.setLocation((screen.width-350)/2,(screen.height-350)/2);
f.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
jbt3.addActionListener(this);
}
int
i=0;
public void
showRecord(String ql)
{
while(i>=0)
{
ar[i][0]="";
ar[i][1]="";
ar[i][2]="";
ar[i][3]="";
ar[i][4]="";
ar[i][5]="";
i--;
}
i=0;
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement
sql;
String
s="select * from 表book
where 学生名='"+ql +"'";
sql=con.createStatement();
ResultSet
rs=sql.executeQuery(s);
while(rs.next())
{
String bname=rs.getString(1);
String bno=rs.getString(2);
String price=rs.getString(3);
String writer=rs.getString(4);
String publish=rs.getString(5);
String indate=rs.getString(6);
ar[i][0]=bname;
ar[i][1]=bno;
ar[i][2]=price;
ar[i][3]=writer;
ar[i][4]=publish;
ar[i][5]=indate;
i++;
}
f.repaint();
con.close();System.out.println(ar[0][1]);
}catch(SQLException g)
{
System.out.println("E
Code"+g.getErrorCode());
System.out.println("E
M"+g.getMessage());
}}
public void
deleteRecord(int index)
{
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String ql=(String)(ar[index][1]);
String s="delete from 表book
where 学号 ='"+ql +"'";
sql=con.createStatement();
int
del=sql.executeUpdate(s);
if(del==1)
{JOptionPane.showMessageDialog(null,"删除成功!",
"信息",
JOptionPane.YES_NO_OPTION);
}
con.close();
f.repaint();
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void actionPerformed(ActionEvent
e)
{
String remember="";
String ql="";
String
cmd=e.getActionCommand();
if(cmd.equals("查询"))
{
ql=tf.getText().trim();
remember=ql;
showRecord(ql);
}
if(cmd.equals("删除"))
{
int
index=table.getSelectedRow();
if(
index==-1)
JOptionPane.showMessageDialog(null,"请选定要删除的表格行",
"输入错误",
JOptionPane.YES_NO_OPTION);
else{
deleteRecord(index);
}
}
if(cmd.equals("取消"))
f. dispose();
}
public
static void main(String []arg){
DeleteStudent a=new DeleteStudent();
}}
package
大学生信息管理系统;
class
QueryStudent implements ActionListener
{
JFrame f3=new JFrame();
Container cp=new JPanel();
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JPanel jp=new JPanel();
JPanel jpanelWest=new JPanel();;
JButton
jbt1=new JButton("确定");
JButton jbt2=new JButton("取消");//按钮,确定、取消
JLabel label;
//标签:请输入图书号
JTextField tf,tf1,tf2,tf3,tf4,tf5,tf6;
//定义文本框
JLabel label1,label2,label3,label4;
QueryStudent()
{
cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框
label=new JLabel("请输入学生学号:",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf=new JTextField(20);
tf1=new JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
JPanel jpanel=new JPanel();
jpanel.add(label);
jpanel.add(tf);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("学生名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(new JLabel("学号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(new JLabel(";
pp2.add(tf3);
pp4.add(new JLabel("数据结构",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(new JLabel("概率统计",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(new JLabel("入学时间",SwingConstants.CENTER));
pp2.add(tf6);
pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(pp3,"South");
cp.add(jpane4,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f3.setSize(350,330);
f3.setLocation((screen.width-350)/2,(screen.height-350)/2);
f3.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
}
public
void showRecord()
{
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection con =
DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String ql=tf2.getText().trim();
String s="select * from 表book
where 学号 ='"+ql +"'";
sql=con.createStatement();
ResultSet
rs=sql.executeQuery(s);
if(rs.next())
{
String sname=rs.getString(1);
String sno=rs.getString(2);
String ;
String DataStructure=rs.getString(4);
String Statistics=rs.getString(5);
String time=rs.getString(6);
tf1.setText(sname);
tf2.setText(sno);
tf3.setText(;
tf4.setText(DataStructure);
tf5.setText(Statistics);
tf6.setText(time);
}
else
{JOptionPane.showMessageDialog(null,"您输入的学号不存在,请重新输入",
"输入错误",
JOptionPane.YES_NO_OPTION);
}
con.close();
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
tf1.setEditable(false);
tf2.setEditable(false);
tf3.setEditable(false);
tf4.setEditable(false);
tf5.setEditable(false);
tf6.setEditable(false);
}
public
void actionPerformed(ActionEvent e)
{
String
cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
showRecord();
tf.setText("");
}
else
if(cmd.equals("取消"))
f3.dispose();
}
public
static void main(String []arg){
QueryStudent a=new QueryStudent();
}}
package
大学生信息管理系统;
import
java.awt.event.*;
import
javax.swing.*;
import
java.awt.*;
import
java.util.*;
import
java.sql.*;
import
javax.swing.text.JTextComponent;
class
StudentIn
implements
ActionListener
{
JFrame f3=new JFrame();
Container cp;
JPanel jp1=new JPanel();
JPanel jp2=new JPanel();
JPanel jp3=new JPanel();
JPanel jp4=new JPanel();
JPanel jp=new JPanel();
JPanel jpanelWest=new JPanel();
JButton
jbt1,jbt2;//按钮:确定、取消、
JLabel label;
//标签
JTextField tf1,tf2,tf3,tf4,tf5,tf6;
//定义文本框
JLabel label1,label2,label3,label4;
String sno;
StudentIn()
{
cp=f3.getContentPane(); // 初始化面板、按钮、标签、文本框
jbt1=new JButton("确定");
jbt2=new JButton("取消");
label=new JLabel("录入学生",SwingConstants.CENTER);
label.setForeground(Color.blue);
tf1=new
JTextField(20);
tf2=new JTextField(20);
tf3=new JTextField(20);
tf4=new JTextField(20);
tf5=new JTextField(20);
tf6=new JTextField(20);
jp1.add(jbt1);
jp1.add(jbt2);
sno=tf4.getText();
jp1.add(new JLabel("您好"+sno+"欢迎登陆学生信息系统"));
JPanel jpanel=new JPanel();
jpanel.add(label);
JPanel pp4=new JPanel();
JPanel jpane4=new JPanel();
cp.add(jpanel,"North");
JPanel pp2=new JPanel(new GridLayout(6,1));
JPanel pp3=new JPanel();
pp4.setLayout(new GridLayout(6,1));
pp4.add(new JLabel("学生名",SwingConstants.CENTER));
pp2.add(tf1);
pp4.add(new JLabel("学号",SwingConstants.CENTER));
pp2.add(tf2);
pp4.add(new JLabel(";
pp2.add(tf3);
pp4.add(new JLabel("数据结构",SwingConstants.CENTER));
pp2.add(tf4);
pp4.add(new JLabel("概率统计",SwingConstants.CENTER));
pp2.add(tf5);
pp4.add(new JLabel("入学时间",SwingConstants.CENTER));
pp2.add(tf6);
pp3.add(jbt1);
pp3.add(jbt2);
cp.add(pp4,"West");
cp.add(pp2,"Center");
cp.add(pp3,"South");
cp.add(jpane4,"East");
Dimension
screen=Toolkit.getDefaultToolkit().getScreenSize();
f3.setSize(350,330);
f3.setLocation((screen.width-350)/2,(screen.height-350)/2);
f3.setVisible(true);
jbt1.addActionListener(this);//注册监听器
jbt2.addActionListener(this);
}
public void
insertRecord()
{
if(tf1.getText().equals("")||tf2.getText().equals("")||tf3.getText().equals("")||
tf4.getText().equals("")||tf5.getText().equals("")||tf6.getText().equals(""))
{
JOptionPane.showMessageDialog(f3,"请填写学生资料");
return;
}
try{
Class.forName("com.hxtt.sql.access.AccessDriver");
}catch(ClassNotFoundException
e){System.out.println("加载驱动程序失败!");}
try{
Connection
con=DriverManager.getConnection("jdbc:Access:/D:/Student.mdb");
Statement sql;
String s="insert into 表book
values('"+tf1.getText()+"','"+tf2.getText()+"','"+
tf3.getText()+"','"+tf4.getText()+"','"+tf5.getText()+"','"+tf6.getText()+"');";
String query="select * from 表book
where 学号='"+tf2.getText()+"'";
sql=con.createStatement();
ResultSet rs=sql.executeQuery(query);//返回查询结果集
boolean moreRecords=rs.next();//判断结果集是否有数据
if(moreRecords)
{
JOptionPane.showMessageDialog(f3,"学号已经被使用,请重新输入");
con.close();
tf2.setText("");
return;
}
int insert=sql.executeUpdate(s);
if(insert==1)
{
JOptionPane.showMessageDialog(null,"学生信息录入成功!");
tf1.setText("");
tf2.setText("");
tf3.setText("");
tf4.setText("");
tf5.setText("");
tf6.setText("");
}
}catch(SQLException g)
{
System.out.println("E Code"+g.getErrorCode());
System.out.println("E M"+g.getMessage());
}
}
public void
actionPerformed(ActionEvent e)
{
String
cmd=e.getActionCommand();
if(cmd.equals("确定"))
{
insertRecord();
}
else
if(cmd.equals("取消"))
f3. dispose();
}
public static void
main(String []arg){
StudentIn a=new StudentIn();
}
}