应用开发工具:Microsoft Visual Studio 2010 旗舰版 - 简体中文 sp1—— Microsoft Visual C# 2010
应用程序:文档处理:Microsoft Office Professional Plus 2010,截图工具:SnagIt 10.0.1(2010)
操作系统名: Microsoft Windows 7 Ultimate
版本号:Version 6.1.7601 Service Pack 1 Build 7601
系统类型: x64
开发语言:C#语言,Sqlite数据库,Winform,.NET Framework 4.0
不同的开发源码来自:微软的http://www.codeplex.com/
闻名的http://www.codeproject.com/(具体项目后文会给出)
原料:
2012年5月1日驾驶员考试新题库.doc 1 1
附件1汽车类考试题库.doc 1
附件2摩托车类考试题库.doc 1
交通标志大全.doc 1
数据库设计部分:
E-R图:
用户信息(USERS):{用户ID,姓名,密码 }
错题集信息(ERRORLIST):{错题编号,表名,题号ID,错误日期 }
综合题库信息/别类题库(COMPREHENSIVE_EXAM/ OTHEREXAM):{编号ID,所属类型,题型,问题,答案,图片,视频,评论,随机数,错题排名 }
题目类型信息(NODE):{节点ID,节点名,父节点 }
图文信息(IMGTEXT):{图文ID,所属类型,图片,短评,细评 }
数据字典(说明SQLite的数据类型四种:TEXT,REAL,BLOB,INTEGER)
数据名称
USERS
用户信息
名称
格式
范围
精度
说明
用户ID
TEXT
10
-
主键
姓名
TEXT
20
-
不能为空
密码
TEXT
8
不能为空
代码生成
CREATE TABLE "USERS" (
"UID" TEXT(10) NOT NULL, "Name" TEXT(20) NOT NULL,
"Password" TEXT(8) NOT NULL,PRIMARY KEY ("UID" ASC)
);
数据名称
ERRORLIST(来自俩个表,COMPREHENSIVE_EXAM和OTHEREXAM)
错题集信息
名称
格式
范围
精度
说明
错题编号
TEXT
10
-
主键,关联用户ID
表名
TEXT
20
-
不能为空
题号ID
TEXT
10
不能为空,关联综合题库表,和别类题库表
错误日期
TEXT
10
格式(YYYY-MM-dd)
代码生成
CREATE TABLE "ERRORLIST" (
"UID" TEXT(10) NOT NULL,
"TableName" TEXT(20) NOT NULL,
"TestID" TEXT(10) NOT NULL,
"DateTime" TEXT(10),
CONSTRAINT "fkey0" FOREIGN KEY ("UID") REFERENCES "USERS" ("UID"),
CONSTRAINT "fkey1" FOREIGN KEY ("TestID") REFERENCES "COMPREHENSIVE_EXAM" ("TestID"),
CONSTRAINT "fkey2" FOREIGN KEY ("TestID") REFERENCES "OTHEREXAM" ("TestID")
);
数据名称
COMPREHENSIVE_EXAM
综合题库
名称
格式
范围
精度
说明
编号ID
TEXT
10
-
主键
所属类型
TEXT
10
-
关联NODE表中的NODE
题型
TEXT
4
-
包括多选,单选,判断
问题
TEXT
600
-
包括题目和选项ABCDEF
答案
INTEGER
-
用数字保存,ABCD代表1111,'A'代表0001,'对'代表0001,'错'代表0010
图片
BLOB
360000
-
以二进制的形式byte[]
视频
TEXT
20
-
主要格式为AVI
评论
TEXT
600
-
错题排名
INTEGER
-
默认为500,答对了减一,答错了加一
随机数
INTEGER
-
用来随机抽取题目
代码生成
CREATE TABLE "COMPREHENSIVE_EXAM" (
"TestID" TEXT(10) NOT NULL,
"BelongTo" TEXT(10),
"Type" TEXT(4) NOT NULL,
"Question" TEXT(600) NOT NULL,
"Answer" INTEGER NOT NULL,
"Comment" TEXT(600),
"Image" BLOB(360000),
"Video" TEXT(20),
"Rate" INTEGER NOT NULL DEFAULT 500,
"Random" INTEGER,
PRIMARY KEY ("TestID" ASC),
CONSTRAINT "PK_BelongTo_Node" FOREIGN KEY ("BelongTo") REFERENCES "NODE" ("NodeID")
);
数据名称
OTHEREXAM
别类题库
名称
格式
范围
精度
说明
编号ID
TEXT
10
-
主键
所属类型
TEXT
40
-
不同于COMPREHENSIVE_EXAM
题型
TEXT
4
-
包括多选,单选,判断
问题
TEXT
600
-
包括题目和选项ABCDEF
答案
INTEGER
-
用数字保存,ABCD代表1111,'A'代表0001,'对'代表0001,'错'代表0010
图片
BLOB
360000
-
以二进制的形式byte[]
视频
TEXT
20
-
主要格式为AVI
评论
TEXT
600
-
错题排名
INTEGER
-
默认为500,答对了减一,答错了加一
随机数
INTEGER
-
用来随机抽取题目
代码生成
CREATE TABLE "OTHEREXAM" (
"TestID" TEXT(10) NOT NULL,
"BelongTo" TEXT(40) NOT NULL,
"Type" TEXT(4) NOT NULL,
"Question" TEXT(600) NOT NULL,
"Answer" INTEGER NOT NULL,
"Comment" TEXT(600),
"Image" BLOB(360000),
"Video" TEXT(20),
"Rate" INTEGER NOT NULL DEFAULT 500,
"Random" INTEGER,
PRIMARY KEY ("TestID" ASC)
);
数据名称
NODE
题目类型信息
名称
格式
范围
精度
说明
节点ID
TEXT
10
-
主键
节点名
TEXT
40
-
不能为空
父节点
TEXT
10
自连接到节点ID
代码生成
CREATE TABLE "NODE" (
"NodeID" TEXT(10) NOT NULL,
"NodeName" TEXT(40) NOT NULL,
"ParNodeID" TEXT(10),
PRIMARY KEY ("NodeID" ASC),
CONSTRAINT "PK_ParNode_Node" FOREIGN KEY ("ParNodeID") REFERENCES "NODE" ("NodeID")
);
数据名称
IMGTEXT
图文信息
名称
格式
范围
精度
说明
图文ID
TEXT
10
-
主键
所属类型
TEXT
40
-
不能为空
短评
BLOB
360000
不能为空
细评
TEXT
600
可以为空
代码生成
CREATE TABLE "IMGTEXT" (
"ImgTextID" TEXT(10) NOT NULL,
"BelongTo" TEXT(40) NOT NULL,
"Image" BLOB(360000) NOT NULL,
"BriefComments" TEXT(100) NOT NULL,
"DetailedComments" TEXT(600)
);
设计模式:
题外话
提示:推荐用WORD2010画E-R图
原因一:点到点自动附加图形
原因二:节点联动
原因三:样式多变美观