学生信息管理系统(完整代码、数据库、图片)
《Java应用开发》
课程设计报告
题目:学生信息管理系统
指导老师: *** 姓名: **
专业:计算机科学与技术
班级: 10级1班
日期: 2012年6月
目录
一、系统总体设计 (3)
(一)设计目标及完成功能 (3)
(二)系统流程图 (4)
二、详细设计 (5)
(二)系统设计 (9)
(三)源代码及技术 (11)
三、使用与测试 (42)
四、数据库设计 (43)
总结(体会) (44)
参考文献 (45)
一、系统总体设计
(一)设计目标及完成功能
1、设计目标
学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作。加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的。为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统。
2、完成功能
完成学生信息的基本管理。本系统分为管理员和学生管理两部分。管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息。
(二)系统流程图
登陆
登陆角色
学生 管理员
添加学生信息
查询学生信息
修改学生信息
查询学生信息
删除学生信息
添加学生信息
开始
退出管理系统
菜单操作
菜单操作
二、详细设计
图2-1 登陆界面1
图2-2 登陆界面2
图2-3 系统主界面
图2-4 添加学生信息界面
图2-5 修改学生信息界面
图2-6 查询学生信息界面
图2-7 删除学生信息界面
图2-8 系统信息界面
图2-9 我的信息界面
(二) 系统设计
1、系统结构图
学生信息管理系统
学生登陆管理员登陆
添加学生信息查
询
学
生
信
息
添
加
学
生
信
息
修
改
学
生
信
息
查
询
学
生
信
息
删
除
学
生
信
息
2、类及功能列表
序号类名
方法类功能说
明
方法名功能
1
First First() 构造方法,构
造界面并注册
事件
美观效果
2
Login actionPerformed(actionEvent e) 处理“登陆”
按钮的事件
实现登陆
功能
Connctsql() 连接数据库
3
Menu actionPerformed(actionEvent e) 处理菜单按钮
的事件
主界面,
实现管理
员操作功
能Menu() 构造方法,构
造界面及注册
事件
4
addForm Connctsql() 连接数据库管理员添
加学生信
息actionPerformed(ActionEvent e) 处理按钮事件
5 modifyForm Connctsql() 连接数据库管理员修
改学习
actionPerformed(ActionEvent ae) 处理按钮事件
6 Serch Connctsql() 连接数据库管理员查
询学生信
息
actionPerformed(ActionEvent e) 处理按钮事件
7 deleteForm Connctsql() 连接数据库管理员删
除学生信
息
actionPerformed(ActionEvent ae) 处理按钮事件
8 Menu2 actionPerformed(actionEvent e) 处理菜单按钮
的事件主界面,实现学生操作功能
Menu2() 构造方法,构
造界面及注册
事件
9 addForm2 Connctsql() 连接数据库学生添加
学生信息
actionPerformed(ActionEvent e) 处理按钮事件
10 Serch2 Connctsql() 连接数据库学生查询
学生信息
actionPerformed(ActionEvent e) 处理按钮事件
11 Aboutme Aboutme() 构造方法,构
造界面
帮助窗
口,关于
我
12 AboutSystem AboutSystem() 构造方法,构
造界面
帮助窗
口,关于
系统
(三) 源代码及技术
1、所有代码
student.mdf -数据库
将以下图片以上图名称存入images文件夹目录下。
要自己将各代码新建为.java格式文件,放在与images文件夹同目录下。并将数据库附加到sqlserver2005,再不需要任何改动方可运行。
①登陆界面1
import java.io.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
class First extends JFrame implements MouseListener{
private JPanel panel=(JPanel)getContentPane();
private JPanel panel2=new JPanel();
JLabel l1;
public First() {
super("学生信息管理系统");
ImageIcon background= new ImageIcon("images\\Login.jpg");//整个背景图片
JLabel L=new JLabel(background);
L.setBounds(0,0,500,400);//取整张图片
panel.setOpaque(false);
panel2.setOpaque(false);
ImageIcon button= new ImageIcon("images\\T20.jpg");
l1=new JLabel(button);
panel2.add(l1);
panel.add(panel2);
panel.setLayout(null);
panel.add(L);
panel2.setBounds(118,258,300,100);
//设置监听器
l1.addMouseListener(this);
getLayeredPane().setLayout(null);
getLayeredPane().add(L, new Integer(Integer.MIN_VALUE)); setSize(500,400);
setVisible(true);
setResizable(false);
setLocation(450,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void mouseClicked(MouseEvent e){
if((JLabel)e.getSource()==l1)
{ this.dispose();
Login d=new Login();}
}
public void mouseExited(MouseEvent e){
if((JLabel)e.getSource()==l1)
{
l1.setBackground(Color.BLACK);
}
}
public void mouseEntered(MouseEvent e){
if((JLabel)e.getSource()==l1)
{l1.setForeground(Color.BLUE);}
}
public void mouseReleased(MouseEvent e){ }
public void mousePressed(MouseEvent e){ }
public static void main(String args[])
{First f=new First();}
}
②登陆界面2
import java.io.*;
import java.sql.*;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Login extends JFrame implements ActionListener{ Connection conn;//定义连接对象
Statement stmt;//语句
ResultSet rst;//结果集
private JLabel lb1 = new JLabel("帐号:");
private JLabel lb2 = new JLabel("口令:");
private JLabel lb3 = new JLabel("学生信息管理系统");
private JLabel lb4=new JLabel("请选择登陆角色");
private TextField t1 = new TextField(15);
private TextField t2 = new TextField(15);
private JButton b1=new JButton("登陆");
private JButton b2=new JButton("取消");
private JComboBox user1=new JComboBox();
private JPanel p1=(JPanel)getContentPane();
private JPanel p2=new JPanel();
private JPanel p3=new JPanel();
private JPanel p4=new JPanel();
private JPanel p5=new JPanel();
public Login(){
setTitle("学生信息管理系统");
setVisible(true);
setResizable(false);
setLayout(null);
user1.addItem("管理员");
user1.addItem("学生");
user1.setFont(new Font("华文行楷",Font.BOLD,14));
lb1.setFont(new Font("华文行楷",Font.BOLD,14));
lb2.setFont(new Font("华文行楷",Font.BOLD,14));
lb3.setFont(new Font("华文行楷",Font.BOLD,35));
lb4.setFont(new Font("华文行楷",Font.BOLD,14));
ImageIcon background= new ImageIcon("images\\Login2.jpg");
JLabel L=new JLabel(background);
L.setBounds(0, 0,500,400);
p2.add(lb3);p5.add(lb4);p5.add(user1);p3.add(lb1);
p3.add(t1);p3.add(lb2);p3.add(t2);p4.add(b1);
p4.add(b2);
p1.setOpaque(false);
p2.setOpaque(false);
p3.setOpaque(false);
p4.setOpaque(false);
p5.setOpaque(false);
t2.setEchoChar('*');
p1.setLayout(null);
p1.add(L); //存放背景图片
p2.setBounds(90,44,350,100);
p3.setBounds(155,160,210,60);
p5.setBounds(132,100,250,40);
p4.setBounds(150,250,300,100);
//将所有panel加到panel1上
p1.add(p2);p1.add(p3);p1.add(p4);p1.add(p5);
//可视位置
getLayeredPane().setLayout(null);
getLayeredPane().add(L,
new Integer(Integer.MIN_VALUE));
setSize(500,400);
setLocation(450,200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//设置监听器
b1.addActionListener(this);
b2.addActionListener(this);
}
public void actionPerformed(ActionEvent e){
if((JButton)e.getSource()==b1){
if(user1.getSelectedItem().equals("管理员")){
try{Connctsql();
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSI
TIVE,ResultSet.CONCUR_UPDATABLE);
rst = stmt.executeQuery("SELECT * FROM usertable where
id='"+ t1.getText().trim() +"'");
if(rst.next()){
if(rst.getString(1).trim().equals(t2.getText().trim())&&!
rst.getString(1).trim().equals(""))
{ this.dispose();
Menu m=new Menu();}
else if
(!rst.getString(1).trim().equals(t2.getText().trim())&&!rst.getStr ing(1).trim().equals("")){
JOptionPane.showMessageDialog(null,"密码异常!","温馨提示!",https://www.360docs.net/doc/e83868714.html,RMATION_MESSAGE,null);}
}
else if(!rst.next()){
JOptionPane.showMessageDialog(null,"不存在此用户!","温馨提示!",https://www.360docs.net/doc/e83868714.html,RMATION_MESSAGE,null);
}
if(t1.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输入账号!","温馨提示!",https://www.360docs.net/doc/e83868714.html,RMATION_MESSAGE,null);
}
}
catch(Exception err)
{System.out.println(err);}
}
else if(user1.getSelectedItem().equals("学生")){
try{Connctsql();
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR _UPDATABLE);//结果集可滚动,可更新
if(t1.getText().equals("")){
JOptionPane.showMessageDialog(null,"请输入您的学号!","温馨提示!",https://www.360docs.net/doc/e83868714.html,RMATION_MESSAGE,null); }
rst = stmt.executeQuery("SELECT * FROM stuuser where 学号='"+ t1.getText().trim() +"'");//将输入的账号与stuuser表比对
while(rst.next()){
if(rst.getString(1).trim().equals(t2.getText().trim()))
{new Menu2();dispose();}
else{
JOptionPane.showMessageDialog(null,"密码异常!","温馨提示!",https://www.360docs.net/doc/e83868714.html,RMATION_MESSAGE,null);
t1.setText(null);//清空账号
t2.setText(null); //清空密码
}
}
}
catch(Exception err)
{System.out.println(err);}
}
}
else if((JButton)e.getSource()==b2){
this.dispose();//关闭窗体
}
}
private void Connctsql(){//连接数据库的函数
try{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=student","sa","123456789");//连接student数据库
}
catch(Exception e){
System.out.println(e);
}
}
public static void main(String args[]){
Login l=new Login();}
}
③系统主界面
import java.awt.*;
import java.sql.*;
import javax.swing.*;
import java.awt.event.*;