英汉电子词典设计报告_设计_C语言_C语言程序设计
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.总体设计
大致思路框架图:
主函数
查找
增词
修改
删除
⑤
3.调试分析
进入菜单页面以后,有四个选项,1.是查找单词;2.是增加 单词;3.修改单词;4.,删除单词;
进入菜单,输入 1 ,按回车就会出现提示语,然后输入你 想查询的单词,并按回车。如果程序里面存有这个单词就 会输出这个单词和它的中文意思。如果不存在就提示你“不 存在这个单词”。
统能完成一个简单的电子英汉词典的功能,如:单词的查找、增词、 删除、修改和维护等工作。 2、功能描述:
在计算机中建立有限规模的电子英汉词典(文件),利用程序 实现电子英汉词典的查找、增词、删除、修改和维护工作。 2、词典的内容为:每行对应一个词条,每个词条由两个字符 串组成,字符串用若干空格符分开;前一个是单词字符串(英 文),后一个是释义字符串(中文),使用分号作为多个释义的 分隔符(无空格)。 3、对单词和释义字符串长度的限定分别为不少于 20 个与 40 个字符,词条数限定为不多于 200 条。 4、采用菜单工作方式。在一个操作执行之后,程序询问是否 继续执行该操作。如输入 Y 或 y,则重复同一操作,不退回到 菜单;如输入其它信息,则回到菜单等待另一次选择。仅当选 择退出操作时,程序应询问是否将修改后的词典存盘,并根据 用户选择存盘退出或不存盘退出。 5、要求整个设计以人为本,用户界面友好。 3、 算法提示:
printf("请输入需要增添的单词\n"); scanf("%s",zengci); printf("请输入意译\n"); scanf("%s",zengcim); strcpy(word[i].danci,zengci); strcpy(word[i].mean,zengcim); printf("成功增添,继续增词输入 1,否则退出程序");
5.附录
#include<string.h>
struct cidian
{
char danci[40];
char mean[40];
} word[200]= {{"one","一"},{"two","二"},{"luomin","鸟鸟
"},{"kangquanhua","鸟鸟"},{"hupin","神"},{"aide","驻守"},{"bone","骨
14
} void xiugai() {
int b,i; do { int a,c; char xiugai[40],xiugaih[40],xiugaihy[40]; printf("请输入要修改的单词\n"); scanf("%s",xiugai); for(i=0;i<200;i++) { if(strcmp(word[i].danci,xiugai)==0) { printf("修改单词输入 1,修改意译输入 2\n"); scanf("%d",&a); if(a==1) { printf("请输入修改后的单词\n"); scanf("%s",xiugaih); strcpy(word[i].danci,xiugaih); }
头"},{"ball","球"},{"cat","猫"},{"cattle","牛"},{"clean","1.干净 2.工整
"},{"a","一个"},{"finally","最终"},{"fine","舒适"},{"finish","完成
"},{"girl","女孩"},{"give","给"},{"go" ,"zou"},{"help","帮助"},{"he","
序设计的方法。 3) 熟练掌握 C 语言的基本语法,灵活运用各种数据类型。 4) 进一步掌握在集成环境下如何调试程序(单步调试,设置断点、
观察表达式,分块调试)和修改程序。
二. 设计和调试过程规范化要求
1、 需求分析 分析系统功能需求以及用户操作流程。
2、 概要设计 在需求分析的基础上,确定系统总体框架(系统功能结构图)。
课程设计
课程名称 :C 语言程序课程设计 题目名称 :电子英汉词典 学生学院 :电气信息学院 专业班级 :自动化 1101 学 号 :201101020104 学生姓名 :胡拚 联系方式 :18973259341 指导教师 :陈世清
①
一、 课程设计的内容 课题设计四:电子英汉词典设计
1、问题描述: 英汉词典作为一个常用的学习工具,是我们经常要使用的。该系
3、 详细设计 定义数据存储结构,并设计实现系统功能的具体算法,画出各算
④
法的 NS 流程图。 4、 代码设计
根据所设计的算法,定义相应函数分别实现系统的各子功能模 块,同时由主程序提供友好的用户界面,使用户可通过选择主菜单来 调用课程设计中要求完成的各个功能模块,子程序执行完后还可以返 回到主菜单,继续选择其他功能执行。源程序要求书写规范,结构清 晰。 5、 程序调试
输入 2,按回车就进入增词的程序了。如果里面存储的单 词达到 200 个了,就会提醒你“储存已满,不能增词”。如 果没有超过,那就引导你输入你想增加的单词及其意思。 这样就增加了单词。
⑥
输入 3,回车。在出现“请输入需要删除的单词”,后面输 进你想删除的单词,然后根据提示语输入单词及其意思, 之后就会告诉你删除完成了。
程序编译、链接成功后,自己设计实现程序功能的一组或多组测 试数据,并严格按照此测试数据进行测试,然后分析测试结果。如果 程序不能正常运行或结果不正确,则需对程序进行单步调试,在调试 过程中认真查找算法实现中存在的问题,并加以分析和改正。如果程 序能够基本正确地运行,可考虑增加若干基本的容错功能(如避免用 户操作错误时程序出现死循环等);另外尽量对现有算法给出改进方 案,并比较不同算法之间的优缺点。
他"},{"here","这里"},{"high","高"},{"ice","冰"},{"idea","主意
"},{"imagine","想象"},{"in","在里面"},{"kill","杀死"},{"king","国王
"},{"kiss","吻"},{"knight","歧视"},{"late","1.迟的 2.以后的"},{"left","
15
if(a==2) { printf("请输入修改后的意译\n"); scanf("%s",xiugaihy); strcpy(word[i].mean,xiugaihy); } printf("修改成功,继续修改输入 1,否则退出程序\n"); scanf("%d",&b); break; } } }while(b==1); if(i==200) printf("不存在此单词"); } void main() {
13
{ printf("确定要删除请输入 1,否则退出程序"); scanf("%d",&a); if(a==1) {
for(j=0;j<40;j++) { word[i].danci[j]='\0'; word[i].mean[j]='\0'; } printf("成功删除,继续删除请输入 1,否则退出程序"); scanf("%d",&b); } break; } } }while(b!=1); if(i==200) { printf("不存在此单词。输入 1 返回主菜单"); scanf("%d",&c); }
11
} void zengci() {
int a; do {int a,i; char zengci[40],zengcim[40]; if(word[199].danci[0]=='\0') {
for(i=0;i<200;i++) { if(word[i].danci[0]!='\0') continue; else {
int a; printf("****查找单词请输入 1****\n"); printf("****增加单词请输入 2****\n"); printf("****删除单词请输入 3****\n"); printf("****修改单词请输入 4****\n");
16
scanf("%d",&a); switch(a) { case 1:chazhao();break; case 2:zengci();break; case 3:shanchu();break; case 4:xiugai();break; default:break; } }
左边"},{"line","线"},{"name","名字"},{"mission","任务"}
};
void chazhao()
{
int b;
do
{
⑩
int a; do{ int a,i; char chazhao[40]; printf("请输入要查找的单词");
scanf("%s",chazhao); for(i=0;i<200;i++){
if(strcmp(word[i].danci,chazhao)==0) {
printf("%s\t%s\n",word[i].danci,word[i].mean); printf("输入 1 继续查找,否则退出程序"); scanf("%d",&b); break; } } if(i==200) { printf("不存在此单词,输入 1 继续查找,否则退出程序"); scanf("%d",&a); } }while(a==1); }while(b==1);
12
scanf("%d",&a);
} break;
} }
if(word[199].danci[0]!='\0') printf("存储已满,不能增词"); }while(a==1); } void shanchu() { int b,c,i; do { int a,b,i,j; char shanchu[40]; printf("请输入要删除的单词"); scanf("%s",shanchu); for(i=0;i<200;i++) { if(strcmp(shanchu,word[i].danci)==0)
③
1.目的与要求
一. 设计目的
将理论教学中涉及到的知识点贯穿起来,对不同的数据类型、程 序控制结构、数据结构作一比较和总结,结合设计题目进行综合性应 用,对所学知识达到融会贯通的程度。通过课程设计,在下述各方面 的能力应该得到锻炼: 1) 对于给定的设计题目,如何进行分析,理清思路,并给出相应的
数学模型。 2) 掌握自顶而下的设计方法,将大问题进行模块化,领会结构化程
在这几天的课程设计中,虽然设计不是一路畅通,从一开始的错 误重重,几经周转,到最后能够运行程序,并能够查阅,我很享受这 个过程,为最终能够运行程序,感到由衷的欣喜,但程序中存在种种 不足还需通过更深一步的学习,不断完善。我会在今后的日子里,努 力学好 C 语言,并使 C 语言成为自己的长项。
⑨
#include<stdio.h>
输入 4,回车。在出现“请输入需要修改的单词”,后面输 进你想修改的单词,然后根据提示语输入单词及其意思, 之后就会告诉你修改完成了。
⑦Fra Baidu bibliotek
⑧
4.总结与心得
一开始拿着这个课程设计题目,给我的上满头雾水,不知从何开 始。通过网上查看其他同学的相关程序,给了我一个程序设计的方向。 首先要明确自己程序设计的目的;根据目的,设置思路框架;再根据 思路框架分步骤写出相关调用函数和主函数。同时也在反思为何别人 能做到,我却不知从何处开始,于是我便尝试自己设计一个程序。经 过几个夜晚冥想与数次上机操作,程序初步能够运行。但实用度很底, 数据修改,增减都是临时的,退出程序后不能保存。所查的单词也只 能是机构体中输入的单词,查阅范围有限。经过老师的一番指导,我 也找到了初步解决的方案——以文件的形式保存词条,这样就能初步 保存修改后的词典,但由于马上就要交实验报告,不能继续完善,所 以在次只能这份程序作为自己的作业。但我不会放弃继续完善这份程 序,我会在课余时间里继续修改完善这份程序。
数据结构:结构体数组。
简单的程序设计。
友好的窗口菜单的设计。
二、 课程设计应完成的工作
1) 设计程序
2) 进行调试与运行
3) 完成设计报告
4) 答辩
②
目
录
1.设计目的与要求……………………………………………4 2.总体设计……………………………………………………5 3.调试分析……………………………………………………6 4.总结与心得…………………………………………………9 5.附录…………………………………………………………10 6.课程设计评分表……………………………………………18