学生选课管理系统(共21页).doc
精选优质文档-倾情为你奉上本科生毕业论文设计学生选课管理系统作者姓名:刘双增指导教师:李铁楠所在学院:数学与信息科学学院专业(系):计算机科学与技术班级(届):2011级二一五年 四月十五专心-专注-专业目 录学生选课管理系统数学与信息科学学院 计算机科学与技术专业指导教师:李铁楠作 者:刘双增摘要:现今随着计算机的不断普及,计算机应用技术的不断成熟,它的应用范围也越来越广泛,包括其在学校中学生选课的管理方面的应用,也越来越成熟与先进。学生选课管理系统能够极大的方便学校各个角色的人员在关于选课的操作,如学生选课、退科,教师录入、修改、查询成绩等,极大的提高了学校整体管理活动的工作效率。本文主要阐述学生选课管理系统的整个开发流程,同时对开发这个系统做一个比较好总结。该学生选课管理系统利用的是java面向对象语言与jsp服务器脚本语言,后台数据库是用的 microsoft sql server 关系数据库。关键词:Java,Jsp,SqlServer 1.绪论1.1课题背景在现今学校的规模越来越大,学生的数量越来越多的大背景下,学校中的学生的选课管理效率的高低也越来越受到人们的重视。如果学生选课、退课,教师的录入成绩、修改成绩,管理员的管理学生、教师信息都需要手工完成的话,将会花费很大的精力,而且准确率也不能得到有效的保证。在此我借本次毕业设计的机会,开发一个适用于大部分高校的学生选课管理系统,旨在提高学校对学生选课管理的效率,减少学校的负担。1.2 课题目标 开发学生选课管理系统,就是利用计算机对学生选课进行管理,改善学校在实际管理时需要大量人力和无力的现状,现对该系统的开发制定如下的目标: (1)学生选课模块学生登录到系统中,就能够查询下学期的开课信息,能够进行选课、退课、修改密码、修改个人信息等操作。 (2)教师教学模块教师登录到系统中,能够对学生的成绩进行管理。 (3) 教务管理模块管理员登陆导系统中,能够管理系统中各类信息。1.3 课题意义 对于学生而言,该学生选课管理系统让其在计算机中进行选课,查询自己成绩;对于教师而言,该系统可以让其在计算机中录入,修改,查询学生的成绩;对于管理员而言,该系统可以让其对各类信息进行增删改查的管理。这些本身在现实生活中很繁杂的工作量到了计算机这里缺变得异常简单,很大程度上提高了这些工作的效率,因此对于学生、教师、教务管理人员各个角色开发出一套完整的学生选课管理系统是具有重大意义的。2.关键技术介绍本系统用JSP/JAVA开发语言,使用MySQL数据库,采用MVC框架模型在eclips开发平台上完成。下面详细介绍JSP、JAVA、MySQL、JDBC桥技术、JavaBean技术。2.1 Jsp技术Jsp技术是由Sun公司提倡与其它公司共同制定的一种动态网页技术标准。它在形式上的组成是在Html文档中嵌入Java语言。由java的“一次编译,到处执行”的特点可以知道Jsp也具有这样的特点。 Jsp是Servlet的扩展,与Servlet一样,Jsp是一种基于Java的服务端技术,其目的是简化建立和管理动态网站的工作。在Html文件中插入Java程序和Jsp标签就可以构成Jsp页面,其中Jsp页面是以“.jsp”作为扩展名。Jsp技术具有简单快捷、动态内容的生成和显示相分离,组件重用、易于部署、升级和维护等特点。2.2 Java技术Java是由Sun公司在1995年提出的的Java程序设计语言和Java开发平台的总称。Java作为编程语言,语法简单明了,规则清晰严谨,初学者很容易上手。Java作为一个开发平台,它是由java虚拟机和java的api文档组成。让Java流传这么广,应用越来越广泛的一个重要原因是Java的应用程序具有“一次编译,到处运行”的特点。 Java从功能上来分可以分为:JavaSE、JavaEE、JavaME三个不同的应用方向。Java具有平台无关性、安全性、面向对象、健壮性、分布式、解释型、动态等特点2.3 SqlServer技术SqlServer是由微软公司推出的关系型数据库系统,拥有良好的伸缩性和其它软件集成度高的优点,而且还可以跨平台使用。2.4 Jdbc桥技术因为SqlServer数据库并不是用Java编程语言来开发的,但我们必须要用Java语言来链接数据库,因此我们可以用桥连接来实现链接数据库这个过程。2.5 JavaBean技术在软件开发过程中,经常用使用“组件“的概念,所谓组件就是可以重用的软件模块,JavaBean也是一种组件技术。传统上的JavaBean组件分为可视化和非可视化两种。可视化组件可以在运行结果中观察到,如Swing中的按钮、文本框等,通常也成为控件;而非可视化组件一般不可以观察到,通常用来处理一些复杂的业务,主要用在服务器端。而对于Jsp来说,只支持非可视化的JavaBean组件。非可视化的JavaBean又可以分为业务Bean和数据Bean两种,前者用于封装业务逻辑、数据库操作,后者可用来封装数据源。 3.可行性研究3.1经济可行性分析系统的开发除了要耗费一定的时间之外,另外需要的开发软件及工具平台都是不用花钱的,而且这个系统可以在未来的一段时间发挥稳定的作用,因此开发该系统在经济上是完全可行的。3.2 操作可行性分析随着计算机的普及,越来越多人对计算机有着不错的了解与认识,而且本系统拥有良好的用户界面,可以让使用者快速的操作方法,因此开发本系统在操作上是可行的。3.3 技术可行性分析该系统用到的技术都是在学校中学习过的,都是比较基础与普及的,因此,从技术可行性分析来看是可行的。3.4 可行性综合分析从前面的课题背景中可以知道,学生选课管理系统能够给学校的管理工作带来很大的便利,整体上看是可行的。4.系统需求分析因为对现实中学生在选课时的实际需求进行了调查统计,故该系统结合实际,给出了如下的解决方案。4.1系统流程概述 管理员可以选择管理员的角色进入到本系统中,可以对系统中的各个信息进行全方面的管理。如学生信息,教师信息,用户信息。 教师可以选择教师角色进入到本系统中,可以对所授班级的各个学生的成绩进行管理(增删改查),并可以修改自己的个人信息。 学生可以选择学生角色进去到本系统中,可以根据下学期要开的课程来选课,可以查看本学期已经修完课程的成绩,并修改自己的个人信息。 5.系统总体设计从上面的系统需求中大体知道了本系统的运行流程,下面将分析系统功能设计与数据库设计。 5.1 系统功能设计 该系统有3个部分:学生模块、教师模块、管理员模块。用户登录系统时,会先判断用户名与密码是否匹配,如果匹配会提示错误,如果匹配,则可以进去每个角色相对应的页面。5.2 数据库设计我为该系统设计了9张表,在这里列出主要的5张表分别为学生表、课程表、成绩表、教师表和用户表,如下所示:表5-1 学生表字段字段名类型可否为空主键sNo学号varchar(15)否是sName姓名varchar(15)sSex性别varchar(4)sAge年龄IntsDep所在系varchar(15)sClass班级varchar(15) 表5-2 课程表字段字段名类型可否为空主键cNo课程编号varchar(15)否是cName课程名称varchar(15)否tName授课老师varchar(15)credit学分float表5-3 成绩表字段字段名类型可否为空主键sNo学号varchar(15)否是cNo课程编号varchar(15)否是cType成绩种类varchar(15)否是cScore课程成绩int 表5-4 教师表字段字段名类型可否为空主键tNo教师编号varchar(15)否是tName教师姓名varchar(15)tSex教师性别varchar(4)tDep所在系varchar(16) 表5.5 用户表字段字段名类型可否为空主键id用户idvarchar(15)否是name用户名varchar(15)否password密码varchar(15)否position角色varchar(15)否 6.系统详细设计6.1 身份验证模块该界面可以验证用户名与密码是否匹配,并可以选择学生、教师、管理员三个角色进行登录。如果不匹配会提示错误,并重新登录,如果匹配,会根据角色的不同,进入不同的界面。图6.1 系统登录界面主要的代码实现(以判断学生角色为例):if(type.equals("stu")sql="select 学号 from 学生表 where 身份证号='"+psd+"'"rs=db.executeQuery(sql);try if(rs.next()s=rs.getString(1).trim();/删去后面多余的空格if(s.equals(user)System.out.println(user+psd+type);System.out.println(s+"dd");RequestDispatcher rd=req.getRequestDispatcher("./Student.jsp");rd.forward(req,res);/rd.forward(req,res);catch (SQLException e) / TODO Auto-generated catch blocke.printStackTrace();6.2 学生模块 以学生角色进入系统后会进入学生主界面图6.2 学生主界面学生可以点击“选报课程”,进入可供选课的界面图6.3 学生选课界面实现选报课程的核心代码:public int addCourse()SqlBean db=new SqlBean();String sql ="insert into 课程表 values('"+cId+"','"+cNa+"','"+cMark+"','"+cBook+"','"+bEditor+"','"+bPublic+"','"+bEdition+"','"+bPrice+"')"return db.executeUpdate(sql);学生点击“查询课表”可以显出自己已经所选择的所有课程图6.4 学生课表界面下面是实现查询课表的核心代码:public ResultSet getCourse(String cId)SqlBean db=new SqlBean();String sql="select * from 课程表 where 课号='"+cId+"'"return db.executeQuery(sql);学生点击“修改信息”可以修改自己的个人信息图6.5 学生修改个人信息界面下面是实现修改学生信息的核心代码,就是对学生表进行修改的操作,sql语句用update操作语句。public int update(String sId,String sPhone,String sHome,String password) throws UnsupportedEncodingExceptionUserOp use=new UserOp();SqlBean db=new SqlBean();sHome=new String(sHome.getBytes("ISO8859_1");String sql="update 学生表 set 移动电话='"+sPhone+"',籍贯='"+sHome+"' where"+" 学号='"+sId+"'"return db.executeUpdate(sql)+use.updatePassword(sId, password);6.3教师模块以教师角色进入教师主界面图6.6教师主界面教师点击“录入成绩”,进入录入成绩界面图6.7教师录入成绩界面下面是实现教师录入成绩的核心代码,就是在选课表中修改记录,达到录入的成绩的效果:public int putGrade(String stu_id,String course_id,int grade) String sql="update 选课表 set 成绩="+grade+" where " +"学号='"+stu_id+"'"+" and 开课号='"+course_id+"'"SqlBean db=new SqlBean();int num=db.executeUpdate(sql);return num;教师点击“查询课表”、“修改信息”进入的界面与学生点击“查询课表”、“修改信息”进入的界面很类似,在此不再赘述。6.4管理员模块以管理员角色进入管理员主界面图6.8 管理员主界面管理员点击课程信息,进入课程信息管理界面 图6.9 课程信息管理界面以实现删除课程为例给出核心代码:public int deleteCourse(String cId)SqlBean db=new SqlBean();String sql="delete from 课程表 where 课号='"+cId+"'"return db.executeUpdate(sql);管理员点击“教师信息”,进入教师信息管理界面图6.10 教师信息管理界面以实现修改教师为例,给出核心代码:public int updateTeacher()SqlBean db=new SqlBean();String sql="update 教师表 set 身份证号='"+pId+"',姓名='"+tNa+"',性别='"+tSex+"',移动电话='"+tPhone+"',籍贯='"+tHome+"',所在院系='"+tDep+"',职称='"+tPo+"',负责人='"+tMa+"' where 工号='"+tId+"'"System.out.println(tId+pId+tNa+tSex+" "+tPhone+" "+tHome+" "+tDep+tPo+tMa);return db.executeUpdate(sql);管理员点击“学生信息”进入学生信息管理界面图6.11学生信息管理界面以实现增加学生为例,给出核心代码:public int addStudent()/增加学生SqlBean db=new SqlBean();String sql="insert into 学生表 values ('"+sId+"','"+pId+"','"+sNa+"','"+sSex+"','"+sPhone+"','"+sHome+"','"+sMajor+"','"+sDep+"',"+totalMark+")"return db.executeUpdate(sql);7.系统测试7.1测试原则具体的测试基本原则有如下几点:第一,测试应当尽早的,不断的进行。第二,在设计测试实例时需要考虑到输入的合法性,尤其是在特殊的情况下最好不要制造极端状态和意外状态。第三,严格执行制定好的测试计划。这个测试计划应该具有指导性。第四,安排测试的时间要尽量的宽松,最好不要寄希望于在很的短的一个时间能完成一个较高水平的测试。第四,最好能保存好指定的测试计划、设计的测试用例、出现的错误统计和最终总结的分析报告,这样为以后的维护工作带来很大的便利。7.2 测试实例表7.1 测试实例表测试用例场景测试用例预期结果实际结果 TC1登录进去系统登录界面,输入用户名与密码,选择学生身份登录系统密码如果正确,成功登录。否则,会提示错误信息,点击确定,重新输入。同预期TC2密码修改在系统主页面,单击“密码修改”后输入新密码和确认密码密码如果为空或者与旧密码相同,提示修改失败,否则提示成功同预期TC3注销点击页面右上方“注销”,在弹出的提示方框中选择“确定”或“取消”如果选择“确定”则表示退出系统,如果选择“取消”则表示退出系统失败,继而返回原界面同预期7.3 测试小结 上面部分主要是测试了学生选课管理系统的可行性,并且介绍了对本系统的测试方式,描述了一些简单的测试实例。而且还将测试的最后实际结果与一开始预测的结果进行了对比。由上面的结果可以知道,整个系统的设计都比较符合要求,大体上符合一开始在需求中提出的各种要求。8.总结在本次毕业设计的整个过程中,让我收获最大的是:我对这几年所学的知识有了一个比较系统的认识和理解,从不同角度理解了它们。而且在面对各种各样的问题自己由一开始的着急抓脑到了后来的淡定思考,即自己面对问题的心态随着设计的不断进行而越来越冷静与理智。系统从整体上实现了预期中的效果,方便了学生、教师、教务管理员的各个活动。但在过程中也遇到了很多问题,通过求助过同学与导师才得到比较好的解决方案。比如在写jsp界面调试时,发现从后台传到前台的汉字是乱码以及从前台读入到后台的汉字也是乱码等类似编码的问题,通过自己查找资料,和自己的验证,可以分别利用response.setCharacterEncoding(|”utf-8”)和request.setCharacterEnconding(“urtf-8”)来统一设定汉字的编码方式,从而解决了中文乱码的问题。还有其它比如在设计系统时遇到表结构的设计的困扰,初步完成系统时出现的各种bug等等问题,在周边同学与导师的帮助下也都得到了解决。当然因为自身能力与时间的限制,系统的一些功能还存在一些不足,有待改进与完善。最后在整个过程中得到了指导老师和同学们的许多帮助,使我顺利的完成了这个系统,在这里,我表示衷心的感谢! 9.参考文献1张磊,丁香乾.Java Wbe程序设计.电子工业出版社,2008 581-121.2李兴华.Java开发实战经典,2009 108-180.3李兴华.Java Web开发实战经典基础篇,2009 124-220.4Java学习路线图.Java经典编程300例,明日科技 2008 56-78.5侯天超 Web编程基础,2008 52-78.6范春晓.浅谈JSP动态网站开发技术J.中国科技博览, 2011 58-92.Student course management systemAbstract:Nowadays, with the popularization of computer, computer application technology continues to mature, the scope of its application is more and more widely, including its application in middle school students in course selection management, is becoming more and more mature andadvanced. Student course management system to facilitate the school each role great staff on thecourse of operation, such as the selection of students, teachers, retired, input, modify, query results, which greatly improves the work efficiency of the whole school management activities. This paper mainly discusses the student management system of the entire development process, at the same time, the development of this system to do a good summary.The student management system is the Java object oriented language and JSP server scriptlanguage, the background database is Microsoft SQL database using server.Key Words: Java, Jsp, SqlServer