课程管理系统的设计与实现

基于B/S的课程管理系统的设计与实现

摘  要:  随着计算机技术日渐成熟,计算机已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对学校的课程信息进行管理,与手工相比有其无可比拟的优势。例如:检索快速、查找方便、可靠性高、存储量大、保密性好、信息保存时间长等。这些优点能够极大地提高学校课程管理的效率,也是学校管理科学化、正规化的重要条件和标志。学生课程管理系统的产生大大减少了人力上的不便,不但减少了运营成本,而且让整个数据管理更加科学合理和高效。因此选择课程管理系统作为毕业设计具有一定实际意义。

本文阐述了一个基于JSP+JavaBean+Servlet的课程管理系统的设计及实现。首先介绍了课程管理系统(CMS)的开发背景与开发意义;在介绍动态网页程序开发和数据访问技术基础上,分析了课程管理系统的结构,阐述了系统的设计方案以及所采用的开发工具和相关技术。其次在介绍了开发本系统所使用的一些相关技术后,详细阐述了该CMS系统的设计和实现过程,其中对系统中的各个模块的设计与实现进行了详细的描述;在结束语部分对系统的开发过程做了总结系统采用B/S开发模式,开发工具选择JAVA、JSP、JavaScript、Html语言,采用Tomcat服务器技术,后台数据库选用SQL Server 2005。

关键词: 动态网页浏览器/服务器模式;课程管理系统

The Design and Realization of Course Management System

based on B/S

Abstract : As computer technology matures, it has entered human society in various fields and is playing an increasingly important role. Computer applications as part of the curriculum of schools using computers to manage information, as compared with the manual have an unparalleled advantage. For example: Search fast, easy to find, high reliability, large memory capacity, confidentiality, information is stored for a long time and so on. These advantages can greatly improve the efficiency of management of the school curriculum, but also the school of scientific management, the importance of standardized conditions and signs. Student course management system greatly reduces the production of the inconvenience of human resources, not only reduce operating costs, but also let the entire data management more scientific and rational and efficient. Therefore chosen as a graduate design course management system has some practical significance.

This paper describes a JSP + JavaBean + Servlet based course management system design and implementation. First introduced the course management system (CMS) development background and development of meaning; introducing dynamic Web application development and data access technology, based on analysis of the structure of the course management system, describes the system design and development tools used and related technologies. Secondly, the introduction of the development of the system used by some of the relevant technology, elaborated on the CMS system design and implementation process, in which the various modules of the system design and implementation are described in detail in the concluding part of the development process of the system are also summarized. System adopts B/S developing mode, selection of development tools JAVA, JSP, JavaScript, Html, using Tomcat Server technology, backend database choose SQL Server 2005.

Key words: Dynamic pages;B/S;CMS

基于B/S的课程管理系统的设计与实现

1 概述

1.1 开发背景

随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用[1]。随着国家经济的不断发展,高校规模的不断扩大,高校如何对数量庞大的学生课程信息进行统一管理是学校急需解决的问题之一[2]。而且高校要对学生信息、老师信息、学生课程类型信息等数量庞大的数据信息进行有效的管理也是高校需要解决的问题,而课程管理系统的出现,大大减轻了高校对课程信息的管理强度,提高了学生选课、分数查询等管理效率,在高校课程管理工作中发挥着重要的作用。

作为计算机应用的一部分,使用计算机实现学生信息、老师信息、课程信息、申请批准、分数查询管理等正在被越来越多的高校所采纳,高校已不再满足于独立、零散的课程信息管理模式,高校需要的是协同工作、综合、集成化的解决方案。而网络是解决由于物理距离造成的信息交流不畅、协商沟通不便的管理瓶颈问题的最佳方式。学生课程管理系统是通过对各高校学生申请课程信息、教师审核、教学、查询相关课程信息等的闭环整合,实现了工作流、信息流、资源流和办公自动化的整合管理,提供了一个科学、开放、先进的信息化课程信息管理平台,实现了学生信息管理、教师信息管理、课程管理等内容的高度继成。它的出现有着传统课程信息管理模式不可比拟的优点,它凭借其信息更新速度快、信息存储量大、使用方便、安全性高等优点已经成为各大高校课程信息管理的首选工具,随着高校人数的不断增加,选修课程数量的不断增加,学生课程管理系统必将在未来高校学生管理工作中发挥越来越重要的作用。

1.2 开发意义

全球经济一体化要求我们迅速利用信息,现代信息和通讯技术已经为我们提供了这样的技术手段。实现学生课程管理信息化,就为我国高校管理工作充分利用全球的经济信息资源创作了必要的条件。

基于B/S的课程管理系统是为教师和学生提供一个课程管理的平台,学生,可以通过该系统快速的选择自己喜欢的课程;教师可以通过该系统查看自己所授课程的选课情况;系统管理员可以根据需要对学生,教师和班级进行管理。

1.3 开发平台及运行环境

本系统的开发以SQL SERVER 2000作后台数据库服务器,用JAVA编写服务器有关程序,用JDBC访问数据库。其对硬件和软件的需求如下:

a)硬件需求

处理器:Pentium Ⅲ以上。

RAM:512M。

操作系统:适用各种系统

b)软件需求

Tomcat和MyEclipse和SQL Server 2005

1.4 系统所需的关键技术

1.4.1 JAVA语言简介

Java语言是当今流行的网络编程语言,它的面向对象、跨平台、分布应用等特点给编程人员带来了一种崭新的概念,使WWW从最初的单纯提供静态信息发展到现在的能够提供各种的动态服务。Java不仅能通过编写小应用程序实现嵌入网页的声音和动画功能,而且还应用到独立的大中型程序中,其强大的网络功能可以把整个Internet作为一个统一的运行平台。Java的诞生从根本上解决了Internet的异构、代码交换以及网络程序的安全性等诸多问题。Java语言具有平台无关性,程序经过编译后,生成字节代码并运行在Java虚拟机上,随着Java Servlet的推出 ,Java的应用更加广泛,目前Java技术已成为项目开发的主要选择。

Java程序可以获取网络上结点的图像、声音、HTML文档及文本等资源,并可以对获得的资源进行处理。例如Java程序可以每隔一定时间读取某结点提供的最新数据,并以图表的形式显示出来。在编程处理上,一般先生成一个URL类型的对象,然后用 Java中相应的方法(method)获取该对象所代表的资源。

1.4.2 JSP技术简介

JSP 的工作原理是当用户浏览器从Web服务器上请求JSP文件时, Web服务器响该HTTP请求, JSP引擎解释JSP标识和小脚本, 通过访Java Bean组件, 使JDBC技术访问数据库,生成所请求的内容,并且将结果以HTM或者XML页面的形式返回给浏览器。Servlet为Web开发员提供了一个简单、一致的机制, 来扩展Web 服务器的功能, 并且和已有的业务系统交互,可以把Servlet 看作在服务端运行的Applet。Java Bean 是一种“类” , 通过封装属性和方法成为具有某种功能或处理某业务的对象。JavaBean 被组织成为Package 以便进行管理。实际上就是把一组JavaBean一起放在XX 目录中, 每个类的定义前加上 Package XX, 必须放在系统环境Classpath 包含的目录下, 系统才能找到其中的JavaBean。JSP技术是 servlet 技术的扩展, 对HTML 和XML的页面创作提供支持。网页设计员能够非常容易地将固定或静态的模板数据与动态内容进行组合。JSP原理图如图1-1所示。

图1-1 浏览器向服务器发送 JSP 文件请求

JSP功能特点如下:

a)JSP具有跨平台能力、 语法简单、书写容易,并且有“一处编写、随处运行”的特点。与ASP相比, JSP+JavaBean可以在所有平台下运行, 而Java字节码都是具有标准性、跨平台性, 在移植到另外的平台上时基本不用重新编译。 而ASP目前仅用于N T和IIS,需要通过ASP+COM组合实现扩充,而且在Unix下施COM非常困难。

b)采用Java Bean执行应用中的复杂处理,由于这些组件可重复使用,能提高开发效率;此外,组件的使用有利于实现静态和动态页面的分离,页面设计者和开发设计者可以各施其职JSP为分离处理逻辑和表示层提供了很好的解决方案。

c)JSP技术为创建显示动态生成内容的WEB页面提供了一个简捷而快速的方法。JSP技术的设计目的是使得构造基于WEB应用程序更加容易和快捷, 这些应用程序能够与各种WEB服务器、应用服务器、浏览器和开发工具共同工作。

d)JSP 的效率和安性更高。ASP以源码形式存放,以解释方式运行,每次ASP 网页调用都需要对源码进行解释, 运行效率不高。JSP在执行以前先被编译成字节码,字节码由Java 虚拟机(Java Virtual Machine) 解释执行, 比源码解释的效率高服务器上还有字节码Cache 机制, 能提高字节码的访问效率。第一次调用JSP 网页可能稍慢, 因为它被编译成Cache, 后就快得多了。同时, JSP 源程序不大可能被下载, 特别是JavaBean 程序完全可以放到不对外的目录中。

e)JSP的组件方式更方便,易于维护。JSP通过Java Bean实现了功能扩充, 而且Java Bean更为简单。而ASP需要通过COM来扩充复杂的功能。在维护方面, COM 必须在服务器上注册, 如果修改了COM 程序, 就必须重新注册, 甚至必须关机和重新启 动。JavaBean 则不需要注册, 放在CLASSPATH包含的目录中就行了。另外JavaBean是完全OOP, 可以针对不同的业务处理功能方便地建立一整套可重复利用的对象库, 例如用户权限控制、E-mail自动回复等等。

1.4.3 SERVLET技术简介

Servlet是用Java书写的一种协议,是与平台无关的服务器端的构件。它可以在支持Servlet的Web服务器或应用服务器上运行。Servlet被装载到Web服务器或应用服务器后,在Java虚拟机上执行,所以不需要把源文件装载到Web客户端的JVM上执行。由于Servlet在服务器上执行,所以不需要任何图形用户界面。从这个意义上讲,Servlet是一个“无面”对象。

Servlet为客户端和服务器端的信息处理提供了一种“请求/回答”机制。Java的Servlet API为处理客户端和服务器端之间的请求和回答信息定义了标准接口。

Java Servlet处理技术与传统的CGI和许多其他类似CGI的技术相比,具有许多优点。

a)高效

在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程而不是重量级的操作系统进程来处理,如图1-2所示。

图 1-2 发送至 Servlet 的请求

b)方便

Servlet提供了大量的实用工程,例如自动解析和解码HTML表单数据、读取、和设置HTTP头、处理Cookie、跟踪会话状态等。

c)功能强大

在Servlet中,许多使用传统CGI程序很难完成的任务都可以轻松地完成。

d)可移植性好

Servlet用Java编写,Servlet API具有完善的标准。因此,为某个Enterprise Server写的Servlet无须任何实质上的改动即可移植到Apache、Microsoft IIS上。

e)节省投资

不仅有很多廉价甚至免费的Web服务器供供个人或小规模网站使用,而且对于现有的服务器,如果它不支持Servlet,那么要加上这部分功能也往往是免费的或是只需要极少的投资。

1.4.4 JAVABEAN和TOMCAT技术简介

JavaBean 是一种基于 Java 的软件组件。 JSP 对于在 Web 应用中集成 JavaBean 组件提供了完善的支持。这种支持不仅能缩短开发时间(可以直接利用经测试和可信任的已有组件,避免了重复开发),也为 JSP 应用带来了更多的可伸缩性。 JavaBean 组件可以用来执行复杂的计算任务,或负责与数据库的交互以及数据提取等。

Tomcat服务器是一个免费的开放源代码的Web应用服务器,它是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat5支持最新的Servlet 2.4和JSP 2.0规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器。

2系统可行性分析

2.1 技术可行性

该系统所需硬件设备,市场上销售且价格较低,基本使用原有的设备,软件上,操作系统采用Windows系列操作系统,发布在支持JSP+SQL Server 2005的服务器上即可。

2.2 经济可行性

对员工的传统笔记式管理浪费了大量的人力、时间和金钱资源,而且由于人为的疏忽造成的信息错误,因此,学生课程管理系统的使用,可以在速度、质量、效率和性能等方面的特性得到巨大提高,其经济效益是很可观的,不仅节约了大量的人力、物力和时间,还使得以前较为复杂的管理操作方式变得简单、方便。因此,在经济上是可行的。

2.3 操作可行性

网络化的课程管理系统,使学校课程管理更加规范,实现了通过网络对课程信息进行注册、打分、更新资料等一系列功能。系统中设置的学生课程注册模块,为学生教学提供了一个更为方便的管理平台,大大提高课程管理的工作效率,进而提高整个学校的办公效率。

3系统需求分析

图 5-8  教师功能模块

a)查看教学课程

教师登录后可以查看老师的教学课程安排,了解自己和同事所教的课程,课时及教室安排。界面如图5-9所示

图 5-9  查看教学课程界面

核心代码:

 int s=1;

 int ii=pages*ipage-ipage;

 for(int j=beginpos;j<endpos;j++)  //---从开始位置读取记录一直到结束位置

{if(rst.next())

{  ii++;    

 }}

b)查看选课信息

教师单击查看选课信息后,将显示各门课程和相应的任课老师,还有选修该门课程的人数及上课地点。如果课程信息太多,可选择课程号,任课教师等选项进行模糊查询,便于老师查看与自己有关的信息。界面如图5-10所示

图 5-10 查看学生信息界面

教师单击选课学生后,将显示选修该门课程的学生学号、姓名、班级、性别、专业等信息,对学生有个基本的了解。界面如图5-11所示。

图 5-11 查看学生信息界面

核心代码:

   // 根据用户名ID查询学生的具体信息

public ResultSet getStudents(String class_id) {

String c_code = request.getParameter("c_code");

    String sql1="select count(*) as id from student where s_username in (select s_username from xuanke where c_code = '"+c_code+"') ";

    conn nn=new conn();

    String pagesql,sql;

 ResultSet pagers,rst;

     }

c)公布成绩

教师在这门课程结束时可以给出所有选择这门课的学生的成绩,在这之后系统会分析教师的输入是否正确,否则提示输入错误。其次,在教师给出了学生某门课程的平时成绩和期末考试之后,系统会按照相关算法 计算得出学生选修该门课程的最终成绩。

首先进入学生成绩录入界面,其中包括选课学生的基本信息,界面如图5-12所示

图 5-12 学生成绩录入界面

核心代码:

public class add_chengji_javabean {

public int add_chengji(String s_username,String c_code,String chengji){

String sql = " insert into chengji (s_username,c_code,chengji) values('"+s_username+"','"+c_code+"','"+chengji+"')";

conn cn = new conn();

try {int i = cn.update(sql);

if(i>0){

return 1;

}else{return 0;}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {cn.close();

} catch (Exception e) {

e.printStackTrace();

}}

 给学生公布成绩,学生成绩包括平时成绩和考试成绩。添加成绩时系统会检测填写的成绩是否符合规范,如果符合就显示填写正确,不符合则显示填写不正确

要求重新填写。界面如图5-13所示

图 5-13  公布成绩界面

核心代码:

   // 给选课的学生打分

function checkname() {

var p_chengji = document.frm.p_chengji.value;

var k_chengji = document.frm.k_chengji.value;

var z_chengji = p_chengji*0.3+k_chengji*0.7;

document.getElementById("chengji").value=z_chengji;

}

5.2.5 管理员登陆后模块

功能如图5-14所示

图 5-14  管理员功能模块

  

    a)学生信息管理

管理员登录后,进入学生信息管理界面,可以对学生进行相关的操作,包括添加、删除及查询学生的信息,界面如图5-15

图 5-15  学生信息管理界面

首先从数据库中调用一个方法,然后通过在数据库中查找,返回一个结果集,通过这个结果集,动态的显示在页面上,核心代码:

  String s_username=request.getParameter("s_username");

  String s_password=request.getParameter("s_password");

  String s_name=request.getParameter("s_name");

  String s_sex=request.getParameter("s_sex");

  String s_banji=request.getParameter("s_banji");

  String s_zhuanye=request.getParameter("s_zhuanye");

  String sql1="select count(*) as id from student where ";

  if( s_username==""||s_username==null||s_username=="null"||s_username=="" ||s_username==(null)){

   sql1=sql1+" s_username like '%%'";

  }else{

  sql1=sql1+" s_username like '%"+s_username+"%'";

  }

  System.out.println("%%%%%%%%%%%%%%%"+sql1);

    conn nn=new conn();

}

点击新增、删除、查询可以对学生进行添加、删除等操作,界面如图5-16所示

图 5-16  添加学生界面

核心代码:

 //添加学生方法定义

 public class add_student extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

String s_username = request.getParameter("s_username");

s_username=new String(s_username.getBytes("ISO8859_1"), "gb2312");

String s_password = request.getParameter("s_password");

s_password=new String(s_password.getBytes("ISO8859_1"), "gb2312");

String s_name = request.getParameter("s_name");

s_name=new String(s_name.getBytes("ISO8859_1"), "gb2312");

String s_sex = request.getParameter("s_sex");

s_sex=new String(s_sex.getBytes("ISO8859_1"), "gb2312");

Student s = new Student();

s.setS_banji(s_banji);    s.setS_name(s_name);

s.setS_sex(s_sex);       s.setS_password(s_password);

add_student_javabean asj = new add_student_javabean();

}

    b)教师信息管理

也可以对教师进行相关的操作,包括添加、删除及查询教师的信息,界面如图5-17所示

图 5-17  教师信息管理界面

核心代码:                    

    public ResultSet getAll() {

    String sql = "select * from teacher";

    sqlBean db = new sqlBean();

    ResultSet rs = db.executeQuery(sql);

    return rs;

          }

c课程信息管理

管理员登录后,可以对课程进行相关的操作,包括添加、删除及修改课程的信息,界面如图5-18所示

图 5-18 课程信息管理界面

核心代码:

public ResultSet getCourse() {

String sql = "select * from course   ";

sqlBean db = new sqlBean();

ResultSet rs = db.executeQuery(sql);

return rs;

}

也可以对课程进行相关的操作,包括添加、删除及更新课程的信息,界面如图5-19所示。

图 5-19 课程信息修改界面

核心代码:

public class update_course_javabean {

public int update_course(Course course){

String sql = " update course set c_name = '"+course.getC_name()+"',c_keshi = "+course.getC_keshi()+",c_tid = '"+course.getC_tid()+"',c_tname = '"+course.getC_tname()+"',c_renshu = "+course.getC_renshu()+" ,c_address = '"+course.getC_address()+"'  where c_code = '"+course.getC_code()+"' ";

conn cn = new conn();

}

6 结 束 语

本文对基于B/S的课程管理系统做了论述,简单介绍了相关技术,并运用Java、JSP、JavaBean等技术实现了当前系统。该系统有以下特色:

1)界面简洁,易于用户操作。

2)有较强的灵活性。通过对数据库的操作较好地实现对系统功能的修改 、扩充,提高了系统的可扩充性,延长了系统的生命周期 。

 本系统实现了当前CMS所具有的基本功能,主要体现在以下三个方面:

1)学生登录系统后可以进行课程选择,并且可以查看教师已经给出的某门课程的成绩,此外学生还可以更改自己的个人信息。

2)教师登录系统后可以查看教师教学课程安排,了解自己的教学任务,查看选修自己所授课程学生的基本情况以及给选修自己课程的学生打分。

3)系统管理员登录系统后可以修改系统中的全部信息,包括学生、教师、课程以及公告等信息。

由于是第一次比较系统地开发课程管理系统,时间比较仓促,系统还有许多不足的地方,例如添加,修改等界面,没有进行相关的界面美工处理和仔细的排版,导致界面看起来单调枯燥,没有美感。由于所学有限,主要采用JSP进行编程,对于主要的业务逻辑采用了分页的原理,进行不同页面JSP处理,总体实现了全部功能。

参考文献

[1] 李松林.课程管理系统概论[M].北京:清华大学出版社,2005:3~251

[2] 吕海华,张欣.简析网络应用系统通用框架的研究与设计[D].中国论文下载中心,2011:10

[3] 王鲁滨等.Java Servlet & JSP经典实例.西安科技大学学报(自然科学版),2005:

[4] 郭兴峰,陈建伟.SQL Server 2000开发、管理和应用从基础到实践[M].北京:清华大学出版社,2006:

[5] 孙卫琴,孙宗虎.Java虚拟机运行机制设计与分析[J].清华大学学报(自然科学版),2008:

[6] 邱锦伦.Servlet生命周期深入分析及设计[J].电子工业大学学报(自然科学 版),2006:

[7] 邓春妮,孙艳华.高校课程管理信息化系统建设[J].杭州电子科技大学学报(自然科学版),2006:

[8] 孙宗虎,李聪巍.课程管理系统设计流程和标准分析[J].中国人民大学学报(自然科学版),2003:

[9] 李先国,曹献存.Java面向对象过程设计及体会[J].陕西师范大学学报(自然科学版),2006:

[10] Art Taylor.JDBC Database Programming With J2EE[M].北京:电子工业出版 社,2007:

[11] Steven John Metsker William C Wake.Java设计模式[M].北京:人民邮电出版社,2006:

[12] 王文涛.CMS的发展历程及现状分析[J].广西师范大学学报(自然科学版), 2002:

[13] 叶达峰.Eclipse编程技术与实例[M].北京:人民邮电出版社,2006:

[14] 刘翔,彭霈.课程管理系统与高校管理决策[M].上海:上海交通大学出版社,2007:

附    录

附录1整体界面设计源程序清单 

center_teacher.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

overflow:hidden;

}

-->

</style></head>

<body>

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed">

  <tr>

    <td background="images/main_40.gif" style="width:3px;"> </td>

    <td width="177"  style="border-right:solid 1px #9ad452;"><iframe name="I2" height="100%" width="177" border="0" frameborder="0" src="left_teacher.jsp?righsts=<s:property value="righsts"/>">

浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>

    <td><iframe name="I1" src="images.jsp" height="100%" width="100%" border="0" frameborder="0">

浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>

    <td background="images/main_42.gif" style="width:3px;"> </td>

  </tr>

</table>

</body>

</html>

center.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

overflow:hidden;

}

-->

</style></head>

<body>

<table width="100%" height="100%" border="0" cellpadding="0" cellspacing="0" style="table-layout:fixed">

  <tr>

    <td background="images/main_40.gif" style="width:3px;"> </td>

    <td width="177"  style="border-right:solid 1px #9ad452;"><iframe name="I2" height="100%" width="177" border="0" frameborder="0" src="left.jsp?righsts=<s:property value="righsts"/>">

浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>

    <td><iframe name="I1" src="images.jsp" height="100%" width="100%" border="0" frameborder="0">

浏览器不支持嵌入式框架,或被配置为不显示嵌入式框架。</iframe></td>

    <td background="images/main_42.gif" style="width:3px;"> </td>

  </tr>

</table>

</body>

</html>

down.jsp

<%@page contentType="text/html;charset=gb2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

.STYLE2 {color: #43860c; font-size: 12px; }

a:link {font-size:12px; text-decoration:none; color:#FF0000;}

a:visited {font-size:12px; text-decoration:none; color:#FF0000;}

a:hover{font-size:12px; text-decoration:none; color:#FF0000;}

-->

</style></head>

<body>

<table width="100%" border="0" cellspacing="0" cellpadding="0">

  <tr>

    <td height="24" background="images/main_47.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">

      <tr>

        <td width="29" height="24"><img src="images/main_45.gif" width="29" height="24" /></td>

        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">

          <tr>

            <td width="369"><span class="STYLE1"><font size="2" color="#42870a">技术支持:B计算机075班***</font></span></td>

            <td width="814" class="STYLE1"></td>

           

            <td width="185" nowrap="nowrap" class="STYLE1"><div align="center"><a href="login.jsp" target="_parent"><p align="right">退出系统</p></a> </div></td>

          </tr>

        </table></td>

        <td width="14"><img src="images/main_49.gif" width="14" height="24" /></td>

      </tr>

    </table></td>

  </tr>

</table>

</body>

</html>

left.jsp

<%@ page language="java" contentType="text/html;charset=gb2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>无标题文档</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

.STYLE2 {color: #43860c; font-size: 12px; }

a:link {font-size:12px; text-decoration:none; color:#43860c;}

a:visited {font-size:12px; text-decoration:none; color:#43860c;}

a:hover{font-size:12px; text-decoration:none; color:#FF0000;}

-->

</style>

<script type="text/JavaScript">

<!--

function MM_preloadImages() { //v3.0

  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();

    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)

    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}

}

function MM_swapImgRestore() { //v3.0

  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;

}

function MM_findObj(n, d) { //v4.01

  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {

    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}

  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];

  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);

  if(!x && d.getElementById) x=d.getElementById(n); return x;

}

function MM_swapImage() { //v3.0

  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)

   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}

}

//-->

</script>

</head>

<body οnlοad="MM_preloadImages('images/main_26_1.gif','images/main_29_1.gif','images/main_31_1.gif')">

<table width="177" height="100%" border="0" cellpadding="0" cellspacing="0">

  <tr>

    <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout:fixed">

      <tr>

        <td height="26" background="images/main_21.gif"> </td>

      </tr>

      <tr>

        <td height="80" style="background-image:url(images/main_23.gif); background-repeat:repeat-x;">

        <table width="98%" border="0" align="center" cellpadding="0" cellspacing="0">

          <tr>

              <td height="36"> </td>

          </tr>

          <tr>

              <td height="36">     <a href="editstudent.jsp" target="I1"><img src="images/main_31.gif" name="Image3" width="10" height="10" border="0" id="Image3" οnmοuseοver="MM_swapImage('Image3','','images/main_31_1.gif',1)" οnmοuseοut="MM_swapImgRestore()" />基本信息管理</a></td>

          </tr>

           <tr>

              <td height="36">     <a href="kexuankecheng.jsp"  target="I1"><img src="images/main_31.gif" name="Image3" width="10" height="10" border="0" id="Image3" οnmοuseοver="MM_swapImage('Image3','','images/main_31_1.gif',1)" οnmοuseοut="MM_swapImgRestore()" />选课信息管理</a></td>

          </tr>

           <tr>

              <td height="36">     <a href="search_chengji.jsp"  target="I1"><img src="images/main_31.gif" name="Image3" width="10" height="10" border="0" id="Image3" οnmοuseοver="MM_swapImage('Image3','','images/main_31_1.gif',1)" οnmοuseοut="MM_swapImgRestore()" />考试成绩查询</a></td>

          </tr>

        </table>

        </td>

      </tr>

     </table></td>

  </tr>

</table>

</body>

</html>

<script>

function close(){

window.close();

}

</script>

top.jsp

<%@page contentType="text/html;charset=gb2312"%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />

<title>学生选课系统</title>

<style type="text/css">

<!--

body {

margin-left: 0px;

margin-top: 0px;

margin-right: 0px;

margin-bottom: 0px;

}

.STYLE1 {

color: #43860c;

font-size: 12px;

}

-->

</style></head>

<body onLoad="calender()">

<table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout:fixed;">

  <tr>

    <td height="9" style="line-height:9px; background-image:url(images/main_04.gif)"><table width="100%" border="0" cellspacing="0" cellpadding="0">

      <tr>

        <td width="97" height="9" background="images/main_01.gif"> </td>

        <td> </td>

        <td> </td>

      </tr>

    </table></td>

  </tr>

  <tr>

    <td height="47" background="images/main_09.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">

      <tr>

        <td width="38" height="47" background="images/main_06.gif"> </td>

        <td width="59"><table width="100%" border="0" cellspacing="0" cellpadding="0">

          <tr>

            <td height="29" background="images/main_07.gif"> </td>

          </tr>

          <tr>

            <td height="18" background="images/main_14.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0" style="table-layout:fixed;">

              <tr>

                <td  style="width:1px;"> </td>

                <td ><span class="STYLE1"></span></td>

              </tr>

            </table></td>

          </tr>

        </table></td>

        <td width="155" background="images/main_08.gif"> </td>

        <td><table width="100%" border="0" cellspacing="0" cellpadding="0">

          <tr>

            <td height="23" align="left" style="border:solid 1px #cadcb2; font-size:12px; color:red;"><marquee>感谢您:<%=session.getAttribute("user") %>  使用学生选课管理系统!</marquee></td>

          </tr>

        </table></td>

        <td width="200" background="images/main_11.gif"><table width="100%" border="0" cellspacing="0" cellpadding="0">

          <tr><form name="myform">

            <td width="11%" height="23"> </td>

            <td width="89%" valign="bottom"><span class="STYLE1">

<input type="text" name="date" value="" size="30" style="height:15px; width:160px; border:0; font-size:12px; color:#81b432;">

</span></td>

          </tr>

        </table></td>

      </tr>

    </table></td>

  </tr>

  <tr>

    <td height="5" style="line-height:5px; background-image:url(images/main_18.gif)"><table width="100%" border="0" cellspacing="0" cellpadding="0">

      <tr>

        <td width="180" background="images/main_16.gif"  style="line-height:5px;"> </td>

        <td> </td>

      </tr>

    </table></td>

  </tr>

</table>

<map name="Map" id="Map"><area shape="rect" coords="3,1,49,22" href="#" /><area shape="rect" coords="52,2,95,21" href="#" /><area shape="rect" coords="102,2,144,21" href="#" /><area shape="rect" coords="150,1,197,22" href="#" /><area shape="rect" coords="210,2,304,20" href="#" /><area shape="rect" coords="314,1,361,23" href="#" /></map></body>

</html>

<script language="javascript">

function calender()

{

 var time=new Date();

 var year=time.getYear();

 var month=time.getMonth()+1;

 var day=time.getDate();

 var hour=time.getHours();

 var minute=time.getMinutes();

 var second=time.getSeconds();

 if(minute<10)

 {

  minute="0"+minute;

 }

 if(second<10)

 {

  second="0"+second;

 }

 document.myform.date.value=year+"年 "+month+"月 "+day+"日 "+hour+":"+minute+":"+second;

 var mytime=setTimeout("calender()",1000);

}

</script>

附录2数据库连接源程序清单

Conn.java

package conn;

import javax.naming.Context;

import javax.naming.InitialContext;

import javax.sql.DataSource;

import java.sql.Connection;

import java.sql.ResultSet;

import java.sql.PreparedStatement;

import java.sql.SQLException;

public class conn {

private Context ctx = null;           

private DataSource ds = null;

private Connection conn = null;        

private PreparedStatement stmt = null;   

private ResultSet rs = null;

// ****************建立连接**********************

public conn() {

try {

ctx = new InitialContext();

ds = (DataSource) ctx.lookup("java:/comp/env/sheji");  

conn = ds.getConnection();

System.out.println("数据库连接成功");

} catch (SQLException e) {

System.out.println(e.getMessage());

} catch (Exception e) {

System.out.println(e.getMessage());

}

}

// ********************查询*********************

public ResultSet query(String sql) {

try {

stmt = conn.prepareStatement(sql);

rs = stmt.executeQuery();

return rs;

}

catch (Exception e) {

System.out.println(e.getMessage());

}

return rs;

}

// ******************添加/修改/删除*************************

public int update(String sql) throws SQLException {

try {

stmt = conn.prepareStatement(sql);

return stmt.executeUpdate();

} catch (Exception e) {

System.out.println(e.getMessage());

}

return 0;

}

public void close() throws Exception{

if(rs   != null) rs.close();

if(stmt != null) stmt.close();

if(conn != null) conn.close();

}

public static void main(String[] args){

    conn connTest = new conn();

    connTest.query("select * from student");

}

}

附录3公告管理源程序清单

add_gonggao_javabean.java

package javabean;

import bean.News;

import conn.conn;

public class add_gonggao_javabean {

public int add_gonggao (News n){

String sql = " insert into news (n_title,n_content,n_time) values ('"+n.getN_title()+"','"+n.getN_content()+"','"+n.getN_time()+"')";

conn cn = new conn();

try{

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}

}catch(Exception e){

e.printStackTrace();

}finally{

    try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

delete_gonggao_javabean.java

package javabean;

import java.sql.SQLException;

import conn.conn;

public class delete_gonggao_javabean {

public int delete_gonggao(int n_id){

String sql = " delete  from  news where n_id = '"+n_id+"'";

conn cn = new conn();

try {

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

add_gonggao.java

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javabean.add_gonggao_javabean;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import bean.News;

public class add_gonggao extends HttpServlet

private static final long serialVersionUID = 1L

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

String n_title = request.getParameter("n_title");

n_title=new String(n_title.getBytes("ISO8859_1"), "gb2312");

String n_content = request.getParameter("n_content");

n_content=new String(n_content.getBytes("ISO8859_1"), "gb2312");

String n_time = request.getParameter("n_time");

n_time=new String(n_time.getBytes("ISO8859_1"), "gb2312");

News n = new News();

n.setN_title(n_title);

n.setN_content(n_content);

n.setN_time(n_time);

add_gonggao_javabean agj = new add_gonggao_javabean();

int i = agj.add_gonggao(n);

if(i==1){

out.println("<script>");

     out.println("alert('添加成功!');");

     out.println("window.location='gonggao_zhuanjia.jsp';");

     out.println("</script>");

}else{

out.println("<script>");

     out.println("alert('添加失败!');");

     out.println("window.location='gonggao_zhuanjia.jsp';");

     out.println("</script>");

}

}

}

delete_gonggao.java

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javabean.delete_gonggao_javabean;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class delete_gonggao extends HttpServlet {

private static final long serialVersionUID = 638346152681807500L;

public void doGet(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

String n_id = request.getParameter("n_id");

    int n_id1 = Integer.parseInt(n_id);

    delete_gonggao_javabean dsj = new delete_gonggao_javabean();

int i = dsj.delete_gonggao(n_id1);

if(i==1){

out.println("<script>");

     out.println("alert('删除成功!');");

     out.println("window.location='gonggao_zhuanjia.jsp';");

     out.println("</script>");

}else{

out.println("<script>");

     out.println("alert('删除失败!');");

     out.println("window.location='gonggao_zhuanjia.jsp';");

     out.println("</script>");

}

}

images_gonggao.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ page import="conn.conn"%>

<%@ page import="java.sql.*"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <script type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>

<%

String n_id = request.getParameter("n_id");

int n_id1 = Integer.parseInt(n_id);

String sql = "select * from news where n_id = "+n_id1+"";

conn cn = new conn();

ResultSet rs = cn.query(sql);

while(rs.next()){

%>

  <body>

  <center>

<br><br><font size="5" color="42870a"><b>

浏览公告信息</b></font><br><br>

<form name="frm"  action="add_gonggao" method="post"   onsubmit ="return users()" >

<table border="1" bordercolor="42870a">

<tr>

<td><font size="2" color="42870a">公告标题:</font></td>

<td><input type="text" value=<%=rs.getString("n_title")%> size="21" readonly="readonly"></input></td>

</tr>

<tr>

<td><font size="2" color="42870a">公告名称:</font></td>

<td><textarea  cols="45" rows="20" readonly="readonly"><%=rs.getString("n_content")%></textarea></td>

</tr>

<tr>

<td><font size="2" color="42870a">添加时间:</font></td>

<td><input  type="text" value=<%=rs.getString("n_time")%> size="21" readonly="readonly"></input></td>

</tr>

</table>

<br>

<a href="images.jsp" Style="height:20px; width:50px; border:solid 1px #cadcb2; font-size:12px; color:42870a;">返回</a>

</form>

</center>

  </body>

<%} cn.close();%>

</html>

附录4学生模块源程序清单

add_student.java

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javabean.add_student_javabean;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import bean.Student;

@SuppressWarnings("serial")

public class add_student extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

String s_username = request.getParameter("s_username");

s_username=new String(s_username.getBytes("ISO8859_1"), "gb2312");

String s_password = request.getParameter("s_password");

s_password=new String(s_password.getBytes("ISO8859_1"), "gb2312");

String s_name = request.getParameter("s_name");

s_name=new String(s_name.getBytes("ISO8859_1"), "gb2312");

String s_sex = request.getParameter("s_sex");

s_sex=new String(s_sex.getBytes("ISO8859_1"), "gb2312");

String s_banji = request.getParameter("s_banji");

s_banji=new String(s_banji.getBytes("ISO8859_1"), "gb2312");

String s_zhuanye = request.getParameter("s_zhuanye");

s_zhuanye=new String(s_zhuanye.getBytes("ISO8859_1"), "gb2312");

Student s = new Student();

s.setS_banji(s_banji);

s.setS_name(s_name);

s.setS_sex(s_sex);

s.setS_password(s_password);

s.setS_username(s_username);

s.setS_zhuanye(s_zhuanye);

add_student_javabean asj = new add_student_javabean();

int i = asj.add_student(s);

if(i==2){

out.println("<script>");

     out.println("alert('添加失败,用户名已经存在!');");

     out.println("window.location='addstudent.jsp';");

     out.println("</script>");

}else{

if(i==1){

out.println("<script>");

     out.println("alert('添加成功!');");

     out.println("window.location='admin_student.jsp';");

     out.println("</script>");

}else{

out.println("<script>");

     out.println("alert('添加失败!');");

     out.println("window.location='addstudent.jsp';");

     out.println("</script>");

}

}

}

}

update_student.java

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javabean.update_student_javabean;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import bean.Student;

@SuppressWarnings("serial")

public class update_student extends HttpServlet {

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

response.setContentType("text/html;charset=gb2312");

PrintWriter out = response.getWriter();

String s_id = request.getParameter("s_id");

int id = Integer.parseInt(s_id);

String s_username = request.getParameter("s_username");

s_username=new String(s_username.getBytes("ISO8859_1"), "gb2312");

String s_password = request.getParameter("s_password");

s_password=new String(s_password.getBytes("ISO8859_1"), "gb2312");

String s_sex = request.getParameter("s_sex");

s_sex=new String(s_sex.getBytes("ISO8859_1"), "gb2312");

String s_name = request.getParameter("s_name");

s_name=new String(s_name.getBytes("ISO8859_1"), "gb2312");

String s_banji = request.getParameter("s_banji");

s_banji=new String(s_banji.getBytes("ISO8859_1"), "gb2312");

String s_zhuanye = request.getParameter("s_zhuanye");

s_zhuanye=new String(s_zhuanye.getBytes("ISO8859_1"), "gb2312");

Student s = new Student();

s.setS_banji(s_banji);

s.setS_id(id);

s.setS_name(s_name);

s.setS_sex(s_sex);

s.setS_password(s_password);

s.setS_username(s_username);

s.setS_zhuanye(s_zhuanye);

update_student_javabean usj = new update_student_javabean();

int i = usj.update(s);

if(i>0){

out.println("<script>");

     out.println("alert('修改成功!');");

     out.println("window.location='editstudent.jsp';");

     out.println("</script>");

}else{

out.println("<script>");

     out.println("alert('修改失败!');");

     out.println("window.location='editstudent.jsp';");

     out.println("</script>");

}

}

}

add_student_javabean.java

package javabean;

import java.sql.SQLException;

import java.sql.*;

import conn.conn;

import bean.Student;

public class add_student_javabean {

public int add_student(Student s){

String sql1 = "select * from student where s_username = '"+s.getS_username()+"'";

String sql = " insert into student (s_username,s_password,s_sex,s_name,s_banji,s_zhuanye) values ('"+s.getS_username()+"','"+s.getS_password()+"','"+s.getS_sex()+"','"+s.getS_name()+"','"+s.getS_banji()+"','"+s.getS_zhuanye()+"')";

System.out.println(sql);

conn cn = new conn();

ResultSet  rs = cn.query(sql1);

try {

if(rs.next()){

return 2;

}else{

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

delete_student_javabean.java

package javabean;

import java.sql.SQLException;

import conn.conn;

public class delete_student_javabean {

public int delete_student(String s_username){

String sql = " delete  from  student where s_username = '"+s_username+"'";

conn cn = new conn();

try {

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

附录5管理员模块源程序清单

addcourse.jsp

<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>

<%@ page import="conn.conn" %>

<%@ page import="java.sql.*"%>

<%

String path = request.getContextPath();

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

  <script type="text/javascript" src="My97DatePicker/WdatePicker.js"></script>

  <body>

  <center>

<br><br><font size="5" color="42870a"><b>

添加课程信息</b></font><br><br>

<form name="frm"  action="add_course" method="post"   onSubmit="return checkc_code()" >

<table border="1" bordercolor="42870a">

<tr>

<td><font size="2" color="42870a">课程编号:</font></td>

<td><input οnblur=checkc_code() type="text" name="c_code" size="22"></input>       <font color="#ff0000"><SPAN id=message></SPAN></font></td>

</tr>

<tr>

<td><font size="2" color="42870a">课程名称:</font></td>

<td><input οnblur=checkc_name() type="text" name="c_name" size="22"></input>       <SPAN id=c_name1></SPAN></td>

</tr>

<tr>

<td><font size="2" color="42870a">课时:</font></td>

<td><input οnblur=checkc_keshi() type="text" name="c_keshi" size="22"></input>       <SPAN id=c_keshi1></SPAN></td>

</tr>

<tr>

<td><font size="2" color="42870a">任课教师:</font></td>

<td><select name="c_tid" >

<% conn cn = new conn();

String sql = " select * from teacher ";

ResultSet rs = cn.query(sql);

while(rs.next()){

 %>

<option value="<%=rs.getString("t_username") %>" ><%=rs.getString("t_username") %> <%=rs.getString("t_name") %></option>

<% } cn.close(); %>

</select></td>

</tr>

<tr>

<td><font size="2" color="42870a">选课人数:</font></td>

<td><input οnblur=checkc_renshu() type="text" name="c_renshu" size="22"></input>       <SPAN id=c_renshu1></SPAN></td>

</tr>

<tr>

<td><font size="2" color="42870a">教室安排:</font></td>

<td><input οnblur=checkc_address() type="text" name="c_address" size="22"></input>       <SPAN id=c_address1></SPAN></td>

</tr>

</table>

<br>

<input type="submit" value="提交"   Style="height:20px; width:50px; border:solid 1px #cadcb2; font-size:12px; color:42870a;"></input>

<input type="button"   value="重  置"  Style="height:20px; width:50px; border:solid 1px #cadcb2; font-size:12px; color:42870a;"></input>

</form>

</center>

  </body>

<script type="text/javascript">

var temp;

var XMLHttpReq = false;

//创建XMLHttpRequest对象       

function createXMLHttpRequest() {

if(window.XMLHttpRequest) { //Mozilla 浏览器

XMLHttpReq = new XMLHttpRequest();

}

else if (window.ActiveXObject) { // IE浏览器

try {

XMLHttpReq = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

XMLHttpReq = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {}

}

}

}

//发送请求函数

function sendRequest(url) {

createXMLHttpRequest();

XMLHttpReq.open("post", url, true);

XMLHttpReq.onreadystatechange = processResponse;//指定响应函数

XMLHttpReq.send(null);  // 发送请求

}

// 处理返回信息函数

function processResponse() {

if (XMLHttpReq.readyState == 4) { // 判断对象状态

     if (XMLHttpReq.status == 200) { // 信息已经成功返回,开始处理信息

         var message=XMLHttpReq.responseXML.getElementsByTagName("message")[0].firstChild.data;

         if(message=="0"){

             var message="<font color=#ff0000 >对不起您的课程编号已经存在!</font>";

             }else{

             var message="<font color=#086300 >恭喜你课程编号可用!</font>";

             }

         document.getElementById("message").innerHTML=message ;

        } else { //页面不正常

            window.alert("您所请求的页面有异常。");

        }

    }

}

//课程编号

function checkc_code(){

var c_code = document.frm.c_code.value;

if(c_code=="") {

var message1="¡Á 课程编号不能为空!";

document.getElementById("message").innerHTML=message1 ;

return false;

}

else {

sendRequest('re_course?c_code='+ c_code );

temp=checkc_name();

return temp;

}

}

//课程名称

function checkc_name(){

var c_name = document.frm.c_name.value;

if(c_name=="") {

var c_name1="<font color=#ff0000>¡Á 课程名称不能为空!</font>";

document.getElementById("c_name1").innerHTML=c_name1 ;

return false;

}

else {

c_name1="<font color=#086300>√ 填写正确!</font>";

document.getElementById("c_name1").innerHTML=c_name1 ;

temp=checkc_keshi();

return temp;

}

}

//课时

function checkc_keshi() {

var c_keshi = document.frm.c_keshi.value;

if(c_keshi=="") {

var c_keshi1="<font color=#ff0000>¡Á 课时不能为空!</font>";

document.getElementById("c_keshi1").innerHTML=c_keshi1 ;

return false;

}

else {

c_keshi1="<font color=#086300>√ 填写正确!</font>";

document.getElementById("c_keshi1").innerHTML=c_keshi1 ;

temp=checkc_renshu();

return temp;

}

}

//校验人数

function checkc_renshu(){

var c_renshu = document.frm.c_renshu.value;

if(c_renshu=="") {

var c_renshu1="<font color=#ff0000>¡Á 选课人数不能为空!</font>";

document.getElementById("c_renshu1").innerHTML=c_renshu1 ;

return false;

}

else {

c_renshu1="<font color=#086300>√ 填写正确!</font>";

document.getElementById("c_renshu1").innerHTML=c_renshu1 ;

temp= checkc_address();

return temp;

}

}

//教室安排

function checkc_address() {

var c_address = document.frm.c_address.value;

if(c_address=="") {

var c_address1="<font color=#ff0000>¡Á 教室安排不能为空!</font>";

document.getElementById("c_address1").innerHTML=c_address1 ;

return false;

}

else {

c_address1="<font color=#086300>√ 填写正确!</font>";

document.getElementById("c_address1").innerHTML=c_address1 ;

temp= true;

return temp;

}

}

</script>

</html>

deletexuanke.java

package servlet;

import java.io.IOException;

import java.io.PrintWriter;

import javabean.addaddxuanke_javabean;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

public class deletexuanke extends HttpServlet {

private static final long serialVersionUID = -6969805323868004892L;

public void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

request.setCharacterEncoding("gb2312");

response.setContentType("text/xml;charset=utf-8");

String c_code = request.getParameter("c_code");

PrintWriter out = response.getWriter();

addaddxuanke_javabean adj = new addaddxuanke_javabean();

int i = adj.deletexuanke(c_code);

if(i>0){

out.println("<response>");

out.println("<message>" + "2" + "</message>");

out.println("</response>");

}else{

out.println("<response>");

out.println("<message>" + "1" + "</message>");

out.println("</response>");

out.close();

}

out.close();

}

}

update_zhuanjia_javabean.java

package javabean;

import java.sql.SQLException;

import conn.conn;

import bean.zhuanjia ;

public class update_zhuanjia_javabean {

public int update_zhuanjia(zhuanjia zj){

String sql = " update zhuanjia set z_password = '"+zj.getZ_password()+"',z_name = '"+zj.getZ_name()+"',z_sex = '"+zj.getZ_sex()+"' where z_username = '"+zj.getZ_username()+"'";

conn cn = new conn();

try {

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

附录6教师模块源程序清单

update_teacher_javabean.java

package javabean;

import java.sql.SQLException;

import conn.conn;

import bean.Teacher;

public class update_teacher_javabean {

public int update_teacher(Teacher teacher){

String sql = " update teacher set t_password = '"+teacher.getT_password()+"',t_name = '"+teacher.getT_name()+"',t_sex = '"+teacher.getT_sex()+"' where t_username = '"+teacher.getT_username()+"'";

conn cn = new conn();

try {

int i = cn.update(sql);

if(i>0){

return 1;

}else{

return 0;

}

} catch (SQLException e) {

e.printStackTrace();

}finally{

try {

cn.close();

} catch (Exception e) {

e.printStackTrace();

}

}

return 0;

}

}

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 设计实现课程网站系统需要考虑以下几个方面: 1. 用户管理:需要实现用户注册、登录、密码重置、个人信息修改等功能。 2. 课程管理:需要实现课程的增删改查功能,包括课程名称、课程描述、课程封面图、课程视频、课程文档等信息。 3. 视频播放:需要实现视频播放功能,可以使用第三方视频播放器,也可以自己实现视频播放器。 4. 文档下载:需要实现文档下载功能,用户可以下载课程相关的文档资料。 5. 讨论区:需要实现讨论区功能,用户可以在讨论区中发布问题、回答问题,并与其他用户进行交流。 6. 支付功能:需要实现课程的购买功能,用户可以选择购买课程,并完成支付。 7. 数据库设计:需要设计数据库,存储用户信息、课程信息、购买信息、讨论区信息等数据。 8. 网站安全:需要保障网站的安全性,防止用户信息泄漏、恶意攻击等安全问题。 9. 网站性能:需要优化网站性能,提高网站的访问速度和响应能力。 10. 网站可用性:需要优化网站的用户体验,提高网站的易用性和可访问性。 在实现课程网站系统时,可以选择使用一些现成的开源框架和工具,如Django、Flask、Bootstrap、jQuery等。此外,需要进行充分的测试和调试,确保系统的稳定性和可靠性。 ### 回答2: 课程网站系统设计实现是指针对教育培训机构或学校而设计的在线课程管理系统。其目的是方便学生、教师和管理员进行课程管理、教学资源的共享、学生成绩的管理和学习进度的跟踪。 首先,在课程网站系统设计过程中,需要进行需求分析,明确系统的功能需求和性能需求。需要考虑的功能包括:学生注册和登录、查看课程信息、选课和退课、在线学习、提交作业和测验、查看成绩等。在性能需求方面,需要保证系统的稳定性、快速响应和可扩展性。 其次,系统的架构设计是关键。可以采用三层架构,即表示层、业务逻辑层和数据访问层。表示层负责用户交互界面的设计,业务逻辑层负责处理用户请求和调度不同的服务,数据访问层负责和数据库进行数据交互。这样的架构可以降低系统的耦合度,提高系统的可维护性和可扩展性。 然后,需要设计数据库模型,存储课程信息、学生信息和教师信息等数据。可以根据实际需求设计适当的关系型数据库结构,并进行表的设计和优化,保证数据的一致性和完整性。 最后,在实现阶段,可以选择合适的编程语言和开发框架进行系统的编码和测试。同时还需要进行用户界面设计系统的集成测试,确保系统的功能和性能符合需求。 综上所述,课程网站系统设计实现需要进行需求分析、架构设计、数据库设计系统编码等多个步骤。通过合理的设计实现,可以开发出功能完备、性能优越的课程网站系统,提升教育培训机构或学校的教学管理水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

等天晴i

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值