实验报告管理系统报告.doc
《实验报告管理系统报告.doc》由会员分享,可在线阅读,更多相关《实验报告管理系统报告.doc(28页珍藏版)》请在咨信网上搜索。
徐州工程学院软件项目设计报告 软件项目设计报告 实验报告管理系统 所在班级 12计卓 小组成员 20120511218 江灵瞳 20120506143印海平 20120506144钱晨晨 学院名称 信电工程学院 专业名称 计算机科学与技术 指导教师 胡局新 起止日期 2014。12。16—2015。1。15 2015年 1月 15日 目 录 1 绪论1 1.1开发背景1 1。2 本次设计完成的工作1 1。3 任务分工1 1。4 任务1 2 系统分析2 2.1需求分析2 2.2可行性分析2 2。3 用例图2 3 系统设计与实现4 3。1系统目标4 3.2系统功能结构4 3.3功能流程及工作流程4 3.4系统流程图5 3。5构建开发环境5 3。7文件夹组织结构6 3.8 学生模块的实现6 3。9 老师模块的实现19 结论35 26 1 绪论 1.1开发背景 实验教学是学生技能培养的重要环节之一,学生实验报告的质量在一定程度上反映了实验教学的质量,实验报告管理水平也反映了实验教学管理水平。目前,大部分学校所提交的实验报告大多还停留在以纸为介质的方式上,这将严重制约着实验教学的开展.首先,很多课程的实验结果在纸质实验报告中不能表现或不能完全表现,其次纸质实验报告的批改和分析也是实验授课老师的一个很重负担,如何提高学生实验报告的表象能力,提高教师批改实验报告的效率并及时发现和纠正实验报告中存在的问题是许多课程实验授课教师所面对的一个难题. 1.2 本次设计完成的工作 老师登录该系统可以上传、下载实验报告、查看学生做的实验报告并给学生打分、老师可以查看实验验课程、实验课程列表、查看实验提交情况等。 学生登录该系统可以上传、下载实验报告、查看实验课程和实验课程列表。 1.3 任务分工 组织结构:为了完成学生信息管理系统的项目开发,班级组成了一个项目团队,人员分工:为了明确项目团队中每个人的任务分工,现制定人员分工,如下表2。1所示: 表2。1 人员分工 成员 角色 负责的模块内容 A 江灵瞳 学生的上传,下载,学生查看实验课程,查看实验列表 B 印海平 老师的上传,下载,和老师填写分数,数据库设计 C 钱晨晨 老师查看实验课程,查看实验列表,查看实验上交情况,登录 1.4 任务 我们三个人各自分工完成自己的模块内容,首先,江灵瞳构造整个系统的框架,然后印海平设计数据库,在我们一起先设计前台界面,之后我们就各自实现各自模块的功能. 2 系统分析 2.1需求分析 1)实验课程设置,设置课程编号、课程名、时间、次数、老师编号、老师名、实验班级; 2)实验列表设置,设置实验编号、实验名、班级、学生学号、学生名、老师名、实验路径、提交状态、分数; 3)树型类别设置,设置编号、名字、路径、学生名、老师名、树的状态。 2。2可行性分析 2.2.1引言 编写目的: 背景: 徐州工程学院是一所培养应用型人才的普通高等学院.为了完善管理学校实验报告太多没有地方保存了,经决定开发实验报告管理系统. 2。2.2可行性研究的前提 要求: 实验报告系统必须提供学生信息和教师信息的基础设置;提供强大的条件搜索功能个实验课程查询、实验列表出现等管理功能;可以分不同权限、不同用户对该系统进行操作.另外,该系统还必须保证数据的安全性、完整性和准确性。 目标: 实验报告管理系统的目标是实现学生的纸质的实验报告太多没有地方长期保存,这样用一个系统可以将一个课程所有学生的实验报告进行管理方便存放. 条件、假定和限制: 时间的限制,我们必须在两周的时间里完成项目,在这期间系统分析员需要整理好分析结果,分配各组员的任务,每天需要人员跟踪记录整理文档。程序开发人员须在5天的时间里进行系统设计、程序编码、系统测试、程序调试。期间,还包括一个双休日假期。 2。2.3结论 根据上面的分析,在技术上不会存在什么问题,因此项目延期的可能性很小.只要在分配的时间里都能顺利地完成任务,再加上团队的凝聚力齐心协力,相信在这两周内会获得一个满意的结果。 2.3 用例图 图2。1 用例图 3 系统设计与实现 3。1系统目标 根据需求分析的描述以及与组建成员的沟通,现制定系统实现目标如下: a。界面设计简洁、友好、美观大方. b.操作简单、快捷方便。 c。数据存储安全、可靠. d。信息分类清晰、准确. e。强大的查询功能,保证数据查询的灵活性。 f.为管理员提供真实的数据信息. g.对用户输入的数据,系统进行严格的数据检查,尽可能排除认为的错误。 3。2系统功能结构 图3。1 系统功能结构 3.3功能流程及工作流程 学生模块: a。查看实验课程 系统操作人员打开学生模块主界面,输入相关的信息(学号、密码)进入模块,点击学年按钮就可以看到所需要的信息。 b.查看实验列表 系统操作人员打开学生模块主界面,输入相关信息进入模块,点击课程就可以看到所要的信息。 c。下载实验报告模板 当该学生进入自己的界面时,找到要做实验报告的课程,点击下载按钮。 d。上传实验报告 当学生做完实验报告后,进入系统,点击上传按钮。 教师模块: a。查看实验课程 系统操作人员打开学生模块主界面,输入相关的信息(工号、密码)进入模块,点击学年按钮就可以看到所需要的信息. b。查看实验列表 系统操作人员打开老师模块主界面,输入相关信息进入模块,点击课程就可以看到所要的信息 c。查看提交情况 教师进入教师界面,点击自己教的课程,点击查看按钮。 d。上传实验报告模板 当该老师进入自己的界面时,找到要做实验报告的课程的实验名称,点击上传按钮。 e。下载学生实验 当该老师进入自己的界面时,找到实验列表详情,点击下载按钮。 f。打分 当该老师进入自己的界面时,下载学生的实验报告看完后,在实验列表详情中点击打分按钮。 3。4系统流程图 图3.2 系统流程图 3.5构建开发环境 a.操作系统:windows 7或XP b.java开发包:JDK1。6 c.数据库:MY SQL d。分辨率:最佳效果为1024*768像素 3。7文件夹组织结构 图3.7 文件夹组织结构 3。8 学生模块的实现 package com。xzit.entity; publicclass Experclass { privateintEid; private String courseID; private String courseName; private String courseTime; private String coursePeriod;//课程学时 privateint experimentNum; private String teacherName; privateString className; public Experclass() { super(); } public Experclass(int eid, String courseID, String courseName, String courseTime, int experimentNum, String teacherName, String className) { super(); Eid = eid; this.courseID = courseID; this.courseName = courseName; this。courseTime = courseTime; this。experimentNum = experimentNum; this.teacherName = teacherName; this。className = className; } public Experclass(int eid, String courseID, String courseName, String courseTime, String coursePeriod, int experimentNum, String teacherName, String className) { super(); Eid = eid; this。courseID = courseID; this。courseName = courseName; this。courseTime = courseTime; this。coursePeriod = coursePeriod; this。experimentNum = experimentNum; this.teacherName = teacherName; this。className = className; } public String getCoursePeriod() { return coursePeriod; } publicvoid setCoursePeriod(String coursePeriod) { this.coursePeriod = coursePeriod; } public String getCourseID() { return courseID; } publicvoid setCourseID(String courseID) { this。courseID = courseID; } public String getCourseName() { return courseName; } publicvoid setCourseName(String courseName) { this。courseName = courseName; } public String getCourseTime() { return courseTime; } publicvoid setCourseTime(String courseTime) { this。courseTime = courseTime; } publicint getExperimentNum() { return experimentNum; } publicvoid setExperimentNum(int experimentNum) { this.experimentNum = experimentNum; } public String getTeacherName() { return teacherName; } publicvoid setTeacherName(String teacherName) { this。teacherName = teacherName; } public String getClassName() { return className; } publicvoid setClassName(String className) { this.className = className; } } package com。xzit.dao.impl; import java.sql.Connection; import java。sql。PreparedStatement; import java.sql。ResultSet; import java。util.ArrayList; import java。util。HashMap; import java。util。List; import java。util。Map; import org。apache.struts2。ServletActionContext; import com。xzit.dao.ExperclassDao; import com.xzit。entity。ExperContent; import com。xzit。entity。Experclass; import com.xzit。util.DBConnection; import com。xzit。util.DataGrid; public class ExperclassDaoimpl extends BaseDao<Experclass〉 implements ExperclassDao { private String CourseTime; public ExperclassDaoimpl() throws Exception { // TODO Auto—generated constructor stub } private Connection conn=new DBConnection()。getConn(); private PreparedStatement strat=null; public DataGrid〈Map<String, Object>> experclass(String coursetime) throws Exception { DataGrid<Map<String, Object〉> dg = new DataGrid〈Map<String, Object>〉(); //分页信息 String _page = ServletActionContext。getRequest()。getParameter(”page"); int page = Integer。parseInt(_page==null?”1”:_page); String _rows = ServletActionContext.getRequest()。getParameter(”rows”); int rows = Integer.parseInt(_rows==null?"20”:_rows); String sql="select * from experclasstable where CourseTime='"+coursetime+”’ and TeacherID='"+ ServletActionContext.getRequest().getSession().getAttribute(”TeaId”)+”'"; //String sql = ”select CourseID,CourseName,CourseTime,CoursePeriod,ExperimentNum,TeacherName,ClassName from experclasstable where CourseTime='”+courseTime+"' and ClassName='"+ //ServletActionContext.getRequest()。getSession()。getAttribute("userclassname")+”’”; System。out。println(”==============sql==========="+sql); List<Map〈String, Object〉> datamap = super。listMapList(sql, page,rows); dg。setRows(datamap); String countSQL = ”select count(*) from experclasstable where CourseTime=’”+coursetime+”’ and TeacherID='”+ ServletActionContext。getRequest()。getSession().getAttribute("TeaId")+”’”; dg.setTotal(super。count(countSQL)); return dg; } public DataGrid<Map〈String, Object〉> stuexperclass(String courseTime) throws Exception { // TODO Auto-generated method stub DataGrid<Map<String, Object〉〉 dg = new DataGrid<Map〈String, Object〉〉(); //分页信息 String _page = ServletActionContext.getRequest()。getParameter("page”); int page = Integer。parseInt(_page==null?”1”:_page); String _rows = ServletActionContext。getRequest()。getParameter(”rows”); int rows = Integer.parseInt(_rows==null?”20":_rows); //String sql = ”select CourseID,CourseName,ExperimentNum,TeacherName from experclasstable where CourseTime=’2014年—2015年’ and ClassName='12计卓'”; String sql = ”select CourseID,CourseName,CourseTime,CoursePeriod,ExperimentNum,TeacherName,ClassName from experclasstable where CourseTime='"+courseTime+”’ and ClassName=’”+ ServletActionContext。getRequest()。getSession()。getAttribute(”userclassname”)+”'”; List〈Map<String, Object〉> datamap = super.listMapList(sql, page,rows); dg。setRows(datamap); String countSQL = ”select count(*) from experclasstable where CourseTime='”+courseTime+"' and ClassName=’"+ ServletActionContext。getRequest().getSession().getAttribute(”userclassname”)+”’”; dg。setTotal(super。count(countSQL)); return dg; } public DataGrid〈Map<String, Object>> stuexperContentlist(String courseId) throws Exception { // TODO Auto-generated method stub DataGrid〈Map<String, Object>〉 dg = new DataGrid<Map<String, Object〉〉(); //分页信息 String _page = ServletActionContext.getRequest()。getParameter(”page"); int page = Integer。parseInt(_page==null?"1”:_page); String _rows = ServletActionContext.getRequest()。getParameter("rows"); int rows = Integer。parseInt(_rows==null?”20”:_rows); //String sql = ”select CourseID,CourseName,ExperimentNum,TeacherName from experclasstable where CourseTime='2014年—2015年' and ClassName=’12计卓’"; String sql = ”select t1。ExperimentID,t1.ExperimentName,ExperimentPeriod,t1.TeacherName,t2。Status,t2.upfileDate,t1。ExperimentContent from expercontenttable as t1 join expertablesubmit as t2 on t1.ExperimentID=t2.ExperimentID where t1.CourseID='” +courseId+"' and StudentID="+ServletActionContext。getRequest()。getSession().getAttribute("userId”); List〈Map〈String, Object〉〉 datamap = super.listMapList(sql, page,rows); dg。setRows(datamap); String countSQL = ”select count(*) from expercontenttable as t1 join expertablesubmit as t2 on t1。ExperimentID=t2。ExperimentID where t1.CourseID='"+courseId+"' and StudentID="+ServletActionContext。getRequest()。getSession()。getAttribute(”userId”); dg。setTotal(super。count(countSQL)); return dg; } public ExperContent queryExperContent(String experimentID) throws Exception { // TODO Auto-generated method stub String sql = ”select t1。* from expercontenttable as t1 join expertablesubmit as t2 on t1。CourseID=t2。CourseID where t1。ExperimentID='"+experimentID+"’ and StudentID=’”+ServletActionContext.getRequest().getSession().getAttribute("userId")+”'"; System。out。println(sql); strat=conn。prepareStatement(sql); ResultSet rs=strat。executeQuery(); ExperContent content=null; if(rs.next()){ content=new ExperContent(); content。setExperimentID(rs.getString(”ExperimentID”)); content.setExperimentName(rs.getString(”ExperimentName")); content.setExperimentContent(rs.getString("ExperimentContent”)); content.setExperimentPeriod(rs。getInt("ExperimentPeriod")); content。setTeacherName(rs。getString(”TeacherName”)); //content。setTempletfile(rs。getString("Templetfile")); content.setTempletfile("upload/"+rs.getString(”Templetfile”).replace(”\\”, ”/”)); } return content; } public DataGrid<Map〈String, Object〉> getexperlist(String courseId) throws Exception { // TODO Auto-generated method stub DataGrid〈Map<String, Object>〉 dg = new DataGrid〈Map<String, Object>〉(); //分页信息 String _page = ServletActionContext。getRequest()。getParameter(”page"); int page = Integer。parseInt(_page==null?”1”:_page); String _rows = ServletActionContext。getRequest()。getParameter(”rows”); int rows = Integer。parseInt(_rows==null?”20":_rows); //String sql = ”select CourseID,CourseName,ExperimentNum,TeacherName from experclasstable where CourseTime=’2014年—2015年' and ClassName='12计卓’"; String sql = ”select * from expercontenttable where CourseID=’” +courseId+”’”; List<Map〈String, Object>〉 datamap = super。listMapList(sql, page,rows); dg。setRows(datamap); String countSQL = ”select count(*) from expercontenttable where CourseID=’" +courseId+”'”; dg。setTotal(super.count(countSQL)); return dg; } public String getCourseTime() { return CourseTime; } public void setCourseTime(String courseTime) { CourseTime = courseTime; } } package com.xzit。entity; publicclass Exper { private String ExperimentID; private String ExperimentName; private String ClassName; private String StudentID; private String StudentName; private String TeacherID; private String TeacherName; private String FileName; private String FileRoad; private String Status; private String UpfileDate; private String Testscore; public Exper() { super(); } public Exper(String experimentID, String experimentName, String studentName, String teacherName, String fileRoad, String status) { super(); ExperimentID = experimentID; ExperimentName = experimentName; StudentName = studentName; TeacherName = teacherName; FileRoad = fileRoad; Status = status; } public Exper(String experimentID, String experimentName, String className, String studentID, String studentName, String teacherID, String teacherName, String fileName, String fileRoad, String status, String upfileDate, String testscore) { super(); ExperimentID = experimentID; ExperimentName = experimentName; ClassName = className; StudentID = studentID; StudentName = studentName; TeacherID = teacherID; TeacherName = teacherName; FileName = fileName; FileRoad = fileRoad; Status = status; UpfileDate = upfileDate; Testscore = testscore; } public String getClassName() { return ClassName; } publicvoid setClassName(String className) { ClassName = className; } public String getStudentID() { return StudentID; } publicvoid setStudentID(String studentID) { StudentID = studentID; } public String getTeacherID() { return TeacherID; } publicvoid setTeacherID(String teacherID) { TeacherID = teacherID; } public String getFileName() { return FileName; } publicvoid setFileName(String fileName) { FileName = fileName; } public String getUpfileDate() { return UpfileDate; } publicvoid setUpfileDate(String upfileDate) { UpfileDate = upfileDate; } public String getTestscore() { return Testscore; } publicvoid setTestscore(String testscore) { Testscore = testscore; } public String getExperimentID() { return ExperimentID; } publicvoid setExperimentID(String experimentID) { ExperimentID = experimentID; } public String getExperimentName() { return ExperimentName; } publicvoid setExperimentName(String experimentName) { ExperimentName = experimentName; } public String getStudentName() { return StudentName; } publicvoid setStudentName(String studentName) { StudentName = studentName; } public String getTeacherName() { return TeacherName; } publicvoid setTeacherName(String teacherName) { TeacherName = teacherName; } public String getFileRoad() { return FileRoad; } publicvoid setFileRoad(String fileRoad) { FileRoad = fileRoad; } public String getStatus() { return Status; } publicvoid setStatus(String status) { Status = status; } } package com.xzit.dao。impl; import java。sql。Connection; import java.sql。PreparedStatement; import java。util。List; import java.util。Map; import org.apache。struts2。ServletActionContext; import com。xzit。dao。ExperDao; import com。xzit。entity。Exper; import com.xzit.util.DBConnection; import com。xzit.util.DataGrid; public class ExperDaoListImpl〈T〉 extends BaseDao〈Exp- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 管理 系统
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【w****g】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【w****g】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文