java课程设计报告学生信息管理系统2011(共24页).doc
精选优质文档-倾情为你奉上Java大作业课程设计说明书课程名称: JAVA题目: 学生信息管理系统姓名: 陆振飞学号: 班级: 软件1205指导教师: 马睿二一四年 十二 月 二十六 日一、课程设计目的1.通过JAVA课程设计,使学生能够将学到的面向对象的设计思想运用在具体的工作和学习中,加深对类和对象的理解,要求学生对生活中许多具体的事物抽象出类。2、通过这次课程设计掌握JAVA的编程思想,为后续课程打下基础。3、培养我实际操作能力和实践能力,为以后的工作打下坚实的基础。课程设计的要求 利用学到的编程知识和编程技巧,要求学生:1、对系统进行功能模块分析、控制模块分析正确2、系统设计要能完成题目所要求的功能。3、编程简练,可用,尽可能的使系统的功能更加完善和全面4、使用说明书、流程图要清楚。二、解题思路1、课程设计的题目及简介有新生来报到,要逐个录入其信息,如:学生姓名,性别,出生日期,国籍。要求设计链表类来实现,并统计学生人数。文本界面为:1. 添加学生信息2. 删除学生信息3. 查询学生信息4. 修改学生信息5. 学生信息保存6. 退出2、设计说明总体结构我们采取模块化方式进行程序设计,要求程序的功能设计、数据结构设计及整体结构设计合理。也可根据自己对题目的理解增加新的功能模块。系统以菜单界面方式(至少采用文本菜单界面,如能采用图形菜单界面更好)工作,运行界面友好,演示程序以用户和计算机的对话方式进行看题目要求,每一条记录包括一个学生的姓名、性别、出生日期、国籍。同时,应具备以下功能:1、删除功能:对指定学生的信息进行删除。2、修改功能:对指定学生的信息进行修改。3、查询功能:选择某种方式并输入该信息查询符合条件的学生信息。6、 添加功能:添加新增学生信息。7、 退出主菜单。三、 分析和设计 各功能模块的实现流程图:1增加学生信息判断*学生是否存在,若存在则错误,不存在则添加。具体流程如下图所示:流程图新增学生信息判断以前是否存储了学生信息是新增信息按提示:输入学个的各种信息 按格式显示输入的学生信息退出该功能,返回主菜单,继续选择2删除学生信息 删除学生的信息则必须对链表结点进行删除意味着将某个要删除结点前后的连续打断,去掉该结点,使前后指针变量重新连接,完成链表结点的删除任务 流程图退出该功能,返回主菜单,继续选择输入要删除信息的编号输出所有学生的信息输入要删除学生信息2该生信息已删除,显示其他同学的信息 3、查询学生信息按学生的学号进行查询 流程图:按照提示输入学生的学号进行搜索输出所以查询的学生信息退出该功能,返回主菜单,继续选择搜索学生信息 总功能模块图:5、退出系统2、输入要删除的学生的学号,删除学生信息。1输入学生的信息:姓名、性别、出生日期、国籍 菜单1. 新增学生信息2. 删除学生信息3. 学生信息查询4. 确实删除5. 确定修改6. 提交添加7. 退出3、输入你要查找你学生学号6提交添加学生管理系统功能模块图四、主要源代码import java.awt.*;import java.awt.event.*;import javax.swing.*;import java.sql.*;/主函数、主要类public class JCTX public static void main(String args) new Frm_Main();/ 实现类class Frm_Main implements ActionListener / throws IOExceptionpublic JFrame frame;public Container c;public JMenuBar menuBar;public JMenu mainMenu1;public JMenu mainMenu2;public JMenu mainMenu3;public JMenuItem subMenu1 = new JMenuItem5;public JMenuItem subMenu2 = new JMenuItem7;public JMenuItem subMenu3 = new JMenuItem2;JButton toolBarButton = new JButton8;public JToolBar toolBar;String strTip = "查询您要找的学生记录.", "添加学生记录.", "删除已有的学生记录", "修改学生记录.","使您修改的学生记录生效.", "使 您添加的学生记录生效.", "确认删除当前记录.", "退出本系统:)" ;String id = new String();String name = new String();String sex = new String();String birthday = new String();String address = new String();String birth = new String();Connection conn;ResultSet rs;Statement st;PreparedStatement pst;public JLabel idL = new JLabel("学号:");public JLabel nameL = new JLabel("姓名:");public JLabel sexL = new JLabel("性别:");public JLabel jlbirth = new JLabel("出生年月:");public JLabel jladdr = new JLabel("籍贯:");public JTextField idT = new JTextField();public JTextField nameT = new JTextField();public JTextField sexT = new JTextField();public JTextField jtbirth = new JTextField();public JTextField jtaddr = new JTextField();public Frm_Main() frame = new JFrame("学生信息管理系统");c = frame.getContentPane();c.setLayout(null);menuBar = new JMenuBar();toolBar = new JToolBar();toolBar.setFloatable(false);frame.setJMenuBar(menuBar);frame.setResizable(false);mainMenu1 = new JMenu("管理");String str1 = "添加用户", "删除用户", "查询用户", " ", "退出" ;for (int i = 0; i < 5; i+) if (i = 3)mainMenu1.addSeparator();else subMenu1i = new JMenuItem(str1i);subMenu1i.addActionListener(this);mainMenu1.add(subMenu1i);menuBar.add(mainMenu1);mainMenu2 = new JMenu("维护学生信息");String str2 = "查询记录", "添加记录", "删除记录", "修改记录", "提交修改", "提交添加","确认删除" ;for (int i = 0; i < 7; i+) subMenu2i = new JMenuItem(str2i);subMenu2i.addActionListener(this);mainMenu2.add(subMenu2i);menuBar.add(mainMenu2);mainMenu3 = new JMenu("帮助");String str3 = "帮助.", "关于." ;for (int i = 0; i < 2; i+) subMenu3i = new JMenuItem(str3i);subMenu3i.addActionListener(this);mainMenu3.add(subMenu3i);menuBar.add(mainMenu3);String strToolBar = "查询", "添加", "删除", "修改", "提交修改", "提交添加", "确认删除" ;for (int i = 0; i < 7; i+) toolBarButtoni = new JButton(strToolBari);toolBarButtoni.setToolTipText(strTipi);toolBarButtoni.addActionListener(this);toolBar.add(toolBarButtoni);toolBar.setLocation(0, 0);toolBar.setSize(400, 30);c.add(toolBar);idL.setLocation(35, 40);idL.setSize(40, 20);/ idL.setFont(new Font("宋体",Font.BOLD,12);c.add(idL);idT.setLocation(90, 40);idT.setSize(200, 20);/ idT.setEnabled(false);c.add(idT);nameL.setLocation(35, 70);nameL.setSize(40, 20);c.add(nameL);nameT.setLocation(90, 70);nameT.setSize(200, 20);c.add(nameT);sexL.setLocation(35, 100);sexL.setSize(40, 20);c.add(sexL);sexT.setLocation(90, 100);sexT.setSize(200, 20);c.add(sexT);jlbirth.setLocation(35, 160);jlbirth.setSize(40, 20);c.add(jlbirth);jtbirth.setLocation(90, 160);jtbirth.setSize(200, 20);c.add(jtbirth);jladdr.setLocation(35, 190);jladdr.setSize(40, 20);c.add(jladdr);jtaddr.setLocation(90, 190);jtaddr.setSize(200, 20);c.add(jtaddr);JLabel information = new JLabel("");information.setFont(new Font("宋体", Font.BOLD, 35);information.setSize(380, 110);information.setLocation(10, 210);c.add(information);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.setSize(400, 400);frame.setLocation(200, 200);frame.setVisible(true);conDB();/ 以上是设置数据库面版、框架/ 以下是连接数据库public Connection conDB() Connection con = null;try Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); catch (ClassNotFoundException e) try con = DriverManager.getConnection("jdbc:sqlserver:/127.0.0.1:1433;databaseName=mysql", "sa","111"); catch (SQLException e) JOptionPane.showMessageDialog(null, "数据库连接失败");return con;/ 以下是关闭数据库public void closeDB() try pst.close();conn.close(); catch (SQLException e) JOptionPane.showMessageDialog(null, "数据库关闭失败!");/ 以下是针对数据库的各种操作public void actionPerformed(ActionEvent e) conn=conDB();if (e.getSource() = subMenu31 | e.getSource() = toolBarButton7)JOptionPane.showMessageDialog(null, "");if (e.getSource() = subMenu10 | e.getSource() = subMenu11| e.getSource() = subMenu12)JOptionPane.showMessageDialog(null, "");/ 查找功能的实现if (e.getSource() = subMenu20 | e.getSource() = toolBarButton0) String idid = JOptionPane.showInputDialog("请输入要查找的学生学号");if (idid.trim() != "") /String strSQL = "select * from student where id =" + idid+ ""String strSQL = "select * from student where id =?" ;try pst=conn.prepareStatement(strSQL);pst.setString(1, idid);rs=pst.executeQuery();/*st=conn.createStatement();rs = st.executeQuery(strSQL);*/int count = 0;while (rs.next() id = rs.getString("id");name = rs.getString("name");address = rs.getString("address");sex = rs.getString("sex");birth=rs.getString("birthday");count+;if (count = 0)JOptionPane.showMessageDialog(null, "对不起,没有您要查找的学生!");else idT.setText(id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birth); catch (Exception ex) JOptionPane.showMessageDialog(null, "抱歉,程序出现异常!");if (e.getSource() = subMenu14) closeDB();System.exit(0);if (e.getSource() = subMenu21 | e.getSource() = toolBarButton1) JOptionPane.showMessageDialog(null, "请输入要添加的学生信息");idT.setEnabled(true);idT.setText("");nameT.setText("");sexT.setText("");jtaddr.setText("");jtbirth.setText("");if (e.getSource() = toolBarButton5 | e.getSource() = subMenu25) if (idT.getText().trim().equals("")| (nameT.getText().trim().equals("")| (sexT.getText().trim().equals("")| (jtaddr.getText().trim().equals("")| (jtbirth.getText().trim().equals("")JOptionPane.showMessageDialog(null, "请输入信息再点击提交添加!");else id = idT.getText();name = nameT.getText();sex = sexT.getText();birthday = jtaddr.getText();address = jtbirth.getText();String strSQL = "insert into student values(?,?,?,?,?)"try pst=conn.prepareStatement(strSQL);pst.setString(1, id);pst.setString(2, name);pst.setString(3, sex);pst.setString(4, address);pst.setString(5, birthday);pst.executeUpdate(); catch (SQLException e1) / TODO Auto-generated catch block/e1.printStackTrace();JOptionPane.showMessageDialog(null, "数据库中已经存在您要添加的学生的学号!");return;/*try pst.executeUpdate(strSQL); catch (Exception exx) JOptionPane.showMessageDialog(null, "数据库中已经存在您要添加的学生的学号!"); * idT.setText(""); nameT.setText(""); sexT.setText(""); * birthdayT.setText(""); departmentT.setText(""); return;*/JOptionPane.showMessageDialog(null, "恭喜您,添加成功了!");if (e.getSource() = subMenu24 | e.getSource() = toolBarButton4) if (idT.getText().trim().equals("")| (nameT.getText().trim().equals("")| (sexT.getText().trim().equals("")| (jtaddr.getText().trim().equals("")| (jtbirth.getText().trim().equals("") JOptionPane.showMessageDialog(null, "请输入信息再点击修改!");return; else id = idT.getText();name = nameT.getText();sex = sexT.getText();birthday = jtaddr.getText();address = jtbirth.getText();String strSQL = "update student set name=?,sex=?,address=?,birthday=? where id=?"try pst=conn.prepareStatement(strSQL);pst.setString(1, name);pst.setString(2, sex);pst.setString(3, address);pst.setString(4, birthday);pst.setString(5, id);pst.executeUpdate(); catch (SQLException e1) / TODO Auto-generated catch block/e1.printStackTrace();JOptionPane.showMessageDialog(null, "数据库中已经存在您要修改的学生记录!");return;/*try pst.executeUpdate(strSQL); catch (Exception exx) JOptionPane.showMessageDialog(null, "数据库中已经存在您要修改的学生记录!"); * idT.setText(""); nameT.setText(""); sexT.setText(""); * birthdayT.setText(""); departmentT.setText(""); return;*/JOptionPane.showMessageDialog(null, "恭喜您,修改成功了!");if (e.getSource() = subMenu23 | e.getSource() = toolBarButton3) String idid = JOptionPane.showInputDialog("请输入要修改的学生学号");if (idid.trim() != "") String strSQL = "select * from student where id =?" ;try pst=conn.prepareStatement(strSQL);pst.setString(1, idid);/ rs =/ st.executeQuery("select * from Coolboy where id =");rs = pst.executeQuery();int count = 0;while (rs.next() id = rs.getString("id");name = rs.getString("name");address = rs.getString("address");sex = rs.getString("sex");birthday = rs.getString("birthday");count+;if (count = 0)JOptionPane.showMessageDialog(null, "对不起,没有您要修改的学生信息!");else idT.setText(id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birthday);idT.setEnabled(false); catch (Exception ex) JOptionPane.showMessageDialog(null, "抱歉,程序出现异常!");if (e.getSource() = subMenu22 | e.getSource() = toolBarButton2) String idDel = JOptionPane.showInputDialog("请输入要删除的学生学号");if (idDel.trim() != "") String strSQL = "select * from student where id =?"try pst=conn.prepareStatement(strSQL);pst.setString(1, idDel);rs = pst.executeQuery();int count = 0;while (rs.next() id = rs.getString("id");name = rs.getString("name");address = rs.getString("address");sex = rs.getString("sex");birthday = rs.getString("birthday");+count;if (count = 0)JOptionPane.showMessageDialog(null, "对不起,没有您要删除的学生信息!");else idT.setText(id);nameT.setText(name);sexT.setText(sex);jtaddr.setText(address);jtbirth.setText(birthday);idT.setEnabled(false); catch (Exception ex) JOptionPane.showMessageDialog(null, "抱歉,程序出现异常!");if (e.getSource() = toolBarButton6 | e.getSource() = subMenu26) if (idT.getText().trim().equals("")| (nameT.getText().trim().equals("")| (sexT.getText().trim().equals("")| (jtaddr.getText().trim().equals("")| (jtbirth.getText().trim().equals("") JOptionPane.showMessageDialog(null, "请点击删除记录按钮!");return; else id = idT.getText();String strSQL = "delete from student where id=?"try pst=conn.prepareStatement(strSQL);pst.setString(1, id);pst.executeUpdate(); catch (Exception exx) JOptionPane.showMessageDialog(null, "出错了!");/* * idT.setText(""); nameT.setText(""); sexT.setText(""); * birthdayT.setText(""); departmentT.setText(""); */return;JOptionPane.showMessageDialog(null, "删除成功!");五、运行截图程序运行查询学生信息添加学生信息修改学生信息删除学生信息六 、课程设计总结和体会这几周的JAVA课程设计,时间上说长不长,说短也不短,却让我学到了很多,第一点就是:JAVA很难,似乎是学不完的,你觉得自己了解一点,是总会发现还有很多自己所不懂的东西,还有很多自己所没探知的领域,很多知识运用到实践中很有一定的难度,看着自己和同学的程序运行结果,突然发现JAVA真的很神奇,居然能运行出那么漂亮的系统,看着运行结果。在我们上机调试程序的过程中,我遇到了很多的问题,说实话这次课程设计自己没有出多大的力,大部分都是借鉴同学的设计成果,自己设计是总是觉得没有头绪,无从下手。看到同学认真看程序的样子,还有修改程序时的熟练,我很羡慕他,我想,我也要将JAVA学好,在将来能为我的就业加分。在这期末考试前期,学院给我们安排的课程设计周,总让我们觉的有些为难我们,这样一个复杂困难而又繁琐的作业,似乎弄得我们既没有时间也没有心情复习,我曾一度地抱怨过学院,在完成它之后,我发现我错了,课程设计不仅让我们巩固了所学的知识,还使得我们学习到了更多平时所忽略的,最重要的是,它磨砺了我们,让我们在大学的下一个阶段能更好的成长。专心-专注-专业