基于Jsp和MySQL实现的教务信息管理系统

到山东找蓝翔

发布日期: 2021-07-23 12:23:19 浏览量: 272
评分:
star star star star star star star star star star_border
*转载请注明来自write-bug.com

基于Jsp和MySQL实现的教务信息管理系统# 一、引言

随着信息技术的革命与发展,计算机已经成为我们学习和工作的得力助手,逐渐改变着信息的管理方式提高了信息管理的安全性和效率,节省了大量的人力和财力。同时 Internet 的普及也促进各个行业的发展,从邮寄信件到 E-mail,从电话会议到网络会议,从传统物流到电子商务,从面对面授课到运程教学等等一系列的变化,人们无不感到 Internet 的强大。信息管理技术的迅速发展正得力于 Internet 的普及和发展。

目前社会上信息管理系统发展飞快,各个企事业单位都引入了信息管理软件 来管理自己日益增长的各种信息。鉴于目前学校教学规模的日益扩大,教务信息 呈爆炸性增长的前提下,教务信息管理的自动化与准确化的要求日益强烈的背景 下构思出来的,该项目开发的软件就是为学校教务信息管理系统软件,系统完全 独立开发,力求使系统功能简洁明了,但功能齐全且易于操作。该项目设计完成 后可用于一些教育单位(包括学校,学院等等)的教务信息的管理

二、目的

《Asp.Net 应用开发项目设计》课程是软件工程专业学生的一项必修实践性教学环节。通过课程设计,使学生提高理论联系实际解决实际问题的能力;也使学生对基于面向对象的理论进行系统设计过程中的诸多具体问题有感性的认识和深入的理解;进而提高学生的学习兴趣为其将来顺利进入毕业环节作必要的准备。

三、概述与需求分析

学生教务管理系统针对的学校学生情况对学生各科课程有效的管理。能够快 速的查询出学生的各科课程情况,以及所在班级等各种用途。相应的需求如下:

  • 能够存储一定数量的学生信息,并方便有效地进行相应的数据操作和管理,这主要包括学生信息的录人、删除及修改

  • 能够对一定数量的读者进行相应的信息存储与管理,这其中包括查询学生信息的登记、删除及修改,学生资料的统计与查询

  • 能够提供一定的安全机制,提供数据信息授权访问,防止随意删改,同时提供信息备份服务

  • 使网站更加容易管理和维护,不需对过多人员培训,提高工作效率

四、系统分析

4.1 可行性分析

4.1.1 管理可行性

信息化的教师教务管理在如今的信息时代是大势所趋,而且随着现代管理理念、方法和途径的提高。教务信息化管理手段日趋成熟,所以从长远利益出发,主管领导对该项目的开发与实施会大力支持。

4.1.2 技术可行性

本系统采用 Windows 作为操作平台。数据库选用 MYSQL,该数据库管理系统在 Windows 环境下可以连接 Java 运行,其体积小、速度快、总体拥有成本低,提高数据的可用性。本系统的应用软件开发平台选用 My Eclipse,java 版本为 JDK1.8,服务器为 tomcat8.5.

4.1.3 经济可行性

采用教师教务管理系统可取代原系统的单据手工传递工作,减少人工开支,节省资金、并且可大大提高信息量的获取,缩短信息处理周期,改进教学质量,能及时反馈学生的平时表现和成绩,反馈教学信息的利用率,使教学质量更上一个台阶。

4.1.4 社会可行性

本系统操作简单,易于理解,只需通过简单熟悉,上手较快,教师学生都可以进行操作,营运环境要求低。

4.2 业务功能分析

教务信息管理系统主要面对 3 个对象(管理员、教师、学生)。下面将详细介绍每个模块的业务功能以及流程图。

  • 学生模块:根据学生信息,获取其学生基本信息和已经选择的课程

    • 学生列表显示个人的基本信息
    • 选课列表显示所有已经选好的课程,包括上课时间和上课地点,授课老师
    • 学生可以在自己的选课管理中精确查询自己所选课程
    • 修改个人基本信息级密码
  • 教师模块:教师登录后,可以获取自己的课程列表,并可以对自己所教课程进行管理,设置上课时间及地点的安排

    • 学生列表显示所有选择自己课程的学生姓名、班级等基本信息
    • 班级列表显示班级的名称及班级的介绍
    • 教师列表显示教师本人的基本信息,并且可以进行修改
    • 课程列表显示课程安排,各科所选人数和设置上限人数
    • 修改密码可以进行修改个人密码
  • 管理员模块:可对教师信息、学生信息、课程信息进行各种操作。主要功能有

    • 学生列表显示所有学生姓名、班级等基本信息
    • 班级列表显示班级的名称及班级的介绍
    • 教师列表显示所有教师姓名、班级、工号等基本信息
    • 课程管理列表显示所有课程及对应的任课老师
    • 选课列表显示所有显示选择的科目

4.3 总体功能模块图

4.4 数据流程图

五、系统详细设计与实现

该系统涉及到的功能比较多,因此在这里只选取部分功能的实现来展开介绍。

5.1 登录模块

教务信息管理系统,如果每一个人进入计算机的人都能够对系统进行操作,就可能有意或无意的破坏数据,对用户产生不良影响,甚至造成无法估量的损失。

因此,在进入系统之前要设置密码输入功能用户登录关键是判断它的密码和账号是否与数据库中存在的用户信息吻合,若存在则登录成功,若登录不成功,重新输入或者相管理员申请,由管理员分配教师账号,学生账号密码由教师分配。

  1. <script type="text/javascript">
  2. $(function() {
  3. //点击图片切换验证码
  4. $("#vcodeImg").click(function() {
  5. this.src = "CpachaServlet?method=loginCapcha&t=" + new Date().getTime();
  6. });
  7. //登录
  8. $("#submitBtn").click(function() {
  9. var data = $("#form").serialize();
  10. $.ajax({
  11. type: "post"url: "LoginServlet?method=Login"data: datadataType: "text" //返回数据类型
  12. success: function(msg) {
  13. if ("vcodeError" == msg) {
  14. $.messager.alert("消息提醒""验证码错误!""warning");
  15. $("#vcodeImg").click(); //切换验证码
  16. $("input[name='vcode']").val(""); //清空验证码输入框
  17. } else if ("loginError" == msg) {
  18. $.messager.alert("消息提醒""用户名或密码错误!""warning");
  19. $("#vcodeImg").click(); //切换验证码
  20. $("input[name='vcode']").val(""); //清空验证码输入框
  21. } else if ("loginSuccess" == msg) {
  22. window.location.href = "SystemServlet?method=toAdminView";
  23. } else {
  24. alert(msg);
  25. }
  26. }
  27. });
  28. });
  29. //设置复选框
  30. $(".skin-minimal input").iCheck({
  31. radioClass: 'iradio-blue'increaseArea: '25%'
  32. });
  33. })
  34. </script>
  35. <title>
  36. 登录|教务信息管理系统
  37. </title>
  38. <meta name="keywords" content="教务信息管理系统">
  39. </head>
  40. <body>
  41. <div class="header" style="padding: 0;">
  42. <h2 style="color: white; width: 400px; height: 60px; line-height: 60px; margin: 0 0 0 30px; padding: 0;">
  43. 教务信息管理系统
  44. </h2>
  45. </div>
  46. <div class="loginWraper">
  47. <div id="loginform" class="loginBox">
  48. <form id="form" class="form form-horizontal" method="post">
  49. <div class="row cl">
  50. <label class="form-label col-3">
  51. <i class="Hui-iconfont">
  52. &#xe60d;
  53. </i>
  54. </label>
  55. <div class="formControls col-8">
  56. <input id="" name="account" type="text" placeholder="账户" class="input-text size-L">
  57. </div>
  58. </div>
  59. <div class="row cl">
  60. <label class="form-label col-3">
  61. <i class="Hui-iconfont">
  62. &#xe60e;
  63. </i>
  64. </label>
  65. <div class="formControls col-8">
  66. <input id="" name="password" type="password" placeholder="密码" class="input-text size-L">
  67. </div>
  68. </div>
  69. <div class="row cl">
  70. <div class="formControls col-8 col-offset-3">
  71. <input class="input-text size-L" name="vcode" type="text" placeholder="请输入验证码"
  72. style="width: 200px;">
  73. <img title="点击图片切换验证码" id="vcodeImg" src="CpachaServlet?method=loginCapcha">
  74. </div>
  75. </div>
  76. <div class="mt-20 skin-minimal" style="text-align: center;">
  77. <div class="radio-box">
  78. <input type="radio" id="radio-2" name="type" checked value="2" />
  79. <label for="radio-1">
  80. 学生
  81. </label>
  82. </div>
  83. <div class="radio-box">
  84. <input type="radio" id="radio-3" name="type" value="3" />
  85. <label for="radio-2">
  86. 老师
  87. </label>
  88. </div>
  89. <div class="radio-box">
  90. <input type="radio" id="radio-1" name="type" value="1" />
  91. <label for="radio-3">
  92. 管理员
  93. </label>
  94. </div>
  95. </div>
  96. <div class="row">
  97. <div style="text-align: center;" class="formControls col-8 col-offset-3">
  98. <input id="submitBtn" type="button" class="btn btn-success radius size-L"
  99. value="&nbsp;登&nbsp;&nbsp;&nbsp;&nbsp;录&nbsp;">
  100. </div>
  101. </div>
  102. </form>
  103. </div>
  104. </div>
  105. <div class="footer">
  106. &nbsp;
  107. </div>
  108. </body>
  109. </html>

5.2 教师信息管理代码实现

教师和管理员可以对信息进行修改:

  1. <html>
  2. <head>
  3. <meta charset="UTF-8">
  4. <title>
  5. 教师列表
  6. </title>
  7. <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
  8. <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
  9. <link rel="stylesheet" type="text/css" href="easyui/css/demo.css">
  10. <script type="text/javascript" src="easyui/jquery.min.js">
  11. </script>
  12. <script type="text/javascript" src="easyui/jquery.easyui.min.js">
  13. </script>
  14. <script type="text/javascript" src="easyui/js/validateExtends.js">
  15. </script>
  16. <script type="text/javascript">
  17. $(function() {
  18. var table;
  19. //datagrid初始化
  20. $('#dataList').datagrid({
  21. title: '教师列表'iconCls: 'icon-more' //图标
  22. border: truecollapsible: false //是否可折叠的
  23. fit: true //自动大小
  24. method: "post"url: "TeacherServlet?method=TeacherList&t=" + new Date().getTime(),idField: 'id'singleSelect: false //是否单选
  25. pagination: true //分页控件
  26. rownumbers: true //行号
  27. sortName: 'id'sortOrder: 'DESC'remoteSort: falsecolumns: [[{
  28. field: 'chk'checkbox: truewidth: 50
  29. }, {
  30. field: 'id'title: 'ID'width: 50sortable: true
  31. }, {
  32. field: 'sn'title: '工号'width: 150sortable: true
  33. }, {
  34. field: 'name'title: '姓名'width: 150
  35. }, {
  36. field: 'sex'title: '性别'width: 100
  37. }, {
  38. field: 'mobile'title: '电话'width: 150
  39. }, {
  40. field: 'qq'title: 'QQ'width: 150
  41. }, {
  42. field: 'clazz_id'title: '班级'width: 150formatter: function(valuerowindex) {
  43. if (row.clazzId) {
  44. var clazzList = $("#clazzList").combobox("getData");
  45. for (var i = 0; i < clazzList.length; i++) {
  46. //console.log(clazzList[i]);
  47. if (row.clazzId == clazzList[i].id) return clazzList[i].name;
  48. }
  49. return row.clazzId;
  50. } else {
  51. return 'not found';
  52. }
  53. }
  54. }]],toolbar: "#toolbar"onBeforeLoad: function() {
  55. try {
  56. $("#clazzList").combobox("getData")
  57. } catch(err) {
  58. preLoadClazz();
  59. }
  60. }
  61. });
  62. //设置分页控件
  63. var p = $('#dataList').datagrid('getPager');
  64. $(p).pagination({
  65. pageSize: 10 //每页显示的记录条数,默认为10
  66. pageList: [10203050100], //可以设置每页记录条数的列表
  67. beforePageText: '第' //页数文本框前显示的汉字
  68. afterPageText: '页 共 {pages} 页'displayMsg: '当前显示 {from} - {to} 条记录 共 {total} 条记录'
  69. });
  70. //设置工具类按钮
  71. $("#add").click(function() {
  72. table = $("#addTable");
  73. $("#addDialog").dialog("open");
  74. });
  75. //修改
  76. $("#edit").click(function() {
  77. table = $("#editTable");
  78. var selectRows = $("#dataList").datagrid("getSelections");
  79. if (selectRows.length != 1) {
  80. $.messager.alert("消息提醒""请选择一条数据进行操作!""warning");
  81. } else {
  82. $("#editDialog").dialog("open");
  83. }
  84. });
  85. //删除
  86. $("#delete").click(function() {
  87. var selectRows = $("#dataList").datagrid("getSelections");
  88. var selectLength = selectRows.length;
  89. if (selectLength == 0) {
  90. $.messager.alert("消息提醒""请选择数据进行删除!""warning");
  91. } else {
  92. var ids = [];
  93. $(selectRows).each(function(irow) {
  94. ids[i] = row.id;
  95. });
  96. $.messager.confirm("消息提醒""将删除与教师相关的所有数据,确认继续?"
  97. function(r) {
  98. if (r) {
  99. $.ajax({
  100. type: "post"url: "TeacherServlet?method=DeleteTeacher"data: {
  101. ids: ids
  102. },success: function(msg) {
  103. if (msg == "success") {
  104. $.messager.alert("消息提醒""删除成功!""info");
  105. //刷新表格
  106. $("#dataList").datagrid("reload");
  107. $("#dataList").datagrid("uncheckAll");
  108. } else {
  109. $.messager.alert("消息提醒""删除失败!""warning");
  110. return;
  111. }
  112. }
  113. });
  114. }
  115. });
  116. }
  117. });
  118. function preLoadClazz() {
  119. $("#clazzList").combobox({
  120. width: "150"height: "25"valueField: "id"textField: "name"multiple: false //可多选
  121. editable: false //不可编辑
  122. method: "post"url: "ClazzServlet?method=getClazzList&t=" + new Date().getTime() + "&from=combox"onChange: function(newValueoldValue) {
  123. //加载班级下的学生
  124. //$('#dataList').datagrid("options").queryParams = {clazzid: newValue};
  125. //$('#dataList').datagrid("reload");
  126. }
  127. });
  128. }
  129. //设置添加窗口
  130. $("#addDialog").dialog({
  131. title: "添加教师"width: 850height: 550iconCls: "icon-add"modal: truecollapsible: falseminimizable: falsemaximizable: falsedraggable: trueclosed: truebuttons: [{
  132. text: '添加'plain: trueiconCls: 'icon-user_add'handler: function() {
  133. var validate = $("#addForm").form("validate");
  134. if (!validate) {
  135. $.messager.alert("消息提醒""请检查你输入的数据!""warning");
  136. return;
  137. } else {
  138. var clazzid = $("#add_clazzList").combobox("getValue");
  139. var name = $("#add_name").textbox("getText");
  140. var sex = $("#add_sex").textbox("getText");
  141. var phone = $("#add_phone").textbox("getText");
  142. var qq = $("#add_qq").textbox("getText");
  143. var password = $("#add_password").textbox("getText");
  144. var data = {
  145. clazzid: clazzidname: namesex: sexmobile: phoneqq: qqpassword: password
  146. };
  147. $.ajax({
  148. type: "post"url: "TeacherServlet?method=AddTeacher"data: datasuccess: function(msg) {
  149. if (msg == "success") {
  150. $.messager.alert("消息提醒""添加成功!""info");
  151. //关闭窗口
  152. $("#addDialog").dialog("close");
  153. //清空原表格数据
  154. $("#add_number").textbox('setValue'"");
  155. $("#add_name").textbox('setValue'"");
  156. $("#add_sex").textbox('setValue'"男");
  157. $("#add_phone").textbox('setValue'"");
  158. $("#add_qq").textbox('setValue'"");
  159. $(table).find(".chooseTr").remove();
  160. //重新刷新页面数据
  161. $('#dataList').datagrid("reload");
  162. } else {
  163. $.messager.alert("消息提醒""添加失败!""warning");
  164. return;
  165. }
  166. }
  167. });
  168. }
  169. }
  170. }, {
  171. text: '重置'plain: trueiconCls: 'icon-reload'handler: function() {
  172. $("#add_number").textbox('setValue'"");
  173. $("#add_name").textbox('setValue'"");
  174. $("#add_phone").textbox('setValue'"");
  175. $("#add_qq").textbox('setValue'"");
  176. $(table).find(".chooseTr").remove();
  177. }
  178. },],onClose: function() {
  179. $("#add_number").textbox('setValue'"");
  180. $("#add_name").textbox('setValue'"");
  181. $("#add_phone").textbox('setValue'"");
  182. $("#add_qq").textbox('setValue'"");
  183. $(table).find(".chooseTr").remove();
  184. }
  185. });
  186. //下拉框通用属性
  187. $("#edit_clazzList, #add_clazzList").combobox({
  188. width: "200"height: "30"valueField: "id"textField: "name"multiple: false //不可多选
  189. editable: false //不可编辑
  190. method: "post"
  191. });
  192. $("#add_clazzList").combobox({
  193. url: "ClazzServlet?method=getClazzList&t=" + new Date().getTime() + "&from=combox"onLoadSuccess: function() {
  194. //默认选择第一条数据
  195. var data = $(this).combobox("getData");
  196. $(this).combobox("setValue"data[0].id);
  197. }
  198. });
  199. //编辑教师信息班级下拉框
  200. $("#edit_clazzList").combobox({
  201. url: "ClazzServlet?method=getClazzList&t=" + new Date().getTime() + "&from=combox"onLoadSuccess: function() {
  202. //默认选择第一条数据
  203. var data = $(this).combobox("getData");
  204. $(this).combobox("setValue"data[0].id);
  205. }
  206. });
  207. //编辑教师信息
  208. $("#editDialog").dialog({
  209. title: "修改教师信息"width: 850height: 550iconCls: "icon-edit"modal: truecollapsible: falseminimizable: falsemaximizable: falsedraggable: trueclosed: truebuttons: [{
  210. text: '提交'plain: trueiconCls: 'icon-user_add'handler: function() {
  211. var validate = $("#editForm").form("validate");
  212. if (!validate) {
  213. $.messager.alert("消息提醒""请检查你输入的数据!""warning");
  214. return;
  215. } else {
  216. var clazzid = $("#edit_clazzList").combobox("getValue");
  217. var id = $("#dataList").datagrid("getSelected").id;
  218. var name = $("#edit_name").textbox("getText");
  219. var sex = $("#edit_sex").textbox("getText");
  220. var phone = $("#edit_phone").textbox("getText");
  221. var qq = $("#edit_qq").textbox("getText");
  222. var data = {
  223. id: idclazzid: clazzidname: namesex: sexmobile: phoneqq: qq
  224. };
  225. $.ajax({
  226. type: "post"url: "TeacherServlet?method=EditTeacher"data: datasuccess: function(msg) {
  227. if (msg == "success") {
  228. $.messager.alert("消息提醒""修改成功!""info");
  229. //关闭窗口
  230. $("#editDialog").dialog("close");
  231. //清空原表格数据
  232. $("#edit_name").textbox('setValue'"");
  233. $("#edit_sex").textbox('setValue'"男");
  234. $("#edit_phone").textbox('setValue'"");
  235. $("#edit_qq").textbox('setValue'"");
  236. //重新刷新页面数据
  237. $('#dataList').datagrid("reload");
  238. $('#dataList').datagrid("uncheckAll");
  239. } else {
  240. $.messager.alert("消息提醒""修改失败!""warning");
  241. return;
  242. }
  243. }
  244. });
  245. }
  246. }
  247. }, {
  248. text: '重置'plain: trueiconCls: 'icon-reload'handler: function() {
  249. $("#edit_name").textbox('setValue'"");
  250. $("#edit_phone").textbox('setValue'"");
  251. $("#edit_qq").textbox('setValue'"");
  252. $(table).find(".chooseTr").remove();
  253. }
  254. },],onBeforeOpen: function() {
  255. var selectRow = $("#dataList").datagrid("getSelected");
  256. //设置值
  257. $("#edit_name").textbox('setValue'selectRow.name);
  258. $("#edit_sex").textbox('setValue'selectRow.sex);
  259. $("#edit_phone").textbox('setValue'selectRow.mobile);
  260. $("#edit_qq").textbox('setValue'selectRow.qq);
  261. $("#edit_photo").attr("src""PhotoServlet?method=getPhoto&type=2&tid=" + selectRow.id);
  262. $("#set-photo-id").val(selectRow.id);
  263. var clazzid = selectRow.clazzId;
  264. setTimeout(function() {
  265. $("#edit_clazzList").combobox('setValue'clazzid);
  266. },100);
  267. },onClose: function() {
  268. $("#edit_name").textbox('setValue'"");
  269. $("#edit_phone").textbox('setValue'"");
  270. $("#edit_qq").textbox('setValue'"");
  271. }
  272. });
  273. //搜索按钮监听事件
  274. $("#search-btn").click(function() {
  275. $('#dataList').datagrid('load' {
  276. teacherName: $('#search_student_name').val(),clazzid: $("#clazzList").combobox('getValue') == '' ? 0 : $("#clazzList").combobox('getValue')
  277. });
  278. });
  279. });
  280. //上传图片按钮事件
  281. $("#upload-photo-btn").click(function() {
  282. });
  283. function uploadPhoto() {
  284. var action = $("#uploadForm").attr('action');
  285. var pos = action.indexOf('tid');
  286. if (pos != -1) {
  287. action = action.substring(0pos - 1);
  288. }
  289. $("#uploadForm").attr('action'action + '&tid=' + $("#set-photo-id").val());
  290. $("#uploadForm").submit();
  291. setTimeout(function() {
  292. var message = $(window.frames["photo_target"].document).find("#message").text();
  293. $.messager.alert("消息提醒"message"info");
  294. $("#edit_photo").attr("src""PhotoServlet?method=getPhoto&tid=" + $("#set-photo-id").val());
  295. },1500)
  296. }
  297. </script>
  298. </head>
  299. <body>
  300. <!-- 数据列表 -->
  301. <table id="dataList" cellspacing="0" cellpadding="0">
  302. </table>
  303. <!-- 工具栏 -->
  304. <div id="toolbar">
  305. <c:if test="${userType == 1}">
  306. <div style="float: left;">
  307. <a id="add" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-add',plain:true">
  308. 添加
  309. </a>
  310. </div>
  311. <div style="float: left;" class="datagrid-btn-separator">
  312. </div>
  313. </c:if>
  314. <div style="float: left;">
  315. <a id="edit" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true">
  316. 修改
  317. </a>
  318. </div>
  319. <div style="float: left;" class="datagrid-btn-separator">
  320. </div>
  321. <c:if test="${userType == 1}">
  322. <div style="float: left;">
  323. <a id="delete" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-some-delete',plain:true">
  324. 删除
  325. </a>
  326. </div>
  327. </c:if>
  328. <div style="float: left;margin-top:4px;" class="datagrid-btn-separator">
  329. &nbsp; &nbsp; 姓名:
  330. <input id="search_student_name" class="easyui-textbox" name="search_student_name"
  331. />
  332. </div>
  333. <div style="margin-left: 10px;margin-top:4px;">
  334. 班级:
  335. <input id="clazzList" class="easyui-textbox" name="clazz" />
  336. <a id="search-btn" href="javascript:;" class="easyui-linkbutton" data-options="iconCls:'icon-search',plain:true">
  337. 搜索
  338. </a>
  339. </div>
  340. </div>
  341. <!-- 添加窗口 -->
  342. <div id="addDialog" style="padding: 10px;">
  343. <div style=" position: absolute; margin-left: 560px; width: 200px; border: 1px solid #EEF4FF"
  344. id="photo">
  345. <img alt="照片" style="max-width: 200px; max-height: 400px;" title="照片"
  346. src="PhotoServlet?method=getPhoto" />
  347. </div>
  348. <form id="addForm" method="post">
  349. <table id="addTable" border=0 style="width:800px; table-layout:fixed;"
  350. cellpadding="6">
  351. <tr>
  352. <td style="width:40px">
  353. 班级:
  354. </td>
  355. <td colspan="3">
  356. <input id="add_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox"
  357. name="clazzid" />
  358. </td>
  359. <td style="width:80px">
  360. </td>
  361. </tr>
  362. <tr>
  363. <td>
  364. 姓名:
  365. </td>
  366. <td colspan="4">
  367. <input id="add_name" style="width: 200px; height: 30px;" class="easyui-textbox"
  368. type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'"
  369. />
  370. </td>
  371. </tr>
  372. <tr>
  373. <td>
  374. 密码:
  375. </td>
  376. <td colspan="4">
  377. <input id="add_password" style="width: 200px; height: 30px;" class="easyui-textbox"
  378. type="password" name="password" data-options="required:true, missingMessage:'请填写密码'"
  379. />
  380. </td>
  381. </tr>
  382. <tr>
  383. <td>
  384. 性别:
  385. </td>
  386. <td colspan="4">
  387. <select id="add_sex" class="easyui-combobox" data-options="editable: false, panelHeight: 50, width: 60, height: 30"
  388. name="sex">
  389. <option value="男">
  390. </option>
  391. <option value="女">
  392. </option>
  393. </select>
  394. </td>
  395. </tr>
  396. <tr>
  397. <td>
  398. 电话:
  399. </td>
  400. <td colspan="4">
  401. <input id="add_phone" style="width: 200px; height: 30px;" class="easyui-textbox"
  402. type="text" name="phone" validType="mobile" />
  403. </td>
  404. </tr>
  405. <tr>
  406. <td>
  407. QQ:
  408. </td>
  409. <td colspan="4">
  410. <input id="add_qq" style="width: 200px; height: 30px;" class="easyui-textbox"
  411. type="text" name="qq" validType="number" />
  412. </td>
  413. </tr>
  414. </table>
  415. </form>
  416. </div>
  417. <!-- 修改窗口 -->
  418. <div id="editDialog" style="padding: 10px">
  419. <div style=" position: absolute; margin-left: 560px; width: 200px; border: 1px solid #EEF4FF">
  420. <img id="edit_photo" alt="照片" style="max-width: 200px; max-height: 400px;"
  421. title="照片" src="" />
  422. <form id="uploadForm" method="post" enctype="multipart/form-data" action="PhotoServlet?method=SetPhoto"
  423. target="photo_target">
  424. <!-- StudentServlet?method=SetPhoto -->
  425. <input type="hidden" name="tid" id="set-photo-id">
  426. <input class="easyui-filebox" name="photo" data-options="prompt:'选择照片'"
  427. style="width:200px;">
  428. <input id="upload-photo-btn" onClick="uploadPhoto()" class="easyui-linkbutton"
  429. style="width: 50px; height: 24px;" type="button" value="上传" />
  430. </form>
  431. </div>
  432. <form id="editForm" method="post">
  433. <table id="editTable" border=0 style="width:800px; table-layout:fixed;"
  434. cellpadding="6">
  435. <tr>
  436. <td style="width:40px">
  437. 班级:
  438. </td>
  439. <td colspan="3">
  440. <input id="edit_clazzList" style="width: 200px; height: 30px;" class="easyui-textbox"
  441. name="clazzid" />
  442. </td>
  443. <td style="width:80px">
  444. </td>
  445. </tr>
  446. <tr>
  447. <td>
  448. 姓名:
  449. </td>
  450. <td>
  451. <input id="edit_name" style="width: 200px; height: 30px;" class="easyui-textbox"
  452. type="text" name="name" data-options="required:true, missingMessage:'请填写姓名'"
  453. />
  454. </td>
  455. </tr>
  456. <tr>
  457. <td>
  458. 性别:
  459. </td>
  460. <td>
  461. <select id="edit_sex" class="easyui-combobox" data-options="editable: false, panelHeight: 50, width: 60, height: 30"
  462. name="sex">
  463. <option value="男">
  464. </option>
  465. <option value="女">
  466. </option>
  467. </select>
  468. </td>
  469. </tr>
  470. <tr>
  471. <td>
  472. 电话:
  473. </td>
  474. <td>
  475. <input id="edit_phone" style="width: 200px; height: 30px;" class="easyui-textbox"
  476. type="text" name="phone" validType="mobile" />
  477. </td>
  478. </tr>
  479. <tr>
  480. <td>
  481. QQ:
  482. </td>
  483. <td colspan="4">
  484. <input id="edit_qq" style="width: 200px; height: 30px;" class="easyui-textbox"
  485. type="text" name="qq" validType="number" />
  486. </td>
  487. </tr>
  488. </table>
  489. </form>
  490. </div>
  491. <iframe id="photo_target" name="photo_target">
  492. </iframe>
  493. </body>
  494. </html>

5.3 后台管理代码实现

系统管理员可以对后台所有数据进行管理,部分代码如下:

  1. <html xmlns="http://www.w3.org/1999/xhtml">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title>
  5. 教务信息管理系统 管理员后台
  6. </title>
  7. <link rel="shortcut icon" href="favicon.ico" />
  8. <link rel="bookmark" href="favicon.ico" />
  9. <link rel="stylesheet" type="text/css" href="easyui/css/default.css" />
  10. <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css"
  11. />
  12. <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css" />
  13. <script type="text/javascript" src="easyui/jquery.min.js">
  14. </script>
  15. <script type="text/javascript" src="easyui/jquery.easyui.min.js">
  16. </script>
  17. <script type="text/javascript" src='easyui/js/outlook2.js'>
  18. </script>
  19. <script type="text/javascript">
  20. var _menus = {
  21. "menus": [
  22. {
  23. "menuid": "2""icon": """menuname": "学生信息管理""menus": [{
  24. "menuid": "21""menuname": "学生列表""icon": "icon-user-student""url": "StudentServlet?method=toStudentListView"
  25. },]
  26. }, < c: if test = "${userType == 1 || userType == 3}" > {
  27. "menuid": "4""icon": """menuname": "班级信息管理""menus": [{
  28. "menuid": "42""menuname": "班级列表""icon": "icon-house""url": "ClazzServlet?method=toClazzListView"
  29. }]
  30. }, < /c:if>
  31. <c:if test="${userType == 1 || userType == 3}">
  32. { "menuid":"3""icon":"""menuname":"教师信息管理"
  33. "menus":[
  34. {"menuid":"31""menuname":"教师列表""icon":"icon-user-teacher""url":"TeacherServlet?method=toTeacherListView"},
  35. ]
  36. },
  37. </c: if > <c: if test = "${userType == 1 || userType == 3}" > {
  38. "menuid": "6""icon": """menuname": "课程信息管理""menus": [{
  39. "menuid": "61""menuname": "课程列表""icon": "icon-book-open""url": "CourseServlet?method=toCourseListView"
  40. },]
  41. }, < /c:if>
  42. { "menuid":"7""icon":"""menuname":"选课信息管理"
  43. "menus":[
  44. {"menuid":"71""menuname":"选课列表""icon":"icon-book-open""url":"SelectedCourseServlet?method=toSelectedCourseListView"},
  45. ]
  46. },
  47. { "menuid":"5""icon":"""menuname":"系统管理"
  48. "menus":[
  49. {"menuid":"51""menuname":"修改密码""icon":"icon-set""url":"SystemServlet?method=toPersonalView"},
  50. ]
  51. }
  52. ]
  53. };
  54. /
  55. </script>
  56. </head>
  57. <body class="easyui-layout" style="overflow-y: hidden" scroll="no">
  58. <noscript>
  59. <div style=" position:absolute; z-index:100000; height:2046px;top:0px;left:0px; width:100%; background:white; text-align:center;">
  60. <img src="images/noscript.gif" alt='抱歉,请开启脚本支持!' />
  61. </div>
  62. </noscript>
  63. <div region="north" split="true" border="false" style="overflow: hidden; height: 30px;
  64. background: url(images/layout-browser-hd-bg.gif) #7f99be repeat-x center 50%;
  65. line-height: 20px; color: #fff; font-family: Verdana, 微软雅黑,黑体">
  66. <span style="float:right; padding-right:20px;" class="head">
  67. <span style="color:red; font-weight:bold;">
  68. $ {user.name}&nbsp;
  69. </span>
  70. 您好&nbsp; &nbsp; &nbsp;
  71. <a href="LoginServlet?method=logout" id="loginOut">
  72. 安全退出
  73. </a>
  74. </span>
  75. <span style="padding-left:10px; font-size: 16px; ">
  76. 教务信息管理系统
  77. </span>
  78. </div>
  79. <div region="south" split="true" style="height: 30px; background: #D2E0F2; ">
  80. <div class="footer">
  81. &copy;
  82. </div>
  83. </div>
  84. <div region="west" hide="true" split="true" title="导航菜单" style="width:180px;"
  85. id="west">
  86. <div id="nav" class="easyui-accordion" fit="true" border="false">
  87. <!-- 导航内容 -->
  88. </div>
  89. </div>
  90. <div id="mainPanle" region="center" style="background: #eee; overflow-y:hidden">
  91. <div id="tabs" class="easyui-tabs" fit="true" border="false">
  92. <jsp:include page="welcome.jsp" />
  93. </div>
  94. </div>
  95. <iframe width=0 height=0 src="refresh.jsp">
  96. </iframe>
  97. </body>
  98. </html>

六、功能测试

6.1 登录功能测试

6.2 学生成功登录功能测试

学生成功登录图

学生修改密码测试图

6.3 教师成功登录功能测试

教师成功登录测试图

教师查看学生消息测试图

教师管理课程测试图

6.4 管理员功能测试

管理员成功登录图

管理员管理所有教师测试图

管理员对所有课程管理图

总结

在该系统的开发过程中,我参阅了很多相关的书籍,许多网站的帮助解决了我许多难题。系统中所有的页面,我都争取使页面上代码简捷、易懂、易改。

经过多天的设计与开发,系统终于基本开发完成,各项预期功能都已得到实现。当然,该系统还具有进一步的扩展空间,将会伴随着日后的使用逐步完成,使得界面更加优美,操作更加顺畅。设计和开发过程中遇到的问题也都得到解决,学到了很多的开发经验,受益无穷。

上传的附件 cloud_download 文档.docx ( 1.00mb, 3次下载 ) cloud_download 教务管理系统.zip ( 4.09mb, 7次下载 )
error_outline 下载需要12点积分

发送私信

会冒泡的可乐

102
文章数
12
评论数
最近文章
eject