时间:2022-04-25 10:13:33
摘 要: 作者结合毕业设计的管理实践,介绍了毕业设计网上选题系统的设计思路,详细论述了系统的开发,以及设计过程中核心部分的主要实现技术。
关键词: JSP技术 系统需求 系统设计 系统实现 毕业设计选题
1.引言
在高校教学管理过程中,与毕业设计有关的各种数据报表非常之多,传统的手工处理方式已不适应现代化的教学管理步伐。毕业设计作为高校学生毕业前最后一次综合性实践教学活动,规范营理显得尤为重要。为此,结合管理实践,我们采用JSP自主设计开发了一套毕业设计选题系统。
JSP技术是用Java语言作为脚本语言,在传统的网页HTML中加入Java程序片段和Jsp标记,就构成了JSP网页。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序片段,然后将执行结果以html格式返回给客户。程序片段可以操作数据库、重新定向网页及发送E-mail等,所有操作均在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin,无ActiveX,无JavaApplet,甚至无Frame。
2.系统需求
设计与实现毕业设计选题系统,其目的是为了提高高校的信息化管理水平,提高本科毕业设计管理水平和工作效率,使本科毕业设计管理更加科学化和人性化。
本系统采用现在应用系统较为流行的B/S模式结构进行设计,根据本科毕业设计管理工作的需求分析,将系统功能划分为系统初始设置模块、学生选题模块、教师出题模块、学生管理模块、教师管理模块、题目管理模块、选题管理模块、邮件提醒模块等。
根据以上各功能模块需求将系统的功能细化为以下几点。
2.1前台学生选题
学生网上选题:学生进入毕业选题系统注册,管理员审核其符合选题资格后,学生就可以选择毕业设计题目。
修改注册信息:学生登录系统后,可以修改自己注册的信息。
2.2前台教师出题
教师网上出题:教师进入毕业选题系统注册,管理员审核其符合出题资格后,教师方能出题。
教师管理出题:教师进入系统后,可以对自己出的管理员未通过审核的毕业设计题目进行修改和删除。
教师修改注册信息:可以修改自己注册的信息。
选题确认:学生选好题目后,教师可以确认该题由选择该题的学生做。
2.3后台管理出题及选题情况
系统初始设置模块:使用系统之前,管理员可以设置选题系统的一些参数,如选题系统开放或者关闭;允许教师出题的最多数目;系统可以设置选题人数上限,同一个题目,最多允许多少个学生选择;一个学生可以选择多少个导师,如果一个学生选择一个导师的题目,最多不能超过多少个题目;设置系统邮件发送的信息,等等。
学生管理模块:管理员可以管理已经注册的学生的信息,包括审核学生注册的信息,修改学生信息和删除学生信息,等等。
教师管理模块:管理员管理已经注册的教师的信息,包括审核教师注册的信息,修改教师信息和删除教师信息等。
题目管理模块:管理员对所有教师出的题目进行管理,审核教师所出的题目。
选题管理模块:管理员对所有学生选题情况进行管理。
邮件提醒模块:当学生或者教师在毕业设计选题系统上注册成功后,系统会自动发出一封注册成功的通知邮件,告诉用户的用户名和密码等信息。
3.系统设计
3.1系统结构
由分析得知,毕业设计选题系统总功能结构示意图如下:
3.2数据库设计
根据毕业设计选题系统的要求,通过对整个系统功能、运行过程和数据流程分析,需要创建以下二维表:
(1)教师信息表:用户名、密码、姓名、性别、出生年月、职称、最终学历、毕业院校、联系电话、联系邮箱、主要研究领域、毕业设计指导方向、个人相片、所在系部、教师状态、允许出题上限、工作单位、身份。
(2)题目信息表:题目编号、出题教师用户名、题目名称、简介、题目来源、类型、课题类型、题目状态、题目难度、主要任务简述、要求简述、需具备的基础知识、所需设备、允许被选择上限。
(3)学生信息表:学号、密码、姓名、系别、专业、班级、性别、E-mail、手机号码、QQ、专业学习成绩介绍、获奖情况介绍、社会实践情况介绍、个人相片。
(4)基本信息表:站长联系QQ、站长E-mail、站长电话、每个老师出题上限、学生选导师上限、同一个题最多允许多少个学生选择上限。
(5)系部信息表:系部编号、系名称、排序。
(6)专业信息表:系部编号、专业编号、专业名称、排序。
(7)班级信息表:专业编号、班级编号、班级名称。
(8)选题信息表:学生学号、题目编号、选题时间、选题状态、最后确认时间。
4.系统实现
本系统采用eclipse作为IDE。使用编程语言包括Java、HTML、Java Sceipt、SQL等。为减少系统后期运营成本,选择免费的数据库MYSQL作为后台数据库。
教师确认选题实现代码如下:
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws ServletException, IOException
{
HttpSession session = request.getSession();
if (session.getAttribute(″username″) == ″null″ || session.getAttribute(″username″) == null ||
session.getAttribute(″username″) == ″″)
{
RequestDispatcher outurl = request.getRequestDispatcher
(″../TurboATSAdmin/Error.jsp″);
outurl.forward(request, response);
}
response.setCharacterEncoding(″UTF-8″);
response.setContentType(″text/html;charset=UTF-8″);
PrintWriter out = response.getWriter();
try
{
PageManage routetag = new DefaultExecution();
Data data = new Data();
StrTran strTran = new StrTran();
chStr chStr = new chStr();
String toPages = chStr.chStr(request.getParameter(″toPage″));
String subid = chStr.chStr(request.getParameter(″subid″));
int dupCount = 0;int faiCount = 0;int sucCount = 0;int cheUpdate = 0;
String sel_state = request.getParameterValues(″sel_state″);
String stu_id = request.getParameterValues(″stu_id″);
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文
String sub_id = request.getParameterValues(″sub_id″);
String editbox = request.getParameterValues(″editbox″);
if (editbox != null && !″″.equals(editbox) && session.getAttribute(″username″) !=
null && !″″.equals(session.getAttribute(″username″)))
{
geting dodo = new geting();
for (int i = 0; i < editbox.length; i++)
{
cheUpdate++;
String updatePSql = ″update selection set sel_state=′″ +
chStr.chStr(sel_state[i].trim()) + ″′ where id=′″ + editbox[i].trim() + ″′″;//确认学生选题
String sql_3 = ″update selection set sel_state=′no′ where
sub_id=′″ + sub_id[i] + ″′ and stu_id′″ + stu_id[i] + ″′ and sel_state′yes′ ″; //退出其他选此题的学生
System.out.println(sql_3);
data.update(sql_3);
String sql_2 = ″update selection set sel_state=′no′ where
stu_id=′″ + stu_id[i] + ″′ and sub_id′″ + sub_id[i] + ″′ ″; //把学生选的其他题目退出
data.update(sql_2);
if (data.update(updatePSql) > 0)
sucCount++;
else
faiCount++;
}
}
String serSql = ″* from selection,turboats_student where turboats_student.stu_id =
selection.stu_id and selection.sub_id=′″ + subid + ″′″;
int rowPerPage = 20;
int DataBase = 0;
com.pagebreak.PageBreak pageBr = routetag.PageManage(serSql, toPages,
rowPerPage, DataBase);
request.setAttribute(″pageBr″, pageBr);
RequestDispatcher requestDispatcher = request.getRequestDispatcher
(″../TurboATSAdmin/subject/Student_List.jsp″);
requestDispatcher.forward(request, response);
}
catch (Exception e)
{
ByteArrayOutputStream ostr = new ByteArrayOutputStream();
e.printStackTrace(new PrintStream(ostr));
out.println(ostr.toString());
}
}
5.结语
本文系统功能上实现了教师出题、学生选题、选题审核、数据生成等。通过本系统,大大提高了高校毕业设计选题工作,体现了以学生为中心、教育人性化和学习个性化组的教育理念,为高校信息化建设打下良好基础。
参考文献:
[1]吴峻申,闫术卓.Java Web整合开发实例精通[M].北京:机械工业出版社,2009.
[2]李大卓.Eclipse核心编程:插件、界面与Web开发[M].北京:人民邮电出版社,2007.
[3]周惠.Java 2入门、进阶与应用实例[M].北京:人民邮电出版社,2007.
[4]Art Taylor.J2EE and Beyond[M].Prentice Hall PTR,2008.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文