表3-4 Link 链接内容表
序号 1 2
表3-5 Chapter章节表
序号 1 2
表3-6 KnowledgePoint知识点表
序号 1 2 3 4 字段名称 ID Name FilePath ChapterID 字段说明 字段类型 宽度 允 许 空 是 否 主 键 是 备注 自动增长 外键,参照chapter表中的ID 字段名称 ID Name 字段说明 章节编号 章节名称 字段类型 int varchar 宽度 3 30 允 许 空 否 否 是 否 主 键 是 备注 自动增长 字段名称 ID Detail 字段说明 链接编号 链接内容 字段类型 int text 宽度 3 允 许 空 否 否 是 否 主 键 是 备注 自动增长 知识点编号 int 3 否 知识点名称 varchar 30 否 知识点所在Varchar 30 否 文件地址 知识点所属Int 3 否 章节ID
表3-7 Example例题表
允 许 空 否 否 否 序号 1 2 3 字段名称 ID FilePath 字段说明 字段类型 宽度 3 30 3 是 否 备注 主 键 是 自动增长 外键,参照knowledgepoint表中的ID 例题编号 int 立体所在文Varchar 件路径 例题所属知KnowledgeID int 识点ID
表3-8 Exercise习题表
序号 1 2 3 字段名称 ID FilePath 字段说明 字段类型 宽度 3 30 3 允 许 空 否 否 否 是 否 主 键 是 备注 自动增长 外键,参照knowledgepoint表中的ID 习题编号 int 习题所在文Varchar 件路径 习题所属知KnowledgeID Int 识点ID 建立关系模型的SQL语句:
1. People表:记录软件不同的登录角色
create table password (
ID int(3) not null auto_increment primary key, Role varchar(10) not null );
2. Password表:记录不同角色的登录密码
create table password (
ID int(3) not null auto_increment primary key, Word varchar(10) not null,
BelongsTo varchar(10) not null,
foreign key(BelongsTo) references people(Role) );
3. BriefIntroduction表:记录不同角色主页面的简介内容
create table briefintroduction(
ID int(3) not null auto_increment primary key , Detail text not null,
BelongsTo varchar(10) not null,
foreign key(BelongsTo) references people(Role) );
4. Link表:记录软件中的友情链接内容
create table link(
ID int(3) not null auto_increment primary key , Detail text not null );
5. Chapter表:记录章节内容
create table chapter (
ID int(3) not null auto_increment primary key , Name varchar(40) not null );
6. KnowledgePoint表:记录知识点内容
create table knowledgepoint (
ID int(3) not null auto_increment primary key , Name varchar(40) not null, FileName varchar(30) not null, ChapterID int(3) not null,
foreign key(ChapterID) references chapter(ID) );
7. Example表:记录例题内容
create table example (
ID int(3) not null auto_increment primary key , FileName varchar(30) not null, KnowledgeID int(3) not null,
foreign key(KnowledgeID) references knowledgepoint(ID) );
8. Exercise表:记录习题内容
create table exercise (
ID int(3) not null auto_increment primary key , FileName varchar(30) not null, KnowledgeID int(3) not null
Foreign key(KnowledgeID) references knowledgepoint(ID) );
3.4类的设计
3.4.1类的分类
本软件是由19个类组成的,总体分为五大类:
窗口类:Menu,Login,StudentMain,TeacherMain,AdminMain 内容类:Chapter,Point,Example,Exercise
监听类:WhenPressButton,WhenPressBox,WhenSelectTree,WhenSelectTreeT 数据库和文件类:DataBaseConn,FileUtil 其他:Main,StartMySql,Request
3.4.2各类介绍
各个类的简单介绍如下:
类名 Main FrameUtil 表3-9 类的简介表 类作用说明 软件启动的入口 类中写入了DataBaseConn、Menu、Login、StudentMain、TeacherMain、AdminMain和Runtime的get 和 set 方法 StartMySql 启动mysql数据库 DataBaseConn 连接数据库并响应软件中所有有关数据库的请求 Request 记录软件中所有的请求 Menu 设计选择登录身份的窗口 Login 继承JFrame,设计输入并验证登录密码的窗口 StudentMain 继承JFrame,设计学生主界面 TeacherMain 继承JFrame,设计教师主界面 AdminMain 继承JFrame,设计管理员主界面 Chapter 处理各种涉及章节内容的操作 Point 处理各种涉及知识点内容的操作 Example 处理各种涉及例题内容的操作 Exercise 处理各种涉及习题内容的操作 FileUtil 处理涉及文件新建和写入内容、读取内容等操作 WhenPressButton 处理软件中各种点击按钮的情况 WhenPressBox 处理软件中各种点击下拉菜单的情况 WhenSelectTree 处理学生界面点击内容树的节点的情况 WhenSelectTree 处理教师界面点击内容树的节点的情况 每个类中又包含很多方法,以下是一些比较重要的方法的介绍:
表3-10 Main类主要方法表 类名 方法名 方法作用说明 Main public static 是整个软件开始执行的入口。执行了StartMySql类中的启动数据库的方法,新建了FrameUtil、DataBaseConn、Menu、Login、void StudentMain、TeacherMain和AdminMain类,并且对除main(String FrameUtil外的其他类进行了实例化和初始化。 args[]) 表3-11 FrameUtil类主要方法表 类名 方法名 方法作用说明 FrameUtil public DataBaseConn 获取DataBaseConn(Menu、Login、StudentMain、TeacherMain、AdminMain、getDbCFrame() 等 Runtime)类的实例。 以DataBaseConn(Menu、Login、StudentMain、FrameUtil public void setDbCFrame(DataBasTeacherMain、AdminMain、Runtime)的实例eConn dbCFrame)等 为参数进行赋值。
类名 StartMySql 表3-12 StartMySql类主要方法表 方法名 方法作用说明 方法中写入了执行mysql启动的语public static void 句。 startMySql(FrameUtil util) 表3-13 Menu类主要方法表 方法名 方法作用说明 public void init() Menu界面的初始化,添加了标签、按钮,设置了背景图片 类名 Menu 类名 Login 表3-14 Login类主要方法表 方法名 方法作用说明 public void init() Login界面的初始化,添加了标签、文本框、按钮,设置了背景图片 类名 TeacherMain TeacherMain 类名 StudentMain StudentMain 类名 AdminMain AdminMain 表3-15 TeacherMain类主要方法表 方法名 方法作用说明 public void init() 教师主界面的初始化。 将从数据库中查询到的内容加入到“内容目public void buildtree(Vector