英语学习助手报告.docx
- 文档编号:30258453
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:28
- 大小:426.16KB
英语学习助手报告.docx
《英语学习助手报告.docx》由会员分享,可在线阅读,更多相关《英语学习助手报告.docx(28页珍藏版)》请在冰豆网上搜索。
英语学习助手报告
中北大学
计算机科学与技术系
数据库课程设计
题目:
英语学习助手
班 级:
01090B10
指导教师:
洪军靳燕霞
完成日期:
2004年12月
学号
姓名
负责模块
成绩
组长
16
张永红
短文翻译
成员
23
王晨曦
测试
成员
05
顾静
单词
成员
01
常志芳
例句
成员
06
严亭婷
系统维护
1系统设计
1.1目标设计
随着社会的发展和时代的进步,英语已经成为人们在日常生活和工作中必须掌握和应用语言。
为了更好、更快的掌握英语基础知识,尽快具备英语会话和写作能力,适应当前人们的工作、生活需要,推动英语学习的普及,所以我们小组集体开发了这套完整的英语学习助手1.0测试版,欢迎大家使用和提出改进意见。
1.2开发设计思想
本系统开发设计思想:
●尽量采取学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现在资源,提高系统开发水平和应用效果的目的。
●系统应符合学校学生现有的多媒体条件,满足学生日常英语学习的需要,并达到操作过程的直观、方便、实用、自助等要求。
●系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。
●系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。
1.3开发和运行环境选择
开发工具:
VisualBasic6.0
运行环境:
Windows9x、WindowsNT、Windows2000、Windowsxp操作系统。
1.4系统功能分析
本系统主要用于不同层次人们的英语学习,主要功能是帮助人们对不同层次的词汇学习和对日常应用语句的学习。
该系统主要包括词汇、例句、测试、短文翻译四部分。
“词汇”主要包含常用词汇及其翻译,能够实现词汇的查找、添加、修改和删除等功能,可以进行不同难度的选择学习。
“例句”主要包括生活中的常用语,并且用户可以自行添加新的语句,并对现有例句进行修改和删除。
1.5系统功能模块设计
本系统的功能分为如下几大模块:
1.单词模块:
包括单词表的建立,单词的录入、修改、删除等基本操作。
单词表包括单词和汉语翻译以及初级、中级、高级三种难度单词的分类。
单词录入要求能够实现录入(增加)单词及其汉语翻译;修改要求能修改单词的拼写以及其汉语意思;删除即能够删除某一单词记录。
2.例句模块:
包括例句表的建立,例句的录入、修改、删除等基本操作。
例句表包括例句及其中文翻译等。
例句录入要求能够实现录入(增加)例句及其汉语翻译;修改要求能修改例句的单词以及其汉语意思;删除即能够删除某一例句记录。
3.试题模块:
选择初级、中级、高级根据单词表随机生成一份相应难度的单词测试表。
可以给出英文单词选择其正确的汉语翻译,用户选择每次测试的词汇数目,答完后能够给出得分。
并可选择继续测试。
4.检索模块:
包括单词检索和例句检索,。
单词检索要实现输入一个单词,可以检索出它的汉语翻译及其难度。
例句检索要能实现输入其句中的关键词,可以检索出完整的句子及其中文翻译。
5.维护模块:
要求实现数据备份和数据恢复功能,包括备份当前数据库(数据表内容)、选择恢复原始数据库。
备份当前数据库,在修改、充实好数据库后可以将其备份,并且有明确的保存路径;数据库恢复可以将数据库恢复到初始化。
2.数据库设计
2.1数据库需求分析
根据英语学习要求及需求调查分析,对系统画出如图2-1所示的数据流图。
用户
输入单词
修改单词
删除单词
输入例句
修改例句
删除例句
1.1
1.2
1.3
2.3
2.2
2.1
D2
例句表
D1
单词表
图2-1数据流程图
2.2数据库概念设计
有了数据流图,用E-R图来说明英语学习助手的数据库概念模式,如图2-2所示
英语学习助手
词汇
例句
级别
单词
翻译
关键词
编号
句子
翻译
单词号
图2-2实体之间关系E-R图
2.3数据库逻辑设计
将以上E-R转换成如下关系模式
单词(单词号、单词、级别、翻译)
例句(编号、句子、翻译、关键词)
其中,标有下划线的字段表示为该数据表的主码,即主关键字。
在上面的实体以及实体之间关系的基础上,形成数据库中的表格以及各个表格之间的关系。
英语学习助手数据库中各个表格的设计结果如下面的几个表格所示。
每个表格表示在数据库中的一个表。
表2-1为词汇表,表2-2为例句表。
表2-1词汇表
列名
数据类型
长度
说明
单词号
数字
5
升序排列
单词
文本
50
英语词汇
翻译
文本
50
汉语词汇
级别
文本
10
分初、中、高级
表2-2例句表
列名
数据类型
长度
说明
编号
数字
5
仅限数字
句子
文本
200
英语句子
翻译
文本
200
汉语句子
关键词
文本
20
英语单词
3.各个功能模块的具体实现
●开始界面的设计
界面如下:
图3-1
功能及操作说明:
单击主界面各菜单即进入相应功能模块。
单击制作查看软件设计者人员。
单击退出助手按钮退出该助手。
源程序如下:
PrivateSubchcs_Click()
test.Show
EndSub
PrivateSubCommand1_Click()
UnloadMe
EndSub
PrivateSubdc_Click()
word.Show
EndSub
PrivateSubdwfy_Click()
article.Show
EndSub
PrivateSubForm_Load()
EndSub
PrivateSublv_Click()
sentense.Show
EndSub
PrivateSubxtwh_Click()
bck.Show
EndSub
PrivateSubzz_Click()
creat.Show
EndSub
3.1
设计完成人:
顾静
完成模块:
单词模块
●单词模块设计
功能及操作说明:
如图3.1-1所示,在Text框中输入要查询的单词,单击“查询”按钮,即显示其汉语意思和单词级别。
也可单击“上一个”或“下一个”按钮进行词汇浏览。
如果现有词库不能满足用户需求,则可单击“加入新单词”自行加入新词汇;如果现有词汇存在错误,用户可单击“编辑此单词”进行词汇极其翻译和难度等级的修改,如果该单词冗繁不必要,则用户可单击“删除此单词”直接删除该词汇记录。
图3.1-1
进入“加入新单词”操作界面后,如图3.1-2所示,在相应框中输入对应内容,然后选择设置级别,按“确定”按钮便可保存输入词汇,完成后弹出提示框“单词已经输入”。
进入“编辑此单词”操作界面与加入新单词操作相似,用户可进行相应的操作。
单击“删除此单词”按钮,弹出提示框“是否删除此单词”,单击“是”按钮,将删除当前记录,单击“否”则取消删除操作。
图3.1-2
源程序如下:
DimdbAsDAO.Database
PublicrecAsDAO.Recordset
Dimrec1AsDAO.Recordset
PrivateSubCommand1_Click()
Setrec1=db.OpenRecordset("word")
IfText1.Text<>""Then
DoWhilerec1!
单词<>Text1.Text
rec1.MoveNext
Loop
EndIf
IfNot(rec1.BOFAndrec1.EOF)Then
rec1.MovePrevious
Ifrec1.BOFThen
rec1.MoveFirst
EndIf
Text1.Text=rec1!
单词
Command7_Click
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubCommand3_Click()
Setrec1=db.OpenRecordset("word")
IfText1.Text<>""Then
DoWhilerec1!
单词<>Text1.Text
rec1.MoveNext
Loop
EndIf
IfNot(rec1.BOFAndrec1.EOF)Then
rec1.MoveNext
Ifrec1.EOFThen
rec1.MoveLast
EndIf
Text1.Text=rec1!
单词
Command7_Click
EndIf
EndSub
PrivateSubCommand4_Click()
word_in.Show
EndSub
PrivateSubCommand5_Click()
word_in.Show
word_in.Text1.Text=rec!
单词
word_in.Text2.Text=rec!
翻译
word_in.Cob.Text=rec!
级别
EndSub
PrivateSubCommand6_Click()
Ifrec.RecordCount<>0Then
IfMsgBox("确定要删除吗?
",vbYesNo)=vbYesThen
rec.Delete
Setrec=db.OpenRecordset("select*fromword")'无法按单词排序
IfNot(rec.BOFAndrec.EOF)Then
rec.MoveFirst
'rec.Move(cnt)
Text1.Text=rec!
单词
Label3.Caption=rec!
翻译
Label4.Caption=rec!
级别&"级词汇"
EndIf
EndIf
EndIf
EndSub
PrivateSubCommand7_Click()
Setrec=db.OpenRecordset("select*fromwordwhere单词='"&Text1.Text&"'orderby单词")'无法按单词排序
Ifrec.RecordCount>0Then
Label3.Caption=rec!
翻译
Label4.Caption=rec!
级别&"词汇"
EndIf
EndSub
PrivateSubForm_Load()
Setdb=OpenDatabase(App.Path&"\sourse.mdb")
EndSub
DimdbAsDAO.Database
DimrecAsDAO.Recordset
PrivateSubCommand1_Click()
IfText1.Text<>""AndText2.Text<>""Then
rec.MoveFirst
DoWhileNotrec.EOF
word_no=rec!
单词号
Ifrec!
单词=Trim(Text1.Text)Then
ExitDo
Else
rec.MoveNext
EndIf
Loop
Ifrec.EOFThen
rec.AddNew
rec!
单词号=word_no+1
rec!
单词=Text1.Text
rec!
翻译=Text2.Text
rec!
级别=Cob.Text
rec.Update
Else
IfMsgBox("该单词已经存在,要覆盖吗?
",vbYesNo)=vbYesThen
rec.Edit
rec!
翻译=Text2.Text
rec!
级别=Cob.Text
rec.Update
EndIf
EndIf
MsgBox("单词已经输入")
Else
MsgBox("单词输入不能有空")
EndIf
UnloadMe
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Setdb=OpenDatabase(App.Path&"\sourse.mdb")
Setrec=db.OpenRecordset("word")
Cob.AddItem"初级",0
Cob.AddItem"中级",1
Cob.AddItem"高级",2
Cob.ListIndex=0
EndSub
PrivateSubForm_Unload(CancelAsInteger)
word.Show
EndSub
3.2
设计完成人:
常志芳
完成模块:
例句模块
●例句模块设计
功能及操作说明:
图3.2-1
图3.2-2
源程序如下:
DimdbAsDAO.Database
DimrecAsDAO.Recordset
Dimrec1AsDAO.Recordset
Dimrec2AsDAO.Recordset
PrivateSubCommand1_Click()
Setrec2=db.OpenRecordset("select*fromsentense")
IfNot(rec2.BOFAndrec2.EOF)Then
rec2.MovePrevious
Ifrec2.BOFThen
rec2.MoveFirst
EndIf
Setrec=db.OpenRecordset("select*fromsentensewhereid="&rec2!
id)
Text1.Text=rec!
id
Label3.Caption=rec!
¾ä×Ó
Label2.Caption=rec!
·Òë
EndIf
EndSub
PrivateSubCommand2_Click()
Dimtemp
DimiAsInteger
DimkeywordAsString
DimstrsqlAsString
keyword=Trim(Text1.Text)
strsql="select*fromsentensewherekeyword='"&keyword&"'"
Setrec1=db.OpenRecordset(strsql)
IfNotrec1.EOFThen
Label2.Caption=rec1!
·Òë
Label3.Caption=rec1!
¾ä×Ó
Else
MsgBox"²éѯ²»µ½ËùÐèµÄÀý¾ä",vbOKOnly,"ϵͳÌáʾ"
EndIf
EndSub
PrivateSubCommand3_Click()
Setrec2=db.OpenRecordset("select*fromsentense")
IfNot(rec2.BOFAndrec2.EOF)Then
rec2.MoveNext
Ifrec2.BOFThen
rec2.MoveLast
EndIf
Setrec=db.OpenRecordset("select*fromsentensewhereid="&rec2!
id)
Text1.Text=rec!
keyword
Label3.Caption=rec!
¾ä×Ó
Label2.Caption=rec!
·Òë
EndIf
EndSub
PrivateSubCommand4_Click()
sentense_in.Show
EndSub
PrivateSubCommand5_Click()
IfText1.Text<>""Then
Setrec=db.OpenRecordset("select*fromsentensewherekeyword='"&Text1.Text&"'")
sentense_in.Text1.Text=rec!
¾ä×Ó
sentense_in.Text2.Text=rec!
·Òë
sentense_in.Text3.Text=rec!
keyword
sentense_in.Caption="Àý¾äÐÞ¸Ä"
sentense_in.Show
Else
MsgBox"ÇëÊäÈë¹Ø¼ü´Ê²éѯ!
",vbOKOnly,"ϵͳÌáʾ"
EndIf
EndSub
PrivateSubCommand6_Click()
Setrec=db.OpenRecordset("select*fromsentensewherekeyword='"&Text1.Text&"'")
IfMsgBox("È·¶¨ÒªÉ¾³ýÂð£¿",vbYesNo)=vbYesThen
Setrec1=db.OpenRecordset("select*fromsentensewhereid="&rec!
id&"")
rec1.Delete
EndIf
EndSub
PrivateSubCommand7_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Setdb=OpenDatabase(App.Path&"\sourse.mdb")
Setrec2=db.OpenRecordset("select*fromsentense")
EndSub
3.3
设计完成人:
王晨曦
完成模块:
测试模块
●测试模块设计
功能及操作说明:
如图3.3-1所示:
进入测试窗体后,用户可自行输入预测验单词数目,并选择难度,单击“开始测试”按钮,进入测试,如图3.3-2所示:
窗体上显示英语单词,测试者选择认为正确的释意,然后点“下一题”,当答完所要求的数目后,“下一题”按钮将显示成“交卷”字样,并弹出提示框,显示你的得分是**分。
然后可以点确定进行下一轮的测试。
图3.3-1
图3.3-2
源程序如下:
DimdbAsDAO.Database
DimrecAsDAO.Recordset
Publiclevel1AsString
PublicsumAsInteger
PrivateSubCommand1_Click()
sum=Text1.Text
level1=Cob1.Text
test_on.Show
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Setdb=OpenDatabase(App.Path&"\sourse.mdb")
Setrec=db.OpenRecordset("word")
Cob1.AddItem"初级",0
Cob1.AddItem"中级",1
Cob1.AddItem"高级",2
Cob1.ListIndex=0
EndSub
PublicrightAsInteger
DimdbAsDAO.Database
DimrecAsDAO.Recordset
DimiAsInteger
DimcntAsInteger
DimcrtAsInteger
DimmarkAsInteger
PrivateSubCommand1_Click()
Calljudge
Ifi=test.sumThen
Command1.Caption="交卷"
Else
Callask
EndIf
IfCommand1.Caption="交卷"Then
score=mark/test.sum*100
MsgBox("你的得分是"&score&"分")
UnloadMe
EndIf
EndSub
PrivateSubCommand2_Click()
UnloadMe
EndSub
PrivateSubForm_Load()
Setdb=OpenDatabase(App.Path&"\sourse.mdb")
Setrec=db.OpenRecordset("select*fromwordwhere级别='"&test.level1&"'")
rec.MoveLast
cnt=rec.RecordCount
rec.MoveFirst
i=0
mark=0
Callask
EndSub
PrivateSubask()
i=i+1
Command1.Caption="下一题"
Forj=0To3
Label(j).Caption=""
Next
temp=Int(Rnd()*10)
rec.MoveFirst
rec.Move(tempModcnt)
Label2.Caption=rec!
单词'正确单词和翻译进入
Label(tempMod4).Caption=rec!
翻译
crt=tempMod4
Forj=1To3
k=j-1
rec.MoveFirst
temp=Int(Rnd()*10)
rec.Move(tempModcnt)'找一个错翻译
DoWhilerec!
翻译=test_on.Label(crt).Caption
temp=Int(Rnd()*10)
rec.MoveFirst
rec.Move(tempModcnt)
Loop
DoWhileNotLabel(k).Caption=""'放到一个空行上去
k=k+1
Loop
test_on.Label(k).Caption=rec!
翻译
Next
EndSub
PrivateSubjudge()
IfOption1(crt).ValueThen
mark=mark+1
E
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 英语 学习 助手 报告