电子英汉词典的设计

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1C语言高级编程技术课程设计报告电子词典的设计指导老师:吉向东班级:电子信息1611姓名:刘尧(2016111130)2目录一.课程设计与要求-----------------------------------------------------------------31.1设计要求----------------------------------------------------------------------32.1设计目的----------------------------------------------------------------------3二.可行性分析------------------------------------------------------------------------3三.需求分析--------------------------------------------------------------------------33.1程序的功能------------------------------------------------------------------33.2输入输出的要求------------------------------------------------------------3四.总体设计与详细设计----------------------------------------------------------44.1程序功能模块---------------------------------------------------------------44.2课设涉及的数据------------------------------------------------------------44.3详细设计----------------------------------------------------------------------4五.编码实现--------------------------------------------------------------------------65.1主函数和头文件定义------------------------------------------------------65.2程序的实现-------------------------------------------------------------------6六.结果--------------------------------------------------------------------------------116.2.1英汉词典的输入界面----------------------------------------------------96.2.1选择功能,查找单词----------------------------------------------------96.2.3选择功能,增加单词----------------------------------------------------106.2.44选择功能,删除单词--------------------------------------------------106.2.5选择功能,修改单词----------------------------------------------------106.2.6选择功能,保存单词----------------------------------------------------106.2.7查看字典函数,退出----------------------------------------------------10七.总结归纳----------------------------------------------------------------------------11八.附录-----------------------------------------------------------------------------------12一、课程设计要求1.在计算机内建立有限规模的电子词典(txt文件),词典中包含有有限个英语单词(单词具有词性、中文词义)。词典功能:(1)较为精确的查找单词;(2)能够修改单词;(3)能够增添或删除单词;3(4)退出系统;具有显示界面,能够在执行操作后询问是否退出,并给出退出方法和继续执行操作的方法供使用者选择。界面应尽量简明易懂。2、设计目的全面熟悉、掌握C语言基本知识,掌握C程序设计中的顺序、分支、循环三种结构及数组、函数和C语言基本图形编程等方法,把编程和实际结合起来,增强对不同的问题运用和灵活选择合适的数据结构以及算法描述的本领,熟悉编制和调试程序的技巧,掌握分析结果的若干有效方法,进一步提高上机动手能力,培养使用计算机解决实际问题的能力,养成提供文档资料的习惯和规范编程的思想,为以后在专业课程中应用计算机系统解决计算、分析、实验和设计等学习环节打下较扎实的基础。二、可行性分析本次要求为制作英汉电子词典,实现有限单词情况下的英译汉功能,是可以进行的,具有显示界面,能够在执行操作后询问是否退出,并给出退出方法和继续执行操作的方法供使用者选择。界面应尽量简明易懂。要求整个设计以人为本,用户界面简明,用词精确易懂。三、需求分析1、程序功能:为满足客户的需求,需要实现电子英汉词典功能,要实现英译汉,查找单词,修改单词,增加单词,删除单词,显示单词,保存单词,返回,帮助,退出的功能,操作简单,用户界面友好。2、输入输出要求:电子词典运行时,首先要执行的是打开电子词典的字库,读取字库类容添加到程序内存中的链表中。该功能的完成在电子词典后台完成的,在电子词典的界面是无法看到的,因此当程序主界面显示出来的时候,该功能已经完成。四、总体设计与详细设计1、程序功能模块选择命令选择菜单创建链表查询单词增加单词删除单词修改单词保存单词功能介绍释放内存42、课设涉及的数据电子词典程序定义了一个单词节点的结构体,该结构体包含的成员如下所示。structDict//字典结构体定义{char*Englishword;//定义Englishword为字符型指针变量char*Chinese;//定义Chinese为字符型指针变量structDict*pNext;//pNext指向一个和它本身储存指向下一个节点的指针};在该电子词典中,程序会创建一个以此结构体为单个节点的链表,该链表的头指针为head变量保存,当用户进行增、删、改、查等行为的时候,就是对该链表进行相应的增、删、改、查操作。当用户对该电子词典进行保存的时候,就是把该链表的每一个节点写回到读取字库文件中。3、详细设计主流程图开始打开字库文件创立字典单词链表进入主菜单界面用户选择5词典链表建立流程图五.编码实现1.主函数:intmain(void)创建链表函数:Creat_Dict(structDict*head)查找函数:Search_Word();增加函数:Add_Word();删除函数:Delete_Word();修改函数:Modify_Word();保存函数:Save_Word();释放函数:Free_Words();功能函数:Gong_Neng();结束函数:return();2.程序的实现#includestdio.h#includestdlib.h查找增加删除修改保存释放功能结束开始打开词典字库判断创建词库链表结束成功失败6#includestring.hstructDict//字典结构体定义{char*Englishword;//定义Englishword为字符型指针变量char*Chinese;//定义Chinese为字符型指针变量structDict*pNext;//pNext指向一个和它本身储存指向下一个节点的指针};staticboolisSave=true;//true说明已经保存false未保存voidMenu();//主菜单函数voidCreat_Dict(structDict*head);//创建字典结构体链表voidSearch_Word(structDict*head);//查找单词操作voidAdd_Word(structDict*head);//添加单词voidDelete_Word(structDict*head);/删除单词voidModify_Word(structDict*head);//修改单词voidSave_Word(structDict*head);//保存单词,把链表里面的数据重新写到文件中voidFree_Words(structDict*head);//释放分配空间函数voidGong_Neng();intmain(void){chari;structDict*head=(structDict*)malloc(sizeof(Dict));memset(head,0,sizeof(Dict));Creat_Dict(head);//读取字典函数while(1){Menu();printf(\n\n请选择你需要的功能:);scanf(%c,&i);switch(i){case'1':Search_Word(head);break;7case'2':Add_Word(head);break;case'3':Delete_Word(head);break;case'4':Modify_Word(head);break;case'5':Save_Word(head);break;case'7':Gong_Neng();exit(0);break;case'6':if(!isSave)Save_Word(head);Free_Words(head);exit(0);break;default:printf(请输入正确的选择:);break;}}}voidMenu(){printf(\t※※※※※※※※电子英汉词典※※※※※※※※\n);printf(\t※作者:刘尧2016111130※\n);printf(\t※指导老师:吉向东※\n);printf(\t※1、查找单词2、增加单词※\n);printf(\t※3、删除单词4、修改单词※\n);printf(\t※5、保存单词6、退出※\n);printf(\t※7、查看字典的功能※\n);printf(\t※※※※※※※请选择您需要的操作序号(1-6)按回车确认※※※※※);}voidCreat_Dict(structDict*head)//初始化链表创建字典结构体链表*/{structDict*p=head;//定义变量指向头指针,用于链表遍历浮标charbuf[600]={0};/存储读取每行单词的缓冲区intindex=0;//表示单词长度intlen=0;//表示单词和翻译的长度,和index一起使用用来计算翻译的长度(len-index)FILE*file;//打开字库文件打开一个已经存在的词典文件8if((file=fopen(英汉词典.txt,r))==NULL)//如果词典文件不存在{printf(英文词典打开失败。\n);//显示英文词典打开失败exit(0);//终止程序}while(!feof(file))//该while循环功能是一行一行的读取单词和词义{index=0;//清空单词长度memset(buf,0,sizeof(buf));fgets(buf,sizeof(buf),file);if(buf[0]=='\0')//读取为空,继续读取下一个单词continue;len=strlen(buf);//单词和词

1 / 24
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功