英语学习助手数据库课程设计

上传人:沈*** 文档编号:79381733 上传时间:2022-04-23 格式:DOC 页数:25 大小:538KB
返回 下载 相关 举报
英语学习助手数据库课程设计_第1页
第1页 / 共25页
英语学习助手数据库课程设计_第2页
第2页 / 共25页
英语学习助手数据库课程设计_第3页
第3页 / 共25页
点击查看更多>>
资源描述
xx大学计算机科学与技术系数据库课程设计题 目:英语学习助手班级: 指导教师: 完成日期:2014年12月学号姓名负责模块成绩组长16 短文翻译 成员23 测试成员05 单词成员01 例句成员06 系统维护1 系统设计1.1 目标设计 随着社会的发展和时代的进步,英语已经成为人们在日常生活和工作中必须掌握和应用语言。为了更好、更快的掌握英语基础知识,尽快具备英语会话和写作能力,适应当前人们的工作、生活需要,推动英语学习的普及,所以我们小组集体开发了这套完整的英语学习助手1.0测试版,欢迎大家使用和提出改进意见。1.2 开发设计思想本系统开发设计思想:l 尽量采取学校现有软硬件环境,及先进的管理系统开发方案,从而达到充分利用学校现在资源,提高系统开发水平和应用效果的目的。l 系统应符合学校学生现有的多媒体条件,满足学生日常英语学习的需要,并达到操作过程的直观、方便、实用、自助等要求。l 系统采用模块化程序设计方法,既便于系统功能的各种组合和修改,又便于未参与开发的技术维护人员补充、维护。l 系统应具备数据库维护功能,及时根据用户需求进行数据的添加、删除、修改、备份等操作。1.3 开发和运行环境选择开发工具:Visual Basic 6.0运行环境:Windows 9x 、Windows NT、Windows 2000、 Windowsxp 操作系统。1.4 系统功能分析本系统主要用于不同层次人们的英语学习,主要功能是帮助人们对不同层次的词汇学习和对日常应用语句的学习。该系统主要包括词汇、例句、测试、短文翻译四部分。“词汇”主要包含常用词汇及其翻译,能够实现词汇的查找、添加、修改和删除等功能,可以进行不同难度的选择学习。“例句”主要包括生活中的常用语,并且用户可以自行添加新的语句,并对现有例句进行修改和删除。1.5 系统功能模块设计本系统的功能分为如下几大模块:1.单词模块:包括单词表的建立,单词的录入、修改、删除等基本操作。单词表包括单词和汉语翻译以及初级、中级、高级三种难度单词的分类。单词录入要求能够实现录入(增加)单词及其汉语翻译;修改要求能修改单词的拼写以及其汉语意思;删除即能够删除某一单词记录。2.例句模块:包括例句表的建立,例句的录入、修改、删除等基本操作。例句表包括例句及其中文翻译等。例句录入要求能够实现录入(增加)例句及其汉语翻译;修改要求能修改例句的单词以及其汉语意思;删除即能够删除某一例句记录。3.试题模块:选择初级、中级、高级根据单词表随机生成一份相应难度的单词测试表。可以给出英文单词选择其正确的汉语翻译,用户选择每次测试的词汇数目,答完后能够给出得分。并可选择继续测试。4.检索模块:包括单词检索和例句检索,。单词检索要实现输入一个单词,可以检索出它的汉语翻译及其难度。例句检索要能实现输入其句中的关键词,可以检索出完整的句子及其中文翻译。 5.维护模块:要求实现数据备份和数据恢复功能,包括备份当前数据库(数据表内容)、选择恢复原始数据库。备份当前数据库,在修改、充实好数据库后可以将其备份,并且有明确的保存路径;数据库恢复可以将数据库恢复到初始化。2. 数据库设计2.1 数据库需求分析根据英语学习要求及需求调查分析,对系统画出如图2-1所示的数据流图。用户输入单词修改单词删除单词输入例句修改例句删除例句1.11.21.32.32.22.1D2例句表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各个功能模块的具体实现l 开始界面的设计界面如下: 图 3-1功能及操作说明:单击主界面各菜单即进入相应功能模块。单击制作查看软件设计者人员。单击退出助手按钮退出该助手。源程序如下:Private Sub chcs_Click()test.ShowEnd SubPrivate Sub Command1_Click()Unload MeEnd SubPrivate Sub dc_Click()word.ShowEnd SubPrivate Sub dwfy_Click()article.ShowEnd SubPrivate Sub Form_Load()End SubPrivate Sub lv_Click()sentense.ShowEnd SubPrivate Sub xtwh_Click()bck.ShowEnd SubPrivate Sub zz_Click()creat.ShowEnd Sub31设计完成人:顾静完成模块:单词模块l 单词模块设计功能及操作说明:如图3.1-1所示,在Text框中输入要查询的单词,单击“查询”按钮,即显示其汉语意思和单词级别。也可单击“上一个”或“下一个”按钮进行词汇浏览。如果现有词库不能满足用户需求,则可单击“加入新单词”自行加入新词汇;如果现有词汇存在错误,用户可单击“编辑此单词”进行词汇极其翻译和难度等级的修改,如果该单词冗繁不必要,则用户可单击“删除此单词”直接删除该词汇记录。 图 3.1-1进入“加入新单词”操作界面后,如图 3.1-2所示,在相应框中输入对应内容,然后选择设置级别,按“确定”按钮便可保存输入词汇,完成后弹出提示框“单词已经输入”。进入“编辑此单词”操作界面与加入新单词操作相似,用户可进行相应的操作。单击“删除此单词”按钮,弹出提示框“是否删除此单词”,单击“是”按钮,将删除当前记录,单击“否”则取消删除操作。图 3.1-2源程序如下:Dim db As DAO.DatabasePublic rec As DAO.RecordsetDim rec1 As DAO.RecordsetPrivate Sub Command1_Click() Set rec1 = db.OpenRecordset(word) If Text1.Text Then Do While rec1!单词 Text1.Text rec1.MoveNext Loop End If If Not (rec1.BOF And rec1.EOF) Then rec1.MovePrevious If rec1.BOF Then rec1.MoveFirst End If Text1.Text = rec1!单词 Command7_Click End IfEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Command3_Click() Set rec1 = db.OpenRecordset(word) If Text1.Text Then Do While rec1!单词 Text1.Text rec1.MoveNext Loop End If If Not (rec1.BOF And rec1.EOF) Then rec1.MoveNext If rec1.EOF Then rec1.MoveLast End If Text1.Text = rec1!单词 Command7_Click End IfEnd SubPrivate Sub Command4_Click() word_in.ShowEnd SubPrivate Sub Command5_Click() word_in.Show word_in.Text1.Text = rec!单词 word_in.Text2.Text = rec!翻译 word_in.Cob.Text = rec!级别End SubPrivate Sub Command6_Click() If rec.RecordCount 0 Then If MsgBox(确定要删除吗?, vbYesNo) = vbYes Then rec.Delete Set rec = db.OpenRecordset(select * from word ) 无法按单词排序 If Not (rec.BOF And rec.EOF) Then rec.MoveFirst rec.Move (cnt) Text1.Text = rec!单词 Label3.Caption = rec!翻译 Label4.Caption = rec!级别 & 级词汇 End If End If End IfEnd SubPrivate Sub Command7_Click() Set rec = db.OpenRecordset(select * from word where 单词= & Text1.Text & order by 单词) 无法按单词排序 If rec.RecordCount 0 Then Label3.Caption = rec!翻译 Label4.Caption = rec!级别 & 词汇 End IfEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb)End SubDim db As DAO.DatabaseDim rec As DAO.RecordsetPrivate Sub Command1_Click() If Text1.Text And Text2.Text Then rec.MoveFirst Do While Not rec.EOF word_no = rec!单词号 If rec!单词 = Trim(Text1.Text) Then Exit Do Else rec.MoveNext End If Loop If rec.EOF Then rec.AddNew rec!单词号 = word_no + 1 rec!单词 = Text1.Text rec!翻译 = Text2.Text rec!级别 = Cob.Text rec.Update Else If MsgBox(该单词已经存在,要覆盖吗?, vbYesNo) = vbYes Then rec.Edit rec!翻译 = Text2.Text rec!级别 = Cob.Text rec.Update End If End If MsgBox (单词已经输入) Else MsgBox (单词输入不能有空) End If Unload MeEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb) Set rec = db.OpenRecordset(word) Cob.AddItem 初级, 0 Cob.AddItem 中级, 1 Cob.AddItem 高级, 2 Cob.ListIndex = 0End SubPrivate Sub Form_Unload(Cancel As Integer) word.ShowEnd Sub32设计完成人:常志芳完成模块:例句模块l 例句模块设计功能及操作说明: 图 3.2-1 图 3.2-2源程序如下:Dim db As DAO.DatabaseDim rec As DAO.RecordsetDim rec1 As DAO.RecordsetDim rec2 As DAO.RecordsetPrivate Sub Command1_Click() Set rec2 = db.OpenRecordset(select * from sentense) If Not (rec2.BOF And rec2.EOF) Then rec2.MovePrevious If rec2.BOF Then rec2.MoveFirst End If Set rec = db.OpenRecordset(select * from sentense where id= & rec2!id) Text1.Text = rec!id Label3.Caption = rec! Label2.Caption = rec! End IfEnd Sub Private Sub Command2_Click() Dim temp Dim i As Integer Dim keyword As String Dim strsql As String keyword = Trim(Text1.Text) strsql = select * from sentense where keyword= & keyword & Set rec1 = db.OpenRecordset(strsql) If Not rec1.EOF Then Label2.Caption = rec1! Label3.Caption = rec1! Else MsgBox , vbOKOnly, End IfEnd SubPrivate Sub Command3_Click() Set rec2 = db.OpenRecordset(select * from sentense) If Not (rec2.BOF And rec2.EOF) Then rec2.MoveNext If rec2.BOF Then rec2.MoveLast End If Set rec = db.OpenRecordset(select * from sentense where id= & rec2!id) Text1.Text = rec!keyword Label3.Caption = rec! Label2.Caption = rec! End IfEnd SubPrivate Sub Command4_Click() sentense_in.ShowEnd SubPrivate Sub Command5_Click() If Text1.Text Then Set rec = db.OpenRecordset(select * from sentense where keyword= & 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, End IfEnd SubPrivate Sub Command6_Click() Set rec = db.OpenRecordset(select * from sentense where keyword= & Text1.Text & ) If MsgBox(, vbYesNo) = vbYes Then Set rec1 = db.OpenRecordset(select * from sentense where id= & rec!id & ) rec1.Delete End IfEnd SubPrivate Sub Command7_Click()Unload MeEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb) Set rec2 = db.OpenRecordset(select * from sentense) End Sub33设计完成人:王晨曦完成模块:测试模块l 测试模块设计功能及操作说明:如图3.3-1所示:进入测试窗体后,用户可自行输入预测验单词数目,并选择难度,单击“开始测试”按钮,进入测试,如图3.3-2所示:窗体上显示英语单词,测试者选择认为正确的释意,然后点“下一题”,当答完所要求的数目后,“下一题”按钮将显示成“交卷”字样,并弹出提示框,显示你的得分是*分。然后可以点确定进行下一轮的测试。 图 3.3-1 图 3.3-2源程序如下:Dim db As DAO.DatabaseDim rec As DAO.RecordsetPublic level1 As StringPublic sum As IntegerPrivate Sub Command1_Click() sum = Text1.Text level1 = Cob1.Text test_on.ShowEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb) Set rec = db.OpenRecordset(word) Cob1.AddItem 初级, 0 Cob1.AddItem 中级, 1 Cob1.AddItem 高级, 2 Cob1.ListIndex = 0End SubPublic right As IntegerDim db As DAO.DatabaseDim rec As DAO.RecordsetDim i As IntegerDim cnt As IntegerDim crt As IntegerDim mark As IntegerPrivate Sub Command1_Click() Call judge If i = test.sum Then Command1.Caption = 交卷 Else Call ask End If If Command1.Caption = 交卷 Then score = mark / test.sum * 100 MsgBox (你的得分是 & score & 分) Unload Me End If End SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb) Set rec = db.OpenRecordset(select * from word where 级别 = & test.level1 & ) rec.MoveLast cnt = rec.RecordCount rec.MoveFirst i = 0 mark = 0 Call askEnd SubPrivate Sub ask() i = i + 1 Command1.Caption = 下一题 For j = 0 To 3 Label(j).Caption = Next temp = Int(Rnd() * 10) rec.MoveFirst rec.Move (temp Mod cnt) Label2.Caption = rec!单词 正确单词和翻译进入 Label(temp Mod 4).Caption = rec!翻译 crt = temp Mod 4 For j = 1 To 3 k = j - 1 rec.MoveFirst temp = Int(Rnd() * 10) rec.Move (temp Mod cnt) 找一个错翻译 Do While rec!翻译 = test_on.Label(crt).Caption temp = Int(Rnd() * 10) rec.MoveFirst rec.Move (temp Mod cnt) Loop Do While Not Label(k).Caption = 放到一个空行上去 k = k + 1 Loop test_on.Label(k).Caption = rec!翻译 NextEnd SubPrivate Sub judge() If Option1(crt).Value Then mark = mark + 1 End IfEnd Sub34设计完成人:张永红完成模块:短文翻译l 短文翻译模块设计功能及操作说明: 如图3.4-1所示:在Text框中输入要翻译的英语短文,点击“执行翻译”按钮,便在下方显示出汉语翻译。点击“返回”按钮,可退出该窗体,返回到主菜单。 图 3.4-1源程序如下:Dim db As DAO.DatabaseDim rec As DAO.RecordsetPrivate Sub Command1_Click() tx = Text1.Text i = 1 l = Len(tx) txt = txtout = Do While i = l + 1 If i = l Then ch = Mid(tx, i, 1) End If If ch And i l Then txt = txt & ch Else If i = l Then txt = txt & ch End If Set rec = db.OpenRecordset(select * from word where 单词= & txt & ) If rec.RecordCount 0 Then txtout = rec!翻译 Else txtout = txt End If Label2.Caption = Label2.Caption & txtout txt = txtout = End If i = i + 1 LoopEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Form_Load() Set db = OpenDatabase(App.Path & sourse.mdb) Set rec = db.OpenRecordset(word)End Sub35设计完成人:严亭婷完成模块:系统维护l 系统维护模块设计功能及操作说明: 图 3.5-1源程序如下:Dim fso As New FileSystemObjectDim mulu As FolderDim fil As FilePrivate Sub Command1_Click() If Option1.Value Then s = Text1.Text i = 1 l = Len(Text1.Text) mu1 = Do While i l mu2 = ch = Mid(s, i, 1) Do While ch mu2 = mu2 + ch i = i + 1 If i l Then Exit Do End If ch = Mid(s, i, 1) Loop i = i + 1 If mu1 = Then mu1 = mu1 & mu2 Else mu1 = mu1 & & mu2 End If If Dir(mu1) = Then If Not fso.FolderExists(mu1) Then Set mulu = fso.CreateFolder(mu1) Microsoft Scriping Runtime End If Set fil = fso.GetFile(App.Path & sourse.mdb) fil.Copy (mu1 & sourse.mdb) MsgBox () End If Loop Else If fso.FileExists(Text1.Text & sourse.mdb) Then Set fil = fso.GetFile(Text1.Text & english.mdb) fil.Copy (App.Path & sourse.mdb) MsgBox () Else MsgBox () End If End If Unload MeEnd SubPrivate Sub Command2_Click() Unload MeEnd SubPrivate Sub Command3_Click()Unload MeEnd SubPrivate Sub Form_Load()End Sub4系统测试 该英语学习助手1.0测试版经过平行运行和全负荷运行,基本功能运行稳定,但不否认存在不少殛待解决的问题,如删除某条记录后其他记录的排序连接不上,短文翻译只实现了机械式从词库检索其对应单词翻译的的功能,测试模块形式单一,只有选择题目等等,我们等待用户的反馈和帮助,以期望我们的软件能更完善。5总结 通过本次数据库课程设计,我们小组5个人齐心协力,互相合作,经过两周的时间,终于将任务勉强完成,虽然做得不成熟,但第一次做这样的软件,从一无所知到现在,我们也感觉到了收获的喜悦,这是我们课堂理论知识和实践的一次结合,不仅让我们对课堂知识有更深的体会,更培养了我们的集体合作能力,让我们对对软件制作过程有了真实感受。由于时间仓促,能力有限,该测试版英语学习助手,虽然基本完成,但存在许多不足和系统隐患,诚恳希望老师和使用者的批评指正。
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!