实验报告管理系统报告.docx
《实验报告管理系统报告.docx》由会员分享,可在线阅读,更多相关《实验报告管理系统报告.docx(43页珍藏版)》请在冰豆网上搜索。
![实验报告管理系统报告.docx](https://file1.bdocx.com/fileroot1/2023-5/24/c3d9ab98-5aea-4d5a-b4f8-df3615ea4021/c3d9ab98-5aea-4d5a-b4f8-df3615ea40211.gif)
实验报告管理系统报告
软件项目设计报告
实验报告管理系统
所在班级
12计卓
小组成员
江灵瞳
201印海平
201钱晨晨
学院名称
信电工程学院
专业名称
计算机科学与技术
指导教师
胡局新
起止日期
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
1绪论
1.1开发背景
实验教学是学生技能培养的重要环节之一,学生实验报告的质量在一定程度上反映了实验教学的质量,实验报告管理水平也反映了实验教学管理水平。
目前,大部分学校所提交的实验报告大多还停留在以纸为介质的方式上,这将严重制约着实验教学的开展。
首先,很多课程的实验结果在纸质实验报告中不能表现或不能完全表现,其次纸质实验报告的批改和分析也是实验授课老师的一个很重负担,如何提高学生实验报告的表象能力,提高教师批改实验报告的效率并及时发现和纠正实验报告中存在的问题是许多课程实验授课教师所面对的一个难题。
1.2本次设计完成的工作
老师登录该系统可以上传、下载实验报告、查看学生做的实验报告并给学生打分、老师可以查看实验验课程、实验课程列表、查看实验提交情况等。
学生登录该系统可以上传、下载实验报告、查看实验课程和实验课程列表。
1.3任务分工
组织结构:
为了完成学生信息管理系统的项目开发,班级组成了一个项目团队,人员分工:
为了明确项目团队中每个人的任务分工,现制定人员分工,如下表2.1所示:
表2.1人员分工
成员
角色
负责的模块内容
A
江灵瞳
学生的上传,下载,学生查看实验课程,查看实验列表
B
印海平
老师的上传,下载,和老师填写分数,数据库设计
C
钱晨晨
老师查看实验课程,查看实验列表,查看实验上交情况,登录
1.4任务
我们三个人各自分工完成自己的模块内容,首先,江灵瞳构造整个系统的框架,然后印海平设计数据库,在我们一起先设计前台界面,之后我们就各自实现各自模块的功能。
2系统分析
2.1需求分析
1)实验课程设置,设置课程编号、课程名、时间、次数、老师编号、老师名、实验班级;
2)实验列表设置,设置实验编号、实验名、班级、学生学号、学生名、老师名、实验路径、提交状态、分数;
3)树型类别设置,设置编号、名字、路径、学生名、老师名、树的状态。
2.2可行性分析
编写目的:
背景:
徐州工程学院是一所培养应用型人才的普通高等学院。
为了完善管理学校实验报告太多没有地方保存了,经决定开发实验报告管理系统。
要求:
实验报告系统必须提供学生信息和教师信息的基础设置;提供强大的条件搜索功能个实验课程查询、实验列表出现等管理功能;可以分不同权限、不同用户对该系统进行操作。
另外,该系统还必须保证数据的安全性、完整性和准确性。
目标:
实验报告管理系统的目标是实现学生的纸质的实验报告太多没有地方长期保存,这样用一个系统可以将一个课程所有学生的实验报告进行管理方便存放。
条件、假定和限制:
时间的限制,我们必须在两周的时间里完成项目,在这期间系统分析员需要整理好分析结果,分配各组员的任务,每天需要人员跟踪记录整理文档。
程序开发人员须在5天的时间里进行系统设计、程序编码、系统测试、程序调试。
期间,还包括一个双休日假期。
根据上面的分析,在技术上不会存在什么问题,因此项目延期的可能性很小。
只要在分配的时间里都能顺利地完成任务,再加上团队的凝聚力齐心协力,相信在这两周内会获得一个满意的结果。
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.操作系统:
windows7或XP
b.java开发包:
JDK1.6
c.数据库:
MYSQL
d.分辨率:
最佳效果为1024*768像素
3.7文件夹组织结构
图3.7文件夹组织结构
3.8学生模块的实现
package
publicclassExperclass{
privateintEid;
privateStringcourseID;
privateStringcourseName;
privateStringcourseTime;
privateStringcoursePeriod;//课程学时
privateintexperimentNum;
privateStringteacherName;
privateStringclassName;
publicExperclass(){
super();
}
publicExperclass(inteid,StringcourseID,StringcourseName,
StringcourseTime,intexperimentNum,StringteacherName,
StringclassName){
super();
Eid=eid;
this.courseID=courseID;
this.courseName=courseName;
this.courseTime=courseTime;
this.experimentNum=experimentNum;
this.teacherName=teacherName;
this.className=className;
}
publicExperclass(inteid,StringcourseID,StringcourseName,
StringcourseTime,StringcoursePeriod,intexperimentNum,
StringteacherName,StringclassName){
super();
Eid=eid;
this.courseID=courseID;
this.courseName=courseName;
this.courseTime=courseTime;
this.coursePeriod=coursePeriod;
this.experimentNum=experimentNum;
this.teacherName=teacherName;
this.className=className;
}
publicStringgetCoursePeriod(){
returncoursePeriod;
}
publicvoidsetCoursePeriod(StringcoursePeriod){
this.coursePeriod=coursePeriod;
}
publicStringgetCourseID(){
returncourseID;
}
publicvoidsetCourseID(StringcourseID){
this.courseID=courseID;
}
publicStringgetCourseName(){
returncourseName;
}
publicvoidsetCourseName(StringcourseName){
this.courseName=courseName;
}
publicStringgetCourseTime(){
returncourseTime;
}
publicvoidsetCourseTime(StringcourseTime){
this.courseTime=courseTime;
}
publicintgetExperimentNum(){
returnexperimentNum;
}
publicvoidsetExperimentNum(intexperimentNum){
this.experimentNum=experimentNum;
}
publicStringgetTeacherName(){
returnteacherName;
}
publicvoidsetTeacherName(StringteacherName){
this.teacherName=teacherName;
}
publicStringgetClassName(){
returnclassName;
}
publicvoidsetClassName(StringclassName){
this.className=className;
}
}
publicclassExperclassDaoimplextendsBaseDaoimplementsExperclassDao{
privateStringCourseTime;
publicExperclassDaoimpl()throwsException{
//TODOAuto-generatedconstructorstub
}
privateConnectionconn=newDBConnection().getConn();
privatePreparedStatementstrat=null;
publicDataGrid
throwsException{
DataGrid
newDataGrid
//分页信息
String_page=ServletActionContext.getRequest().getParameter("page");
intpage=Integer.parseInt(_page==null?
"1":
_page);
String_rows=ServletActionContext.getRequest().getParameter("rows");
introws=Integer.parseInt(_rows==null?
"20":
_rows);
Stringsql="select*fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
ServletActionContext.getRequest().getSession().getAttribute("TeaId")+"'";
//Stringsql="selectCourseID,CourseName,CourseTime,CoursePeriod,ExperimentNum,TeacherName,ClassNamefromexperclasstablewhereCourseTime='"+courseTime+"'andClassName='"+
//ServletActionContext.getRequest().getSession().getAttribute("userclassname")+"'";
List
dg.setRows(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
ServletActionContext.getRequest().getSession().getAttribute("TeaId")+"'";
dg.setTotal(super.count(countSQL));
returndg;
}
publicDataGrid
//TODOAuto-generatedmethodstub
DataGrid
newDataGrid
//分页信息
String_page=ServletActionContext.getRequest().getParameter("page");
intpage=Integer.parseInt(_page==null?
"1":
_page);
String_rows=ServletActionContext.getRequest().getParameter("rows");
introws=Integer.parseInt(_rows==null?
"20":
_rows);
//Stringsql="selectCourseID,CourseName,ExperimentNum,TeacherNamefromexperclasstablewhereCourseTime='2014年-2015年'andClassName='12计卓'";
Stringsql="selectCourseID,CourseName,CourseTime,CoursePeriod,ExperimentNum,TeacherName,ClassNamefromexperclasstablewhereCourseTime='"+courseTime+"'andClassName='"+
ServletActionContext.getRequest().getSession().getAttribute("userclassname")+"'";
List
dg.setRows(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+courseTime+"'andClassName='"+
ServletActionContext.getRequest().getSession().getAttribute("userclassname")+"'";
dg.setTotal(super.count(countSQL));
returndg;
}
publicDataGrid
//TODOAuto-generatedmethodstub
DataGrid
newDataGrid
//分页信息
String_page=ServletActionContext.getRequest().getParameter("page");
intpage=Integer.parseInt(_page==null?
"1":
_page);
String_rows=ServletActionContext.getRequest().getParameter("rows");
introws=Integer.parseInt(_rows==null?
"20":
_rows);
//Stringsql="selectCourseID,CourseName,ExperimentNum,TeacherNamefromexperclasstablewhereCourseTime='2014年-2015年'andClassName='12计卓'";
Stringsql="selectt1.ExperimentID,t1.ExperimentName,ExperimentPeriod,t1.TeacherName,t2.Status,t2.upfileDate,t1.ExperimentContentfromexpercontenttableast1joinexpertablesubmitast2ont1.ExperimentID=t2.ExperimentIDwheret1.CourseID='"
+courseId+"'andStudentID="+ServletActionContext.getRequest().getSession().getAttribute("userId");
List
dg.setRows(datamap);
StringcountSQL="selectcount(*)fromexpercontenttableast1joinexpertablesubmitast2ont1.ExperimentID=t2.ExperimentIDwheret1.CourseID='"+courseId+"'andStudentID="+ServletActionContext.getRequest().getSession().getAttribute("userId");
dg.setTotal(super.count(countSQL));
returndg;
}
publicExperContentqueryExperContent(StringexperimentID)throwsException{
//TODOAuto-generatedmethodstub
Stringsql="selectt1.*fromexpercontenttableast1joinexpertablesubmitast2ont1.CourseID=t2.CourseIDwheret1.ExperimentID='"+experimentID+"'andStudentID='"+ServletActionContext.getRequest().getSession().getAttribute("userId")+"'";
strat=conn.prepareStatement(sql);
ResultSetrs=strat.executeQuery();
ExperContentcontent=null;
if(rs.next()){
content=newExperContent();
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("\\","/"));
}
returncontent;
}
publicDataGrid