资源描述
徐州工程学院软件项目设计报告
软件项目设计报告
实验报告管理系统
所在班级
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
展开阅读全文