1、JAVA课程设计报告学生网上选课管理 系统 青岛理工大学琴岛学院设 计 报 告课题名称:学生管理系统设计学 院:青岛理工大学琴岛学院专业班级:计算机科学与技术11(专升本)学 号:XXXXXXXXX学 生:XXX指导教师:代学卿青岛理工大学琴岛学院教务处 2011 年 12 月 30 日学 生XXX指导教师代学卿课题名称学生管理系统设计时间2011.12.1912.30设计地点分散设计目的复习、巩固Java语言的基础知识,进一步加深对Java语言的理解和掌握;为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识和实际有机的结合起来,锻炼学生的分析解决实际问题的能力。提高学生适应实际
2、,实践编程的能力;培养学生在项目开发中的创新意识及能力。指导教师评 语系部教研室意 见一、系统需求分析1.开发背景现代学生管理的本质在于快捷方便,以往的学生管理完全手工操做,通过文档记录信息,既浪费时间,又浪费人工、纸张,而且学生和课程以及成绩的信息查询比较麻烦,不能及时提供领导管理上需要的各种信息,例如,老师课程情况、学生成绩情况。随着电子信息技术的飞速发展,这些工作也发生了实质性的进展和变化。现代化的服务手段逐渐替代传统的手工操作,网上选课、网上添加课程、查询成绩等项目开始在教学领域普及。在计算机技术、网络技术的进一步冲击下,学生管理系统随着教育教学改革的深入和素质教育的全面推动,逐渐演变
3、形成信息化网上查询方式,其作用也越来越重要了。为了使学生管理更科学、更方便,减少重复劳动,节省学生信息管理建设和管理中的人力、财力,方便老师及学生查询课程和成绩,所以有必要建立一个学生信息管理系统。这个系统是典型的学生信息管理系统,其开发主要包括后台数据库的建立和维护以及前端应用程序的开发两个方面。2.系统介绍:开发一个学生信息管理系统,主要有三个部分:系统管理,数据管理,数据查询。(1) 系统管理主要用于用户信息的相关管理。主要包括密码设置、用户登录、退出三个功能。(2) 数据管理主要用于信息的增加、删除、更改,主要包括学生管理、课程管理和成绩管理三大模块。其中学生管理下有添加了添加学生、删
4、除学生、修改学生三大功能,同样课程和成绩也有增加、删除、修改这三大功能。(3) 数据查询主要用于查询信息管理,主要包括查询学生信息管理、查询课程信息和查询成绩信息三大功能。3 系统面向的用户群体本系统为某高校所开发。立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提学生信息的现代化发展,实现信息资源的共享。系统的建成无疑会为广大师生提供极大的帮助。4.开发环境Eclipse应用程序Access数据库二、系统总体设计该系统的设计是充分考虑到学生的管理和课程的管理两个大的方面,首先用户需要根据自己的用户名登陆到系统主界面,然后才能对该系统实施操作,否则不能登陆该系统。
5、系统中主要包含的内容有:(1)学生管理中的增、删、改、查等功能;(2)课程管理中的增、删、改、查等功能;(3)用户名密码的更改等操作;(4)以上操作都直接关联数据库;(5)数据库采用的是ACCESS数据库;1.系统功能结构图2-1所示:图2-1系统功能结构图2.系统设计图2-2系统数据流程图三、系统详细设计1. 数据库实体E-R图设计1.1学生管理实体E-R图图3-1学生管理实体E-R图1.2课程管理实体图图3-2课程管理实体图2.数据库表的设计数据库名:student3.1学生表(student)列名数据类型长度是否为空studNochar10否studNamechar10是studSexc
6、har10是studBirthDatechar10是studIsMemberchar10是studAddresschar10是3.2课程表(course)列名数据类型长度是否为空couIDvarchar50否couNamechar10是couTeacherchar10是 coucreditchar20是3.详细设计3.1闪屏界面:闪屏界面主要是用于进入学生管理系统的登录界面之前的一段带时间条的页面,闪屏结束后进入登录界面。 加入时间条,插入了一张闪屏图片。要代码:(1).添加闪烁图片:JLabel back=new JLabel(new ImageIcon(school.jpg); (2)添加
7、进度条: JProgressBar progressBar=new JProgressBar(1,100); (3)添加时间控件: Timer timer;闪屏实体截图:图3-3 闪屏3.2 登录界面:登陆实体截图:图3-4 登陆界面设置一个用户名和密码文本框输入内容。两个标签用户名和密码,两个按钮确定和取消。JTextField txtUsername=new JTextField(10); JPasswordField txtPassword=new JPasswordField(10); JButton btnOK=new JButton(确定); JButton btnCancel=n
8、ew JButton(取消);设置面板,把按钮等加到面板上Container contentPane=this.getContentPane(); contentPane.setLayout(new GridLayout(3,1,5,5);JPanel p1=new JPanel();JPanel p2=new JPanel();JPanel p3=new JPanel();p1.add(new JLabel(用户名:);p1.add(txtUsername);p2.add(new JLabel(密 码:);p2.add(txtPassword);p3.add(btnOK);p3.add(bt
9、nCancel);contentPane.add(p1);contentPane.add(p2);contentPane.add(p3);setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);按钮文本框设置监听 btnOK.addActionListener(this);btnCancel.addActionListener(this);txtUsername.addActionListener(this);txtPassword.addActionListener(this);3.3 主界面 主界面主要是用于对选择相应的功能进行相应的功能,主界面
10、主要包括系统管理、数据管理和数据查询三大功能。 主界面添加JMenuBar菜单条,和JMenu菜单,和JMenuItem菜单项。三个菜单包括:系统管理、数据管理和数据查询。系统管理中包括:密码设置、用户登录、退出。数据管理中包括学生管理、课程管理和成绩管理。数据查询主要包括学生查询、课程查询、成绩查询。 在数据管理页面下可以对学生及课程和成绩等增删改等。在数据查询下可以对学生课程及成绩进行查询。主界面如图3-5:图3-5 主界面重要代码:menu2=new JMenu(数据管理(D); menu2.setMnemonic(D); m21=new JMenu(学生管理); m22=new JMe
11、nu(课程管理); m23=new JMenu(成绩管理); menu2.add(m21); menu2.add(m22); menu2.add(m23); m211=new JMenuItem(添加学生信息); m212=new JMenuItem(修改学生信息); m213=new JMenuItem(删除学生信息); m21.add(m211); m21.add(m212); m21.add(m213); m221=new JMenuItem(添加课程); m222=new JMenuItem(修改课程); m223=new JMenuItem(删除课程); m22.add(m221);
12、 m22.add(m222); m22.add(m223);关联网页代码:if(e.getSource()=m211) new AddStudent(); if(e.getSource()=m311) new SelectStudent(); if(e.getSource()=m212) new ModifyStudent(); if(e.getSource()=m213) new DeleteStudent(); if(e.getSource()=m12) this.dispose(); new LoginWindow(); if(e.getSource()=m221) new AddCou
13、rse(); if(e.getSource()=m222) new ModifyCourse(); if(e.getSource()=m223) new DeleteCourse(); if(e.getSource()=m321) new SelectCourse(); if(e.getSource()=m13) dispose(); 3.4数据库连接学生、课程以及成绩的增删改查都是建立在连接数据库的基础之上,在Access里建立学生表、课程表、成绩表等。建立ODBC数据源的连接。连接数据库重要代码:public class ConnectDB public static Connection
14、 connect() try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); Connection con=DriverManager.getConnection(jdbc:odbc:stu); return con; catch(Exception e) e.printStackTrace(); return null; 3.5数据查询这部分主要功能是查询学生信息、课程信息以及课程信息。查询学生信息如图:图3-6查询学生信息重要代码如下:List list=new ArrayList(); try con=ConnectDB.connect(); s
15、tuName=; pstmt=con.prepareStatement(select * from student where stuName like ?); pstmt.setString(1,%+stuName+%); rs=pstmt.executeQuery(); Student student=null; while(rs.next() student =new Student(); student.setStuNo(rs.getString(stuNo); student.setStuName(rs.getString(stuName); student.setStuSex(rs
16、.getString(stuSex); student.setStuBirthday(rs.getString(stuBirthday); student.setStuMember(rs.getString(stuMember); student.setStuAddress(rs.getString(stuAddress); list.add(student); catch (SQLException e) e.printStackTrace(); return list; try Student student=list.get(n); lab0.setText(student.getStu
17、No(); lab1.setText(student.getStuName(); lab2.setText(student.getStuSex(); lab3.setText(student.getStuBirthday().toString(); lab5.setText(student.getStuAddress(); if(student.getStuMember().trim().equals(团员) lab4.setText(是); else lab4.setText(不是); catch (Exception e) e.printStackTrace(); 3.6添加学生信息这部分
18、的主要功能是向数据库中添加新的学生信息。添加学生信息如图:图3-7 添加学生信息添加学生信息主要代码:sql=select * from student where stuNo=+snumber+; try Statement stm; ResultSet rs; Connection con=ConnectDB.connect(); stm=con.createStatement(); rs=stm.executeQuery(sql); if(rs.next() JOptionPane.showMessageDialog(null, 该号已经存在!); else sql=insert int
19、o student (stuNo,stuName,stuSex,stuBirthday,stuMember,stuAddress) values(+snumber+,+sname+,+ssex+,+sbirthdate+,+smember+,+saddress+); int i=stm.executeUpdate(sql); if(i0) JOptionPane.showMessageDialog(null, 添加成功!); else JOptionPane.showMessageDialog(null,添加失败!); 3.7修改学生信息这部分的主要功能是更改数据库中学生的基本信息。修改学生信
20、息如图:图3-8 修改学生信息修改学生信息主要代码: try Statement stm1; ResultSet rs1; Connection con1=ConnectDB.connect(); stm1=con1.createStatement(); sql1=update student set stuName=+sdname+,stuSex=+sdsex+,stuBirthday=+sdbirthdate+,stuMember=+sdmember+,stuAddress=+sdaddress+where stuNo=+sdnumber+; int i=stm1.executeUpdat
21、e(sql1); if(i0) JOptionPane.showMessageDialog(null, 修改成功!); else JOptionPane.showMessageDialog(null,修改失败!); catch(Exception ee) 3.7删除学生信息这部分的主要功能是删除数据库中学生的基本信息。删除学生信息如图:图3-9 删除学生信息删除学生信息主要代码:sqldel=delete from student where stuNo=+sdnumber+; int i=stm1.executeUpdate(sqldel); if(i=1); JOptionPane.sho
22、wMessageDialog(null, 删除成功!); catch(Exception ee) JOptionPane.showMessageDialog(null,删除失败!); ee.printStackTrace(); 3.8课程管理课程管理也是有增删改查四个功能,并且与学生管理相对应的四个功能技术上基本相似,在此就不在一一赘述,在这只显示了修改课程信息窗口(如图3-10),以做示例,其它三个功能基本一样。修改课程主要代码:if(cid.trim().isEmpty()|cname.trim().isEmpty()|ccredit.trim().isEmpty()|cteacher.t
23、rim().isEmpty() JOptionPane.showMessageDialog(null, 请将资料填写完整!); try Statement stm1; ResultSet rs1; Connection con1=ConnectDB.connect(); stm1=con1.createStatement(); sql1=update course set CouID=+cid+,CouName=+cname+,CouCredit=+ccredit+,CouTeacher=+cteacher+where CouID=+cid+; int i=stm1.executeUpdate
24、(sql1); if(i0) JOptionPane.showMessageDialog(null, 修改成功!); else JOptionPane.showMessageDialog(null,修改失败!); catch(Exception ee)图3-10 修改课程3.8用户密码更改这部分的主要功能是更改数据库中用户登录的密码。用户密码更改如图3-11:图3-11 用户密码更改主要代码:sql=update login set password=+pw+ where userName=+usern+; try Statement st; Connection con1=ConnectDB
25、.connect(); st=con1.createStatement(); int i=st.executeUpdate(sql); if(i0) JOptionPane.showMessageDialog(null, 密码修改成功!); else JOptionPane.showMessageDialog(null,密码修改失败!); catch (Exception e2) else JOptionPane.showMessageDialog(null, 两次新密码不一致,请重新填写!); else JOptionPane.showMessageDialog(null, 用户名或密码错误!); txtuser.requestFocus(); 四、系统总结学生管理系统的流程主要是开始闪屏界面(Splashwindow)接下来是登陆界面(Loginwindow)在接下来开始进入学生系统管理的主界面(Mainwindow)。其中还要做数据库的建立以及连接。 学生系统主要分为三大部分系统管理、数据管理、数据查询。其中系统管理主要包括用户的一些信息。数据管理主要包括学生、课程的增删改。数据查询主要包括学生、课程的查询。五、系统设计心得体会通过做学生管理系统使自己对数据库的增加删除修改查询等功能进一步熟悉了解,深深体会到做一个大系统需要整体的思路设计及构思。