您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C多功能电子词典课程设计
1青岛理工大学C++面向对象课程设计报告院(系):计算机工程学院专业:计算机科学与技术学生姓名:_班级:__学号:题目:多功能电子词典_________起迄日期:_2013.6.23~2013.7.5设计地点:计算机学院机房指导教师:完成日期:2013年7月5日2目录一、需求分析-------------------------------------------------------------------------------11.选做此课题或项目的---------------------------------------------------------------12.程序所实现的功能------------------------------------------------------------------2二、设计内容---------------------------------------------------------------------------------31.根据所选题目,给出模块图-------------------------------------------------------42.画出主程序及其主要模块的流程图----------------------------------------------53.编写程序代码-------------------------------------------------------------------------5三、调试分析--------------------------------------------------------------------------------51.实际完成的情况说明(完成的功能,支持的数据类型等)。-------------62.程序的性能分析。------------------------------------------------------------------63.上机过程中出现的问题及其解决方案。---------------------------------------64.程序中可以改进的地方说明。--------------------------------------------------75.程序中可以扩充的功能及设计实现构想。------------------------------------7四、用户手册---------------------------------------------------------------------------------7五、设计总结--------------------------------------------------------------------------------14六、参考文献---------------------------------------------------------------------------------17七、附录---------------------------------------------------------------------------------------233一、需求分析随着社会的发展,在人们生活中学习外语变得越来越重要。现在许多文件和资料都是电子版,所以更多人喜欢通过电子工具学习外语。为了给外语学习者更多便利以及实现无纸化的教育,基于以上的原因开发了这款多功能电子词典。这个系统是基于电脑桌面程序的电子词典,它主要实现单词查询、音乐播放、月历和时钟四个功能。查询功能提供英语单词查询中文意思以及中文词组查询英语单词。在查找单词学习过程中,可以通过播放音乐放松心情,缓解学习带来的压力。本系统运用MFC应用架构,使用C++语言编写。使用Windows7作为开发平台,开发环境是微软VisualC++6.0。随着软件工程技术的不断发展,应用面向对象的编程技术已经成为当今软件开发的重要手段之一。二、设计内容2.1、模块图42.2功能及相应函数调用图系统主界面音乐播放月历字典查询时钟汉译英查询英译汉查询程序开始系统主界面播放音乐查询功能时钟PlaySound()OnText()OnTimer()CDictionaryDlg类52.3编写程序代码1.音乐播放功能voidCDictionaryDlg::OnButton3(){flag++;flag%=2;if(flag){PlaySound(D:\\Goodgoodstudy\\C++\\C++课程设计\\dictionary可运行\\res\\Beyond-海阔天空.wav,NULL,SND_FILENAME|SND_ASYNC);}elsePlaySound(NULL,NULL,NULL);2.时钟显示功能voidCDictionaryDlg::OnTimer(UINTnIDEvent){CDialog::OnTimer(nIDEvent);CTimetime=CTime::GetCurrentTime();inthour=time.GetHour();intMinute=time.GetMinute();intsecond=time.GetSecond();CStringstr;str.Format(%d:%d:%d,hour,Minute,second);6SetDlgItemText(IDC_EDIT2,str);}3.查询功能voidCDictionaryDlg::OnText(){//TODO:Addyourcontrolnotificationhandlercodeherem_text.GetWindowText(str);charch;if(str.GetLength()!=0){ch=str.GetAt(0);ch=toupper(ch);//将输入的第一个字符置成大写str.SetAt(0,ch);if(str.Find(?)=0||str.Find(*)=0)//判断进行模糊查询{return;}if((ch='a'&&ch='z')||(ch='A'&&ch='Z'))//判断进行英译汉EntoCh();elseif(str.GetLength()!=0)//进行汉译英ChtoEn();}7else//如果ComboBox内容为空,则清空列表和文本框{m_list.ResetContent();m_edit1.SetWindowText();}}4.判断英译汉或汉译英功能实现voidCDictionaryDlg::OnText(){//TODO:Addyourcontrolnotificationhandlercodeherem_text.GetWindowText(str);charch;if(str.GetLength()!=0){ch=str.GetAt(0);ch=toupper(ch);//将输入的第一个字符置成大写str.SetAt(0,ch);if(str.Find(?)=0||str.Find(*)=0)//判断进行模糊查询{return;}8if((ch='a'&&ch='z')||(ch='A'&&ch='Z'))//判断进行英译汉EntoCh();elseif(str.GetLength()!=0)//进行汉译英ChtoEn();}else//如果ComboBox内容为空,则清空列表和文本框{m_list.ResetContent();m_edit1.SetWindowText();}}5.取消按键voidCDictionaryDlg::OnCANSEL(){CDialog::OnOK();}6.英译汉voidCDictionaryDlg::EntoCh(){9charname0[]={english0.txt};FILE*fp;if((fp=fopen(name0,r))==NULL)//打开第一本词典{m_edit1.SetWindowText(对不起!文件不能打开!);return;}do{m_list.ResetContent();//清空列表内容fgets(buffer,1024,fp);//从文件读入一行存放在BUFFER中inti,k;memset(acron,0,sizeof(acron));//清空acronfor(i=0;buffer[i]!='';i++)//截取缩略词acron[i]=buffer[i];while(buffer[i]=='')i++;k=i;memset(english,0,sizeof(english));//清空englishfor(;buffer[i]!='#';i++)//截取英文部分10english[i-k]=buffer[i];memset(mid,0,sizeof(mid));//清空midstrncpy(mid,english,str.GetLength());//将english中的从0开始的长度为str.GetLength()字符存入mid中if(strcmp(str,mid)==0)//比较str和mid{m_list.AddString(english);//列表输出i++;k=i;memset(chinese,0,sizeof(chinese));//清空chinesefor(;buffer[i]!='\0';i++)//截取汉语部分chinese[i-k]=buffer[i];}}while(strcmp(str,mid)!=0&&!feof(fp));//若不匹配且文件未结束intcount0=0;while(strcmp(str,mid)==0&&!feof(fp)&&count0100){fgets(buffer,1024,fp);//读入inti,k;memset(acron,0,sizeof(acron));for(i=0;buffer[i]!='';i++)//截取缩略词acron[i]=buffer[i];11while(buffer[i]=='')i++;k=i;memset(english,0,sizeof(english));for(;buffer[i]!='#';i++)//截取英文部分english[i-k]=buffer[i];memset(mid,0,sizeof(mid));strncpy(mid,english,str.GetLength());if(strcmp(str,mid)==0){m_list.AddString(english);count0++;//控制列表中的条数在101内}}fclose(fp);charname1[]={english1.txt};if((fp=fopen(name1,r))==NULL)//打开第二部词典{m_edit1.SetWindowText(对不起!文件不能打开!);return;}12do{fgets(buffer,1024,fp);//从文件读入一行存放在BUFFER中inti,k;memset(acron,0,sizeof(acron));//清空acronfor(i=0;buffer[i]!='';i++)//截取缩略词acron[i]=buffer[i];while(buffer[i]=='')i++;k=i;memset(english,0,sizeof(english));//清空englishfor(;buffer[i]!='#';i++)//截取英文部分english[i-k]=buffer[i];memset(mid,0,sizeof(mid));//清空midstrncpy(mid,english,str.GetLength());//将english中的从0开始的长度为str.GetLength(
本文标题:C多功能电子词典课程设计
链接地址:https://www.777doc.com/doc-60740 .html