Java程序设计课程设计
word 专业资料
课程名称课程编号学号 学生姓名所在专业所在班级指导教师成绩 教师签字
Java程序设计课程设计
.
目 录
设计总说明 --------------------------------------------------------------II 1. 课程设计目的与需求分析 ------------------------------------------------3 1.1 课程设计目的 ------------------------------------------------------3 1.2 需求分析 ----------------------------------------------------------3 2. 设计思路与主功能设计 --------------------------------------------------4 2.1 设计思路 ----------------------------------------------------------4 2.1.1 开发环境和软件 ------------------------------------------------4
2.1.2 数据库表结构 --------------------------------------------------4 2.1.3 程序设计图 ----------------------------------------------------4 2.2 功能设计与介绍 ----------------------------------------------------5 3. 具体功能的介绍和数据测试 ----------------------------------------------5 3.1 登录界面 ----------------------------------------------------------5 3.2 主功能界面 --------------------------------------------------------7 3.2.1 查询 ----------------------------------------------------------7 3.2.2 添加 ----------------------------------------------------------9 3.2.3 修改 ---------------------------------------------------------10 3.2.4 删除 ---------------------------------------------------------12 3.2.5 关于 ---------------------------------------------------------13 3.2.6 退出 ---------------------------------------------------------13 4. 课程设计总结 ---------------------------------------------------------14 5. 附录(程度代码) -------------------------------------------------------15
word 专业资料
.
设计总说明
1. 设计概况
名称:学生学籍管理系统 用途:学校等机构
功能:实现对学生学籍信息的管理与维护等功能
2. 设计说明
学生学籍管理系统,可用于学校等机构的学生信息管理,查询,更新与维护,使用方便,易用性强,图形界面清晰明了。该软件用java语言编写,用SQLServer2005数据库作为后台的数据库进行信息的存储,用SQL语句完成添加,查询,修改,删除的操作。用ODBC驱动实现前台Java与后台SQL数据库的连接。Java语言跨平台性强,可以在windows,linux,ubuntu等系统下使用,方便简单,安全性好。SQLServer2005数据库高效安全,两者结合可相互利用各自的优势。系统可供输入的属性有“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。 该系统实现的大致功能:
1.管理员登陆界面。该界面可以输入管理员号,登陆密码。用户通过验证通过后方可进入管理系统。一定程度上保证了信息安全性,防止他人未经允许篡改学生信息。
word 专业资料
.
2.查询学生信息。可以选择由用户选择“显示系统中当前的所有学生信息”。也可以选择按照“某一个学号查询该学号的学生信息”。查询到的信息会在窗口中依次显示出来。
3.添加学生信息。可以按照图形的界面的显示依次输入新学生的“学号”,“姓名”,“性别”,“班级”,“学院”,“籍贯”。完成新纪录的添加。
4.修改学生信息。可以选择按照“学号”或者“姓名”找到该学生的学生信息并输入要修改的属性,并输入新的数据。完成对学生记录的修改。
5.删除学生记录。可以根据输入的“学号”或者”姓名”进行删除的操作。
3.本系统只实现了基本操作功能,,对于添加管理员,修改登录密码和数据库信息备份等功能并未提供,便利性和安全性仍有不足,使用过程中造成的不便还请谅解!
word 专业资料
.
学生学籍管理系统
信管1081班,200811622124,吴晓阳
信管1081班,200811622104,秀丽
指导教师:亮
1 课程设计目的与需求分析
1.1 课程设计目的
本课程设计作为《Java语言高级程序设计》课程的延伸,在学生完成了《Java语言高级程序设计》课程的理论知识学习后,希望通过本次课程设计的实践操作,能够让学生懂得Java的各种相关知识的使用,真正的提高学生独立开发设计Java程序,把课堂上的知识运用在实践上,一门编程语言只有在不断实践操作和练习上才会有进步。
1.2需求分析
在一些学校等机构,随着学生数量的不断增加,学生的信息不断增多,人工管理信息的难度也越来越大。而且效率也是很低的。所以如何自动高效地管理信息是这些年来许多人所研究的。
随着这些年电脑计算机的速度质的提高,成本的下降,IT互联网大众趋势的发展。我们使用电脑的高效率才处理数据信息成为可能。 学生学籍管理系统的出现,正是管
word 专业资料
.
理人员与信息数据,计算机的进入互动时代的体现。友好的人机交互模式,清晰简明的图形界面,高效安全的操作使得我们对成千上万的信息的管理得心应手。
学生学籍管理系统,以SQL数据库作为后台信息存储,Java作为前台系统的语言。提供了对学生信息添加,查询,修改,删除的功能。实现了最基本的信息管理。
2 设计思路与主功能设计
2.1 设计思路
2.1.1 开发环境和软件
本学籍采用Java语言编写前台程序,后台采用SQL Server2005软件管理数据库,
调试和运行皆由Eclipse SDK 3.5.2完成。
word 专业资料
.
2.1.2 SQL数据库表结构
2.1.3 程序设计图
查询 登录 添加 登录验证 成功 修改 学生学籍 管理系统 word 专业资料 退出 删除 .
2.2 功能设计与介绍
1) 显示已有学生信息 2) 添加新的学生信息 3) 修改已有学生信息 4) 删除已有学生信息 5) 关于学籍管理系统 6) 退出学籍管理系统
3 具体功能的介绍和数据测试
3.1 登录界面
word 专业资料
.
登录界面输入“管理员号”和“登录密码”,点击“确定”,通过验证则进入主功能菜单。如果输入错误则会有相应的警告!
1.当输入了一个未存在的管理员号时,会出现下图!
word 专业资料
.
2.当输入一个错误的密码时,会出现下图!
word 专业资料
.
当前系统有两个管理员账号:
word 专业资料
200811622124 200811622104 123456 123456
管理员号:密码:管理员号:密码: .
3.2 主功能界面
word 专业资料
.
3.2.1 查询
点击
word 专业资料
则弹出下面的选择菜单。,
.
1) 选择“显示所有学生记录”时,在控制台会显示当前系统中所有的学生记录
word 专业资料
.
2) 选择“查询某个学生记录”时,会弹出一下窗口要求用户输入“学号”。
当系统中有要查询的学号记录时,系统会显示查询到的详细信息。
word 专业资料
.
如果没有查询到,则显示:
3.2.2 添加
点击
word 专业资料
,会弹出输入框,如下图:
.
在各个数据框中输入对应的信息(学号不能为空,且学号不能与已存在的记录重复),
如果输入的新纪录的学号已经存在则:
word 专业资料
.
如果添加的新纪录学号为空,则
如果输入的各项数据正常时,则点击“添加”按钮后,
学生记录添加成功!!!
word 专业资料
.
3.2.3 修改
点击 选择菜单。
1)选择按“学号”修改:
word 专业资料
,进行“修改”的操作,弹出下面的
.
将相应的数据填入输入框中,如果修改的记录不存在,则提示:
word 专业资料
.
如果数据正确且记录存在,则显示记录修改成功:
2) 按“姓名”修改,同上…….
word 专业资料
.
3.2.4 删除
点击
,会显示下面的菜单。
1)
选择按“学号”删除,出现以下窗口。
word 专业资料
.
在弹出的窗口输入你要删除的记录的学号。
如果要删除的记录不存在,则显示
如果输入的的学号存在,则删除成功。
word 专业资料
.
3.2.5 关于
点击
,显示本学生管理系统的作者相关信息。
3.2.6 退出
点击 ,退出本学籍管理系统。
word 专业资料
.
4 课程设计总结
课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程. 本次课程设计虽然很辛苦,实在是受益匪浅。本来这门课的知识学的就不够扎实,本次课程设计,在设计过程中碰到了很多问题,刚开始要设计的时候,还真不知道从哪里下手但最终在图书、同学和老师的帮助下都得到了解决,让我学会了好多书本上没有的东西,通过本次课程设计我也能将课本上的知识融会贯通,起到了很好的辅助学习的效果,但是我发现我学到的知识比整整一个学期学到的都多。理论和实践的相结合是学习最有效的方法。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计之后,一定把以前所学过的知识重新温故。
通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。
word 专业资料
.
附 录(程序代码)
import javax.swing.*; import java.awt.BorderLayout; import java.awt.Container; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.sql.*;
class DataBase{ // DataBase类
public void Add(String xh,String xm,String xb,String xy,String bj,String jg) throws SQLException {
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
Connection c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统where 学号='\"+xh+\"'\");
word 专业资料
.
r.last();
if(r.getRow()==1) { JOptionPane.showMessageDialog( null ,\"该学号的学生信息已存在\");} else
if(xh.equals(\"\")){
JOptionPane.showMessageDialog( null ,\"学号不能为空\");}
else{ s.executeUpdate(\" insert into 学籍管理系统 values
('\"+xh+\"','\"+xm+\"','\"+xb+\"','\"+ xy+\"','\"+bj+\"','\"+jg+\"')\");
s.close(); c.close();
JOptionPane.showMessageDialog( null ,\"\"+\"学号:\"+xh+\"
\"
+\"姓名:\"+xm+\"
\"
+\"性别:\"+xb+\"
\" +\"学院:\"+xy+\"
\" +\"班级:\"+bj+\"
\"
+\"籍贯:\"+jg+\"
学生记录添加成功!\" ) ; }
}
catch(Exception e)
{JOptionPane.showMessageDialog( null , \"数据添加异常!\" ) ;} }
Public void DisplayAll(ResultSet r){
word 专业资料
.
try{
r.last();
System.out.println(\"数据库表共有\"+r.getRow()+\"行记录\");
r.beforeFirst();
while(r.next()) {
System.out.print(\"第\"+r.getRow()+\"行记录:\"); System.out.print(\" 学号为:\"+r.getString(\"学号\")); System.out.print(\" 姓名为:\"+r.getString(\"姓名\")); System.out.print(\" 性别为:\"+r.getString(\"性别\")); System.out.print(\" 学院为:\"+r.getString(\"学院\")); System.out.print(\" 班级为:\"+r.getString(\"班级\")); System.out.println(\" 籍贯为:\"+r.getString(\"籍贯\"));
}
}
catch(Exception e) { }
}
public void DisplayOne(String str22) throws Exception { try {
word 专业资料
.
Connection c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统 where
学号='\"+str22+\"'\");
r.last();
int cc=r.getRow();
if(cc==0)
{ JOptionPane.showMessageDialog( null ,\"未查询到相关信息!\" ) ; } else{r.beforeFirst();
while(r.nex
{JOptionPane.showMessageDialog( null ,\"\"+\"学号:\"+r.getString (\"学号\")+\"
\"
+\"姓名:\"+r.getString(\"姓名\")+\"
\" +\"性别:\"+r.getString(\"性别\")+\"
\" +\"学院:\"+r.getString(\"学院\")+\"
\" +\"班级:\"+r.getString(\"班级\")+\"
\"
+\"籍贯:\"+r.getString(\"籍贯\")+\"
已查询到相关记录!\" ) ;
}
} }
catch(Exception e)
word 专业资料
.
{} }
public void DeleteXh(String str11) {
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
Connection
c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统
where 学号='\"+str11+\"'\");
r.last();
if(r.getRow()==1){
s.executeUpdate(\"delete from 学籍管理系统 where 学号='\"+str11+\"'\");
JOptionPane.showMessageDialog( null , \"学生记录删除成功!\" ) ;
}
else { JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ); } }
catch(Exception e)
word 专业资料
.
{ } }
public void DeleteXm(String str13) {
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
Connection c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement( ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统 where
姓名='\"+str13+\"'\");
r.last();
if(r.getRow()==1)
{s.executeUpdate(\"delete from 学籍管理系统 where 姓名='\"+str13+\"'\");
JOptionPane.showMessageDialog( null , \"学生记录删除成功!\" ) ;}
else{ JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ) ; } }
word 专业资料
.
catch(Exception e) }
public void UpdateXh(String xg,String str15,String str16)
{
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
{}
Connection c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统
where 学号='\"+xg+\"'\");
r.last();
if(r.getRow()==1)
{ s.executeUpdate(\"update 学籍管理系统 set \"+str15+\"='\"+str16+\"'
where 学号='\"+xg+\"'\");
JOptionPane.showMessageDialog( null , \"学生记录修改成功!\" ) ; }
else{
JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ) ;
};
word 专业资料
.
}
catch(Exception e) {
JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ) ;
} }
public
void {
try {
Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
UpdateXm(String
str18,String
str19,String
str20)
Connection c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统
where 姓名='\"+str18+\"'\");
r.last();
if(r.getRow()==1)
{ s.executeUpdate(\"update 学籍管理系统 set
\"+str19+\"='\"+str20+\"' where 姓名='\"+str18+\"'\"); //直接执行SQL语句修改
JOptionPane.showMessageDialog( null , \"学生记录修改成功!\" ) ;
}
word 专业资料
.
else{
JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ) ;
}; }
catch(Exception e)
{ JOptionPane.showMessageDialog( null ,\"学籍系统中并无相关记录!\" ) ; } } }
class J_ActionListener1 extends JFrame implements ActionListener //创建J_ActionListener1类监听功能选项面板\"显示已有学生信息\"的按钮
{
public void actionPerformed(ActionEvent e) { JButton b1=(JButton)e.getSource();
Object aa= JOptionPane.showInputDialog(null, \"请选择按何种方式查询\选择\显示所有学生记录\
\"查询某个学生记录\显示所有学生记录\"); if(aa==\"显示所有学生记录\"){
try { Connection c =
DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
ResultSet r=s.executeQuery(\"select * from 学籍管理系统\");
word 专业资料
.
DataBase a =new DataBase(); a. DisplayAll(r);} catch (SQLException e1) { }
}
try{
else{
Connection c= DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement(
ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
DataBase a=new DataBase();
String str11=JOptionPane.showInputDialog(\"请输入要查询的记录的学号\");
a.DisplayOne(str11);
}
catch (Exception e1) { }
}
}
}
class J_ActionListener2 extends JFrame implements ActionListener
{
Public void actionPerformed(ActionEvent e) { JButton b2=(JButton)e.getSource();
try {
word 专业资料
.
new J_ActionListener6(); }
catch (Exception e2) { } } }
Class J_ActionListener6 extends J_ActionListener2 implements ActionListener{
DataBase a = new DataBase(); JTextField jtf1 = new JTextField(); JTextField jtf2 = new JTextField() ; JTextField jtf3 = new JTextField() ; JTextField jtf4 = new JTextField() ;
JTextField jtf5 = new JTextField() ; JTextField jtf6 = new JTextField() ; JButton btn = null ;
J_ActionListener6(){
this.setTitle(\"请输入数据:\") ; //创建框架的标题
this.setBounds(250, 100, 220,320) ; //框架的大小和坐标 this.setResizable(false);
this.setVisible(true);
this.setLayout(null) ;
JLabel jlb1 = new JLabel(\"学号:\") ; //创建\"学号\"的标签 jlb1.setBounds(43,23,100,25) ;
word 专业资料
.
this.add(jlb1) ; JLabel jlb2 = new JLabel(\"姓名:\") ;
jlb2.setBounds(43,58,100,25) ; this.add(jlb2) ;
JLabel jlb3 = new JLabel(\"性别:\") ; jlb3.setBounds(43,93,100,25) ; this.add(jlb3) ;
JLabel jlb4 = new JLabel(\"学院:\") ; jlb4.setBounds(43,128,100,25) ; this.add(jlb4) ;
JLabel jlb5 = new JLabel(\"班级:\") ; jlb5.setBounds(43,163,100,25) ; this.add(jlb5) ;
JLabel jlb6 = new JLabel(\"籍贯:\") ; jlb6.setBounds(43,198,100,25) ; this.add(jlb6) ;
jtf1.setBounds(80,25,100,25) ; this.add(jtf1) ;
jtf2.setBounds(80,60,100,25) ; this.add(jtf2) ;
jtf3.setBounds(80,95,100,25) ; this.add(jtf3) ;
word 专业资料
.
jtf4.setBounds(80,130,100,25) ; this.add(jtf4) ;
jtf5.setBounds(80,165,100,25) ; this.add(jtf5) ;
jtf6.setBounds(80,200,100,25) ; this.add(jtf6) ;
btn = new JButton(\"添加\") ;
btn.setBounds(68,245,80,30) ; //设置按钮的大小和位置
this.add(btn) ; //将按钮添加进面板里
btn.addActionListener(this) ;
((JComponent) this.getContentPane()).setOpaque(false); java.net.URL url = JavaSql.class.getResource(\"背景1.jpg\");
ImageIcon img = new ImageIcon(url);
JLabel background = new JLabel(img); this.getLayeredPane().add(background,
new Integer(Integer.MIN_VALUE)); }
public void actionPerformed(ActionEvent e) { JButton btn=(JButton)e.getSource();
String xh = jtf1.getText() ;
background.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
String xm = jtf2.getText() ;
word 专业资料
.
String xb = jtf3.getText() ; String xy = jtf4.getText() ; String bj = jtf5.getText() ; String jg = jtf6.getText() ; try {
a.Add(xh,xm,xb,xy,bj,jg);
}
this.setVisible(false);
catch (SQLException e1) { } }
}
class J_ActionListener3 extends JFrame implements ActionListener //创建J_ActionListener3监听功能面板”修改已有学生信息“的按钮
{ final DataBase a=new DataBase();
JFrame xiugai=new JFrame(); String b=null;
public void jiemian(){ //在
J_ActionListener3类里添加jiemian()方法,创建按学号修改数据的界面
this.setTitle(\"请输入数据:\") ;
this.setSize(230,320) ; this.setLocation(200,130);
word 专业资料
.
this.setResizable(false); this.setVisible(true);
JLabel jlb1 = new JLabel(\"请输入要修改的学生的\"+b) ;
//设置3个标签
JLabel jlb2 = new JLabel(\"请输入要修改的属性\") ; JLabel jlb3 = new JLabel(\"请输入新的数据\") ; final
JTextField
jtf1
=
new
JTextField()
;
//设置三个文本框
final JTextField jtf2 = new JTextField() ; final JTextField jtf3 = new JTextField() ;
JButton xg=new JButton(\"修改\"); //创
建”修改“按钮
Container c=getContentPane();
c.setLayout(null);
jlb1.setBounds(20,15,170,30); c.add(jlb1);
jlb2.setBounds(20,80,170,30); c.add(jlb2);
jlb3.setBounds(20,145,170,30); c.add(jlb3);
jtf1.setBounds(20,45,170,30); c.add(jtf1);
word 专业资料
.
jtf2.setBounds(20,110,170,30); c.add(jtf2);
jtf3.setBounds(20,,170,30); c.add(jtf3);
xg.setBounds(80,230,60,35); c.add(xg);
xg.addActionListener(new
ActionListener()
//为”修改“按钮添加事件触发
{ public
void
actionPerformed(
ActionEvent
e)
// 当修改的按钮被点击时执行
{
JButton xg=(JButton)e.getSource();
String xuehao=jtf1.getText(); //获
取文本框的数据
String shuxin=jtf2.getText(); String xinshuju=jtf3.getText();
a.UpdateXh(xuehao,shuxin,xinshuju); setVisible(false);;}
});
((JComponent) this.getContentPane()).setOpaque(false); //
设置背景图片
word 专业资料
.
java.net.URL url = JavaSql.class.getResource(\"背景2.jpg\");
ImageIcon img = new ImageIcon(url);
JLabel background = new JLabel(img); this.getLayeredPane().add(background,
new
Integer(Integer.MIN_VALUE));
background.setBounds(0,
0,
img.getIconWidth(),
img.getIconHeight());
}
public void jiemian2(){ //在J_ActionListener3类里添加jiemian2()方法,创建按姓名修改数据的界面
this.setTitle(\"请输入数据:\") ;
this.setSize(230,320) ; this.setLocation(200,130); this.setResizable(false); this.setVisible(true);
JLabel jlb1 = new JLabel(\"请输入要修改的学生的\"+b) ;
//设置3个标签
JLabel jlb2 = new JLabel(\"请输入要修改的属性\") ; JLabel jlb3 = new JLabel(\"请输入新的数据\") ; final
JTextField
jtf1
=
new
JTextField()
;
//设置三个文本框
word 专业资料
.
final JTextField jtf2 = new JTextField() ; final JTextField jtf3 = new JTextField() ;
JButton xg=new JButton(\"修改\"); //创
建”修改“按钮
Container c=getContentPane(); c.setLayout(null);
jlb1.setBounds(20,15,170,30); c.add(jlb1);
jlb2.setBounds(20,80,170,30); c.add(jlb2);
jlb3.setBounds(20,145,170,30); c.add(jlb3);
jtf1.setBounds(20,45,170,30); c.add(jtf1);
jtf2.setBounds(20,110,170,30); c.add(jtf2);
jtf3.setBounds(20,,170,30); c.add(jtf3);
xg.setBounds(80,230,60,35); c.add(xg);
xg.addActionListener(new
//为”修改“按钮添加事件触发
word 专业资料
ActionListener()
.
{ public
void
actionPerformed(
ActionEvent
e)
// 当修改的按钮被点击时执行
{
JButton xg=(JButton)e.getSource();
String xinming=jtf1.getText(); //
获取文本框的数据
String shuxin=jtf2.getText(); String xinshuju=jtf3.getText(); a.UpdateXm(xinming,shuxin,xinshuju); setVisible(false);;}
});
((JComponent) this.getContentPane()).setOpaque(false); //
设置背景图片
java.net.URL url = JavaSql.class.getResource(\"背景2.jpg\");
ImageIcon img = new ImageIcon(url);
JLabel background = new JLabel(img); this.getLayeredPane().add(background,
new
Integer(Integer.MIN_VALUE));
background.setBounds(0,
0,
img.getIconWidth(),
img.getIconHeight());
}
word 专业资料
.
public void actionPerformed(ActionEvent e)
{
JButton
b3=(JButton)e.getSource();
//当主功能选项面板的”修改已有学生信息“的按钮被点击时执行
Object aa= JOptionPane.showInputDialog(null, \"请选择按何种方
式修改\选择\弹出窗口让用户选择按何种方式进行修改
JOptionPane.QUESTION_MESSAGE,null,
new String []{\"学号\姓名\学号\");
执行
b=\"学号\"; this.jiemian(); }
if(aa==\"姓名\"){ //当用户选择按”姓名“修 if(aa==\"学号\"){ //当用户选择按”学号“修改时
改时执行
b=\"姓名\"; this.jiemian2(); } }
word 专业资料
.
}
class J_ActionListener4 implements ActionListener{ //创建J_ActionListener2类监听功能选项面板\"添加新的学生信息\"的按钮
public void actionPerformed(ActionEvent e)
{ JButton b4=(JButton)e.getSource();
DataBase a=new DataBase(); //实例化DataBase类 Object aa= JOptionPane.showInputDialog(null, \"请选择按何
种方式删除\选择\弹出窗口让用户选择按何种方式进行删除
null,new String []{\"
学号\姓名\学号\");
if(aa==\"学号\")
{ String str11=JOptionPane.showInputDialog(\"请输入要删除的记录的学号\"); //当用户选择按”学号“删除时执行
a.DeleteXh(str11); //执行DataBase类的DeleteXh方法
}
else{ String str13=JOptionPane.showInputDialog(\"请输入要删除的记录的姓名\"); //当用户选择按”姓名“修改时执行
a.DeleteXm(str13); //执行DataBase类的DeleteXm方法
}
word 专业资料
.
}
}
class J_ActionListener5 implements ActionListener{ //创建J_ActionListener2类监听功能选项面板\"关于学籍管理系统\"的按钮
public void actionPerformed(ActionEvent e) //按
钮被点击执行
{ JButton b5=(JButton)e.getSource();
JOptionPane.showMessageDialog( null ,\"******本系统由 吴晓阳
秀丽 制作******\\n************ 日期:2010年12月 ************\" ) ;
} }
class JavaSql extends JFrame implements ActionListener{ //主类JavaSql
//添加设置用户名和密码输
入的图形界面
word 专业资料
.
JFrame denglu=new JFrame(\"登录\"); //创建”登录“的框架
JButton quedin = new JButton(\" 确定\"); //创建”确定“按钮
JLabel t1=new JLabel(\"管理员号:\"); //创建标签”管理员号“
JTextField t2=new JTextField(null,15); //创建管理员号的输入栏
JLabel t3=new JLabel(\"登录密码:\"); //创建标签\"登录密码\"
JTextField t4=new JPasswordField(null,15); //创建登录密码的输入栏
public void init(){ //在数
据库中创建一”学籍管理系统“表
try{ Class.forName(\"sun.jdbc.odbc.JdbcOdbcDriver\");
Connection
c=DriverManager.getConnection(\"jdbc:odbc:studentdatabase\");
Statement s=c.createStatement(); s.executeUpdate(
\"create table 学籍管理系统(\" +
\"学号 char(15) CONSTRAINT authIndex PRIMARY KEY,\"+
word 专业资料
.
\"姓名 char(10),\"+ \"性别 char(4),\"+ \"学院 char(8),\"+ \"班级 char(8),\"+ \"籍贯 char(5))\");
s.close(); c.close();
System.out.println(\"********欢迎使用学籍管理系统
**********\");
}
catch(Exception e) //该表已存在
{
System.out.println(\"********欢迎使用学籍管理系统
**********\");
public void zhujiemian() //定义jiemian()的方
}
}
法,创建主功能的图形界面
{
word 专业资料
.
Container c=getContentPane(); //设置主功能界面的按钮
的大小和坐标位置
c.setLayout(null);
JButton b1=new JButton(\"显示已有学生信息\"); b1.setBounds(10,10,160,30);
JButton b2=new JButton(\"添加新的学生信息\"); b2.setBounds(10,45,160,30);
JButton b3=new JButton(\"修改已有学生信息\"); b3.setBounds(10,80,160,30);
JButton b4=new JButton(\"删除已有学生信息\"); b4.setBounds(10,115,160,30);
JButton b5=new JButton(\"关于学籍管理系统\");
b5.setBounds(10,150,160,30);
JButton b6=new JButton(\"退出学籍管理系统\");
b6.setBounds(10,185,163,30);
J_ActionListener1 a1=new J_ActionListener1(); // 各个按钮监听的类
J_ActionListener2 a2=new J_ActionListener2(); J_ActionListener3 a3=new J_ActionListener3(); J_ActionListener4 a4=new J_ActionListener4();
J_ActionListener5 a5=new J_ActionListener5();
word 专业资料
实例化
.
b1.addActionListener(a1); b2.addActionListener(a2); b3.addActionListener(a3); b4.addActionListener(a4); b5.addActionListener(a5);
b6.addActionListener(new ActionListener() //为”
退出学籍管理系统“的按钮添加事件监听触发
{
public void actionPerformed(final ActionEvent e)
{
System.exit(0); //该按钮点击时,退
出学籍管理系统
里
c.add(b2); c.add(b3); c.add(b4); c.add(b5); } });
c.add(b1); //将按钮逐个添加到面板
word 专业资料
.
}
c.add(b6);
public void denglumenu(){
denglu.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置登录界面的按钮标签的的大小和具体坐标位置
denglu.setSize(680,530); denglu.setVisible(false); denglu.setLocation(200,200); Container n=denglu.getContentPane(); n.setLayout(null);
t1.setBounds(405,228,70,25); t2.setBounds(470,228,120,25);
t3.setBounds(405,270,70,25); t4.setBounds(470,270,120,25); quedin.setBounds(470,322,63,35);
n.add(t1); //将登陆界面的
按钮和标签添加到登录的面板里
word 专业资料
.
n.add(t2); n.add(t3); n.add(t4);
denglu.add(quedin); denglu.setVisible(true); quedin.addActionListener(this);
((JComponent)
denglu.getContentPane()).setOpaque(false);
//设置登录图形界面的背景图片
java.net.URL url = JavaSql.class.getResource(\"未命名1111.jpg\");
ImageIcon img = new ImageIcon(url); JLabel background = new JLabel(img); denglu.getLayeredPane().add(background,
new
Integer(Integer.MIN_VALUE));
background.setBounds(0,
0,
img.getIconWidth(),
img.getIconHeight());
}
public void actionPerformed(ActionEvent e){ //
当登录界面的确定按钮被点击时
word 专业资料
.
if(e.getSource()==quedin){ //对
输入的管理员号和密码进行验证
String zh=\"200811622124\"; String zh1=\"200811622104\";
String mm=\"123456\";
String ming=t2.getText();
if(ming.equals(zh)||ming.equals(zh1)) { String mima=t4.getText(); if(mima.equals(mm))
{
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //验证通过,则调用zhujiemian()方法
this.setSize(640,480); this.setLocation(200,200); this.setVisible(true);
zhujiemian();
((JComponent)
this.getContentPane()).setOpaque(false); //主界面的背景图片
java.net.URL JavaSql.class.getResource(\"111.jpg\");
ImageIcon img = new ImageIcon(url);
url
=
word 专业资料
.
JLabel background = new JLabel(img); this.getLayeredPane().add(background,
new
Integer(Integer.MIN_VALUE));
background.setBounds(0,
0,
img.getIconWidth(),
img.getIconHeight());
denglu.setVisible(false);
} else{ JOptionPane.showMessageDialog( null ,\"密码输入错误! //验证失败,弹出错误的提示!
\" ) ;}
} \" ) ;
方法
JavaSql app=new JavaSql(); //实例化
}
else{ JOptionPane.showMessageDialog( null ,\"学号输入错误!
} }
public static void main(String args[]){ //主
JavaSql类
app.init(); //为数
据库创建学籍管理系统表
app.denglumenu(); //执行
登陆界面
word 专业资料
失败 .
word 专业资料
因篇幅问题不能全部显示,请点此查看更多更全内容