电子英汉词典设计1

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

电子英汉词典设计1
电子英汉词典设计
一、问题描述:
英汉词典作为一个常用的学习工具,是我们经常要使用的。

该系统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、删除、修改与保护等工作。

二、功能描述:
1、在计算机中建立有限规模的电子英汉词典(文件),利用程序实现电子英汉词典的查找、增词、删除、修改与保护工作。

2、词典的内容为:每行对应一个词条,每个词条由两个字符串构成,字符串用若干空格符分开;前一个是单词字符串(英文),后一个是释义字符串(中文),使用分号作为多个释义的分隔符(无空格)。

3、对单词与释义字符串长度的限定分别为很多于20个与40个字符,词条数限定为不多于200条。

4、使用菜单工作方式。

在一个操作执行之后,程序询问是否继续执行该操作。

如输入Y或者y,则重复同一操作,不退回到菜单;如输入其它信息,则回到菜单等待另一次选择。

仅当选择退出操作时,程序应询问是否将修改后的词典存盘,并根据用户选择存盘退出或者不存盘退出。

5、要求整个设计以人为本,用户界面友好。

二、课程设计的要求与数据
1、进一步掌握与利用C语言进行程设计的能力;
2、进一步懂得与运用结构化程序设计的思想与方法;
3、初步掌握开发一个小型有用系统的基本方法;
4、学会调试一个较长程序的基本方法;
5、学会利用流程图或者N-S图表示算法;
6、掌握书写程序设计开发文档的能力。

三、课程设计应完成的工作
1、编写完成相应题目的程序;
2、编写课程设计报告,课程设计报告的内容应包含下列6个部分:
1) 需求分析:包含设计题目、设计要求与系统功能需求分析;
2) 总体设计:包含系统总体设计框架与系统功能模块图;
3) 全面设计:包含要紧功能模块的算法设计思路与对应的工作流程图;
4) 调试分析过程描述:包含测试数据、测试输出结果,与对程序调试过程中存在
问题的思考(列出要紧问题的出错现象、出错原因、解决方法及效果等,适当的
包含结果截图);
5) 总结:课程设计完成了什么功能,是否具有什么扩展功能?还有什么地方需要

进?课程设计过程中的学习体会与收获、对本次课程设计的认识与自己的建等内
容;
6) 附录:要紧源程序代码,含必要的注释。

3、答辩:在实验室建立程序运行的环境,并在指导教师的监督下,独立解
决问题、运行程序与回答教师提出的问题
四、课程设计进程安排
五、应收集的资料及要紧参考文献
[1] 谭浩强.C程序设计(第三版)[M],北京:清华大学出版社,2005.9
[2] 谭浩强. C程序设计题解与上机指导(第三版)[M],北京:清华大学出版社,2005.7
[3] 李春葆曾平刘斌。

C++语言程序设计题典第一版北京清华大学出
版社 2003年4月
[5] 刘振安刘燕君C++程序设计课程设计第一版机械工业出版社
2004年8月
发出任务书日期: 2007年 6 月 18 日指导教师签名:
计划完成日期: 2007年 6 月 22 日基层教学单位责任人签章:
主管院长签章:
目录
1 设计目的与要求……………………………………………………………1页码
2 总体设计……………………………………………………………………2页码
3 全面设计……………………………………………………………… 2—3页码
3.1功能模块设计…………………………………………………… 2-3页码
3.1.1查询单词功能模块…………………………………… 2 页码
3.1.1添加单词功能模块…………………………………… 3页码
3.1.1删除单词功能模块………………………………………… 3 页码3.2数据结构设计……………………………………………………… 3页码4调试分析…………………………………………… 4-5页码
5 总结……………………………………………………………………… 6页码
6 附录…………………………………………………………………6-10页码
6 答辩记录(正文处请留出适当空白)…………………………………11页码
7 指导教师意见(正文处请留出十行空白)……………………………11页码
1 目的与要求
课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识与实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。

课程设计为学生提供了一个既动手又动脑,独立实践的机会,将课本上的理论知识与实际应用问题进行有机结合,锻炼学生分析、解决实际问题的能力,提高学生项目开发及程序调试能力。

(1)总体要求
①对系统进行功能模块分析、操纵模块分析正确;
②系统设计要有用;
③编程简练,可用,功能全面,具有较好的健壮性;
④说明书、流程图要清晰。

(2)课程设计报告要求
①需求与规格说明:问题描述:题目要解决的问题是什么?
②设计
⊕设计思路:要紧算法思想。

⊕总体设计:程序设计构成框图、N-S流程图。

⊕全面设计:模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描
述等)。

③调试与测试:调试过程中遇到的要紧问题,是如何解决的;对设计与编码的回顾讨论
与分析;改进设想;经验与体会等。

④附录:源程序清单与结果。

假如题目规定了测试数据,则结果要包含这些测试数据与
运行输出,当然还能够含其他测试数据与运行输出;清单中应有足够的注释。

页码1
2 总体设计
3 全面设计
(内容能够适当调整,清晰的有条理的把你的设计思路表达出来)3.1功能模块设计
3.1.1查询单词功能模块
页码2
3.1.2添加单词功能模块3.1.3删除单词功能模块
3.2数据结构设计
1.建立单词数据库(包含英文单词、中文意思解释)
2.用fopen函数访问单词数据库文件。

3.还用到标准的输出输入函数,按需输出输入或者删除数据。

页码3
4 调试分析
查询单词:
输入:preciatian
屏幕显示:
输出结果:sorry do not find what you want

添加单词:
选择2功能
输入你想添加的单词:
Hello
输入它的意思:
你好
屏幕显示:页码4
输出结果是:add word success
三:删除单词:
输入你想要删除的单词:Hello
屏幕显示:
输出结果是:delete word success 页码5
5 总结
尽管这次的课程设计有些功能实现的不是很好,总的来说这次课程设计效果还是能够的,在短短的两天时间内,我们看的书的数量是非常多的,很多没见过的函数都学了,但是自学确实是很难,很多函数尽管用的语法没错,但是不能应用自如,为自己所用。

这只能说明自己还需加把努力,希望在以后的学习中得到大的进步。

通过课程设计使握进一步掌握与利用C语言进行程设计的能力;进一步懂得与运用结构化程序设计的思想与方法;初步掌握开发一个小型有用系统的基本方法;学会调试一个较长程序的基本方法;而且通过这次课程设计让我学会了认确实精神态度是多么的重要,认真思考对学习的重要性。

这个程序完全是个人所做,望老师给以批判与建议!
7.附录
#include <windows.h>
#include <stdio.h>
#include <malloc.h>
#include <winbase.h>
#include <process.h>
void Search() /*查找单词*/
{ FILE *fp;
char insert[20];
char word[40];
printf("Please input the word you want:\n");
ges(insert);
fp=fopen("wordcage","r");
if(fp==NULL);/*没有找到文件*/
{ printf("\n\nSorry do not find what you want.\n\n");
fclose(fp);
return ;
}while (!feof(fp))/*查询单词词库*/
{ fread(&wordcage,sizeof( wordcage),1,fp);
printf("%s",word); 页码6
}
fclose(fp);
}
void addword()/*添加单词*/
{
FILE *fp;
fp=fopen("wordcage","r");/*以读方式打开文件*/
if(fp==NULL)
fp=fopen("wordcage","w");/*以写方式打开文件*/
else /*假如有单词添加*/
{ fclose(fp);
fp=fopen("wordcage","a");/*以追加方式打开文件*/
}
char insert[20];
printf("Inser the new word:\n");
gets(insert);
printf("Givinig the meaning:\n");
scanf("%s",word);
fclose(fp);
printf("\n\nadd word success.\n\n");
}
void worddel();
{
FILE *fp;
Word *head,*p,*q;
char word[20];
fp=fopen("Wordcage","rb");/*读方式打开文件*/
if(fp==NULL)
{
printf("Error!"); 页码7
fclose(fp);
return;
}
head=p=q=(Word*)malloc(sizeof(Word));/*将文件内容放入链表*/ while(!feof(fp))
{
q=p;
p=(Word*)malloc(sizeof(Word));
fread(p,sizeof(Word),1,fp); /*读记录*/
q->next=p;/*新记录插入到链表的尾*/
}
p->next=NULL;/*最后一个结点的后继为空*/
fclose(fp);
clrscr();
printf("Input the word: ");/*输入要删除的单词*/
gets(word); /*输入单词*/
p=head;
while(p!=NULL)/*按名字查找要删除的图书*/
{
if(strcmp(p->name,word)==0)/*找到要删除的单词*/
{
if(p==head) /*假如是第一个结点*/
head=head->next;
else
q->next=p->next;/*不是第一个结点*/
break;
}
q=p; /*指针后移*/
p=p->next;
} 页码8
fp=fopen("Word.txt","wb");/*删除后从链表的头开始重新储存*/ while(head!=NULL)
{
fwrite(head,sizeof(Word),1,fp);/*块写*/
head=head->next;
}
fclose(fp);
clrscr();
}
void cleanscrean()
{
printf("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
}
int main()
{
int numble;
MENU:
printf("**************MENU***************\n\n"); /*显示主菜单*/ printf("<<<< 1 English to Chinese>>>>\n\n");
printf("<<<< 2 Inser the word you want to add>>>>\n\n");
printf("<<<< 3 Del the existed word>>>> \n\n");
printf("<<<< 4 Clean the screen >>>>\n\n");
printf("<<<< 5 modify the existed word>>>\n\n");
printf("<<<<6 protect the system >>>>\n\n");
printf("<<<< 7 Exit the system>>>>\n\n");
printf("**********************************\n");
do{
printf("Please choice form 1 to 7:\n"); /*选择你所要的功能*/
scanf("%d",&numble);
} 页码9
while(numble<0||numble>8);
switch(numble)
{
case 1:
Search();
goto MENU;
case 2:
addword();
goto MENU;
case 3:
worddel();
goto MENU;
case 4:
cleanscrean();
return 0;
case 5:
break;
case 6:
goto MENU;
break;
case 7:
break;
}
return 0;
}
页码10
7 答辩记录
8 指导教师意见
页码11。

相关文档
最新文档