英语词典课程设计报告_第1页
英语词典课程设计报告_第2页
英语词典课程设计报告_第3页
英语词典课程设计报告_第4页
英语词典课程设计报告_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、英语词典课程设计报告山东交通学院面向对象课程设计英语学习小词典(院)系:信电学院班 级:计算111姓 名:学 号:110811123指导教师: 钱斌时 间:2012-10-102012-10-21课程设计任务书题 目:英语学习小词典C+语言课程设计系 部: 信电学院专 业:计算机科学与技术班 级:计算111姓 名:学 号:10月10日至10月21日共2周指导教师(签字):系主任(签字):年 月 日课程设计任务书一、设计内容及要求.设计目的学生根据所学的数据库原理与程序设计的知 识,能够针对一个小型的数据库管理系统,进行系 统的需求分析,系统设计,数据库设计,编码,测 试等,完成题目要求的功能,

2、从而达到掌握开发一 个小型数据库的目的。.设计内容.必须设计的基本数据表:英语分级单词表, 常用单词例句表,短文分级表等。.功能模块1)实现英语单词的录入、修改、删除等基本 操作。2)实现常用英语单词例句的录入、修改、删 除等基本操作。3)实现英语单词检索、翻译等。4)常用英语单词例句检索。5)根据难度随机生成一份单词测试题目。6)能够检索出短文极其翻译对照表。二、设计原始资料(1)电子出版社出版的VISUAL C+程序设 计及应用,贺怀清等编著.(2)高等教育出版社出版的数据库系统简明 教程,王珊。三、设计完成后提交的文件.课程设计报告(3000-5000字),纸质打印稿及 电子版(1)需求

3、分析(功能模块层次图)(2)系统设计(包括详细设计和界面设计)(3)代码设计(主要功能函数)(4)测试记录(测试各项功能的正确性、容错性) (5)课程设计总结.系统程序演示。.课程设计任务书2.图纸部分: 序流程图程序四、进度计划10月10-10月12日完成需求分析和系统设计;10月13日-10月16日完成代码设计;10月17日-10月20日测试和调试;10月21日参加答辩。五、主要参考资料.李闽溟等.Visual C+6.0数据库系统开发实例导航M.北京:人民邮电出版社.闪四清.数据库系统原理与应用教程M.清华大学出版社成绩评定表作品成绩报告成绩口试(答辩)成绩总评成绩对于我们,随着学习的深

4、入,已经大体掌握了Visual C+6.0环境下的程序开发。为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于 Visual C+6.0环境的软 件开发,先以字符统计软件作为开始,对 Visual C+6.0环境和面向对象程序设 计进行回忆和熟悉,使得在此基础上的下一个课程设计的开发进行的更加顺利。本文档详细叙述了基于Visual C+6.0环境下的英语学习小词典系统软件的 设计过程以及程序源代码。本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程程序在设计的过程中遇到的问题已及时更正,但由

5、于编者的能力和水平有 限,字符统计软件和文档中不免会出现一些不期待的错误,望文档读者能够理 解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。目录 TOC o 1-5 h z .课程设计概述 8英语学习小词典题目及简介 8开发环境概述 8. 总体设计 8项目规戈IJ 8系统结构流程图 9数据库逻辑结构 10.功能模块界面及程序代码 11主界面模块设计 11数据库登陆框设计 12操作数据库模块设计 14单词添加模块 14单词删除模块 16单词修改模块 25查询模块设计 错误!未定义书签。随机生成单词测试表模块设计 38.设计体会 28参考文献 281.1.英语学习小词典题目及简介根据软件需求,要

6、求软件具有以下功能:1)实现英语单词的录入、修改、删除等基本操作。2)实现常用英语单词例句的录入、修改、删除等基本操作。3)实现英语单词检索、翻译等。4)常用英语单词例句检索。5)根据难度随机生成一份单词测试题目。6)能够检索出短文极其翻译对照表。数据库系统主要为登陆,登陆后可以浏览,添加,删除,修改各种单词, 单词例句,英语短文信息。1.2.开发环境概述硬件要求CPU: 300MHz以上的处理器内存:128MB ,推荐256MB硬盘:150MB以上剩余空间显示像素:最低800*600,最佳效果1024*768软件要求操作系统:Windows2000/NT/XP/Vista/Win7。数据库:

7、SQL Server2000项目规划根据需求分析,设计程序框架。英语词典学习软件由 3大部分组成。设计 各部分具体功能如下:1)查询模块。包括单词查询,单词例句查询,短文翻译查询。2)用户密码模块。包括用户名,密码。3)数据库模块。包括三个表,单词表,单词例句表,短文表。可以实 现各个表信息的添加,修改,删除。4)测试模块。随机生成一份单词测试表。系统结构流程图数据库逻辑结构本系统采用SQL Server 2000数据库,系统数据库名为 Dictionary , 其中共包含3个自己建的表。表2.1单词表字段中文名字段名类型长度单词danci文本10单词翻译dancifanyi文本50编号ID自

8、动编p表2.2单词例句表:字段中文名字段名长度单词danci文本10单词例句danciliju文本150编号lijuID自动编p表2.3英语低级短文表:字段中文名字段名长度短文duanwen文本190短文翻译duanwenfany i文本225编号duanwenlD自动编p表2.3英语局级短文表:字段中文名字段名长度-短文duanwen文本190短文翻译duanwenfan yi文本225编号duanwenID自动编p表2.5登陆表:字段中文名字段名长度用户user文本10密码password文本10主界面模块设计弹出窗口按钮,代码:denglu dlg;dlg. DoModal();其余按钮

9、代码相同数据库登陆框设计数据库登录按钮的代码:void denglu:OnOK()(/ TODO: Add extra validation here UpdateData(TRUE);dengluset userset;CString sqlStr;CDatabase m;/OPENDATABASE/m.Open(_T(EnglishDic);if(!m.IsOpen()MessageBox(不能打开数据库!);return;if(m_struser.IsEmpty()MessageBox(”请输入用户名!,Prompt);m_cstruser.SetFocus();return;if(m_

10、strpassword.IsEmpty()MessageBox(请输入密码匚Prompt);m_cstrpassword.SetFocus();return;sqlStr.Format(select * from user where user=%s AND password=%s,m_struser,m_strpassword);if(!userset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr) MessageBox(不能打开数据库!,Database Error,MB_OK);return ;/RECORDCOUNT/if(userset.GetRecordC

11、ount()=0)userset.Close();MessageBox(密码错误!请再次输入 匚”Error!);m_strpassword=;m_cstrpassword.SetFocus();UpdateData(FALSE);) else(userset.Close();CDialog:OnOK(); danci dlg;dlg.DoModal();)若用户为空则提示(容错性):若密码错误,则提示:错误密码提示界面3.3.1单词添加模块跳转窗口代码:void CEnglishDictionaryDlg:OnBUTTONWord()(/ TODO: Add your control not

12、ification handler code here denglu dlg;dlg.DoModal();ShowItem(select * from dancitable);)单词添加窗口如图所示:具体代码如下:void danciadd:OnOK() (/ TODO: Add extra validation here UpdateData(TRUE);if(m_Englishdanci.IsEmpty():MessageBox(NULL, English not kong!, addEnglish,MB_OK|MB_ICONINFORMATION|MB_TAS KMODAL); retu

13、rn; danciset danciset; TRYif (!danciset.Open(CRecordset:dynaset, NULL, CRecordset:appendOnly):MessageBox(NULL,打开数据失败”baseoperator,MB_OK|MB_ICONEXCLAMATION); return;)if(!danciset.CanAppend()(:MessageBox(NULL,记录不能够被操 作 ,baseoperator,MB_OK|MB_ICONEXCLAMATION);return;)danciset.AddNew();danciset.m_danci=

14、 m_Englishdanci;danciset.m_dancifanyi= m_Chinesedanci;danciset.Update();danciset.Close();)CATCH_ALL(e)(e-ReportError();if (danciset.IsOpen()(danciset.Close();:MessageBox(NULL,”搜 索数 据失败!, baseoperator,MB_OK|MB_ICONEXCLAMATION);return;END_CATCH_ALLUpdateData(FALSE);CDialog:OnOK();如果输入有误,像英语单词为空,则会有相应的

15、提示:3.3.2单词删除模块然后确定后,再选择未选择记录时的提示语选择单词hard进行删除,点击DELET酸钮还会有更进一步的提示:是否确定删除,是则删除,否则不删。删除按钮的具体代码:void danci:OnButtonDelete()(/ TODO: Add your control notification handler code hereUpdateData(TRUE);POSITION pos;int iPos;CString EnglishID;posm_listdanci.GetFirstSelectedItemPosition(); if (pos = NULL)(:Mes

16、sageBox(NULL, ”请选择要删除的记录!,dancitale,MB_OK|MB_ICONINFORMATION|MB_TAS KMODAL); return;if(AfxMessageBox(你 确定要 删除吗?”, MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2) = IDNO)return;iPos =m_listdanci.GetNextSelectedItem(pos);EnglishID =m_listdanci.GetItemText(iPos,0);from dancitableCString strSQL;strSQL.Format(de

17、letewhere danci=%s, EnglishlD);CDatabase db;/CString strCon;/strCon.Format(DSN=%s;UID=%s;PWD=%s, dancitable,);db.Open(EnglishDic);db.ExecuteSQL(strSQL);db.Close();ShowItem(select * from dancitable); UpdateData(FALSE);)3.3.3单词修改模块单词修改首先也要找到单词记录,然后在单词修改对话框中显示您要修改 的单词对象,以便修改,修改后更新数据库。未选择但此时的画面:选定修改单词画面

18、:EDIT按钮具体代码:void danci:OnButtonEdit()(notification/ TODO: Add your control handler code heredanciedit editdlg;POSITION pos;int iPos;posm_listdanci.GetFirstSelectedItemPosition();if (pos = NULL)AfxMessageBox(请选择要编辑的记录!); return;iPos= m_listdanci.GetNextSelectedItem(pos);editdlg.m_Englishdanci=m_listd

19、anci.GetItem Text(iPos, 0);editdlg.m_Chinesedanci=m_listdanci.GetItemText(iPos, 1);editdlg.m_strID=m_listdanci.GetItemText(iPos, 2);editdlg.DoModal();ShowItem(select * from dancitable);UpdateData(FALSE);)在修改对话框中显示所选单词画面:修改单次数据库的具体代码:void danciedit:OnOK()(/ TODO: Add extra validation hereUpdateData(T

20、RUE);if(m_Englishdanci.IsEmpty()(add:MessageBox(NULL, English not kong!,English,MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);return;)CString strTmp;strTmp.Format(SELECT * FROMdancitable where ID = %s,m_strID);danciset danciset;/*danciset.Open(CRecordset:dynaset,strTmp, CRecordset:none);/danciset.Open(CRec

21、ordset:dynaset,strTmp,CRecordset:none);danciset.Edit();danciset.m_danci=editdlg.m_Englishdanci;danciset.m_dancifanyi=editdlg.m_Chinesedan ci;danciset.Update();danciset.Close();*/TRYif (!danciset.Open(CRecordset:dynaset, strTmp, CRecordset:none)(:MessageBox(NULL,打开数据表格失 败 !,baseoperator,MB_OK|MB_ICON

22、EXCLAMATION);return;if(!danciset.CanUpdate()(:MessageBox(NULL,”记 录暂 不能更 新 !,baseoperator,MB_OK|MB_ICONEXCLAMATION);return;danciset.Edit();danciset.m_danci =m_Englishdanci;danciset.m_dancifanyi=m_Chinesedanci;danciset.Update();danciset.Close();CATCH_ALL(e)e-ReportError();if (danciset.IsOpen()( dancis

23、et.Close();)二MessageBox(NULL, search base failed!, baseoperator,MB_OK|MB_ICONEXCLAMATION); return; ) END_CATCH_ALL/ strTmp.Format(update dancitable set danci=%s,dancifanyi=%s whereID=%s,editdlg.m_Englishdanci,editdlg.m_Chi nesedanci,editdlg.m_strID);UpdateData(FALSE);CDialog:OnOK();ALL按钮的具体代码:void d

24、ancid二OnButtonAll()/ TODO: Add your control notification handler code here ShowItem(select * from dancitable);)3.3.查询模块设计单词搜索按钮的代码:voidCEnglishDictionaryDlg:OnBUTTONSearch()(/ TODO: Add your control notification handler code hereUpdateData(TRUE);danciset danciset;if(m_strdanci.IsEmpty()(:MessageBox(

25、NULL,英语单词不能为 空 !,addEnglish,MB_OK|MB_ICONINFORMATION|MB_T ASKMODAL);return; elseCString strSQL;strSQL.Format(select * from dancitable where danci=%s,m_strdanci);if(!danciset.Open(CRecordset:dynaset,strSQ L,CRecordset:none)AfxMessageBox(field); return; elsem_strdancifanyi=danciset.m_dancifanyi;dancis

26、et.Close();if(m_strdancifanyi.IsEmpty()AfxMessageBox(Base have not record!);UpdateData(FALSE);单词例句搜索按钮代码:voidCEnglishDictionaryDlg:OnBUTTONSearch1()/ TODO: Add your control notification handler code hereUpdateData(TRUE);dancilijuset dancilijuset;if(m_strdanci.IsEmpty()二MessageBox(NULL,英语单词不能为空 匕addE

27、nglish,MB_OK|MB_ICONINFORMATION|MB_T ASKMODAL); return; else CString strSQL;strSQL.Format(select * from dancilijutablewheredanci=%s,m_strdanci);if(!dancilijuset.Open(CRecordset:dynaset,str SQL,CRecordset:none)AfxMessageBox(field); return; elsem_strliju=dancilijuset.m_danciliju; dancilijuset.Close();

28、if(m_strliju.IsEmpty() AfxMessageBox(Base have not record!);UpdateData(FALSE); 短文翻译按钮代码: voidCEnglishDictionaryDlg:OnBUTTONTransla te() / TODO: Add your control notification handler code hereUpdateData(TRUE);duanwenset duanwenset;if(m_strliju.IsEmpty()二MessageBox(NULL,英语例句不能为 空 匕addEnglish,MB_OK|MB_

29、ICONINFORMATION|MB_TASKMODAL);return;)else(CString strSQL;strSQL.Format(select * from duanwentablewhereduanwen=%s,m_strliju);if(!duanwenset.Open(CRecordset:dynaset,st rSQL,CRecordset:none)(AfxMessageBox(field);return;)else(m_strduanwen=duanwenset.m_duanwenfa nyi;duanwenset.Close();if(m_strduanwen.Is

30、Empty()AfxMessageBox( e ?Y? a? o D?!); UpdateData(FALSE);查询a的结果画面:3.5随机生成单词测试表模块设计利用随机数生成函数,再做相应的处理,生成不会重复的随机数,利用它 为查询条件,查找单词表中的ID,生成对应的单词单词测试表,显示在对话框 中。每一次的点击便可随机产生一份单词测试表。void CEnglishDictionaryDlg:OnBUTTONTest()/ TODO: Add your control notificationhandler code heretest dlg;danciset danciset;int b

31、6;srand(time(0);/? srand(time(NULL);for( int i = 0; i 6; i+ )bi = rand()%23;for( int j = 0; j i; j+)if( bj = bi11bi=0 ) i-;break;)/ dlg.m_test1.Format(%d,i);/ testID.Format(%d,i);fromCString strSQL;strSQL.Format(select dancitable where ID=%d,b0);if(!danciset.Open(CRecordset:dynaset,strSQL, CRecordse

32、t:none)AfxMessageBox(field); return; elsedlg.m_test1=danciset.m_danci;dlg.m_7=danciset.m_dancifanyi;danciset.Close(); UpdateData(FALSE);CString strSQL1;strSQL1.Format(select * from dancitable where ID=%d,b1);if(danciset.Open(CRecordset:dynaset,strSQ L1,CRecordset:none)dlg.m_test2=danciset.m_danci;dl

33、g.m_8 =danciset.m_dancifanyi;danciset.Close(); UpdateData(FALSE); ) CString strSQL2;strSQL2.Format(select * from dancitable where ID=%d,b2);if(danciset.Open(CRecordset:dynaset,strSQL2,CRecordset:none)(dlg.m_test3=danciset.m_danci;dlg.m_9 =danciset.m_dancifanyi;danciset.Close(); UpdateData(FALSE); )f

34、romCString strSQL3;strSQL3.Format(selectdancitable where ID=%d,b3);if(danciset.Open(CRecordset:dynaset,strSQL3,CRecordset:none)(dlg.m_test4=danciset.m_danci;dlg.m_10=danciset.m_dancifanyi;danciset.Close(); UpdateData(FALSE); CString strSQL4;strSQL4.Format(select * from dancitable where ID=%d,b4);if(danciset.Open(CRecordset:dynaset,strSQ L4,CRecordset:none)(dlg.m_test5=danciset.m_danci;dlg.m_11 =danciset.m_dancifanyi;danciset.Close(); UpdateData(FALSE);CString strSQL5;strSQL5.Format(select * from dancitable where ID=%d,b5);if(danciset.Open(CRecor

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论