为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

在线答疑系统文档

2010-11-08 40页 doc 1MB 68阅读

用户头像

is_644760

暂无简介

举报
在线答疑系统文档目录 1.​ 引言…………………………………………………………………………………………….3 2.​ 需求分析……………………………………………………………………………………….3 2.1业务需求……………………………………………………………………………..…….4 2.2功能需求…………………………………………………………………………..……….4 2.3数据需求…………………………………………………………………………..……….5 2.4安全性与完整性要求……………………………………………………………………...9 3.概...
在线答疑系统文档
1.​ 引言…………………………………………………………………………………………….3 2.​ 需求……………………………………………………………………………………….3 2.1业务需求……………………………………………………………………………..…….4 2.2功能需求…………………………………………………………………………..……….4 2.3数据需求…………………………………………………………………………..……….5 2.4安全性与完整性要求……………………………………………………………………...9 3.概要…………………………………………………………………………….……………9 3.1系统结构与组成……………………………………………………………………………9 3.2概念数据库设计……………………………………………………………………………9 3.3逻辑数据库设计………………………………………………………………………11 3.3.1将E-R图转换为关系模式…………………………………………………………….11 3.3.2数据库模式定义……………………………………………………………………….11 3.4 数据库关系图…………………………………………………………………………….13 4.详细设计与实现……………………………………………………………………...…………14 4.1建立数据库、数据表、触发器…………………………………………………………14 4.1.1建立数据库……………………………………………………………………………14 4.1.2建立数据表……………………………………………………………………………15 4.1.3创建触发器……………………………………………………………………………18 4.1.4创建存储过程…………………………………………………………………………19. 4.1.5创建视图………………………………………………………………………………20. 4.2数据入库……………………………………………………………..………………….21. 5.系统运行实例……………………………………………………………..……………………22 6.主要程序代码……………………………………………………………..…………………….26 7.结束语………………………………………………………………………..………………….32 1.引言 近年来,随着网络、计算机的不断发展和更新,越来越多的人都开始生存在“网络”的世界中,网络也成为了大家不可缺少的一部分,网上学习也越来越成为一种趋势。 很多在校大学生都会把在课余时间放到“电脑”、“网络”上,考虑到他们的上课时间段都不同,教师和学生的时间很少能统一起来,因此学生想找教师答疑还要约定时间,很麻烦,如果双方在都可以上网的情况下,就可以通过网上“聊天”的形式进行答疑,我们小组就针对这个情况做了校园在线答疑系统,以方便学生与教师更好的交流与学习。 2.需求分析 进行系统设计,首先要对系统的现状进行分析。根据系统的目标、需求和功能,制定和选择一个较好的系统,从而达到一个合理的优化系统。当前我国高校普遍存在着一个问题,教师上完课以后就去做自己的研究,因此除了上课的时间外学生很少有时间与教师进行沟通。即使有的学生有疑问,他也不愿意去找老师答疑,一方面是因为老师比较忙很难约到老师,另一方面,有的学生不愿意和老师直接接触。对于这种情况,我们开发了在线答疑系统,学生可以在上面给指定的老师提出问题,也可以向所有的老师提出公共的问题,教师在登录进入系统后可以看到学生给自己提出的问题并且进行解答。学生可以通过查看自己的问题开到老师的回答。同时其它同学进入系统后也可以浏览问题,如果会的话也可以进行解答。这样的话就可以节约许多不必要的时间,同时能够更好的促进同学与老师之间的交流。 需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。数据库设计的第一步是明确数据库的目的和如何使用,也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。 在构造系统时,首先从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。 2.1业务需求 系统流程图: 2.2功能需求 系统分为5个模块: 数据维护模块:管理员维护注册的会员信息、用户的留言信息、版块信息、问题分类信息; 注册登录模块:提供用户进入系统的入口,验证用户的身份是否合法 答疑模块:学生登录系统后可以提出自己的问题,可以向指定的教师提问也可以提出公共的问题,学生可以查询教师的基本信息与详细信息以增强对教师的了解,用户可以查询以前的问题,会员以及非会员均可以回答问题。 资料上传下载模块:会员用户可以将自己认为有用的资料上传至服务器供其它用户下载,也可以下载其它用户上传的资料。非会员用户不能上传与下载资料。 系统退出模块:系统回收运行时分配的资源,关闭系统。 2.3数据需求 系统处理的数据对象主要有: 用户:编号、邮箱、姓名、头像、学院、类别 学生:编号、用户号、专业、年级; 教师:编号、用户号、学历、职称、备注; 学院:编号、名称 专业:编号、名称 版块:编号、名称 问题类别:编号、类别名称 问题:编号、问题描述、提出时间 答案:编号、答案描述、回答时间 用户登录:用户名、密码、权限 留言:编号、用户、时间、内容 密码提示问题:编号、问题 管理员:用户号、姓名、密码、权限; 数据流图: 顶层图: 1层图: 第2层图(注册、登录验证) 第2层图(查询) 第2层图(答疑) 数据字典如下: 实体名 数据项名 数据项含义 存储类型 用户 F_ID 编号 int F_Email 邮箱 Char(25) F_Name 姓名 Varchar(15) F_Head 头像 image F_College 学院 int F_Type 类别 int 教师 F_ID 编号 int F_UserID 用户号 int F_XueLi 学历 Varchar(10) F_ZhiCheng 职称 Varchar(10) F_Memo 备注 ntext 学生 F_ID 编号 int F_UserID 用户号 int F_Spec 专业 Varchar(15) F_Grade 年级 Varchar(5) 学院信息 F_ID 编号 int F_Name 名称 Varchar(15) 专业信息 F_ID 编号 int F_Name 名称 Varchar(15) 版块信息 F_ID 编号 int F_Name 名称 Varchar(15) 问题类别 F_ID 编号 int F_Name 名称 Varchar(15) F_ColumnID 版块号 int 问题 F_ID 编号 int F_UserID 提问人 int F_Detail 问题描述 ntext F_TypeID 问题类别号 int F_ColumnID 版块号 int F_Datetime 提出时间 Datetime 答案 F_ID 编号 int F_QuestionID 问题编号 int F_Detail 答案描述 ntext F_UserID 回答人 int F_Datetime 回答时间 Datetime 用户登录信息 F_ID 编号 int F_UserID 用户号 int F_Pwd 密码 char(15) F_Limit 权限 Varchar(20) 用户留言 F_ID 编号 F_UserID 用户号 int F_Words 内容 ntext F_Datetime 时间 Datetime F_Replyer 回复人 int F_ReplyWords 内容 ntext F_ReplyDate 时间 Datetime 管理员信息 F_ID 编号 int F_UserID 用户号 int F_Name 用户名 Varchar(10) F_Pwd 密码 char(15) 2.4安全性与完整性要求 1) 安全性要求 系统安全性要求体现在数据库安全性、信息安全性和系统平台的安全性等方面。安全性先通过视图机制,不同的用户只能访问系统授权的视图,这样可提供系统数据一定程度上的安全性,再通过分配权限、设置权限级别来区别对待不同操作者对数据库的操作来提高数据库的安全性;系统平台的安全性体现在操作系统的安全性、计算机系统的安全性和网络体系的安全性等方面。 2) 完整性要求 系统完整性要求系统中数据的正确性以及相容性。可通过建立主、外键,使用check约束,或者通过使用触发器和级联更新。 3 概要设计 3.1 系统结构与组成 系统采用B/S模式,用户可以在任意地方连接网络登录系统,方便使用。 系统组成如下: 3.2 概念数据库设计 概念设计阶段主要是将需求分析阶段得到的用户需求抽象为信息结构(概念模型)的过程,它是整个数据库设计的关键。概念设计的步骤如下: (1)选择中层数据流为切入点,通常选择实际系统中的子系统; (2)设计分E-R图,即各子模块的E-R图; (3)生成初步E-R图,通过合并方法,做到各子系统实体、属性、联系统一; (4)生成全局E-R图,通过消除冲突等方面。 数据库E-R图: E—R图实体属性列表: 用户:T_User(F_ID,F_Email,F_Name,F_Head,F_College) 学生:T_Student(F_ID,F_UserID,F_Spec,F_Grade) 教师:T_Teacher(F_ID,F_UserID,F_XueLi,F_ZhiCheng,F_Memo) 学院:T_College(F_ID,F_Name) 专业:T_Spec(F_ID,F_Name) 版块:T_Column(F_ID,F_Name) 问题类别:T_QuestionType(F_ID,F_Name) 问题:T_Question(F_ID,F_Detail,F_Datetime) 答案:T_Answer(F_ID,F_Detail,F_Datetime) 用户登录:T_Login(F_ID,F_Pwd) 留言:T_Words(F_ID,F_Words,F_Datetime) 密码提示问题:F_PwdQuestion(F_ID,F_Detail,F_Answer) 管理员:T_Manage(F_ID,F_Email,F_Name,F_Pwd) 3.3逻辑数据库设计 以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括:将E-R图转换成关系模型、模型优化、数据库模式定义、用户子模式设计。 3.3.1将E-R图转换为关系模型 实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是关系的码。对于实体间的联系则有以下不同的情况: 由于用户与问题,用户与答案,用户与留言信息,学院信息与用户,专业信息与学生呢个,问题类别与问题,版块与问题类别,问题与问题答案,密码提示问题与用户是一对多的关系因此可将他们之间的联系与n端实体合并即在问题表中添加用户编号字段,答案表中添加用户编号、问题编号,用户表中添加学院编号、密码提示问题编号,学生表中添加专业编号,问题表中添加版块编号、问题类别编号,用户留言表中添加用户编号,。用户与密码是一对一的关系,可将其合并为一个关系,在用户表中添加密码字段, 3.3.2 数据库模式定义 用户表T_User 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 邮箱 F_Email Char(25) 3 姓名 F_Name Varchar(15) 4 头像 F_Head image 5 学院 F_College int 6 类别 F_Type int 0-学生,1-教师, 教师表 T_Teacher 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 用户号 F_UserID int Foreign key 参考T_User.F_ID 3 学历 F_XueLi Varchar(10) 4 职称 F_ZhiCheng Varchar(10) 5 备注 F_Memo ntext 学生表 T_Student 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 用户号 F_UserID int Foreign key 参考T_User.F_ID 3 专业 F_Spec Varchar(15) Foreign key 参考T_Spec.F_ID 4 年级 F_Grade Varchar(5) 学院信息表 T_College 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 名称 F_Name Varchar(15) 专业信息表 T_Spec 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 名称 F_Name Varchar(15) 版块信息表 T_Column 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 名称 F_Name Varchar(15) 问题类别表 T_QuestionType 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 名称 F_Name Varchar(15) 3 版块号 F_ColumnID int Foreign key 参考T_Column.F_ID 问题表 T_Question 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 提问人 F_UserID int Foreign key 参考T_User.F_ID 3 问题描述 F_Detail ntext 4 问题类别号 F_TypeID int Foreign key 参考T_QuestionType.F_ID 5 版块号 F_ColumnID int Foreign key 参考 T_ColumnID.F_ID 6 提出时间 F_Datetime Datetime 答案表 T_Answer 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 问题编号 F_QuestionID int Foreign key 参考T_QuestionType.F_ID 3 答案描述 F_Detail ntext 4 回答人 F_UserID int Foreign key 参考T_User.F_ID 5 回答时间 F_Datetime Datetime 用户登录表 T_Login 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 用户号 F_UserID int Foreign key 参考T_User.F_ID 3 密码 F_Pwd char(15) 4 权限 F_Limit Varchar(20) 用户留言表 T_Words 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 用户号 F_UserID int Foreign key 参考T_User.F_ID 3 内容 F_Words ntext 4 时间 F_Datetime Datetime 5 回复人 F_Replyer int Foreign key 参考T_User.F_ID 6 内容 F_ReplyWords ntext 7 时间 F_ReplyDate Datetime 管理员表 T_Manage 编号 名称 字段 类型 Key 备注 1 编号 F_ID int key 自增 2 用户号 F_UserID int Foreign key 参考T_User.F_ID 3 用户名 F_Name Varchar(10) 4 密码 F_Pwd char(15) 3.4数据库关系图 4.详细设计与实现 4.1建立数据库、数据表、视图、存储过程、触发器 4.1.1 建立数据库 CREATE DATABASE Data ON ( NAME=BlogData_Data, FILENAME='G:\软件工程\网上答疑系统\数据库\Data.mdf', SIZE=10MB, MAXSIZE=50MB, FILEGROWTH=5% ) LOG ON ( NAME=BlogData_LOG, FILENAME='G:\软件工程\网上答疑系统\数据库\Data_log.ldf', SIZE=2MB, MAXSIZE=5MB, FILEGROWTH=10% ) GO 4.1.2 建立数据表 创建密码提示问题表 create table T_PwdQuestion ( F_ID int identity(1,1), F_Question varchar(20), primary key(F_ID) ) 创建学院信息表 create table T_College ( F_ID int identity(1,1), F_Name varchar(30), primary key(F_ID) ) 创建专业信息表 create table T_Spec ( F_ID int identity(1,1), F_Name varchar(30), primary key(F_ID) ) 创建用户表 create table T_User ( F_ID int identity(1,1), F_Email char(25) unique, F_Name varchar(15), F_Head image, F_College int, F_Type int, primary key(F_ID), foreign key(F_College) references T_College(F_ID) ) 创建教师表 create table T_Teacher ( F_ID int identity(1,1), F_Email char(25), F_XueLi varchar(10), F_ZhiCheng varchar(10), F_Memo ntext, primary key(F_ID), foreign key(F_Email) references T_User(F_Email) ) 创建学生表 create table T_Student ( F_ID int identity(1,1), F_Email char(25), F_Spec int, F_Grade varchar(5), primary key(F_ID), foreign key(F_Email) references T_User(F_Email), foreign key(F_Spec) references T_Spec(F_ID) ) 创面版块表 create table T_Column ( F_ID int identity(1,1), F_Name varchar(15), primary key(F_ID) ) 创建问题类别表 create table T_QuestionType ( F_ID int identity(1,1), F_Name varchar(15), F_ColumnID int, primary key(F_ID), foreign key(F_ColumnID) references T_Column(F_ID) ) 创建问题表 create table T_Question ( F_ID int identity(1,1), F_UserID int, F_Detail ntext, F_TypeID int, F_ColumnID int, F_Datetime datetime, F_Type int, primary key(F_ID), foreign key(F_UserID) references T_User(F_ID), foreign key(F_TypeID) references T_QuestionType(F_ID), foreign key(F_ColumnID) references T_Column(F_ID) ) 创建问题表 create table T_Answer ( F_ID int identity(1,1), F_QuestionID int, F_Detail ntext, F_UserID int, F_Datetime datetime, primary key(F_ID), foreign key(F_UserID) references T_User(F_ID), foreign key(F_QuestionID) references T_Question(F_ID), ) 创建用户登录表 create table T_Login ( F_ID int identity(1,1), F_Email char(25), F_Pwd char(15), F_Limit char(15), F_PwdQID int, F_PwdAns varchar(50), primary key(F_ID), foreign key(F_PwdQID) references T_PwdQuestion(F_ID), foreign key(F_Email) references T_User(F_Email) ) 创建用户留言表 create table T_Words ( F_ID int identity(1,1), F_UserID int, F_Words ntext, F_Datetime datetime, F_Replyer int, F_Replywords ntext, F_ReplyDtetime datetime, F_Flag int, primary key(F_ID), foreign key(F_UserID) references T_User(F_ID), foreign key(F_Replyer) references T_User(F_ID) ) 创建管理员表 create table T_Manage ( F_ID int identity(1,1), F_Email char(25), F_Name varchar(15), F_Pwd char(15), primary key(F_ID) ) 创建链接表 create table T_Link ( F_ID int identity(1,1), F_Name varchar(30), F_Link char(30), primary key(F_ID) ) 4.1.3建立触发器 创建一个触发器delete_column当删除版块信息时,其子类问题的信息也被删除 create trigger delete_column on T_Column for delete as delete from T_QuestionType where T_QuestionType.F_ColumnID in (select F_ID from deleted) 创建一个触发器delete_type当删除一类问题信息时,该类下的问题的信息也被删除 create trigger delete_type on T_QuestionType for delete as delete from T_Question where T_Question.F_TypeID in (select F_ID from deleted) 创建一个触发器delete_user当删除一个用户信息是同时删除他的登录密码信息 create trigger delete_user on T_User for delete as delete from T_Login where T_Login.F_Email in (select F_ID from deleted) 创建一个触发器delete_teacher r当删除一个用户信息是同时删除教师表中对应的 create trigger delete_teacher on T_User for delete as delete from T_Teacher where T_Teacher.F_UserID in (select F_ID from deleted) 创建一个触发器delete_ student r当删除一个用户信息是同时删除学生表中对应的记录 create trigger delete_student on T_User for delete as delete from T_Student where T_Student.F_UserID in (select F_ID from deleted) 4.1.4建立存储过程 创建根据姓名查找学生的存储过程 create procedure search_stu_by_name(@name varchar(10)) as ( select * from T_User,T_Student where T_User.F_Email=T_Student.F_Email and T_User.F_Name=@name ) 创建根据姓名查找教师的存储过程 create procedure search_tea_by_name(@name varchar(10)) as ( select * from T_User,T_Teacher where T_User.F_Email=T_Teacher.F_Email and T_User.F_Name=@name ) 创建根据学历查找教师的存储过程 create procedure search_tea_by_XueLi(@xueli varchar(10)) as ( select * from T_User,T_Teacher where T_User.F_Email=T_Teacher.F_Email and T_Teacher.F_XueLi=@xueli ) 创建根据职称查找教师的存储过程 create procedure search_tea_by_ZhiCheng(@zhicheng varchar(10)) as ( select * from T_User,T_Teacher where T_User.F_Email=T_Teacher.F_Email and T_Teacher.F_ZhiCheng=@zhicheng ) 创建根据关键字查找问题的存储过程 create procedure search_question_by_key(@key varchar(10)) as ( select * from T_Question,T_User where T_Question.F_UserID=T_User.F_ID and T_Question.F_Detail like '%@key%' ) 创建根据名称查找版块的存储过程 create procedure search_column_by_name(@name varchar(10)) as ( select * from T_Column where F_Name=@name ) 创建根据名称查找问题类别的存储过程 create procedure search_questiontype_by_name(@name varchar(10)) as ( select * from T_QuestionType where F_Name=@name ) 4.1.5建立视图 create view 学生列表 as select T_User.F_ID,T_User.F_Email,T_User.F_Name as stuname,F_Head,T_College.F_Name as college,T_Spec.F_Name as spec from T_User,T_Student,T_College,T_Spec where T_User.F_Email=T_Student.F_Email and T_User.F_College=T_College.F_ID and T_Student.F_Spec=T_Spec.F_ID create view 教师列表 as select T_User.F_ID,T_User.F_Email,T_User.F_Name as teaname,F_Head,T_College.F_Name as college,F_XueLi,F_ZhiCheng from T_User,T_Teacher,T_College where T_User.F_Email=T_Teacher.F_Email and T_User.F_College=T_College.F_ID create view 问题列表 as select T_Question.F_ID,T_User.F_Name,T_Question.F_Detail,F_Datetime from T_Question,T_User where T_Question.F_UserID=T_User.F_ID create view 用户留言表 as select T_Words.F_ID,T_User.F_Name,F_Words,F_Datetime from T_Words,T_User where T_Words.F_UserID=T_User.F_ID 4.2数据入库 插入学院信息: insert into T_College(F_Name) values('计算机与信息学院') insert into T_College(F_Name) values('机电工程学院') insert into T_College(F_Name) values('商学院') insert into T_College(F_Name) values('外语教学部') insert into T_College(F_Name) values('数理教学部') insert into T_College(F_Name) values('人文社科部') insert into T_College(F_Name) values('公共课教学部') 插入专业信息: insert into T_Spec(F_Name) values('计算机科学与技术') insert into T_Spec(F_Name) values('电子信息技术') insert into T_Spec(F_Name) values('电子科学与技术') insert into T_Spec(F_Name) values('通信工程') insert into T_Spec(F_Name) values('自动化') insert into T_Spec(F_Name) values('机械设计及其自动化') insert into T_Spec(F_Name) values('材料科学与工程') insert into T_Spec(F_Name) values('热能与动力工程') insert into T_Spec(F_Name) values('数字媒体艺术') insert into T_Spec(F_Name) values('工业设计') insert into T_Spec(F_Name) values('工商管理') insert into T_Spec(F_Name) values('会计学') insert into T_Spec(F_Name) values('国际经济与贸易') insert into T_Spec(F_Name) values('信息管理与信息系统') 插入密码提示问题: insert into T_PwdQuestion(F_Question ) values('你的家乡是哪里?') insert into T_PwdQuestion(F_Question ) values('你最喜欢的明星?') insert into T_PwdQuestion(F_Question ) values('你所在的学校是?') insert into T_PwdQuestion(F_Question ) values('你最喜欢的零食是?') 其它主要信息包括用户信息,问题信息,答案信息,用户留言信息,这些信息主要在程序运行时由用户添加进数据库。 5.系统运行实例 用户注册窗口: 系统主页面 游客查看问题 学生登录主窗口 学生提问: 学生查看教师信息 资料下载: 教师登录主窗口: 教师回答问题: 用户留言: 6.主要程序代码 注册代码: <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <%@ page import="java.util.*"%> <%@ page import="java.text.*"%> <%@ page import="java.io.*"%> <% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver"); String url="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=Data"; String user="sa"; String password=""; request.setCharacterEncoding("utf-8"); Connection conn=DriverManager.getConnection(url,user,password); Statement sql=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE); ResultSet rs=null; PreparedStatement ps=null; String SQL=""; %> <% String Email=request.getParameter("txtEmail"); SQL="select * from T_User where F_Email='"+Email+"'"; rs=sql.executeQuery(SQL); rs.last(); if(rs.getRow()==0) { try { String Name=request.getParameter("txtname"); String Head=request.getParameter("txthead"); File filename=new File(Head); long l1=filename.length(); int l2=(int)l1; FileInputStream fis=new FileInputStream(filename); String pwd1=request.getParameter("txtpwd1"); String pwd2=request.getParameter("txtpwd2"); if(pwd1.equals(pwd2)) { String college=request.getParameter("selectcollege"); String Question=request.getParameter("selectQuestion"); String Answer=request.getParameter("txtAnswer"); SQL="Select * from T_PwdQuestion where F_Question='"+Question+"'"; rs=sql.executeQuery(SQL); rs.first(); int QuestionID=rs.getInt(1); String RatioID=request.getParameter("radiobutton"); int ID=Integer.parseInt(RatioID); SQL="select F_ID from T_College where F_Name='"+college+"'"; rs=sql.executeQuery(SQL); rs.first(); int collegeID=rs.getInt(1); if(ID==1) //注册的是教师 { String XueLi=request.getParameter("selectXueLi"); String ZhiCheng=request.getParameter("selectZhiCheng"); String Memo=request.getParameter("txtmemo"); SQL="insert into T_User(F_Email,F_Name,F_Head,F_College,F_Type) values(?,?,?,?,?)"; ps =conn.prepareStatement(SQL); ps.setString(1,Email); ps.setString(2,Name); ps.setBinaryStream(3,fis,l2); ps.setInt(4,collegeID); ps.setInt(5,1); ps.executeUpdate(); ps.close(); fis.close(); SQL="insert into T_Teacher(F_Email,F_XueLi,F_ZhiCheng,F_Memo) values('"+Email+"','"+XueLi+"','"+ZhiCheng+"','"+Memo+"')"; sql.executeUpdate(SQL); } else if(ID==2)//注册的是学生 { String Spec=request.getParameter("selectSpec"); String grade=request.getParameter("selectgrade"); SQL="insert into T_User(F_Email,F_Name,F_Head,F_College,F_Type) values(?,?,?,?,?)"; ps=conn.prepareStatement(SQL); ps.setString(1,Email); ps.setString(2,Name); ps.setBinaryStream(3,fis,l2); ps.setInt(4,collegeID); ps.setInt(5,0); ps.executeUpdate(); ps.close(); fis.close(); SQL="select F_ID from T_Spec where F_Name='"+Spec+"'"; rs=sql.executeQuery(SQL); rs.first(); int specID=rs.getInt(1); SQL="insert into T_Student(F_Email,F_Spec,F_Grade) values('"+Email+"','"+specID+"','"+grade+"')"; sql.executeUpdate(SQL); } SQL="insert into T_Login(F_Email,F_Pwd,F_PwdQID,F_PwdAns) values('"+Email+"','"+pwd1+"','"+QuestionID+"','"+Answer+"')"; sql.executeUpdate(SQL); response.sendRedirect("index.jsp"); } else { out.print("

注册失败:两次输入的密码不一致

"); out.print("返回注册页面"); } } catch(Exception e) { out.print(e.getMessage()); throw e; } } else { out.print("

注册失败:该邮箱已经存在

"); out.print("返回注册页面"); } %> 回答问题代码: <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <% request.setCharacterEncoding("utf-8"); ResultSet rs=null; String SQL=""; String QuestionID=request.getParameter("questionID"); String answer=request.getParameter("txtanswer"); String datetime=time.getTime(); SQL="select F_ID from T_User where F_Email='"+(String)session.getAttribute("userEmail")+"'"; rs=conn.executeQuery(SQL); rs.first(); int userID=rs.getInt(1); SQL="insert into T_Answer(F_QuestionID,F_Detail,F_UserID,F_Datetime) values('"+QuestionID+"','"+answer+"','"+userID+"','"+datetime+"')"; conn.executeUpdate(SQL); response.sendRedirect("stu_main.jsp"); %> 提问代码: <%@ page language="java" import="java.sql.*" pageEncoding="utf-8"%> <% request.setCharacterEncoding("utf-8"); ResultSet rs=null; String SQL=""; String column=request.getParameter("selectcolumn"); String type=request.getParameter("selecttype"); String teacher=request.getParameter("selectteacher"); String Question=request.getParameter("txtquestion"); SQL="select F_ID from T_User where F_Email='"+(String)session.getAttribute("userEmail")+"'"; rs=conn.executeQuery(SQL); rs.first(); int userID=rs.getInt(1); //得到用户号 SQL="select F_ID from T_Column where F_Name='"+column+"'"; rs=conn.executeQuery(SQL); rs.first(); int columnID=rs.getInt(1); //得到版块号 SQL="select F_ID from T_QuestionType where F_Name='"+type+"'"; rs=conn.executeQuery(SQL); rs.first(); int typeID=rs.getInt(1); //得到问题类别号 String datetime=time.getTime(); int teacherID; int questiontype; if(teacher==null||teacher.equals("null"))//未选定教师 { questiontype=0;//公共的问题 SQL="insert into T_Question(F_UserID,F_Detail,F_TypeID,F_ColumnID,F_Datetime,F_Type) values('"; SQL=SQL+userID+"','"+Question+"','"+typeID+"','"+columnID+"','"+datetime+"','"+questiontype+"')"; } else { questiontype=1;//特定的问题 SQL="select F_ID from T_User where F_Name='"+teacher+"'"; rs=conn.executeQuery(SQL); rs.first(); teacherID=rs.getInt(1); //得到教师编号 SQL="insert into T_Question(F_UserID,F_Detail,F_TypeID,F_ColumnID,F_TeaID,F_Datetime,F_Type) values('"; SQL=SQL+userID+"','"+Question+"','"+typeID+"','"+columnID+"','"+teacherID+"','"+datetime+"','"+questiontype+"')"; } conn.executeUpdate(SQL); response.sendRedirect("ask_question.jsp"); %> 文件上传代码: <%@ page language="java" contentType="text/html; charset=GB18030" pageEncoding="GB18030"%> <%@ page import="org.apache.commons.fileupload.*"%> <%@ page import="org.apache.commons.fileupload.servlet.*"%> <%@ page import="org.apache.commons.fileupload.disk.*"%> <%@ page import="java.util.*"%> <%@ page import="java.io.*"%> <%request.setCharacterEncoding("utf-8"); %>
/
本文档为【在线答疑系统文档】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索