英语词典课程设计报告.docx
- 文档编号:7862669
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:29
- 大小:492.33KB
英语词典课程设计报告.docx
《英语词典课程设计报告.docx》由会员分享,可在线阅读,更多相关《英语词典课程设计报告.docx(29页珍藏版)》请在冰豆网上搜索。
英语词典课程设计报告
山东交通学院
面向对象课程设计
英语学习小词典
(院)系:
信电学院
班级:
计算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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 英语词典 课程设计 报告