实验报告管理系统报告.docx
- 文档编号:10695459
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:23
- 大小:1.27MB
实验报告管理系统报告.docx
《实验报告管理系统报告.docx》由会员分享,可在线阅读,更多相关《实验报告管理系统报告.docx(23页珍藏版)》请在冰豆网上搜索。
实验报告管理系统报告
软件项目设计报告
实验报告管理系统
所在班级
12计卓
小组成员
218江灵瞳
143印海平
144钱晨晨
学院名称
信电工程学院
专业名称
计算机科学与技术
指导教师
胡局新
起止日期
年
1月
15日
1绪论
开发背景
实验教学是学生技能培养的重要环节之一,学生实验报告的质量在一定程度上反映了实验教学的质量,实验报告管理水平也反映了实验教学管理水平。
目前,大部分学校所提交的实验报告大多还停留在以纸为介质的方式上,这将严重制约着实验教学的开展。
首先,很多课程的实验结果在纸质实验报告中不能表现或不能完全表现,其次纸质实验报告的批改和分析也是实验授课老师的一个很重负担,如何提高学生实验报告的表象能力,提高教师批改实验报告的效率并及时发现和纠正实验报告中存在的问题是许多课程实验授课教师所面对的一个难题。
本次设计完成的工作
老师登录该系统可以上传、下载实验报告、查看学生做的实验报告并给学生打分、老师可以查看实验验课程、实验课程列表、查看实验提交情况等。
学生登录该系统可以上传、下载实验报告、查看实验课程和实验课程列表。
任务分工
组织结构:
为了完成学生信息管理系统的项目开发,班级组成了一个项目团队,人员分工:
为了明确项目团队中每个人的任务分工,现制定人员分工,如下表所示:
表人员分工
成员
角色
负责的模块内容
A
江灵瞳
学生的上传,下载,学生查看实验课程,查看实验列表
B
印海平
老师的上传,下载,和老师填写分数,数据库设计
C
钱晨晨
老师查看实验课程,查看实验列表,查看实验上交情况,登录
任务
我们三个人各自分工完成自己的模块内容,首先,江灵瞳构造整个系统的框架,然后印海平设计数据库,在我们一起先设计前台界面,之后我们就各自实现各自模块的功能。
2系统分析
需求分析
1)实验课程设置,设置课程编号、课程名、时间、次数、老师编号、老师名、实验班级;
2)实验列表设置,设置实验编号、实验名、班级、学生学号、学生名、老师名、实验路径、提交状态、分数;
3)树型类别设置,设置编号、名字、路径、学生名、老师名、树的状态。
可行性分析
引言
编写目的:
背景:
徐州工程学院是一所培养应用型人才的普通高等学院。
为了完善管理学校实验报告太多没有地方保存了,经决定开发实验报告管理系统。
可行性研究的前提
要求:
实验报告系统必须提供学生信息和教师信息的基础设置;提供强大的条件搜索功能个实验课程查询、实验列表出现等管理功能;可以分不同权限、不同用户对该系统进行操作。
另外,该系统还必须保证数据的安全性、完整性和准确性。
目标:
实验报告管理系统的目标是实现学生的纸质的实验报告太多没有地方长期保存,这样用一个系统可以将一个课程所有学生的实验报告进行管理方便存放。
条件、假定和限制:
时间的限制,我们必须在两周的时间里完成项目,在这期间系统分析员需要整理好分析结果,分配各组员的任务,每天需要人员跟踪记录整理文档。
程序开发人员须在5天的时间里进行系统设计、程序编码、系统测试、程序调试。
期间,还包括一个双休日假期。
结论
根据上面的分析,在技术上不会存在什么问题,因此项目延期的可能性很小。
只要在分配的时间里都能顺利地完成任务,再加上团队的凝聚力齐心协力,相信在这两周内会获得一个满意的结果。
用例图
图用例图
3系统设计与实现
系统目标
根据需求分析的描述以及与组建成员的沟通,现制定系统实现目标如下:
a.界面设计简洁、友好、美观大方。
b.操作简单、快捷方便。
c.数据存储安全、可靠。
d.信息分类清晰、准确。
e.强大的查询功能,保证数据查询的灵活性。
f.为管理员提供真实的数据信息。
g.对用户输入的数据,系统进行严格的数据检查,尽可能排除认为的错误。
系统功能结构
图系统功能结构
功能流程及工作流程
学生模块:
a.查看实验课程
系统操作人员打开学生模块主界面,输入相关的信息(学号、密码)进入模块,点击学年按钮就可以看到所需要的信息。
b.查看实验列表
系统操作人员打开学生模块主界面,输入相关信息进入模块,点击课程就可以看到所要的信息。
c.下载实验报告模板
当该学生进入自己的界面时,找到要做实验报告的课程,点击下载按钮。
d.上传实验报告
当学生做完实验报告后,进入系统,点击上传按钮。
教师模块:
a.查看实验课程
系统操作人员打开学生模块主界面,输入相关的信息(工号、密码)进入模块,点击学年按钮就可以看到所需要的信息。
b.查看实验列表
系统操作人员打开老师模块主界面,输入相关信息进入模块,点击课程就可以看到所要的信息
c.查看提交情况
教师进入教师界面,点击自己教的课程,点击查看按钮。
d.上传实验报告模板
当该老师进入自己的界面时,找到要做实验报告的课程的实验名称,点击上传按钮。
e.下载学生实验
当该老师进入自己的界面时,找到实验列表详情,点击下载按钮。
f.打分
当该老师进入自己的界面时,下载学生的实验报告看完后,在实验列表详情中点击打分按钮。
系统流程图
图系统流程图
构建开发环境
a.操作系统:
windows7或XP
b.java开发包:
c.数据库:
MYSQL
d.分辨率:
最佳效果为1024*768像素
文件夹组织结构
图文件夹组织结构
学生模块的实现
packageclassExperclass{
privateintEid;
privateStringcourseID;
privateStringcourseName;
privateStringcourseTime;
privateStringcoursePeriod;etConn();
privatePreparedStatementstrat=null;
publicDataGrid
throwsException{
DataGrid
newDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
Stringsql="select*fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
().getSession().getAttribute("TeaId")+"'";
etSession().getAttribute("userclassname")+"'";
"==============sql==========="+sql);
List
(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
().getSession().getAttribute("TeaId")+"'";
(countSQL));
returndg;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
etSession().getAttribute("userclassname")+"'";
List
(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+courseTime+"'andClassName='"+
().getSession().getAttribute("userclassname")+"'";
(countSQL));
returndg;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
etSession().getAttribute("userId");
List
(datamap);
StringcountSQL="selectcount(*)fromexpercontenttableast1joinexpertablesubmitast2on=where='"+courseId+"'andStudentID="+().getSession().getAttribute("userId");
(countSQL));
returndg;
}
publicExperContentqueryExperContent(StringexperimentID)throwsException{
fromexpercontenttableast1joinexpertablesubmitast2on=where='"+experimentID+"'andStudentID='"+().getSession().getAttribute("userId")+"'";
strat=(sql);
ResultSetrs=();
ExperContentcontent=null;
if()){
content=newExperContent();
("ExperimentID"));
("ExperimentName"));
("ExperimentContent"));
("ExperimentPeriod"));
("TeacherName"));
eplace("\\","/"));
}
returncontent;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
etConn();
privatePreparedStatementstrat=null;
publicExperDaoListImpl()throwsException{
super();
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
Stringsql="select*fromexpertablesubmitwhereExperimentID='"+experid+"'andCourseID='"+
courid+"'";
etSession().getAttribute("userclassname")+"'";
"==============sql==========="+sql);
List
(datamap);
StringcountSQL="selectcount(*)fromexpertablesubmitwhereExperimentID='"+experid+"'andCourseID='"+
courid+"'";
(countSQL));
returndg;
}
publicbooleanaddfron(Stringexperid,Stringcourid,Stringstuid,
floatTestscores)throwsException{
etConn();
privatePreparedStatementstrat=null;
publicUpfileDao()throwsException{
super();
}
publicUpfileQueryFileClass(Stringcourid)throwsException{
etSession().getAttribute("userId")+"'";
strat=(sql);
intn=();
if(n>0){
return"success";
}
return"false";
}
publicStringteaSaveFileRoad(Stringexperid,Stringpath,Stringcourid)
throwsException{
etConn();
privatePreparedStatementstrat=null;
publicUpfileDao()throwsException{
super();
}
publicUpfileQueryFileClass(Stringcourid)throwsException{
etSession().getAttribute("userId")+"'";
strat=(sql);
intn=();
if(n>0){
return"success";
}
return"false";
}
publicStringteaSaveFileRoad(Stringexperid,Stringpath,Stringcourid)
throwsException{
etConn();
privatePreparedStatementstrat=null;
publicDataGrid
throwsException{
DataGrid
newDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
Stringsql="select*fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
().getSession().getAttribute("TeaId")+"'";
etSession().getAttribute("userclassname")+"'";
"==============sql==========="+sql);
List
(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+coursetime+"'andTeacherID='"+
().getSession().getAttribute("TeaId")+"'";
(countSQL));
returndg;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
etSession().getAttribute("userclassname")+"'";
List
(datamap);
StringcountSQL="selectcount(*)fromexperclasstablewhereCourseTime='"+courseTime+"'andClassName='"+
().getSession().getAttribute("userclassname")+"'";
(countSQL));
returndg;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
etSession().getAttribute("userId");
List
(datamap);
StringcountSQL="selectcount(*)fromexpercontenttableast1joinexpertablesubmitast2on=where='"+courseId+"'andStudentID="+().getSession().getAttribute("userId");
(countSQL));
returndg;
}
publicExperContentqueryExperContent(StringexperimentID)throwsException{
fromexpercontenttableast1joinexpertablesubmitast2on=where='"+experimentID+"'andStudentID='"+().getSession().getAttribute("userId")+"'";
strat=(sql);
ResultSetrs=();
ExperContentcontent=null;
if()){
content=newExperContent();
("ExperimentID"));
("ExperimentName"));
("ExperimentContent"));
("ExperimentPeriod"));
("TeacherName"));
eplace("\\","/"));
}
returncontent;
}
publicDataGrid
etParameter("page");
intpage=(_page==null"1":
_page);
String_rows=().getParameter("rows");
introws=(_rows==null"20":
_rows);
Css的学习:
虽然说在标签中也可以定义样式,但是这么做看起来不是那么明智,我在学CSS时还是比较努力的,所有的样式效果都测试过,并且写了相应的案例,只是过了不到3个月就忘了一大半,很多时候都是查文档才能写出来的,虽然CSS对于我们来说不必要非常精通,但是我觉得掌握的东西越多,以后的工作就越轻松,所以在考试结束后也会去看看前面的笔记和案例。
Javascript:
js 我认为是最重要的,甚至于超过servlet
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 报告 管理 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)