中期报告.docx
- 文档编号:9460308
- 上传时间:2023-02-04
- 格式:DOCX
- 页数:18
- 大小:307.98KB
中期报告.docx
《中期报告.docx》由会员分享,可在线阅读,更多相关《中期报告.docx(18页珍藏版)》请在冰豆网上搜索。
中期报告
第二章系统规划
2.1系统的基本功能
设计一个网络教学系统,注册新用户,选课管理,上传课件,浏览课件,课程查询等功能。
1)只有通过选课的用户才能浏览课件及课程查询等其他功能。
2上传课件只能有有教师注册登陆后上传,学生没有上传课件的权限。
3)浏览课件需注册选课后才能浏览相应的课程课件。
4)系统辅助管理主要用于创建用户和用户维护。
系统分析和开发时将在Windows7平台运用JSP来开发系统的应用程序,而后台的数据库则采用微软的SQLserver2008。
后台数据库是用来存储注册的信息、课件信息以及系统的信息,而数据库应用程序的任务则是在后台数据库和操作人员之间建立一个平台,使操作人员可以对数据库中的信息进行操作。
2.2系统的特点
2.2.1课题的内容和要求
设计一个网络教学系统,注册新用户,选课管理,上传课件,浏览课件,课程查询等功能。
1)只有通过选课的用户才能浏览课件及课程查询等其他功能。
2)上传课件只能有有教师注册登陆后上传,学生没有上传课件的权限。
3)浏览课件需注册选课后才能浏览相应的课程课件。
4)系统辅助管理主要用于创建用户和用户维护。
2.2.2系统开发技术
在数据库的选择上,我将采用SQLserver2008。
SQLserver2008是微软开发的一个数据库平台,使用SQL语言创建所有关系表,视图。
主要解决采用B/S模式,管理员通过Internet网进行维护,减少网站开发难度,实现访问、管理合一。
采用JSP技术,即在Web页面的HTML文档中嵌入JSP的内置对象和组件,从而实现对数据库的各种访问如查询、修改、删除、录入、更新等。
第三章系统分析
3.1用户需求分析
数据库需求分析就是要了解在这个应用系统中,用户需要查询、更新、删除和保留哪写数据,收集基本数据,数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。
通过系统功能分析,针对普通在线教学系统的需求,总结出如下需求信息。
l
用户分教师,学生和管理员。
l
教师担任一门或多门课程。
l
学生能选修一门或多门课程,学生选择的课程要有选课记录。
l
每门课程可能要有公告。
l
每门课程可能有课程资源。
l
每门课程可能有课程作业。
经过系统功能分析和需求总结,考虑到将来在功能上的扩展,设计如下数据项和数据结构。
3.2总体结构设计
3.2.1
系统功能结构图
网络教学平台由教师教学系统、学生学习系统和教学管理系统三大模块组成,这些模块之互联系,相互配合,构成一个完整的网络教学系统。
系统功能框图见图2.1
3.2.2系统各模块简要说明
教师教学系统与学生学习系统
教师教学系统与学生学习系统的功能相对应,主要包含以下几个模块:
1)公告信息网络课堂是实施网络教学的主要场所,教师和学生可以通过此模块实现实时和非实时的网上交流。
教师可以实现课程添加、修改,将课件上传等功能,而学生可以浏览教学大纲,教学计划,教学参考资料,教学课件等内容,也可以下载这些资料。
2)网络课堂作业环节是对所学知识理解和巩固的过程。
教师可以在网上发布、批改、删除作业,学生可以在线或下载完成作业,完成后可以将作业上传,还可以通过此环节查看自己完成作业的情况,查看教师评语等内容。
教学管理系统系统分为人员管理、课程管理、作业管理。
3)人员管理包括系统管理员、教师和学生管理。
其中管理员可以对所有人员进行添加、修改、删除和查询,同时还可以对教师的所有权限进行分配。
4)课程管理包括课程添加、课程查询和课件管理。
5)作业管理可以查看、修改和删除作业。
3.2.3数据库概念结构设计
2.资料实体E-R图如图3.2所示
3.教师信息E-R图如图3.3所示
4.回复作业实体E-R图如图3.4图所示
该E-R图有6个实体类型,其属性如下:
用户(主键,用户帐号,用户密码,用户类型,用户姓名,用户性别,用户所在院系,教师姓名)
课程(主键,课程编号,课程名称,开课院系,上课时间,上课阶段,任课教师,课程学分,上课地点,课程备注)
作业(主键,作业标题,作业在服务器的保存地址,1.发布作业2.学生提交答案,课程编号,提交答案学生编号,1答案教师未浏览2.教师已浏览)
公告(主键,公告标题,公告内容,公告发布日期,课程编号)
课程资源(主键,资源名称,课程编号,资源在服务器的存放位置,资源上传日期,资源扩展名,资源大小,类型1能浏览2可下载)
选课记录(主键,课程编号,学生编号,选课日期)
3.2.4数据库逻辑结构设计
根据以上的总体设计得出以下的逻辑设计:
3.2.5建表的SQL语句
完成逻辑设计后,开始在SQL数据库中建立实际的数据库及各个表,下面是创建数据库及表的SQL语句:
CreateDatabaseteachonline;--创建数据库用户信息表:
CreateTablet_user(
idint(8)PRIMARYKEY,
accoutchar(10)
passwordvarchar
(2)
typeint
(2)
namechar(50)NULL,
sexchar(10)NULL,
collagevarchar(50)NULL,
teacherchar(50)NULL,);
课程表:
Create Table t_course (
id int(8) PRIMARY KEY,
course_code varchar(10)
course_name varchar
(2)
collage varchar
(2)
course_time varchar(50) NULL,
start_end varchar(10) NULL,
course_teah varchar(50) NULL,
course_credit varchar(50) NULL,
course_site varchar(20) NULL,
course_note varchar(50) NULL, );
作业表:
t_homework
Create Table t_homework (
id int(8) PRIMARY KEY,
title varchar(10)
link varchar(50)
date datetime(10)
type char(50) NULL,
course_code varchar(50) NULL,
user_id varchar(50) NULL,
status char(50) NULL, );
教学资源表:
t_resourceCreateTablet_resource(
idint(8)PRIMARYKEY,
titlevarchar(10)
course_idvarchar(50)
linkvarchar(50)
datedatetimeNULL,
extvarchar(50)NULL,
filesizevarchar(50NULL,
typechar(50)NULL,);
课程公告表:
t_noticeCreateTablet_notice(
idint(8)PRIMARYKEY,
title varchar(10) NULL,
detail varchar(50) NULL,
date datetime(10) NULL,
course_id varchar(50) NULL, );
选课记录表:
xk_record
Create Table xk_record (
id int(8) PRIMARY KEY,
date datetime NULL,
user_code varchar(50) NULL,
course_id varchar(50) NULL, );
第四章系统的具体实现
4.1准备工作
首先利用MyEclispse
新建一个工程,工程可以任意命名。
在工程下新建一个包grad.util,然后在这个包下新建四个包user、homework、course、notice。
1)在user包下有两个类,其中各个类的作用为:
User类:
用户类,描述用户属性,以及这些属性的值的设置和取得的方法。
Op_user类:
管理用户,包括用户的查询,修改,删除,添加等。
2)在course包下有两个类,如下:
Course类:
课程类,描述课程的属性,以及这些属性的值的设置和取得的方法。
Resourse类:
课程资源类,描述资源的属性,以及这些属性的设置和取得的方法。
Op_resourse类:
课程和课程资源的管理类,主要具有课程和课程资源的查询,修改,删除和添加方法。
3)在homework包下有2个类,其中各类的作用如下:
Homework类:
家庭作业类,描述作业的属性,以及这些属性的值的设置和取得的方法。
Op_homework类:
家庭作业管理类,主要包含家庭作业的查询,修改,删除和添加。
4)在notice包下有2个类,各类为:
Notice类,课程公告类,描述公告的属性,以及这些属性的值的设置和取得的方法。
Op_notice类,课程公告管理类,主要包含公告的查询,修改,删除和添加方法。
4.2数据库连接模块
Grad.util.DataBase.java是一个公共类,其他类如果要连接数据库,只需要构造这个类的对象就可以了,一般情况下大家常把是数据库的查询excuteQuere()、更新excuteUpdate()等方法也放在这个类里。
链接数据库有以下注意项:
1)数据库的端口要正确。
2)用户名为sa密码在sqlserver2008中不能为空。
3)jdbc链接sqlserver的驱动使用SqlServer2000的驱动会出错,要使用sqljdbc.jar或者sqljdbc4的驱动,并且链接的代码也不同,详见代码。
数据库为公共连接类,代码为:
packagegrad.util;
importjava.sql.*;
publicclassDataBase{
publicConnectionconn;
publicDataBase(){
this.connect();
}
publicbooleanconnect(){
try{//用jdbc直接连接sqlserver数据库
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver").newInstance();
String
url="jdbc:
sqlserver:
//localhost:
1433;DatabaseName=teachonline";
Stringuser="sa";
Stringpassword="123";
conn=DriverManager.getConnection(url,user,password);
}catch(Exceptionee){
System.out.println("connectdberror:
"+ee.getMessage());
returnfalse;
}
returntrue;
}
}
4.3用户模块
有了前面的基本类,现在开始业务处理类的编写。
用户类user.java主要负责描述用户的属性,以及这些属性的get和set方法。
部分代码如下:
package grad.util.user;
public class user {
public user() {
}
private int id=0; //自动编号
String account=""; //用户帐号,老师的帐号为课程编号
String password="";//用户密码
int type=0; //用户类型1-学生,2-老师,3-管理员
String name=""; //用户真实姓名
String sex=""; //用户性别
String college=""; //用户所在学院
String teacher=""; //如果是学生则为 指导教师姓名,否则值为null
public void setId(int id)
{
this.id=id;
}
public int getId()
{
return this.id;
„„„„„„.(后面的省略)
用户管理如下:
用户分教师,学生和管理员,因此在进行操作的时候,要判断用户属于哪一种身份。
教师编号就是课程编号,因此把课程的管理也放在了用户管理中,增加一门课程的时候,也要相应的用课程编号做为教师编号添加一个新用户,因此,学生选课一类的操作也就放在这个类里。
1. public user getuserbyusercode(string user_code,string type)
功能:
通过用户编号和用户类型,查询,返回用户的详细信息。
参数:
user_code用户编号,type用户类型。
返回值:
user对象。
实现思路:
建立数据库连接—组织SQL语句—执行查询—构造用户对象—设置用户对象属性值—返回用户对象。
2. public arraylist getallstudent(string course_id)方法
功能:
查询选修了指定课程的所有学生。
参数:
course_id课程编号。
返回值:
用户对象列表。
实现思路:
建立数据库连接——组织SQL语句——执行查询——取结果—行记录—构造用户对象--设置对象属性—添加对象—取一行记录直到取完全部记录,返回对象列表。
3. public Boolean addcourse(course cs)方法
功能:
添加一门课程
参数:
course课程对象
返回值:
添加成功返回ture,否则返回false.
实现思路:
建立数据库连接—取课程对象—取课程属性---执行insert---构造用户对象—设置用户名和密码为课程编号—设置其他属性—调用方法添加用户—出错返回ture,否则返回false.
addUser() updateUser() getAllStudent()分别用于添加用户,修改用户,获取所有用户, 代码简要介绍在 附录一 A
4.4课程模块
课程bean对应的文件叫course.java,这个bean主要描述了课程的一些基本属性,以及这些属性值的get和set方法。
String course_code=""; //课程编号
String course_name=""; //课程名称
String college=""; //开课院系
String course_time=""; //上课时间
String start_end=""; //上课区间 即从第几周到第几周
String course_tech=""; //任课教师
String course_credit="";//课程学分
String course_site=""; //上课地点
4.5教学资源模块
教学资源bean对应的文件为resource.java,这个bean主要描述了教学资源的一些基本属性,以及这些属性值的get和set方法。
int id=0; //自动编号
String title=""; //资源名称
String course_id="";//资源所属课程编号
String link=""; //资源在服务器存贮地址
String ext=""; //资源文件扩展名 例如.doc,.ppt等
String filesize="";//资源文件大小
String sdate=null; //上传日期
int power=1; //1为可在线浏览 2为可下载
教学资源管理主要是教学资源的添加,修改,删除和查询。
其实现比较简单,对应的文件为op_resource.java,这里主要是两个方法:
1. public Arraylist GetAllresourceByCourse(string sourseid)方法
功能:
查询指定课程发布的学生可以下载的全部资源。
参数:
sourseid课程编号。
返回值:
资源列表。
实现思路:
建立数据库连接—组织SQL语句执行查询—取记录—构造资源对象—设置对象属性—返回结果列表。
2.publicvoidaddresource(resourcers)方法
功能:
添加新资源。
参数:
resource资源对象
返回值:
无
实现思路:
建立数据库连接—根据传递的对象,取得对象属性,组织SQL语句—执行insert操作。
课程作业bean的编写:
课程作业bean对应文件homework.java,主要描述了课程作业的一些基本属性,以及这些属性值的get和set方法。
intid=0;//作业编号
Stringtitle="";//作业名称
Stringlink="";//作业在服务器的存储路径
Stringdate="";//老师发布作业或者学生提交时间
Stringtype="";//1为老师发布作业2为学生提交的作业答案
Stringcourse_code="";//作业所属课程编号
Stringuser_id="";//学生提交作业时,为学生编号
Stringstatus="";//学生提交的作业老师是否已经查看
4.6课程作业模块
课程作业管理主要包括教师发布课程作业、删除课程作业,查看学生提交的作业答案,学生查询教师发布的作业、提交作业答案。
课程管理bean对应的文件op_homework.java,课程作业管理bean的两个方法如下:
1.getallhomeworkcommit()方法:
功能:
查询全部学生为指定课程提交的作业,并把相同学生提交的作业排列到一起。
参数:
课程编号sourseid.
返回值:
homework对象构成的arraylist数组。
实现思路:
建立数据库连接――根据课程编号和提交的作业类型组织SQL语句执行查询――取一行记录――构造作业对象――返回arraylist结果列表。
2.getallhomeworkpub()方法:
功能:
查询指定课程发布的全部作业。
参数:
课程编号sourseid.
返回值:
homework对象构成的arraylist数组。
实现思路:
建立数据库连接――根据课程编号和提交的作业类型组织SQL语句执行查询――取一行记录――构造作业对象――设置对象书香――加进arraylist列表,循环直到最后一条记录――返回arraylist结果列表。
4.7课程公告模块
课程公告bean主要定义课程公告所具有的属性,以及这些属性值的设置和获取方法。
课程公告管理bean主要包含课程公告的添加、查询和删除的方法,各个方法的实现都比
较简单,这里重点介绍getallnoticebycourse()方法和getallnoticebystu()方法的实现思路。
1.getallnoticebycourse()方法:
功能:
查询指定课程发布的全部公告。
参数:
课程编号sourseid。
返回值:
notice对象构成的arraylist数组。
实现思路:
建立数据库连接—根据课程编号组织SQL语句查询指定课程所发布的所有公告,并按时间倒序排序—取一行记录—构造notice公告对象—设置对象属性—加进arraylist列表,循环直到最后一条记录—返回arraylist结果列表。
2.getallnoticebystu()方法:
功能:
查看学生所选择课程发布的全部公告。
参数;课程编号course_id,学生编号stuid.
返回值:
notice对象构成的arraylist。
实现思路:
建立数据库连接—根据课程编号组织SQL语句查询指定课程所发布的所有公告,并按时间倒序排序—取一行记录—构造notice公告对象—设置对象属性—加进arraylist列表,循环直到最后一条记录—返回arraylist结果列表。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中期 报告