英语词典课程设计报告.docx

上传人:b****5 文档编号:7862669 上传时间:2023-01-26 格式:DOCX 页数:29 大小:492.33KB
下载 相关 举报
英语词典课程设计报告.docx_第1页
第1页 / 共29页
英语词典课程设计报告.docx_第2页
第2页 / 共29页
英语词典课程设计报告.docx_第3页
第3页 / 共29页
英语词典课程设计报告.docx_第4页
第4页 / 共29页
英语词典课程设计报告.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

英语词典课程设计报告.docx

《英语词典课程设计报告.docx》由会员分享,可在线阅读,更多相关《英语词典课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。

英语词典课程设计报告.docx

英语词典课程设计报告

山东交通学院

 

面向对象课程设计

 

英语学习小词典

(院)系:

信电学院

班级:

计算111

姓名:

学号:

110811123

指导教师:

钱斌

时间:

2012-10-10—2012-10-21

 

课程设计任务书

题目:

英语学习小词典C++语言

课程设计

系部:

信电学院

专业:

计算机科学与技术

班级:

计算111

姓名:

学号:

10月10日至10月21日共2周

 

指导教师(签字):

系主任(签字):

年月日

 

课程设计任务书

一、设计内容及要求

1.设计目的

学生根据所学的数据库原理与程序设计的知识,能够针对一个小型的数据库管理系统,进行系统的需求分析,系统设计,数据库设计,编码,测试等,完成题目要求的功能,从而达到掌握开发一个小型数据库的目的。

2.设计内容

1.必须设计的基本数据表:

英语分级单词表,常用单词例句表,短文分级表等。

2.功能模块

1)实现英语单词的录入、修改、删除等基本操作。

2)实现常用英语单词例句的录入、修改、删除等基本操作。

3)实现英语单词检索、翻译等。

4)常用英语单词例句检索。

5)根据难度随机生成一份单词测试题目。

6)能够检索出短文极其翻译对照表。

二、设计原始资料

(1)电子出版社出版的《VISUALC++程序设计及应用》,贺怀清等编著.

(2)高等教育出版社出版的《数据库系统简明教程》,王珊。

三、设计完成后提交的文件

1.课程设计报告(3000—5000字),纸质打印稿及电子版

(1)需求分析(功能模块层次图)

(2)系统设计(包括详细设计和界面设计)

(3)代码设计(主要功能函数)

(4)测试记录(测试各项功能的正确性、容错性)

(5)课程设计总结

2.系统程序演示。

3.课程设计任务书。

2.图纸部分:

序流程图程序

四、进度计划

10月10-10月12日完成需求分析和系统设计;

10月13日-10月16日完成代码设计;

10月17日-10月20日测试和调试;

10月21日参加答辩。

五、主要参考资料

1.李闽溟等.VisualC++6.0数据库系统开发实例导航[M].北京:

人民邮电出版社

2.闪四清.《数据库系统原理与应用教程[M].清华大学出版社

成绩评定表

作品成绩

报告成绩

口试(答辩)

成绩

总评成绩

 

摘要

对于我们,随着学习的深入,已经大体掌握了VisualC++6.0环境下的程序开发。

为了将我们的编程能力提升到一个更高的水平,深化面向对象的编程思维和解决问题的能力,值此课程设计周期间,进行基于VisualC++6.0环境的软件开发,先以字符统计软件作为开始,对VisualC++6.0环境和面向对象程序设计进行回忆和熟悉,使得在此基础上的下一个课程设计的开发进行的更加顺利。

本文档详细叙述了基于VisualC++6.0环境下的英语学习小词典系统软件的设计过程以及程序源代码。

本文档从概要设计,详细设计,参考源程序代码以及显示程序运行的截屏等方面详尽的介绍了软件开发过程。

程序在设计的过程中遇到的问题已及时更正,但由于编者的能力和水平有限,字符统计软件和文档中不免会出现一些不期待的错误,望文档读者能够理解和体谅,并欢迎提醒和纠正,在此表示感谢以及敬意。

 

目录

1.课程设计概述8

1.1.英语学习小词典题目及简介8

1.2.开发环境概述8

2.总体设计8

2.1.项目规划8

2.2.系统结构流程图9

2.3.数据库逻辑结构10

3.功能模块界面及程序代码11

3.1.主界面模块设计11

3.2.数据库登陆框设计12

3.3.操作数据库模块设计14

3.3.1单词添加模块14

3.3.2单词删除模块16

3.3.3单词修改模块18

3.4.查询模块设计21

3.5.随机生成单词测试表模块设计24

4.设计体会28

参考文献28

 

1.1.英语学习小词典题目及简介

根据软件需求,要求软件具有以下功能:

1)实现英语单词的录入、修改、删除等基本操作。

2)实现常用英语单词例句的录入、修改、删除等基本操作。

3)实现英语单词检索、翻译等。

4)常用英语单词例句检索。

5)根据难度随机生成一份单词测试题目。

6)能够检索出短文极其翻译对照表。

数据库系统主要为登陆,登陆后可以浏览,添加,删除,修改各种单词,单词例句,英语短文信息。

 

1.2.开发环境概述

硬件要求

CPU:

300MHz以上的处理器

内存:

128MB,推荐256MB

硬盘:

150MB以上剩余空间

显示像素:

最低800*600,最佳效果1024*768

软件要求

操作系统:

Windows2000/NT/XP/Vista/Win7。

数据库:

SQLServer2000

 

2.1.项目规划

根据需求分析,设计程序框架。

英语词典学习软件由3大部分组成。

设计各部分具体功能如下:

1)查询模块。

包括单词查询,单词例句查询,短文翻译查询。

2)用户密码模块。

包括用户名,密码。

3)数据库模块。

包括三个表,单词表,单词例句表,短文表。

可以实现各个表信息的添加,修改,删除。

4)测试模块。

随机生成一份单词测试表。

 

2.2.系统结构流程图

 

2.3.数据库逻辑结构

本系统采用SQLServer2000数据库,系统数据库名为Dictionary,其中共包含3个自己建的表。

表2.1单词表

字段中文名

字段名

类型

长度

单词

danci

文本

10

单词翻译

dancifanyi

文本

50

编号

ID

自动编号

 

表2.2单词例句表:

字段中文名

字段名

类型

长度

单词

danci

文本

10

单词例句

danciliju

文本

150

编号

lijuID

自动编号

表2.3英语低级短文表:

字段中文名

字段名

类型

长度

短文

duanwen

文本

190

短文翻译

duanwenfanyi

文本

225

编号

duanwenID

自动编号

表2.3英语高级短文表:

字段中文名

字段名

类型

长度

短文

duanwen

文本

190

短文翻译

duanwenfanyi

文本

225

编号

duanwenID

自动编号

表2.5登陆表:

字段中文名

字段名

类型

长度

用户

user

文本

10

密码

password

文本

10

3.1.主界面模块设计

 

弹出窗口按钮,代码:

dengludlg;

dlg.DoModal();

;其余按钮代码相同

3.2.数据库登陆框设计

数据库登录按钮的代码:

voiddenglu:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData(TRUE);

denglusetuserset;

CStringsqlStr;

CDatabasem;

////////////////////////OPENDATABASE/////////////////////////////////////

m.Open(_T("EnglishDic"));

if(!

m.IsOpen())

{

MessageBox("不能打开数据库!

");

return;

}

if(m_struser.IsEmpty())

{

MessageBox("请输入用户名!

","Prompt");

m_cstruser.SetFocus();

return;

}

if(m_strpassword.IsEmpty())

{

MessageBox("请输入密码!

","Prompt");

m_cstrpassword.SetFocus();

return;

}

 

sqlStr.Format("select*fromuserwhereuser='%s'ANDpassword='%s'",m_struser,m_strpassword);

if(!

userset.Open(AFX_DB_USE_DEFAULT_TYPE,sqlStr))

{

MessageBox("不能打开数据库!

","DatabaseError",MB_OK);

return;

}

/////////////////////////////RECORDCOUNT////////////////////////////

if(userset.GetRecordCount()==0)

{

userset.Close();

MessageBox("密码错误!

请再次输入!

","Error!

");

m_strpassword="";

m_cstrpassword.SetFocus();

UpdateData(FALSE);

}

else

{

userset.Close();

CDialog:

:

OnOK();

dancidlg;

dlg.DoModal();

}

}

若用户为空则提示(容错性):

 

若密码错误,则提示:

错误密码提示界面

 

3.3.1单词添加模块

跳转窗口代码:

voidCEnglishDictionaryDlg:

:

OnBUTTONWord()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

dengludlg;

dlg.DoModal();

ShowItem("select*fromdancitable");

}

单词添加窗口如图所示:

具体代码如下:

voiddanciadd:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData(TRUE);

if(m_Englishdanci.IsEmpty())

{

:

:

MessageBox(NULL,"Englishnotkong!

","addEnglish",MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);

return;

}

dancisetdanciset;

TRY

{

if(!

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=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_ALL

UpdateData(FALSE);

CDialog:

:

OnOK();

}

如果输入有误,像英语单词为空,则会有相应的提示:

3.3.2单词删除模块

未选择记录时的提示语

然后确定后,再选择

选择单词hard进行删除,点击DELETE按钮

还会有更进一步的提示:

是否确定删除,是则删除,否则不删。

删除按钮的具体代码:

voiddanci:

:

OnButtonDelete()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

POSITIONpos;

intiPos;

CStringEnglishID;

pos=m_listdanci.GetFirstSelectedItemPosition();

if(pos==NULL)

{

:

:

MessageBox(NULL,”请选择要删除的记录!

”,"dancitale",MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);

return;

}

if(AfxMessageBox("你确定要删除吗?

",MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2)==IDNO)

return;

iPos=m_listdanci.GetNextSelectedItem(pos);

EnglishID=m_listdanci.GetItemText(iPos,0);

CStringstrSQL;

strSQL.Format("deletefromdancitablewheredanci='%s'",EnglishID);

CDatabasedb;

//CStringstrCon;

//strCon.Format("DSN=%s;UID=%s;PWD=%s","dancitable","","");

db.Open("EnglishDic");

db.ExecuteSQL(strSQL);

db.Close();

ShowItem("select*fromdancitable");

UpdateData(FALSE);

}

3.3.3单词修改模块

单词修改首先也要找到单词记录,然后在单词修改对话框中显示您要修改的单词对象,以便修改,修改后更新数据库。

未选择但此时的画面:

 

选定修改单词画面:

EDIT按钮具体代码:

voiddanci:

:

OnButtonEdit()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

danciediteditdlg;

POSITIONpos;

intiPos;

pos=m_listdanci.GetFirstSelectedItemPosition();

if(pos==NULL)

{

AfxMessageBox("请选择要编辑的记录!

");

return;

}

iPos=m_listdanci.GetNextSelectedItem(pos);

editdlg.m_Englishdanci=m_listdanci.GetItemText(iPos,0);

editdlg.m_Chinesedanci=m_listdanci.GetItemText(iPos,1);

editdlg.m_strID=m_listdanci.GetItemText(iPos,2);

editdlg.DoModal();

ShowItem("select*fromdancitable");

UpdateData(FALSE);

}

在修改对话框中显示所选单词画面:

修改单次数据库的具体代码:

voiddanciedit:

:

OnOK()

{

//TODO:

Addextravalidationhere

UpdateData(TRUE);

if(m_Englishdanci.IsEmpty())

{

:

:

MessageBox(NULL,"Englishnotkong!

","addEnglish",MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);

return;

}

CStringstrTmp;

strTmp.Format("SELECT*FROMdancitablewhereID=%s",m_strID);

dancisetdanciset;

/*danciset.Open(CRecordset:

:

dynaset,strTmp,CRecordset:

:

none);

//danciset.Open(CRecordset:

:

dynaset,strTmp,CRecordset:

:

none);

danciset.Edit();

danciset.m_danci=editdlg.m_Englishdanci;

danciset.m_dancifanyi=editdlg.m_Chinesedanci;

danciset.Update();

danciset.Close();*/

TRY

{

if(!

danciset.Open(CRecordset:

:

dynaset,strTmp,CRecordset:

:

none))

{

:

:

MessageBox(NULL,"打开数据表格失败!

","baseoperator",MB_OK|MB_ICONEXCLAMATION);

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())

{

danciset.Close();

}

:

:

MessageBox(NULL,"searchbasefailed!

","baseoperator",MB_OK|MB_ICONEXCLAMATION);

return;

}

END_CATCH_ALL

//strTmp.Format("updatedancitablesetdanci='%s',dancifanyi='%s'\whereID=%s",editdlg.m_Englishdanci,editdlg.m_Chinesedanci,editdlg.m_strID);

UpdateData(FALSE);

CDialog:

:

OnOK();

}

ALL按钮的具体代码:

voiddancid:

:

OnButtonAll()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

ShowItem("select*fromdancitable");

}

3.3.查询模块设计

单词搜索按钮的代码:

voidCEnglishDictionaryDlg:

:

OnBUTTONSearch()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

dancisetdanciset;

if(m_strdanci.IsEmpty())

{

:

:

MessageBox(NULL,"英语单词不能为空!

","addEnglish",MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);

return;

}

else

{

CStringstrSQL;

strSQL.Format("select*fromdancitablewheredanci='%s'",m_strdanci);

if(!

danciset.Open(CRecordset:

:

dynaset,strSQL,CRecordset:

:

none))

{

AfxMessageBox("field");

return;

}

else

{

m_strdancifanyi=danciset.m_dancifanyi;

danciset.Close();

if(m_strdancifanyi.IsEmpty())

AfxMessageBox("Basehavenotrecord!

");

UpdateData(FALSE);

}

}

}

单词例句搜索按钮代码:

voidCEnglishDictionaryDlg:

:

OnBUTTONSearch1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

dancilijusetdancilijuset;

if(m_strdanci.IsEmpty())

{

:

:

MessageBox(NULL,"英语单词不能为空!

","addEnglish",MB_OK|MB_ICONINFORMATION|MB_TASKMODAL);

return;

}

else

{

CStringstrSQL;

strSQL.Format("select*fromdancilijutablewheredanci='%s'",m_strdanci);

if(!

dancilijuset.Open(CRecordset:

:

dynaset,strSQL,C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1