![java学生成绩排名系统_第1页](http://file4.renrendoc.com/view/dbeb7ecb31a35550f0f9e839c36a550f/dbeb7ecb31a35550f0f9e839c36a550f1.gif)
![java学生成绩排名系统_第2页](http://file4.renrendoc.com/view/dbeb7ecb31a35550f0f9e839c36a550f/dbeb7ecb31a35550f0f9e839c36a550f2.gif)
![java学生成绩排名系统_第3页](http://file4.renrendoc.com/view/dbeb7ecb31a35550f0f9e839c36a550f/dbeb7ecb31a35550f0f9e839c36a550f3.gif)
![java学生成绩排名系统_第4页](http://file4.renrendoc.com/view/dbeb7ecb31a35550f0f9e839c36a550f/dbeb7ecb31a35550f0f9e839c36a550f4.gif)
![java学生成绩排名系统_第5页](http://file4.renrendoc.com/view/dbeb7ecb31a35550f0f9e839c36a550f/dbeb7ecb31a35550f0f9e839c36a550f5.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
/软件学院课程设计报告书课程名称JavaEE与中间件设计题目学生成绩排名系统专业班级学号姓名指导教师年1月目录1设计时间 12设计目的 13设计任务 14设计内容 14.1需求分析 1总体目标 2具体目标 2系统数据建模(ER图) 2系统功能建模(数据流程图) 3数据字典 34.2总体设计 6系统层次图 6数据库设计 64.3详细设计 74.4运行与测试 175总结与展望 19参考文献 20成绩评定 201设计时间2013年2设计目的JavaEE课程设计是对所学JavaEE与中间件课程的小结,是提高学生对所学知识综合应用能力的一种方式,是集中实践性环节之一。要求同学们对课程中所学习到的知识综合运用,开发有一定规模的JavaWeb程序。3设计任务学生成绩排名系统:(1)功能描述:用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限和学生用户权限。管理员用户可以查看所有学生的成绩信息(假设只有一门课程),以及对所有学生的成绩进行排名;学生用户可以添加、查看和删除自己的成绩信息。(2)添加学生成绩:学生添加成绩信息(包括学号、姓名、成绩);(3)查看学生成绩:管理员可以查看所有学生的成绩,学生用户只能查看自己的成绩;(4)删除成绩:学生可以删除自己的成绩;(5)对成绩排名:管理员对所有学生成绩进行排名。4设计内容4.1需求分析成绩排名成为学校教学管理中十分复杂的管理工作之一,单纯的采用传统的手工处理已经不符合教育和管理的要求,而计算机具有运算速度快,处理能力强等特点,很自然地进入到这一应用领域中。因此为了保证学校的信息流畅,工作高效,有必要设计一个学生成绩排名系统。这不但能使教务人员从复杂的成绩管理中解脱出来,而且对于推动教学的发展也起到了非常重要的作用。随着学校规模的不断扩大,专业,班级,学生的数量急剧增加,有关学生成绩的各种信息量也成倍增长,而目前许多高校的学生成绩排名仍停留在复杂的人工操作上,重复工作较多,工作量大,效率低,因此,迫切需要开发基于互联网的个人成绩排名系统。此次课程设计为设计一个就是设计一个这样的学生个人成绩排名系统,该系统要求用户以合法身份登录后才能进行所有操作。用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限和学生用户权限。管理员用户可以查看所有学生的成绩信息(假设只有一门课程),以及对所有学生的成绩进行排名;学生用户可以添加、查看和删除自己的成绩信息。4.1.1总体目标设计一个学生成绩排名系统,该系统要求用户以合法身份登录后才能进行所有操作。用户以合法身份登录系统后,才能进行所有操作;登录系统时,有两种权限:管理员权限和学生用户权限。管理员用户可以查看所有学生的成绩信息(假设只有一门课程),以及对所有学生的成绩进行排名;学生用户可以添加、查看和删除自己的成绩信息。4.1.2具体目标实现以下功能:(1)添加学生成绩:学生添加成绩信息(包括学号、姓名、成绩);(2)查看学生成绩:管理员可以查看所有学生的成绩,学生用户只能查看自己的成绩;(3)删除成绩:学生可以删除自己的成绩;(4)对成绩排名:管理员对所有学生成绩进行排名。4.1.3系统数据建模(ER图)E-R方法是“实体-联系方法”(Entity-RelationshipApproach)的简称。它是描述现实世界概念结构模型的有效方法。E-R图提供了表示实体类型、属性和联系的方法,是用来描述现实世界的概念模型。学生学生 屋 成绩信息 屋 操作密码管理员学号密码id成绩姓名学号操作姓名姓名图1系统ER图系统功能建模(数据流程图)数据流图简称DFD,它用来描述目标系统的逻辑结构,它是由实体部分,处理部分,数据存储部分和数据流四部分组成,为了使数据流图所描述逻辑结构更加清晰,容易阅读,对数据流图作如下说明:密码密码成绩管理员成绩信息Id学号姓名P学生成绩排名系统学生操作信息学号密码操作信息图2学生成绩排名系统数据流图数据字典(一)数据流的描述数据流名称:学号简述:学生的学号数据流来源:数据库数据流去向:jsp页面数据项组成:查询的学生学号数据流名称:姓名简述:学生或管理员的姓名数据流来源:数据库数据流去向:jsp页面数据项组成:显示的学生或管理员姓名数据流名称:id简述:管理员的id数据流来源:数据库数据流去向:jsp页面数据项组成:管理员id数据流名称:成绩简述:学生姓名和成绩数据流来源:数据库数据流去向:查询页面数据项组成:学号+成绩数据流名称:密码简述:学生或管理员的登录密码数据流来源:数据库数据流去向:jsp页面数据项组成:数字数据流名称:操作信息简述:管理员或学生用户的操作数据流来源:jsp页面数据流去向:数据库数据项组成:增、删、查(二)处理逻辑的描述处理逻辑名称:添加学生成绩简述:学生登入后对学号、姓名、成绩的添加输入的数据流:学生学号、姓名、成绩处理描述:学生录入的成绩信息经过系统处理存储到数据库中输出数据流:学号、成绩信息处理逻辑名称:删除学生成绩简述:学生登入后对自己成绩的删除输入的数据流:学生用户名和密码处理描述:学生删除的信息经过系统处理后移除数据库输出数据流:学生新成绩处理逻辑名称:查看学生成绩简述:学生登入后对学号、姓名、成绩、课程名称的查看输入的数据流:用户信息处理描述:通过查看处理显示学生成绩输出数据流:学生成绩处理逻辑名称:成绩排名信息简述:管理员对学生成绩进行排名输入的数据流:学生的成绩处理描述:系统对学生成绩进行排名输出数据流:排名后的学生成绩(三)外部实体描述外部实体名称:学生简述:确定学生权限进行特定操作输出数据流:学生信息 外部实体名称:管理员简述:确定管理员权限进行特定操作输出数据流:学生成绩信息 外部实体名称:成绩信息简述:通过系统操作显现成绩信息输出数据流:用户对数据操作后数据的最终情况4.2总体设计系统层次图系统层次图如下:学生成绩排名系统学生成绩排名系统登录界面管理员登录添加成绩学生登录查看个人成绩查看所有成绩对成绩排名删除个人成绩图3系统层次图数据库设计表1stu表列名数据类型长度允许空文字描述♀snovarchar50Y学号kindvarchar50Y类型namevarchar50Y姓名Passwordvarchar10Y密码表2course表列名数据类型长度允许空文字描述snovarchar50Y学生学号♀cnamevarchar50课程名称gradefloat10Y学生成绩4.3详细设计主要代码如下:1与数据库的连接packageutil;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.SQLException;publicclassDBConnection{ publicstaticConnectiongetConnection(){ finalStringdriver="com.microsoft.jdbc.sqlserver.SQLServerDriver"; finalStringurl="jdbc:microsoft:sqlserver://localhost:1433;databasename=mydb"; Connectioncon=null; try{ Class.forName(driver); }catch(ClassNotFoundExceptione){ //e.printStackTrace(); System.out.println("驱动加载失败!"); } try{ con=DriverManager.getConnection(url,"sa","sa"); con.setAutoCommit(false); }catch(SQLExceptione){ e.printStackTrace(); } returncon; } publicstaticvoidmain(String[]args){ //TODOAuto-generatedmethodstub System.out.print(DBConnection.getConnection()); }}2用户登录页面的实现:<%@pagelanguage="java"import="java.util.*"pageEncoding="GBK"%><%@taglibprefix="s"uri="/struts-tags"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSP'Login.jsp'startingpage</title> <metahttp-equiv="pragma"content="no-cache"> <metahttp-equiv="cache-control"content="no-cache"> <metahttp-equiv="expires"content="0"> <metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"> <metahttp-equiv="description"content="Thisismypage"> <!-- <linkrel="stylesheet"type="text/css"href="styles.css"> --></head><body><s:formaction="login"><s:textfieldname="sno"label="学号"></s:textfield><s:passwordname="password"label="密码"></s:password><s:radiolist="#{1:'普通用户<br>',2:'管理员'}"name="radio1"listValue="value"listKey="key"></s:radio><s:submitvalue="登录"></s:submit></s:form></body></html>3StudentDAO:(部分)publicclassStudentDAO{ publicStudentgetStudent(Studentstudent){ Connectioncon=DBConnection.getConnection(); Students=null; try{ PreparedStatementps=con.prepareStatement("select*fromstuwheresno=?andkind=?"); ps.setString(1,student.getSno()); ps.setString(2,student.getKind()); ResultSetrs=ps.executeQuery(); if(rs.next()){ s=newStudent(); s.setSno(rs.getString("sno")); s.setKind(rs.getString("kind")); s.setName(rs.getString("name")); s.setPassword(rs.getString("password")); } mit(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } returns; } publicListgetGrades(Studentstudent){ Connectioncon=DBConnection.getConnection(); Listlist=newArrayList(); try{ PreparedStatementps=con.prepareStatement("select*fromcoursewheresno=?"); ps.setString(1,student.getSno()); ResultSetrs=ps.executeQuery(); while(rs.next()){ Coursecourse=newCourse(); course.setCname(rs.getString("cname")); course.setGrade(rs.getFloat("grade")); list.add(course); } mit(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } returnlist; } publicvoidgetAddGrades(Studentstudent,Coursecourse){ Connectioncon=DBConnection.getConnection(); try{ PreparedStatementps=con.prepareStatement("insertintocoursevalues(?,?,?)"); ps.setString(1,student.getSno()); ps.setString(2,course.getCname()); ps.setFloat(3,course.getGrade()); ps.executeUpdate(); mit(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } publicvoidgetDeleteGrades(Studentstudent,Coursecourse){ Connectioncon=DBConnection.getConnection(); try{ PreparedStatementps=con.prepareStatement("deletefromcoursewheresno=?andcname=?"); ps.setString(1,student.getSno()); ps.setString(2,course.getCname()); ps.executeUpdate(); mit(); con.close(); }catch(SQLExceptione){ e.printStackTrace(); } } 4StudentAction:(部分)publicclassStudentActionextendsActionSupport{ privateintradio1; privateStringsno; privateStringpassword; privateStringkind; privateStringaddname; privatefloataddgrade; privateStringdeletename; privateStringupdatename; privatefloatupdategrade; privatestaticStudentstudent=newStudent(); publicStringgetSno(){ returnsno; } publicvoidsetSno(Stringsno){ this.sno=sno; } publicStringgetPassword(){ returnpassword; } publicvoidsetPassword(Stringpassword){ this.password=password; } publicStringgetAddname(){ returnaddname; } publicvoidsetAddname(Stringaddname){ this.addname=addname; } publicfloatgetAddgrade(){ returnaddgrade; } publicvoidsetAddgrade(floataddgrade){ this.addgrade=addgrade; } publicStringgetDeletename(){ returndeletename; } publicvoidsetDeletename(Stringdeletename){ this.deletename=deletename; } publicStringgetUpdatename(){ returnupdatename; } publicvoidsetUpdatename(Stringupdatename){ this.updatename=updatename; } publicfloatgetUpdategrade(){ returnupdategrade; } publicvoidsetUpdategrade(floatupdategrade){ this.updategrade=updategrade; } publicintgetRadio1(){ returnradio1; } publicvoidsetRadio1(intradio1){ this.radio1=radio1; } publicStringgetKind(){ returnkind; } publicvoidsetKind(Stringkind){ this.kind=kind; } publicStringlogin(){ student.setSno(sno); student.setPassword(password); StudentServicestudentService=newStudentService(); if(radio1==1) student.setKind("普通用户"); else student.setKind("管理员"); if(studentService.checkUser(student)==true){ if(student.getKind().equals("普通用户")) return"success1"; else return"success2"; }else return"failure"; } publicStringshowAllGrades(){ StudentServicestudentService=newStudentService(); Listlist=studentService.getGrades(student); ActionContextact=ActionContext.getContext(); Maprequest=(Map)act.get("request"); request.put("students",list); return"showgrades"; } publicStringaddCourse(){ Coursecourse=newCourse(); course.setCname(addname); course.setGrade(addgrade); StudentServicestudentService=newStudentService(); studentService.getAddGrades(student,course); Listlist=studentService.getGrades(student); ActionContextact=ActionContext.getContext(); Maprequest=(Map)act.get("request"); request.put("addcourse",list); return"addcourse"; }5Struts配置文件:<?xmlversion="1.0"encoding="GBK"?><!DOCTYPEstrutsPUBLIC"-//ApacheSoftwareFoundation//DTDStrutsConfiguration2.0//EN""/dtds/struts-2.0.dtd"><struts> <!--处理中文乱码--> <constantname="struts.i18n.encoding"value="gbk"></constant> <packagename="com"extends="struts-default"> <!--此处的class属性值不是实际的类--> <actionname="login"class="action.StudentAction"method="login"> <resultname="success1">/index.jsp</result> <resultname="success2">/index1.jsp</result> <resultname="failure">/login.jsp</result> </action> <actionname="showgrades"class="action.StudentAction"method="showAllGrades"> <resultname="showgrades">/showAllGrades.jsp</result> </action> <actionname="showAndAddgrades"class="action.StudentAction"method="showAllGrades"> <resultname="showgrades">/showAndAdd.jsp</result> </action> <actionname="showAndDeletegrades"class="action.StudentAction"method="showAllGrades"> <resultname="showgrades">/showAndDelete.jsp</result> </action> <actionname="showAndUpdategrades"class="action.StudentAction"method="showAllGrades"> <resultname="showgrades">/showAndUpdata.jsp</result> </action> <actionname="showAverageGrades"class="action.StudentAction"method="showAverageGrades"> <resultname="showaveragegrades">/showaverage.jsp</result> </action> <actionname="add"class="action.StudentAction"method="addCourse"> <resultname="addcourse">/add.jsp</result> </action> <actionname
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商务秘书测验综合练习试题附答案
- 《镇痛镇静谵妄》课件
- 《燕子》公开课课件
- 《咖啡馆合作方案》课件
- 《洗衣机修理》课件
- 经济效益评价的基本方法课件
- 大学生科学实验报告解读
- 食品加工项目生产合作合同
- 中学生阅读经典作品感悟
- 中学生如何应对挫折征文
- 2025年小学督导工作计划
- 2024-2025学年部编版历史九年级上册期末复习练习题(含答案)
- 2025年北京生命科技研究院招聘笔试参考题库含答案解析
- 银行金融机构银行金融服务协议
- 基于ChatGPT的ESG评级体系实现机制研究
- GB/T 27697-2024立式油压千斤顶
- 《消防机器人相关技术研究》
- 《商务数据分析》课件-商务数据的分析
- 2024年考研政治真题及答案
- 【直播薪资考核】短视频直播电商部门岗位职责及绩效考核指标管理实施办法-市场营销策划-直播公司团队管理
- 项目设计报告范文高中
评论
0/150
提交评论