电子词典设计与实现
- 格式:docx
- 大小:2.77 MB
- 文档页数:29
电子行业C语言电子词典报告1. 引言本报告旨在介绍电子行业C语言电子词典的设计与实现。
电子词典是一种方便用户查询和使用的工具,具有快速、准确和便捷的特点。
C语言电子词典是专门为C语言程序员设计的词典,用于查询C语言中的关键词、函数和库等相关信息。
本报告将首先介绍电子词典的需求分析,然后详细描述电子词典的设计和实现过程。
最后进行功能测试和性能评估,以验证电子词典的正确性和稳定性。
2. 需求分析电子词典主要针对C语言程序员的需求,具体需求如下:•提供C语言关键词的解释和示例代码;•提供C语言常用函数的说明和用法;•提供C标准库的函数、常量和宏定义等相关信息;•支持用户自定义词汇,并提供相应的解释和示例代码;•支持查询历史记录功能,方便用户追溯查询过的内容;•提供用户界面友好的交互界面,支持快速查询功能。
3. 设计与实现3.1 数据结构设计在设计电子词典的数据结构时,需要考虑到效率和易用性。
本文采用哈希表作为主要的数据结构,用于存储词汇和对应的解释。
哈希表的设计考虑了查询效率的问题,通过合理的哈希函数和解决冲突的方法,来优化查询过程。
每个词汇将作为哈希表的键,对应的解释将作为哈希表的值。
typedef struct Node{char word[MAX_WORD_LENGTH];charexplanation[MAX_EXPLANATION_LENGTH]; } Node;typedef struct Dictionary{Node* nodes[MAX_SIZE];int size;} Dictionary;3.2 查询功能实现电子词典的查询功能是核心功能之一,用户可以输入关键词或函数名进行查询。
查询功能的实现思路如下:1.用户输入关键词;2.根据关键词计算哈希值;3.在哈希表中查找对应的节点;4.如果找到节点,则输出解释和示例代码;5.如果未找到节点,则提示用户未找到相关信息。
3.3 用户界面设计用户界面设计需要考虑到用户的使用习惯和操作习惯,以减小用户的学习成本。
电子词典_java课程设计电子词典是一种为帮助人们翻译生词和掌握语言知识的电子设备,相对于传统的纸质词典或人工翻译,它的优点在于便捷性和实用性。
在Java课程设计中,我们可以借助Java语言的强大功能和开放性,开发出一个功能强大、易用且自适应的电子词典应用程序。
一、项目需求在Java课程设计中,我们需要实现一个电子词典应用程序,满足以下需求:1. 拥有搜索和翻译功能2. 可以支持中英双语3. 具备简单易用的用户界面4. 词库可通过文件导入导出5. 可以查询单词使用次数以及最近搜索记录二、实现过程1. 数据库设计我们需要设计一个简单的数据库来存储单词和其对应的含义、使用次数和最近查询时间等信息。
在Java语言中,我们可以使用JDBC(Java Database Connectivity)实现对数据库的访问。
常见的数据库管理系统包括MySQL,Oracle等。
2. 用户界面设计为了让用户更方便地使用我们的电子词典应用程序,在用户界面设计上,我们需要使用Java Swing技术实现一个简单易用的GUI(Graphical User Interface)界面。
常见的GUI组件包括Button,Label,TextField等,我们可以利用它们的特性来实现输入、输出和按钮功能等功能。
3. 实现功能模块搜索功能模块:实现单词的中英文翻译和查询。
我们可以使用JDBC方式查询数据库中存储的单词及其含义,并将其显示在用户界面上。
导入导出模块:词库的导入和导出可以使用文件I/O (Input/Output)实现。
可以使用Java自带的File类进行文件读写操作,并将文件中的内容导入到数据库中。
同样,也可以将数据库中的数据导出到文件中。
查询记录模块:用户查询记录和单词使用次数的统计,可以使用Java中的HashMap数据结构实现。
我们可以使用HashMap类,将查询记录和单词使用次数存储起来,并实现方法来更新和查询查询记录和单词使用次数。
电子词典设计与实现
电子词典的设计与实现可以分为以下几个步骤:
1.需求分析:根据用户需求确定电子词典的功能和特性,例如支持多
种语言、提供联想、显示单词释义、提供例句等。
2.数据收集:收集词典所需的词汇数据,可以通过有关的词典书籍、
在线词典API或者其他途径获取。
3.数据处理:对收集到的词汇数据进行处理和整理,包括建立索引、
分词等操作,以便于后续的查询和展示。
4.用户界面设计:设计电子词典的用户界面,包括框、按钮、显示结
果的区域等元素,要求界面简洁、直观,方便用户使用。
5.查询功能实现:根据用户输入的关键词,在词汇数据中进行查询,
找到对应的词条和释义,并将结果展示给用户。
6.功能扩展:根据需求,可以添加一些附加功能,如联想、生词本管理、发音播放等。
7. 测试与调试:对设计与实现的电子词典进行测试,确保词典的功
能正常运行,没有bug和错误。
8.上线部署:将电子词典部署到服务器或者移动设备上,供用户使用。
9. 后续维护与更新:随着用户使用的反馈和需求变化,持续对电子
词典进行维护和更新,修复bug,添加新功能,提升用户体验。
以上是电子词典设计与实现的一般步骤,具体实现过程可能还会有其
他细节和技术选择,根据具体需求和技术条件进行调整。
JA V A程序设计课程设计(论文)题目:电子词典院(系):软件学院专业班级:软件工程079班学号:学生姓名:指导教师:教师职称:讲师起止时间:程序设计专题(报告)任务及评语更多计算机类课程设计、毕业设计、论文请访问:/mydoc-5887523-1.html&folderId=72986目录第1章课程设计的目的与要求 (1)1.1 课程设计目的 (1)1.2 课程设计的实验环境 (1)1.3 课程设计的预备知识 (1)1.4 课程设计要求 (1)第2章课程设计内容 (2)2.1 背景介绍 (2)2.1.1 业务背景 (2)2.1.2 技术背景 (2)第3章需求分析 (3)3.1 现状的分析 (3)3.2 功能需求分析 (3)3.2.1系统总体功能介绍 (3)3.3 模块功能介绍 (3)3.3.1主界面功能 (3)3.3.2英译汉功能 (3)3.3.3汉译英功能 (3)3.3.4单词发音功能 (4)3.4 数据库需求分析 (4)3.5 系统的数据流程分析 (4)3.6 数据项 (6)第4章系统设计 (7)4.1 系统的总体设计 (7)4.1.1系统的功能模块设计 (7)4.2 系统的详细设计 (8)4.2.1概念设计 (8)4.3 系统的物理设计 (9)第5章系统设计 (10)5.1 算法方面的问题 (10)5.2 字符串方面的问题 (10)5.3 系统的实现 (10)5.3.1主界面功能实现 (10)5.3.2英译汉功能实现 (12)5.3.3汉译英功能实现 (13)第6章课程设计总结 (14)参考资料 (15)第1章课程设计的目的与要求1.1 课程设计目的《JA V A程序设计》是计算机相关专业的必修专业基础课程,其实践性、应用性很强。
实践教学环节是必不可少的一个重要环节。
本课程的程序设计专题实际是计算机相关专业学生学习完《JAVA程序设计》课程后,进行的一次全面的综合训练,JA V A程序设计的设计目的是加深对理论教学内容的理解和掌握,使学生较系统地掌握程序设计及其在网络开发中的广泛应用,基本方法及技巧,为学生综合运用所学知识,利用软件工程为基础进行软件开发、并在实践应用方面打下一定基础。
基于快速单词查询模型的嵌入式电子词典的设计与实现的开题报告一、选题背景和研究意义随着科技的不断发展,人们越来越依赖移动设备进行阅读和学习。
然而,现有的移动设备上的电子词典并不能完全满足人们的需求。
一方面,现有的电子词典在查询速度上存在一定的问题,无法快速地进行单词查询。
另一方面,现有的电子词典在界面设计上也有不足之处,用户体验较为一般。
因此,本文将研究基于快速单词查询模型的嵌入式电子词典的设计与实现。
该嵌入式电子词典将利用现代化的技术和算法设计出查询速度快、界面友好的电子词典,以更好地满足用户的需求。
二、研究内容和研究计划本文将主要研究以下两个方面:1.基于快速单词查询模型的嵌入式电子词典的设计与实现该研究方向将涉及到电子词典的核心算法、查询速度优化等方面。
在算法方面,我们将探究jieba分词、TF-IDF等算法,并将其应用于电子词典的核心算法中,以实现更快的单词查询速度。
在查询速度优化方面,我们将挑选与硬件平台相适配的算法,并设计出相应的查询优化策略。
2.电子词典的界面设计与用户体验优化该研究方向将涉及到电子词典的界面设计、用户体验和用户反馈的收集等方面。
在界面设计方面,我们将探寻界面设计的最佳实践,并据此设计出更为美观、易用的电子词典。
在用户体验优化方面,我们将对用户行为数据进行收集和分析,并据此优化电子词典的体验,提高用户的使用满意度。
研究计划如下:1.前期文献调研和技术研究(1-2周)2.电子词典的核心算法研究和设计(2-3周)3.优化算法实现和查询速度优化设计(2-3周)4.界面设计和用户体验优化设计(2-3周)5.电子词典的整合和测试(2周)6.论文撰写和准备答辩 (2周)三、研究预期结果本文主要研究基于快速单词查询模型的嵌入式电子词典的设计与实现,预期结果如下:1.设计出支持快速单词查询的嵌入式电子词典2.优化单词查询速度,加快电子词典的查询响应时间3.设计出更为美观、易用的电子词典界面,提升用户的使用体验4.提高电子词典的稳定性和可靠性,提高用户的信任度四、研究的创新点1.在算法方面,本文将探寻jieba分词、TF-IDF等算法,并将其应用到电子词典的核心算法中,以实现更快的单词查询速度。
电子词典系统设计实验报告12121583 曹连强周四6-8一、项目要求:1、在实验板上设计实现一个无操作系统的简易电子词典2、设计友好的人机交互界面3、:字符输入、功能选择、英汉翻译。
二、电子词典系统实现具体功能:1.能够通过键盘输入英文。
键盘作为本系统中最主要的输入设备,需要完成26个英文字母的输入,并且需要上翻页,下翻页,上一行,下一行,翻译,退格等功能。
要求键盘至少要有16个按键,每个按键都可以被处理器及时,准确地读入。
2.提供友好的人机界面,将输入的内容和翻译的结果显示在LCD的相应区域内。
3. 对输入的单词即时翻译。
4.可以记忆3个已经查询过的的单词。
在无操作系统的电子词典系统中,由于是单任务环境,因此此时系统的各个功能模块均按照顺序执行。
初始化后,即进入翻译待机状态,等待用户的输入操作。
当用户输入操作发生后,系统调用键盘或触摸屏中断进行键值读取,将键值传给主函数中的系统功能实现模块,该模块按不同的输入键值进行相应的功能选择,最后将此次操作的结果输出到LCD上。
三、程序设计可将电子词典的软件设计分为如下几个主要模块:键值处理、翻译、词库设计和LCD 显示。
1、键值处理电子词典的输入设备为键盘和触摸屏,要完成的功能为:(1)键盘:10个英文字母和6个功能键输入(2)触摸屏:6各功能键的输入2、翻译:3、词库设计翻译功能中通过将输入单词和词库中相应的单词进行比较得到要显示的翻译结果,因此,词库可采用结构体实现,此结构中包括4项:英文单词、词性、汉语释意、英文例句。
4、LCD显示功能翻页、选行及翻页结果的输出都可以归到LCD显示功能中,这些功能都可以通过调用LCD 实验中的相关函数完成。
四.设计程序////////////////////////////////////////////////////////////#include "Ts_sep.h"#include <string.h>///////////////////////////////////////////////////////////#include "def.h"#include "2410lib.h"#include "option.h"#include "2410addr.h"#include "interrupt.h"#include "lcdlib.h"//#define STN_LCD#define TFT_8_0/////////////////8888888////////////////////////////#define LOOP 1#define ADCPRS 39#define TS_JUSTIFY_LEFTTOP 1#define TS_JUSTIFY_RIGHTBOT 2#define TS_START 3///////////////////8888888888888888//////////////////////void Lcd_Disp_Char(void);void Lcd_Disp_Grap(void);void Frame(void);//设置背景框架void Clearscreen(void);//清屏//void Key_init(void);//初始化键盘void Cursor(int flag);void CursorCl(int flag);void delay( int count );void disp();void translate(int num);static int x=0,y=0,letter=0,flag=0,wei=0,prev[5],i,j;//函数里有调用我换成全局变量int which[20];//此时满足罗列单词int word,w;int m,n;////////////////////////////////////////////////int ts_status = TS_JUSTIFY_LEFTTOP;int ts_lefttop_x, ts_lefttop_y, ts_rightbot_x, ts_rightbot_y;int ts_lcd_x, ts_lcd_y;///////////////////////////////////////////////typedef struct{int w; //单词对应的值int o;int r;int d;int s;char c[20]; //英文单词char e[20]; //翻译}str_word;str_word dictionary[20]={{1,3,5,0,0,"ACE","王牌"},{2,5,5,0,0,"BEE","蜜蜂"},{1,4,4,0,0,"ADD","增加,计算"},{2,1,4,0,0,"BAD","坏的"},{4,5,3,1,4,"DECAD","十;十数"}};////////////////////////////////////////////////////////void Adc_or_TsSep() __attribute__ ((interrupt("IRQ")));void Adc_or_TsSep(void){int i;U32 Ptx[6], Pty[6];rINTSUBMSK |= (BIT_SUB_ADC|BIT_SUB_TC); // Mask sub interrupt (ADC and TC)// TC(Touch screen Control) Interruptif(rADCTSC & 0x100){PRINTF("\nStylus Up!!\n");rADCTSC &= 0xff; // Set stylus down interrupt}else{PRINTF("\nStylus Down!!\n");// <X-Position Read>rADCTSC=(0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(1);// Down,Hi-Z,AIN5,GND,Ext vlt,Pullup Dis,Normal,X-positionfor(i=0;i<LOOP;i++); //delay to set up the next channelfor(i=0;i<5;i++){rADCCON|=0x1; // Start X-position conversionwhile(rADCCON & 0x1); // Check if Enable_start is lowwhile(!(0x8000&rADCCON)); // Check ECFLGPtx[i]=(0x3ff&rADCDAT0);}Ptx[5]=(Ptx[0]+Ptx[1]+Ptx[2]+Ptx[3]+Ptx[4])/5;// <Y-Position Read>rADCTSC=(0<<8)|(0<<7)|(1<<6)|(1<<5)|(0<<4)|(1<<3)|(0<<2)|(2);// Down,GND,Ext vlt,Hi-Z,AIN7,Pullup Dis,Normal,Y-positionfor(i=0;i<LOOP;i++); //delay to set up the next channelfor(i=0;i<5;i++){rADCCON|=0x1; // Start X-position conversionwhile(rADCCON & 0x1); // Check if Enable_start is lowwhile(!(0x8000&rADCCON)); // Check ECFLGPty[i]=(0x3ff&rADCDAT1);}Pty[5]=(Pty[0]+Pty[1]+Pty[2]+Pty[3]+Pty[4])/5;rADCTSC=(1<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3);// Up,GND,AIN,Hi-z,AIN,Pullup En,Normal,Waiting modePRINTF("TOUCH Position = (%04d, %04d) ", Ptx[5], Pty[5]);m=Ptx[5];n=Pty[5];if(ts_status == TS_JUSTIFY_LEFTTOP){ts_lefttop_x = Ptx[5];ts_lefttop_y = Pty[5];ts_status = TS_JUSTIFY_RIGHTBOT;PRINTF("\nLeft top (0, 0) -> (%04d, %04d)\n", ts_lefttop_x, ts_lefttop_y);PRINTF(" 请触摸屏幕右下角位置\n");}else if(ts_status == TS_JUSTIFY_RIGHTBOT){ts_rightbot_x = Ptx[5];ts_rightbot_y = Pty[5];ts_status = TS_START;PRINTF("\nRight bottom (319, 239) -> (%04d, %04d)\n", ts_rightbot_x, ts_rightbot_y);PRINTF("[2] 请点击触摸屏\n");}else{/* ts_lcd_x = 320 - (Ptx[5] - ts_rightbot_x) * 1.0 / (ts_lefttop_x - ts_rightbot_x) * 320.0 ;ts_lcd_y = (Pty[5] - ts_lefttop_y) * 1.0 / (ts_rightbot_y - ts_lefttop_y) * 240.0 ;if(ts_lcd_x > 319) ts_lcd_x = 319;if(ts_lcd_x < 0) ts_lcd_x = 0;if(ts_lcd_y > 239) ts_lcd_x = 239;if(ts_lcd_y < 0) ts_lcd_x = 0;PRINTF("LCD Position = (%04d, %04d)\n", ts_lcd_x, ts_lcd_y);*/}}rSUBSRCPND |= BIT_SUB_TC;rINTSUBMSK =~ (BIT_SUB_TC); // Unmask sub interrupt (TC)ClearPending(BIT_ADC);}void Ts_Sep(void){PRINTF("------触摸屏测试------\n");PRINTF("[1] 触摸屏校准\n 请触摸屏幕左上角位置\n");ts_status = TS_JUSTIFY_LEFTTOP;rADCDLY = (50000); // ADC Start or Interval DelayrADCCON = (1<<14)|(ADCPRS<<6)|(0<<3)|(0<<2)|(0<<1)|(0);// Enable Prescaler,Prescaler,AIN7/5 fix,Normal,Disable read start,No operationrADCTSC = (0<<8)|(1<<7)|(1<<6)|(0<<5)|(1<<4)|(0<<3)|(0<<2)|(3);// Down,YM:GND,YP:AIN5,XM:Hi-z,XP:AIN7,XP pullup En,Normal,Waiting for interrupt modepISR_ADC = (unsigned)Adc_or_TsSep;rINTMSK &=~(BIT_ADC);rINTSUBMSK =~(BIT_SUB_TC);// while(1);delay(200);// rINTSUBMSK |= BIT_SUB_TC;//rINTMSK |= BIT_ADC;// PRINTF("----触摸屏测试结束----\n");}//////////////////////////////////////////////////////void Main(void){unsigned char ch='1';/* 配置系统时钟 */ChangeClockDivider(1,1); // 1:2:4ChangeMPllValue(0xa1,0x3,0x1); // FCLK=202.8MHz/* 初始化端口 */Port_Init();/* 初始化串口 */Uart_Init(0,115200);Uart_Select(0);/* 打印提示信息 */PRINTF("\n---LCD测试程序---\n");PRINTF("\n请将UART0与PC串口进行连接,然后启动超级终端程序(115200, 8, N, 1)\n");/* LCD初始化 */Lcd_Port_Init();#ifdef STN_LCDLcd_Init(MODE_CSTN_8BIT);Glib_Init(MODE_CSTN_8BIT);Lcd_CstnOnOff(1);Glib_ClearScr(0xff, MODE_CSTN_8BIT);#else#ifdef TFT_8_0rGPCCON &= ~(3<<8);rGPCCON |= (2<<8);Lcd_Init(MODE_TFT_16BIT_640480);Glib_Init(MODE_TFT_16BIT_640480);Glib_ClearScr(0xffff, MODE_TFT_16BIT_640480);Lcd_PowerEnable(0, 1);Lcd_EnvidOnOff(1);#elseLcd_Init(MODE_TFT_16BIT_240320);Glib_Init(MODE_TFT_16BIT_240320);Glib_ClearScr(0xffff, MODE_TFT_16BIT_240320);Lcd_PowerEnable(0, 1);Lcd_EnvidOnOff(1);#endif#endif#define LCD_DISP_CHAR#ifdef LCD_DISP_CHARLcd_Disp_Grap();#endif//布局Glib_FilledRectangle(0,0,640,240,0xffff); //白底// Glib_Rectangle(60,80,620,110,0x0000);//首字母框Glib_Rectangle(60,80,620,440,0x0000);//主框Glib_Line(290,110,290,410,0x0000);//分割线1Glib_Line(60,110,620,110,0x0000);//分割线2Glib_Line(60,410,620,410,0x0000);//分割线3Glib_Line(172,410,172,440,0x0000);//分割线4Glib_Line(284,410,284,440,0x0000);//分割线5Glib_Line(396,410,396,440,0x0000);//分割线6Glib_Line(508,410,508,440,0x0000);//分割线7// Glib_Rectangle(520,80,620,120,0x0000);//upGlib_disp_hzk16(110,420,"上", 0x0000);// Glib_Rectangle(520,140,620,180,0x0000);//downGlib_disp_hzk16(222,420,"下", 0x0000);// Glib_Rectangle(520,200,620,240,0x0000);//DelGlib_disp_hzk16(334,420,"清屏", 0x0000);// Glib_Rectangle(520,260,620,300,0x0000);//EnterGlib_disp_hzk16(446,420,"查询", 0x0000);// Glib_Rectangle(520,320,620,360,0x0000);//CancelGlib_disp_hzk16(558,420,"返回", 0x0000);Ts_Sep();while(1)//大循环等键按下{Cursor(flag);ch = Key_GetKeyPoll();/////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////if((m>=145&&m<237)&&(n>395&&n<540))ch='E';//qingpinif((m>=145&&m<237)&&(n>678&&n<830))ch='C';//Shangif((m>=145&&m<237)&&(n>540&&n<678))ch='D';//Xiaif((m>=145&&m<237)&&(n>57&&n<219))ch='B';///shanchuif((m>=145&&m<237)&&(n>219&&n<395))ch='F';//quedingm=n=0;/////////////////////////////////////////////////////////////////////////////// /////////////////////////////switch(ch){case '1'://aGlib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区letter=1;//1表示输入字母为1Glib_disp_hzk16(90+wei*20,90,"A", 0x0000);//显示界面显示aprev[wei]=1;//存放disp();//显示单词区的单词wei++;//下一个放字母位置if(wei>=5){Glib_disp_hzk16(340,90,"已满", 0x0000);//单词字母小于等于四个delay(1000);Glib_disp_hzk16(340,90,"已满", 0xffff);//清掉"已经满了"};//超出错误,只能查四位break;case '2'://bGlib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区letter=2;//1表示输入字母为1Glib_disp_hzk16(90+wei*20,90,"B", 0x0000);//显示界面显示aprev[wei]=2;//存放disp();//显示单词区的单词wei++;//下一个放字母位置if(wei>=5){Glib_disp_hzk16(340,90,"已满", 0x0000);//单词字母小于等于四个delay(1000);Glib_disp_hzk16(340,90,"已满", 0xffff);//清掉"已经满了"};//超出错误,只能查四位break;case '3'://cGlib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区letter=3;//1表示输入字母为1Glib_disp_hzk16(90+wei*20,90,"B", 0x0000);//显示界面显示aprev[wei]=3;//存放disp();//显示单词区的单词wei++;//下一个放字母位置if(wei>=5){Glib_disp_hzk16(340,90,"已满", 0x0000);//单词字母小于等于四个delay(1000);Glib_disp_hzk16(340,90,"已满", 0xffff);//清掉"已经满了"};//超出错误,只能查四位break;case '4'://dGlib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区letter=4;//1表示输入字母为1Glib_disp_hzk16(90+wei*20,90,"D", 0x0000);//显示界面显示aprev[wei]=4;//存放disp();//显示单词区的单词wei++;//下一个放字母位置if(wei>=5){Glib_disp_hzk16(340,90,"已满", 0x0000);//单词字母小于等于四个delay(1000);Glib_disp_hzk16(340,90,"已满", 0xffff);//清掉"已经满了"};//超出错误,只能查四位break;case '5'://eGlib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区letter=5;//1表示输入字母为1Glib_disp_hzk16(80+wei*20,90,"E", 0x0000);//显示界面显示aprev[wei]=5;//存放disp();//显示单词区的单词wei++;//下一个放字母位置if(wei>=5){Glib_disp_hzk16(340,90,"已满", 0x0000);//单词字母小于等于四个delay(1000);Glib_disp_hzk16(340,90,"已满", 0xffff);//清掉"已经满了"};//超出错误,只能查四位break;case '6'://fbreak;case '7'://gbreak;case '8'://hbreak;case '9'://ibreak;case '0'://jbreak;case 'A'://kletter=11;break;case 'C'://上flag--;if(flag>=0&&flag<=3){Cursor(flag);//单词列表选中变色CursorCl(flag+1);}//再上恢复刚才那条的背景色else flag=0;break;case 'D'://下flag++;if(flag>=0&&flag<=3){Cursor(flag);CursorCl(flag-1);}else flag=3;break;case 'E'://cancel清屏Glib_FilledRectangle(70,90,339,109,0xffff);//先清单词区Glib_FilledRectangle(65,120,280,400,0xffff);//先清罗列单词区Glib_FilledRectangle(300,120,610,400,0xffff);//清翻译区for(j=0;j<=10;j++){which[j]=0;};letter=0;wei=0;for(j=0;j<=5;j++){prev[j]=0;};break;case 'F'://enter确定Glib_FilledRectangle(300,120,610,400,0xffff);//主翻译区if(flag>=0&&flag<=3)translate(which[flag]);//显示结果break;case 'B'://del删除Glib_FilledRectangle(70,120,280,400,0xffff);//先清罗列单词区letter=0;wei--;prev[wei]=0;//上一位变0Glib_FilledRectangle(70+wei*30,90,70+wei*30+20,109,0xffff);//消掉一个字母wei--;disp();wei++;break;default:Glib_disp_hzk16(500,90,"←请输入单词", 0x0000);break;}}}void disp(){y=0;//初始单词显示位置for(i=0;i<=20;i++){if((dictionary[i].w==prev[0])&&(wei==0)){//第一个字母正which[y]=i;//存放哪几个单词显示了Glib_disp_hzk16(80,120+32*y,dictionary[i].c, 0x0000);//显示单词y++;//位置改变}if((dictionary[i].w==prev[0])&&(dictionary[i].o==prev[1])&&(wei==1)){//前两个字母正确which[y]=i;//存放哪几个单词显示了Glib_disp_hzk16(80,120+32*y,dictionary[i].c, 0x0000);//显示单词y++;//位置改变}if((dictionary[i].w==prev[0])&&(dictionary[i].o==prev[1])&&(dictionary[i].r==pr ev[2])&&(wei==2)){//前3个字母正确which[y]=i;//存放哪几个单词显示了Glib_disp_hzk16(80,120+32*y,dictionary[i].c, 0x0000);//显示单词y++;//位置改变}if((dictionary[i].w==prev[0])&&(dictionary[i].o==prev[1])&&(dictionary[i].r ==prev[2])&&(dictionary[i].d==prev[3])&&(wei==3)){//前4个字母正确which[y]=i;//存放哪几个单词显示了Glib_disp_hzk16(80,120+32*y,dictionary[i].c, 0x0000);//显示单词y++;//位置改变}}}void translate(int num){//显示单词选项3个Glib_disp_hzk16(300,120,dictionary[num].e, 0x0000);}//void Clearscreen(void) //清屏//{// Glib_FilledRectangle(65,81,499,99,0xffff);// Glib_FilledRectangle(65,121,499,439,0xffff);// Glib_Line(240,120,240,440,0x0000);//}void Cursor(int flag){Glib_FilledRectangle(65,121+flag*32,75,153+flag*32,0x55);}void CursorCl(int flag){Glib_FilledRectangle(65,121+flag*32,75,153+flag*32,0xffff);}void Lcd_Disp_Grap(void){int i,j;for(j=0;j<240;j++)for(i=0;i<320;i++) //RRRGGGBBPutPixel(i,j,((i/40)<<5)+((j/30)<<2)+(((j/15)%2)<<1)+((i/20)%2)); }void delay( int count ){int cnt;for( count = count; count>0; count--)for( cnt = 0; cnt < 100; cnt++);}。
本科生毕业论文(设计)题目:基于安卓平台电子词典的设计与实现英文题目:The Design and Implement of Digtal Dictionary Based on Android Platfrom姓名:宁舒琪学号:1311214019学院:国际传媒学院专业:数字媒体技术年级:2013班级:131110指导教师:王维花职称:讲师2017年 5 月毕业论文诚信声明本人郑重声明:所呈交的学位论文,是在导师的指导下独立进行研究所取得的成果。
学位论文除文中已经注明引用的内容外,不包含任何其他个人或集体已经发表或在网上发表的论文。
特此声明。
论文作者签名:日期:中文摘要21世纪以来,科技发展势头迅猛,电子行业更可以说得上是日新月异。
从各个方面来看,由于智能手机的普及,手机APP已然成为了电子行业中的领头羊。
词典对于人们学习知识,认识世界有着不可估量的价值,可以说是每一个人开启学习殿堂的第一扇门。
但是传统的词典有着体积大,不便于携带的劣势,在如今飞速发展的现代社会,这显然并不会成为大多数人的最佳选择。
于是电子词典手机APP就如雨后春笋般层出不穷,成为了词典这个大家族中不可或缺的一员。
比起传统词典,手机电子词典具备了便于携带、操作简单、方便快捷等优点。
如今市面上各大应用市场中的电子词典大多占用内存大,对手机的硬件配置要求也比较高,运行起来需要占用的资源较大。
所以本项目意在开发出一款占用内存小,适用度较高,便于操作,能被大部分用户所接受的手机APP软件。
本文详细介绍了开发软件所用到的的数据库的创建过程、开发软件的环境配置过程、以及细致地分析了整个软件的功能性与实用性,阐述了本项目的环境背景与整个行业的发展现状,对于技术上的创新部分与难点部分进行了详细分析,并且清晰的将整个软件的功能结构展示出来了。
本项目基于Android平台,使用了SQLite 轻量级数据库实现了本地查询,单词本,单词释义等功能,研究方法和技术主要涉及Android操作系统应用层开发,经过反复测试,该项目现已研发完成。
基于WinCE的电子词典的设计与实现的开题报告一、选题背景:随着人们生活水平的提高,英语学习已经成为了越来越多人的追求。
尤其是在高校英语学习中,电子词典已经成为了一种重要的辅助工具。
然而,普通的电子词典无法满足学生和教师的需求,需要一种更为功能强大的词典。
本课题基于 WinCE 平台开发一款电子词典,来满足用户需求。
二、主要内容:本课题主要涉及以下方面的内容:1.需求分析:通过分析用户需求,明确电子词典的主要功能、特点和优点。
通过分析市场情况,确定本电子词典在设计上所要满足的独特需求。
2. 系统架构设计:本系统基于WinCE平台,需要确定系统的架构、模块划分及各模块之间的交互方式等。
3. 数据库设计:对于一个电子词典系统,必须有一个强大而且稳定的数据库系统。
本系统数据库采用MySQL数据库,需要设计词汇以及相关属性的表格,以满足词典查询和管理。
4. 界面设计:采用视觉化模块,以确保该电子词典的操作界面友好、美观、易于使用。
5. 功能实现:本系统应用了一些基本的查询算法,如模糊查询、联想查询、相似词查询等,并可支持听读模式,可以在线发音。
同时,还考虑实现用户自定义词典、背单词等较为高级的功能。
6. 测试与评估:采用合适的测试方法,对电子词典进行测试,发现存在的问题并及时改进,以确保该系统的稳定性、高效性以及可靠性。
三、研究目标与意义:本课题开发的电子词典系统,主要研究基于WinCE平台的系统设计和实现方案,以及一些重要的算法开发实践。
该词典系统具有功能强大、易于使用的特点。
其通过该系统可有效提升学生和教师在英语学习方面的体验和效率,同时也可以作为WinCE系统开发方案的一个经典的案例。
四、研究方法:本课题主要采用以下方法进行研究:1. 调查方法:调查目标群体的需求和反馈,并据此进行需求分析和功能设计。
2. 数据库设计方法:采用MySQL数据库,通过设计表格实现数据存储与检索。
3. 软件开发方法:根据需求分析结果,采用面向对象的设计思想、UML建模工具进行系统的设计,并使用VC++进行软件开发。
电子词典的设计与实现摘要二十世纪后半叶,伴随着社会的迅速开展与进步,以电子计算机为代表的现代科学获得了突飞猛进的开展并迅速和人们的日常生活结合在一起。
计算机技术的开展和进步也使电子语言词典的诞生成为可能。
虽然只有十来年的历史,电子词典却已经迅速开展壮大,成为词典家族中具有旺盛生命力的一员。
尽管目前它尚缺乏以取代传统词典,但在英语学习和教学中,由于它实用、快捷、准确、经济等特点,已经成为传统英汉词典的有力竞争者,并对传统的词典提出了挑战。
本文将要介绍的软件就是一个多功能学单词软件,主要介绍了这个软件制作环境,制作流程,对数据库的操作以及它的使用方法。
用户可以根据自己的需要去查询单词,添加单词,删除单词,编辑单词,浏览词库中的单词,也可以进行四六级考研词汇等。
另外,它还给单词学习者们提供了一个背单词的好方法。
每一个用户都可以通过创立一个用户名来背诵单词,随时查看自己的历史记录,以便确定自己的背诵进度。
本文从软件工程的角度进行了详细的阐述。
该系统的开发工具是Microsoft Visual Basic,使用的数据库为。
关键词:电子词典,Microsoft Visual Basic,数据库ABSTRACT20 half after centuries leaf,with the rapid development of society, with computer for representative of the development that modern science acquires to advance by leaps and bounds combine quick combine together with the people's daily life.The calculator technical development and progresses also make the naissance of the electronicslanguage Electron Dictionary make possible.Although only ten histories of the next years, the electronics Electron Dictionary has already developped quickly strong, become having a member of the prosperous vitality in the Electron Dictionary household.Though it is still not enough to replace the traditional Electron Dictionary currently, in English study and teaching, because of it practical, fast, accurate, economy etc. characteristics, have already become the emollient competitor of the traditional English-to-Chinese Electron Dictionary , and put forward the challenge to the traditional Electron Dictionary .The software that this text will introduce is a multi-function learn the single phrase software, mainly introduced this software manufacture environment, the manufacture process, to operation and its operation methods of the database.The customer can search the single phrase according to own demand, increasing the single phrase, deleting the single phrase, editting single phrase etc..Moreover, it returned to provide a good method that carries on the back the single phrase for the single phrase learners.Each customer can pass to establish an user's name to recite from memory the single phrase.At any time look into own history record, for the purpose of assurance recite from memory the degree of progress ownly.Carried on to elaborate carefully from the angle of the software engineering.It is Access database that the development tool of that system is the powerbuilder 9.0 databases of the usages.Key words:The Electron Dictionary ,Microsoft Visual , Access database目录摘要 (1)ABSTRACT (2)1 概述 (1)2 系统分析 (2)系统目标...................................... 错误!未定义书签。
系统需求分析 (2)2.2.1 功能需求 (2)2.2.2 性能需求 (3)3 系统开发工具简介 (4)3.1 Visual Basic 6.0 概述 (4)3.1.1 Visual Basic 6.0 简介 (4)3.1.2 Visual Basic 6.0 语言的特点.......... 错误!未定义书签。
3.1.3 Visual Basic 6.0 的版本 (5)ADO对象..................................... 错误!未定义书签。
3.3 数据库根底与 Access 的应用 (5)3.3.1 数据库的概念和术语 (5)3.3.2 Microsoft Access 简介 (6)3.4 开发工具和环境 (6)4 系统总体设计 (7)4.1 系统设计思想 (7)4.2 功能设计细节问题.......................... 错误!未定义书签。
4.3 系统功能结构问题 (7)4.4 模块功能说明 (8)4.4.1 查询功能 (8)4.4.2 词库管理功能 (8)5 数据库的开发与设计 (9)5.1 数据库需求分析 (9)5.2 系统逻辑分析 (9)5.3 数据库的链接 (9)6 系统详细设计 (10)6.1 欢送界面设计 (10)6.2 系统主界面设计 (12)6.3 查询模块设计 (12)6.4 词库管理模块设计 (13)6.5 专业词库模块设计 (14)6.6 相关模块设计 (14)7 系统测试 (18)7.1 系统测试环境 (18)7.2 功能测试 (18)结论................................ 错误!未定义书签。
参考文献.. (22)致谢 (23)附录 (24)1 绪论电子词典诞生于80年代末期。
如今市场上流行的有几十个品牌,数百个品种,集成了十几种甚至百余种功能,容量也从刚开始时的一万左右到现在的几万,十几万,有些品种那么包含了几本不同词典的全部内容。
现在大多数电子词典可以自由扩充词库,或从互联网上生产商的网站上下载词库,对词典进行自动更新。
这对传统词典而言,其修订周期最少也得5到7年,这种袖珍电子词典已经成为学生的必备学习工具,据调查,在广州,上海,北京等大城市中,电子词典在高中生中的持有率已经接近 50%,在大学生中持有率也不断上升。
目前市场商的主流电子词典有:文曲星、快译通、好易通、名人等系列产品。
除了主要用于查询单词以外所有掌上电子词典都或多或少的提供其他的辅助功能。
本系统的设计目标是通过深入学习和研究程序设计技术、数据库系统的开发和应用技术,设计和开发出一款能够满足不同用户需求的多功能电子词典系统,以帮助英语学习者们更方便、更快捷地查询单词、记忆单词,既有效,又自由的对词库进行管理和操作。
2 系统分析2.1系统需求分析在整个毕业设计期间,我通过需求分析、概要设计、详细设计三个阶段完成了整个设计过程。
本章是对其中的需求分析做一个比较详细的介绍。
2.1.1 功能需求随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们深刻认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。
愈来愈深刻地影响着人类社会的经济和文化生活;影响着人们的思维方式和工作方式。
电子词典有着传统文本词典无法比较的优越性:多种多样的检索方式、便利的查询窗口、灵活的显示界面和连续的参见功能,无一不表达这种知识媒体的智能化和人性化特色;电子多媒体在词典中的应用,更使得单调、呆板的词典变得形象生动在词典中获取知识变得轻松和快捷。
词典是信息密集的载体,电子计算机以其高容量、高效率、高精度改变着词典编纂与编辑出版的传统方式。
事实上,从20世纪90年代以来,词典领域最引人注目的地方就在于计算机在词典编纂各阶段及词典与用户界面等方面起着越来越重要的作用。
目前,国内外大局部中小学生仍然使用着传统的英汉词典,不仅查询效率不高、不易携带,而且存储容量有限;与此同时,传统词典的单词印刷出错误码率高,同时内容越来越难以满足用户的需求。
为了解决上述问题,本毕业设计采用VB可视化集成开发语言编写程序,利用Microsoft Access 2000构建数据库,通过大局部数据库组件提供的接口技术来实现VB与数据库的连接,开放源代码,加深使用者对该系统的了解与认识,为用户提供了完善和修改本系统的平台。
当今社会的开展使人们越来越清楚地看到单词查询方面的重要性,它直接决定查询效率与质量。
所以电子词典软件将在当今个人单词查询中发挥越来越重要的作用。