1、Java应用开发课程设计报告题目:学生信息管理系统指导老师:姓 名:专 业: 计算机科学与技术班 级: 10级1班日 期:2012年6月目 录一、系统总体设计1(一)设计目标及完成功能1(二)系统流程图2二、详细设计3(二) 系统设计7(三) 源代码及技术10三、使用与测试20四、数据库设计21总结(体会)22参考文献23Java应用开发课程设计报告一、系统总体设计(一)设计目标及完成功能1、设计目标学生信息管理系统是学校的一项重要数据资源,因而学生信息管理必然成为学校的一项常规性的重要工作。加强学生信息管理在单纯依靠以手工管理的方法,不仅需要耗用大量的人力、物力、财力,而且由于人工管理存在着
2、大量的不可控因素,造成了信息管理的某些不规范,工作效率低,难以达到预期的目的.为提高工作效率、保证学校能够及时准确了解各学生的各种信息及学生总体信息,开发学生信息管理系统.2、完成功能完成学生信息的基本管理.本系统分为管理员和学生管理两部分。管理员管理项目如下:添加学生信息、修改学生信息、查询学生信息、删除学生信息;学生管理项目如下:添加学生信息、查询学生信息。(二)系统流程图登陆登陆角色学生管理员添加学生信息查询学生信息修改学生信息查询学生信息删除学生信息添加学生信息开始退出管理系统菜单操作菜单操作二、详细设计图21 登陆界面1图2-2登陆界面2图23系统主界面图24添加学生信息界面图2-5
3、 修改学生信息界面图26 查询学生信息界面图27 删除学生信息界面图28 系统信息界面图29 我的信息界面(二) 系统设计1、系统结构图学生信息管理系统学生登陆管理员登陆添加学生信息查询学生信息添加学生信息修改学生信息查询学生信息删除学生信息2、类及功能列表序号类名方法类功能说明方法名功能1FirstFirst()构造方法,构造界面并注册事件美观效果2LoginactionPerformed(actionEvent e)处理“登陆”按钮的事件实现登陆功能 Connctsql()连接数据库3MenuactionPerformed(actionEvent e)处理菜单按钮的事件主界面,实现管理员操
4、作功能Menu()构造方法,构造界面及注册事件4addFormConnctsql()连接数据库管理员添加学生信息actionPerformed(ActionEvent e)处理按钮事件5modifyFormConnctsql()连接数据库管理员修改学习actionPerformed(ActionEvent ae)处理按钮事件6SerchConnctsql()连接数据库管理员查询学生信息actionPerformed(ActionEvent e)处理按钮事件7deleteFormConnctsql()连接数据库管理员删除学生信息actionPerformed(ActionEvent ae)处理按
5、钮事件8Menu2actionPerformed(actionEvent e)处理菜单按钮的事件主界面,实现学生操作功能Menu2()构造方法,构造界面及注册事件9addForm2Connctsql()连接数据库学生添加学生信息actionPerformed(ActionEvent e)处理按钮事件10Serch2Connctsql()连接数据库学生查询学生信息actionPerformed(ActionEvent e)处理按钮事件11AboutmeAboutme()构造方法,构造界面帮助窗口,关于我12AboutSystemAboutSystem()构造方法,构造界面帮助窗口,关于系统(三)
6、 源代码及技术1、所有代码数据库将以下图片以上图名称存入images文件夹目录下.要自己将各代码新建为。java格式文件,放在与images文件夹同目录下.并将数据库附加到sqlserver2005,再不需要任何改动方可运行.登陆界面1import java.io.;import java.awt.;import javax.swing.*;import java.awt.event。*;class First extends JFrame implements MouseListenerprivate JPanel panel=(JPanel)getContentPane();private
7、 JPanel panel2=new JPanel();JLabel l1; public First() super(学生信息管理系统”); ImageIconbackground= new ImageIcon(”imagesLogin。jpg”);/整个背景图片 JLabel L=new JLabel(background); L.setBounds(0,0,500,400);/取整张图片 panel。setOpaque(false); panel2。setOpaque(false); ImageIcon button= new ImageIcon(imagesT20.jpg”); l1=
8、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
9、(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 mouseEnt
10、ered(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();登陆界面2import java。io。;import java。sql。;import java。awt。;import javax.swing。;import java
11、.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(”请选择登陆角色”); p
12、rivate 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 J
13、Panel(); 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。setF
14、ont(new Font(华文行楷”,Font.BOLD,14)); lb3。setFont(new Font(华文行楷”,Font.BOLD,35); lb4。setFont(new Font(”华文行楷”,Font.BOLD,14)); ImageIcon background= new ImageIcon(”imagesLogin2。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);p
15、3.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.set
16、Bounds(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
17、(this); b2。addActionListener(this); public void actionPerformed(ActionEvent e)if((JButton)e.getSource()=b1) if(user1。getSelectedItem()。equals(管理员”) tryConnctsql(); stmt=conn。createStatement(ResultSet。TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE); rst = stmt。executeQuery(”SELECT FROM usertable wh
18、ere 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();elseif(!rst。getString(1)。trim().equals(t2。getText()。trim()&!rst。getString(1)。trim()。equals(”)JOptionPane。showMessageDialog(null,”
19、密码异常!,”温馨提 示!”,JOptionPane.INFORMATION_MESSAGE,null); else if(!rst.next()) JOptionPane.showMessageDialog(null,”不存在此用户!,温馨提示!”,JOptionPane。INFORMATION_MESSAGE,null); if(t1.getText()。equals(”)) JOptionPane。showMessageDialog(null,请输入账号!,”温馨提示!”,JOptionPane.INFORMATION_MESSAGE,null); catch(Exception err
20、) System。out.println(err); else if(user1。getSelectedItem().equals(”学生”) tryConnctsql();stmt = conn。createStatement(ResultSet。TYPE_SCROLL_SENSITIVE,ResultSet。CONCUR_UPDATABLE);/结果集可滚动,可更新if(t1。getText().equals(”))JOptionPane。showMessageDialog(null,请输入您的学号!”,”温馨提示!,JOptionPane.INFORMATION_MESSAGE,null
21、); 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,密码异常!,温馨提示!”,JOptionPane。INFORMATION_MESSAGE,null); t1.setText(nu
22、ll);/清空账号 t2.setText(null); /清空密码 catch(Exception err) System。out。println(err); else if((JButton)e。getSource()=b2)this。dispose();/关闭窗体private void Connctsql()/连接数据库的函数 tryClass。forName(com。microsoft。sqlserver.jdbc。SQLServerDriver”);conn=DriverManager。getConnection(”jdbc:sqlserver:/localhost:1433; Da
23、tabaseName=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。;public class Menu extends JFrameprivate JPanel p1=(JPanel)getConten
24、tPane(); private JMenuBar jmb=new JMenuBar(); private JMenu fileMenu,Denglu,help; privateJMenuItemlogout,exit,add,revise,look,delet,aboutsystem,aboutus; Connection con; Statement sql; ResultSet rs; public Menu() setTitle(”学生信息管理系统); /设置背景图案ImageIconbackground=newImageIcon(imagesxitong.jpg”); JLabel
25、L=new JLabel(background); L.setBounds(0, 0,800,600); p1.setOpaque(false); p1。setLayout(null); p1。add(L); getLayeredPane()。setLayout(null);getLayeredPane()。add(L, new Integer(Integer。MIN_VALUE); setJMenuBar(jmb);fileMenu=new JMenu(”菜单”); Denglu=new JMenu(”登陆管理); help=new JMenu(”帮助”);jmb.add(fileMenu)
26、; jmb。add(Denglu); jmb。add(help); Denglu。add(logout=new JMenuItem(”注销)); Denglu。add(exit=new JMenuItem(”退出”); fileMenu。add(add=new JMenuItem(添加学生信息”)); fileMenu。add(revise=new JMenuItem(”修改学生信息); fileMenu。add(look=new JMenuItem(”查询学生信息)); fileMenu。add(delet=new JMenuItem(删除学生信息)); help.add(aboutsyst
27、em=new JMenuItem(”关于系统”); help。add(aboutus=new JMenuItem(”关于我们”)); logout.addActionListener(new ML()); exit。addActionListener(new ML(); add。addActionListener(new ML(); revise。addActionListener(new ML()); look.addActionListener(new ML()); delet。addActionListener(new ML()); aboutsystem。addActionListen
28、er(new ML()); aboutus.addActionListener(new ML();setSize(800,600); setVisible(true);setResizable(false);setLocation(300,100); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); public class ML implements ActionListener public void actionPerformed(ActionEvent e) String m=e。getActionCommand(); if(m.equal
29、s(”退出)) System。exit(0); if(m。equals(注销”)) dispose();new Login(); if(m。equals(添加学生信息) dispose();new addForm(); if(m.equals(修改学生信息”) dispose();new modifyForm(); if(m。equals(”查询学生信息”) dispose();new Serch(); if(m.equals(删除学生信息”))dispose();new deleteForm(); if(m。equals(”关于系统))new AboutSystem(); if(m。equa
30、ls(关于我们))new Aboutme();添加学生界面import java.sql。;import java.awt。*;import javax。swing.;import java。awt。event。*;import javax.swing.table。DefaultTableModel;public class addForm extends JFrame implements ActionListener JLabel label1 = new JLabel(”添加学生信息”,JLabel。CENTER); JLabel labxuehao=new JLabel(”学号:,JL
31、abel.CENTER); JLabel labyear=new JLabel(”年龄:”,JLabel。CENTER); JLabel labName=new JLabel(”姓名:”,JLabel.CENTER); JLabel labDate=new JLabel(出生日期:,JLabel.CENTER); JLabel labclass=new JLabel(”班级:,JLabel。CENTER); JLabel labzy=new JLabel(专业:,JLabel。CENTER); JLabel labmz=new JLabel(”院系:,JLabel。CENTER); JLabe
32、l labsex = new JLabel(”性别:”,JLabel.CENTER); JTextField txtName=new JTextField(20); JTextField txtDate=new JTextField(18); JTextField txtXueHao=new JTextField(20); JTextField txtYear=new JTextField(20); JTextField txtClass=new JTextField(20); JTextField txtZY=new JTextField(20); JTextField txtYX=new
33、JTextField(20); ButtonGroup bgp = new ButtonGroup(); JRadioButton man = new JRadioButton(”男”); JRadioButton women = new JRadioButton(”女”); JButton btnAdd=new JButton(”添加); JButton btnCancel=new JButton(返回”); JButton btnReset = new JButton(重置); JPanel jpl=new JPanel(); /创建面板对象 Connection conn;Stateme
34、nt stmt;ResultSet rst; addForm() super(”添加学生信息);this。setResizable(false);this。setSize(550,450);this。setVisible(true);this。setLocation(400,200);this.setDefaultCloseOperation(JFrame。EXIT_ON_CLOSE);this。add(jpl);jpl.setLayout(null);btnAdd。addActionListener(this);btnReset。addActionListener(this);btnCanc
35、el。addActionListener(this);jpl。setBackground(Color.cyan);man。setBackground(Color。cyan);women。setBackground(Color。cyan);label1。setBounds(100,20,300,20);jpl.add(label1);labxuehao.setBounds(100,50,70,20);jpl。add(labxuehao);txtXueHao。setBounds(190,50,140,20);jpl。add(txtXueHao);labName。setBounds(100,90,7
36、0,20);jpl.add(labName);txtName。setBounds(190,90,140,20);jpl。add(txtName);labsex。setBounds(110,130,60,20);jpl.add(labsex);man。setBounds(190,130,60,20);women。setBounds(270,130,60,20);jpl。add(man);jpl。add(women);bgp。add(man);bgp。add(women);labyear.setBounds(100,180,70,20);jpl。add(labyear);txtYear。setBo
37、unds(190,180,140,20);jpl。add(txtYear);labDate。setBounds(100,210,70,20);jpl.add(labDate);txtDate。setBounds(190,210,140,20);jpl。add(txtDate);labmz。setBounds(100,240,70,20);jpl。add(labmz);txtYX.setBounds(190,240,140,20);jpl。add(txtYX);labclass。setBounds(100,270,70,20);jpl.add(labclass);txtClass。setBoun
38、ds(190,270,140,20);jpl。add(txtClass);labzy。setBounds(100,300,70,20);jpl。add(labzy);txtZY.setBounds(190,300,140,20);jpl。add(txtZY);btnReset.setBounds(80,350,90,20);btnAdd。setBounds(200,350,90,20);btnCancel。setBounds(320,350,90,20);jpl。add(btnReset);jpl。add(btnAdd);jpl。add(btnCancel); public void acti
39、onPerformed(ActionEvent e) if(e.getSource()=btnCancel) dispose(); new Menu();if(e.getSource()=btnAdd)if (txtXueHao.getText()。toString()。equals(”))JOptionPane.showMessageDialog(null, 请输入学号”, ”温馨提示”, JOptionPane。INFORMATION_MESSAGE);else if (txtName.getText()。toString()。equals(”))JOptionPane。showMessa
40、geDialog(null, ”请输入姓名, 温馨提示”, JOptionPane。INFORMATION_MESSAGE);else if (txtYear.getText().toString().equals(”)JOptionPane.showMessageDialog(null, ”请输入年龄, ”温馨提示”, JOptionPane。INFORMATION_MESSAGE);else if (txtDate。getText().toString()。equals(”)JOptionPane。showMessageDialog(null, ”出生日期, ”温馨提示, JOptionP
41、ane.INFORMATION_MESSAGE);else if (txtZY。getText()。toString()。equals(”))JOptionPane.showMessageDialog(null, ”请输入专业”, ”温馨提示”, JOptionPane。INFORMATION_MESSAGE);else if (txtYX。getText().toString()。equals(”)JOptionPane。showMessageDialog(null, ”请输入院系”, 温馨提示”, JOptionPane.INFORMATION_MESSAGE);else if (txtClass.getText()。toString().equals(”)JOptionPane。showMessageDialog(null, ”请输入班级”, ”温馨提示”, JOptionPane.INFORMATION_MESSAGE);elseString sex;if(man。isSelected()) sex=”男”;else sex=”女; Connctsql();tryStatement stmt = conn。createStatem