开发平台Eclipse
版本1.0
完成时间 2012.09.09
运行的基本条件
1.安装了Windows SQL 2005
2.进行了相应的设置,包括IIS的安装,可以参考网络上的资料
3.完全使用该系统,需要对数据库进行添加相应的表。如没有进行这项工作,无法使用该系统,使用过程中会报错!
下面是运行中的界面:
下面是源代码:
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;
public class hcj
{
public static Monitor mymonitor = new
Monitor();
public static JLabel welcome, usename1,
password1;
public static TextField usename2,
password2;
public static JButton enter1, close1;
public static JFrame Enterfrm;
public static void main(String[] args)
{
hcj myke = new hcj();
}
// 创建类名的构造方法
public hcj()
{
// 登陆窗体布局
Enterfrm = new
JFrame("登陆窗体");
Toolkit kit =
Toolkit.getDefaultToolkit();
Dimension screenSize =
kit.getScreenSize();
int screenWidth =
screenSize.width;
int screenHeight =
screenSize.height;
welcome = new
JLabel("欢迎进入集美大学成绩管理系统");
welcome.setFont(new Font("宋体",
Font.BOLD, 22));
usename1 = new
JLabel("用户名:");
password1 = new
JLabel("密 码:");
usename2 = new
TextField(12);
password2 = new
TextField(12);
enter1 = new
JButton("确定");
close1 = new
JButton("退出");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
JPanel p4 = new JPanel();
JPanel p5 = new JPanel();
password2.setEchoChar('*');
p4.add(usename1);
p4.add(usename2);
p4.add(enter1);
p5.add(password1);
p5.add(password2);
p5.add(close1);
p3.setLayout(new GridLayout(2,
1));
p2.add("Center",
welcome);
p3.add(p4);
p3.add(p5);
p1.add(p2);
p1.add(p3);
p1.setLayout(new GridLayout(2,
1));
Container k =
Enterfrm.getContentPane();
k.add(p1);
Enterfrm.setSize(screenWidth /
3, screenHeight / 3);
Enterfrm.setLocation(480,
200);
Enterfrm.addWindowListener(new
WindowAdapter()
{
public void
windowClosing(WindowEvent e)
{
System.exit(0);
}
});
Enterfrm.show();
enter1.addActionListener(mymonitor);
close1.addActionListener(mymonitor);
}
}
// 登陆窗口
class Monitor implements ActionListener
{
public String un1 = "gaoxiushi", pw1 =
"05";
public String un2 = "2009716040", pw2 =
"593278100";
public String un3 = "1", pw3 = "1";
public void actionPerformed(ActionEvent
e)
{
if (e.getSource() ==
hcj.enter1)
{
if
((hcj.usename2.getText().equals(un1) &&
hcj.password2.getText()
.equals(pw1))
||
(hcj.usename2.getText().equals(un2) && hcj.password2
.getText().equals(pw2))
||
(hcj.usename2.getText().equals(un3) && hcj.password2
.getText().equals(pw3)))
{
hcj.Enterfrm.setVisible(false);
mainfrm
mf = new mainfrm();
} else
{
JOptionPane.showMessageDialog(null,
"对不起您的输入有误,请重新输入!");
hcj.usename2.setText("");
hcj.password2.setText("");
}
}
if (e.getSource() ==
hcj.close1)
{
System.exit(0);
}
}
}
// 主窗体
class mainfrm implements ActionListener
{
public static JMenu TeacherMenu, StudentMenu,
MarkMenu, HelpMenu;
public static JMenuItem TMfind, TMedit, TMdelete,
SMfind, SMedit, SMdelete,
MMfind,
MMedit, MMalter, HMabout;
public static JFrame mainf;
public static JLabel room, room1;
public mainfrm()
{
mainf = new
JFrame("主窗体");
JMenuBar myMenuBar = new
JMenuBar(); // 创建菜单栏
TeacherMenu = new
JMenu("教师管理");
TMfind = new
JMenuItem("查询记录");
TMfind.addActionListener(this);
TMedit = new
JMenuItem("录入记录");
TMedit.addActionListener(this);
TMdelete = new
JMenuItem("删除记录");
TMdelete.addActionListener(this);
StudentMenu = new
JMenu("学生管理");
SMfind = new
JMenuItem("查询记录");
SMfind.addActionListener(this);
SMedit = new
JMenuItem("录入记录");
SMedit.addActionListener(this);
SMdelete = new
JMenuItem("删除记录");
SMdelete.addActionListener(this);
MarkMenu = new JMenu("
成绩管理");
MMfind = new
JMenuItem("成绩查询");
MMfind.addActionListener(this);
MMedit = new
JMenuItem("成绩录入");
MMedit.addActionListener(this);
MMalter = new
JMenuItem("修改");
MMalter.addActionListener(this);
HelpMenu = new
JMenu("帮助");
HMabout = new
JMenuItem("关于");
HMabout.addActionListener(this);
// 将菜单栏添加到主窗体的框架中
mainf.setJMenuBar(myMenuBar);
myMenuBar.add(TeacherMenu);
myMenuBar.add(StudentMenu);
myMenuBar.add(MarkMenu);
myMenuBar.add(HelpMenu);
TeacherMenu.add(TMfind);
TeacherMenu.add(TMedit);
TeacherMenu.add(TMdelete);
StudentMenu.add(SMfind);
StudentMenu.add(SMedit);
StudentMenu.add(SMdelete);
MarkMenu.add(MMedit);
MarkMenu.add(MMfind);
MarkMenu.add(MMalter);
HelpMenu.add(HMabout);
JPanel pa1 = new
JPanel();
pa1.setLayout(new GridLayout(4,
1));
JPanel pa2 = new
JPanel();
JPanel pa3 = new
JPanel();
JPanel pa4 = new
JPanel();
room = new
JLabel("集美大学学生成绩管理信息系统");
room.setFont(new Font("宋体",
Font.BOLD, 35));
// 获得框架的内容层板
mainf.getContentPane().add(pa1,
BorderLayout.NORTH);
room1 = new
JLabel("JMU 版权所有 All Right
Reversed");
room1.setFont(new Font("宋体",
Font.BOLD, 20));
// 获得框架的内容层板
mainf.getContentPane().add(pa4,
BorderLayout.SOUTH);
pa1.add(pa3);
pa1.add(pa2);
pa1.add(pa4);
pa2.add(room);
pa4.add(room1);
mainf.setSize(700, 500);
mainf.setLocation(400,
80);
mainf.setResizable(false);
mainf.addWindowListener(new
WindowAdapter()
{
public void
windowClosing(WindowEvent e)
{
System.exit(0);
}
});
mainf.show();
}
public void actionPerformed(ActionEvent
e)
{
if ((e.getSource() ==
mainfrm.TMfind)
||
(e.getSource() == mainfrm.TMedit)
||
(e.getSource() == mainfrm.TMdelete))
{
teafrm1 tf1 =
new teafrm1();
}
if ((e.getSource() ==
mainfrm.SMfind)
||
(e.getSource() == mainfrm.SMdelete))
{
stufrm1 sf1 =
new stufrm1();
}
if (e.getSource() ==
mainfrm.SMedit)
{
stufrm2 sf2 =
new stufrm2();
}
if (e.getSource() ==
mainfrm.MMfind)
{
markfrm1 mf1
= new markfrm1();
}
if ((e.getSource() ==
mainfrm.MMalter)
||
(e.getSource() == mainfrm.MMedit))
{
markfrm2 mf2
= new markfrm2();
}
if (e.getSource() ==
mainfrm.HMabout)
{
AboutFrm af1
= new AboutFrm();
}
}
}
// 实现关于窗体类
class AboutFrm implements ActionListener
{
static JFrame aboutfrm = new JFrame("关于");
public AboutFrm()
{
JLabel j1 = new
JLabel(" 集美大学学生成绩管理系统");
JTextArea ta1 = new
JTextArea("设计者:胡成健");
ta1.setEnabled(false);
JTextArea ta2 = new
JTextArea("院系:集美大学机械工程学院");
ta2.setEnabled(false);
JTextArea ta3 = new
JTextArea("版权所有 Copyright(C) 2012");
ta3.setEnabled(false);
JButton mbtn = new
JButton("谢谢");
JPanel mp = new JPanel();
JPanel mp2 = new
JPanel();
aboutfrm.getContentPane().setLayout(new
BorderLayout());
mp.setLayout(new GridLayout(4,
1));
mp.add(j1);
mp.add(ta1);
mp.add(ta2);
mp.add(ta3);
mp2.add(mbtn);
Container c =
aboutfrm.getContentPane();
c.add(mp, "North");
c.add(mp2, "South");
mbtn.addActionListener(this);
aboutfrm.setSize(220,
150);
aboutfrm.setLocation(500,
250);
//
aboutfrm.setTitle("记事本");
aboutfrm.setResizable(false);
aboutfrm.show();
}
public void actionPerformed(ActionEvent
e)
{
AboutFrm.aboutfrm.dispose();
}
}
// 查询、录入、删除教师记录窗体
class teafrm1 implements ActionListener
{ // throws IOException
String id, name, sex, department, phone;
Connection conn;
ResultSet rs;
Statement st;
public static JFrame teaf;
public JPanel p1, p2, p3, p4, p5, p6, p7,
p8;
public JLabel NumL, nameL, sexL, departmentL,
phoneL;
public JTextField tf, Num, nameT, sexT,
departmentT, phoneT;
public JButton search, closeT, delete,
insert;
public teafrm1()
{
// 窗体布局
teaf = new
JFrame("查询、录入、删除教师记录");
teaf.setSize(360, 360);
teaf.setResizable(false);
id = new String();
name = new String();
sex = new String();
department = new
String();
phone = new String();
NumL = new
JLabel("教师号:");
nameL = new JLabel("姓
名:");
sexL = new JLabel("性
别:");
departmentL = new JLabel("部
门:");
phoneL = new JLabel("电
话:");
tf = new JTextField(16);
Num = new JTextField(20);
nameT = new
JTextField(20);
sexT = new
JTextField(20);
departmentT = new
JTextField(20);
phoneT = new
JTextField(20);
p1 = new JPanel();
p2 = new JPanel();
p3 = new JPanel();
p4 = new JPanel();
p5 = new JPanel();
p6 = new JPanel();
p7 = new JPanel();
p8 = new JPanel();
delete = new
JButton("删除");
search = new
JButton("查找");
insert = new
JButton("录入");
closeT = new
JButton("退出");
closeT.addActionListener(this);
p2.add(search);
p2.add(tf);
p3.add(NumL);
p3.add(Num);
p4.add(nameL);
p4.add(nameT);
p5.add(sexL);
p5.add(sexT);
p6.add(departmentL);
p6.add(departmentT);
p7.add(phoneL);
p7.add(phoneT);
p8.add(insert);
p8.add(delete);
p8.add(closeT);
p1.setLayout(new GridLayout(7,
1));
p1.add(p2);
p1.add(p3);
p1.add(p4);
p1.add(p5);
p1.add(p6);
p1.add(p7);
p1.add(p8);
Container c =
teaf.getContentPane();
c.add(p1);
teaf.addWindowListener(new
WindowAdapter()
{
public void
windowClosing(WindowEvent e)
{
teafrm1.teaf.dispose();
}
});
teaf.setLocation(200,
200);
teaf.show();
search.addActionListener(this);
delete.addActionListener(this);
insert.addActionListener(this);
conDB();
}
// 以下是连接数据库
public void conDB()
{
try
{
//
加载数据库驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
} catch (ClassNotFoundException
e)
{
JOptionPane.showMessageDialog(null,
"数据库加载失败!");
}
try
{
//
连接数据库
conn =
DriverManager.getConnection("jdbc:odbc:odbctest");
st =
conn.createStatement();
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null,
"数据库连接失败!");
}
}
// 以下是关闭数据库
public void closeDB()
{
try
{
conn.close();
}
catch (SQLException e)
{
JOptionPane.showMessageDialog(null,
"数据库关闭失败!");
}
}
// 以下是针对数据库的各种操作
public void actionPerformed(ActionEvent e)
{
// 以下执行查询教师记录操作
if (e.getSource() ==
search)
{
try
{
String
id = tf.getText();
String
strSQL = "select teanum,teaname,sex,department,phone"
+
" from teacher where teanum= '" + id + "' ";
ResultSet
rs = st.executeQuery(strSQL);
int
count = 0;
while
(rs.next())
{
id
= rs.getString("teanum");
name
= rs.getString("teaname");
sex
= rs.getString("sex");
department
= rs.getString("department");
phone
= rs.getString("phone");
++count;
}
if
(count == 0)
JOptionPane.showMessageDialog(null,
"对不起,没有您要查找的教师!");
else
{
Num.setText(id);
nameT.setText(name);
sexT.setText(sex);
departmentT.setText(department);
phoneT.setText(phone);
}
} catch
(SQLException ex)
{
Num.setText(ex.getMessage());
nameT.setText(ex.getMessage());
sexT.setText(ex.getMessage());
departmentT.setText(ex.getMessage());
phoneT.setText(ex.getMessage());
}
}
// 删除教师记录操作
if (e.getSource() ==
delete)
{
String id =
tf.getText();
String strSQL
= "delete from teacher where teanum = '" + id + "'";
try
{
st.executeUpdate(strSQL);
}
catch
(Exception exx)
{
JOptionPane.showMessageDialog(null,
"教务系统出错,删除失败!");
return;
}
JOptionPane.showMessageDialog(null,
"删除成功!");
tf.setText("");
Num.setText("");
nameT.setText("");
sexT.setText("");
departmentT.setText("");
phoneT.setText("");
}
// 录入教师记录操作
if (e.getSource() ==
insert)
{
if
((Num.getText().trim()).equals("")
||
(nameT.getText().trim()).equals("")
||
(sexT.getText().trim()).equals("")
||
(departmentT.getText().trim()).equals("")