基于JSP的毕业设计选题系统的设计与实现

时间:2022-04-25 10:13:33

基于JSP的毕业设计选题系统的设计与实现

摘 要: 作者结合毕业设计的管理实践,介绍了毕业设计网上选题系统的设计思路,详细论述了系统的开发,以及设计过程中核心部分的主要实现技术。

关键词: 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浏览器用户请先下载安装 原版全文

上一篇:计算机实验室的管理及维护 下一篇:学习动机在一节体育课教学中的应用