找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5846|回复: 0
打印 上一主题 下一主题
收起左侧

C语言电子英汉词典设计

[复制链接]
跳转到指定楼层
楼主
ID:436540 发表于 2018-12-6 10:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
课程名称       C语言课程设计      
课题名称        电子英汉词典      
专    业         电气工程及其自动化

一、设计内容与设计要求

1.设计内容:电子英汉词典
1)问题描述:
该设计实现简单双向电子英汉词典的功能,即具有英译汉和汉译英的功能。具体管理操作包括单词的添加、显示、查找、删除、修改和保存等。
2)功能描述:
(1)本设计采用结构体数组,每个数据的结构应当包括:单词、音标、词性、中文释义1、中文释译2和中文释译3。
(2)系统功能:
词条录入:即添加单词记录。
信息显示:将所有的单词按字母顺序显示。
词条修改:对已经输入的单词信息进行修改。
词条删除:删除某个单词记录。
单词查询: 输入单词,输出该单词的中文释义;输入中文,输出该中文意思相同的英语单词。
信息保存:将单词信息保存到文件。
退出系统
(3)系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对其进行扩充完善,如在对信息进行修改和删除时,可以考虑系统的安全性,在执行前若输入正确密码,才可进行操作。
3)测试数据:
要求被选用的词条有30个左右,简单单词为主。

2.设计要求:
1)设计正确,方案合理。
2)界面友好,使用方便。
3)程序精炼,结构清晰。
4)上机演示。
3.设计报告要求:
课程设计报告格式如下:
1)正文的格式:一级标题用3号黑体,二级标题用四号宋体加粗,正文用小四号宋体,行距为22。
2)正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件(所有程序的源代码,要求对程序写出必要的注释),课程设计报告需5000字左右(不含附件)。
3)课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。

二、进度安排

星期
时间
班级
内容
地点
第16周


布置内容
D600
第17周1
8:00-17:50


D600
第17周2
8:00-11:50


D600
第17周4
8:00-11:50


D600
第17周5
8:00-11:50


D600









目录

1  系统需求分析
2  概要设计
3  详细设计
4  系统测试
5课程设计总结
1  系统需求分析

英汉词典-作为一个常用的学习工具,是我们经常要使用的。该系统能完成一个简单的电子英汉词典的功能.电子英汉字典有着传统文本词典无法相比的优越性:多种多样的探索方法,便利的查询窗口,灵活的显示界面,盒连续的参考功能,无一不体现这种知识媒体的智能化和人性化特色,电子多媒体在词典中的应用,更使得单调,呆板的词典变的形象生动在词典中获取知识 变得轻松和快捷系统功能.具体管理操作包括单词的添加,显示,查找,删除,修改,保存,和维护等。

功能描述 :本设计采用结构体数据,每个数据的构应当包括:单词的英文拼写,单词的中文解释


2 . 概要设计
系统功能模块图:

1.程序的模块组成:主函数:main( ) 初始换函数:init( ) 输入函数:scanf() 输出函数:printf( ) 删除函数:memset ( )  查询函数:find() 增加函数add() 删除函数:del ( ) 修改函数:modify() 浏览函数表:view() 维护函数:store() 结束函数:return();

2. 各个函数的主要功能: 输入函数:随时输入数据。 菜单函数;显示系统主菜单。查找函数;能够随时查找某个单词。 增加函数;能够随时增加想要增加的单词。 删除函数;能够删除某单词信息。 修改函数;能够随时修改单词信息。 浏览函数:能够浏览所有单词。

3 . 详细设计
<1>数据结构

拥有与时并进的步伐,为迎接未来作好最佳准备。

被誉为数据中心服务供应商巨擎之一的名气通,拥有多个世界Tier3+等级的数据中心为客户提供针对性的专业管理服务,以及可靠的「云计算」服务。除符合香港政府第二级保安指引, 并获颁ISO 27001:2005, ISO 14001:2004, 20000-1:2005, FISC及TIA-942等国际标准之外,更为邻近地区树立起优质服务的标准。

香港作为亚洲信息与通讯科技枢纽,对数据中心的业务需求甚殷。名气通目前在香港营运两个大型的数据中心,分别位于新蒲岗的名气通香港1号数据中心(于2006年建立);而作为中立电讯供应商,新落成的名气通香港2号数据中心则位于将军澳工业村,在政府的未来规划下,将军澳工业邨亦势成亚洲区重要数据中心地带之一。名气通香港2号数据中心楼高5层,建筑面积约22,000平方米,名气通配备先进及安全的数据中心设备,确保客户的数据享有严密的保安.


<2>主菜单:开始
  • 执行查询函数   2.执行新增函数   3.执行删除函数   4.执行修改函数   5.推出词典

(一) 菜单显示

/*基本的库函数*/
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define szWORD 32
#define szSTRN 224
#define szITEM sizeof(struct TItem)
char fileDict[szSTRN];

typedef struct TItem {
char word[szWORD];
char mean[szSTRN];
} Item;

fpos_t lookup(char *word, char *mean)
{
FILE * f = 0; Item i;
int r = 0; fpos_t p = 0;
if(!word) return 0;
f = fopen(fileDict, "rb");
if (!f) return 0;
while(!feof(f)) {
  fgetpos(f, &p);
  r = fread(&i, szITEM, 1, f);
  if(r < 1) break;
  if(i.word[0] == 0) continue;
  if(strcmp(i.word , word)) continue;
  if(mean) strcpy(mean, i.mean );
  fclose(f);
  return p+1;
}
fclose(f);
return 0;
}
欢迎使用电子英汉词典!

<3>添加模块设计

void append(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p) {
  printf("字典内已经有该单词记录!\n");
  return;
}
printf("请输入释义,按回车结束:");
fflush(stdin);
gets(i.mean );
f = fopen(fileDict, "ab");
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已新增\n");
}
<4>显示模块设计
void erase(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0) {
  printf("字典内没有该单词记录!\n");
  return;
}
p--;
memset(&i, 0, szITEM);
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已删除\n");
}

void edit(void)
{
Item i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, 0 );
if(p==0) {
  printf("字典内没有该单词记录!\n");
  return;
}
p--;
printf("请输入释义,按回车结束(输入abort放弃修改):");
fflush(stdin);
gets(i.mean );
if(strstr(i.mean ,"abort")) {
  printf("已放弃修改!\n");
  return ;
}
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szITEM, 1, f);
fclose(f);
printf("词条已保存\n");
}
<5> 删除模块设计

void query(void)
{
Item i; fpos_t p = 0;
memset(&i, 0, szITEM);
printf("请输入单词:"); scanf("%s", i.word );
p = lookup(i.word, i.mean );
if(p==0) {
  printf("字典内没有该单词记录!\n");
  return;
}
printf("【词条】%s\n【释义】%s", i.word , i.mean );
}
退出
void set(void)
{
int cmd = 0;
printf("当前字典为%s,需要改变吗(选择y或Y改变)?", fileDict);
cmd = getch();
if(cmd == 'y' || cmd == 'Y') {
  printf("请输入字典文件名称(包含路径):");
  scanf("%s", fileDict);
  printf("设置成功!\n");
}
}
int main(int argc, char * argv[])
{
int cmd = 0;
if(argc >1)
  strcpy(fileDict, argv[1]);
else
  strcpy(fileDict, "c:\\dict.txt");
/*end if*/
for(;;) {
printf("\n\
************************\n\
**  欢迎使用迷你字典!**\n\
************************\n\
**  0 - 设置字典      **\n\
**  1 - 查询词条      **\n\
**  2 - 新增词条      **\n\
**  3 - 编辑词条      **\n\
**  4 - 删除词条      **\n\
**  5 - 退出字典      **\n\
************************\n");
  cmd = getch() - '0';
  switch(cmd) {
  case 0: set(); break;
  case 1: query(); break;
  case 2: append(); break;
  case 3: edit(); break;
  case 4: erase(); break;
  default: return 0;
  }
}
return 0;
}
4   系统测试
4.1  菜单显示
介绍一下思路,以进行必须说明,不能只是把代码放上来而没有任何说明!
也可以把测试时出现的错误写来进行分析总结!
               


4.2 添加
将程序运行时的图截下来附上,并进行必要的文字说明,不能只是把图贴上来而没有文字!

4.3 显示

将程序运行时的图截下来附上,并进行必要的文字说明,不能只是把图贴上来而没有

5 .课程设计总结

经过一个学期的学习,我对C语言有了一定的了解。C语言是学习计算机科学的基础,作为一名计算机专业学生,掌握C语言更是毋庸置疑。在上课之前,就经常听同学说,C语言很难学,确实,刚开始听课时觉得老师不知所云。不过,发现对后续内容的预习后,前面的疑团都迎刃而解,这让我对C语言的学习更有信心。
计算机最重要的就是上机操作,自己编写程序,在VisualC++运行,刚开始经常会出现错误,经过分析改正后,终于能够运行了,就觉得特别激动。
课程设计是一个把需求分析、程序编写、程序调试、撰写报告结合为一体的过程。在这个过程中,不仅锻炼了我们缜密的思维和坚持不解的毅力,更磨练了一个队伍的团结互助的精神。只有通过大家一起努力才能将课程设计的所有环节都顺利的完成。另外程序设计中我们遇到问题并解决问题的过程,使得我们独自探索并解决问题的能力了有了一个提高,这有利于我们以后的学习。同时这整一个过程,也使我们对程序编写的整个过程有了一个统筹全局的思想,因为需求分析、程序编写、程序调试、撰写报告这些过程是环环相扣的,绝对不可能独立进行。
课程设计是学习《C程序设计》后对知识的全面测试,刚拿到题目时不知道怎么去处理,觉得很复杂,经过和小组成员的讨论,上网查资料,逐个问题逐个击破,问题不再那么复杂。通过课程设计,我发现自己还存在很多知识漏洞,编写程序时,经常会出现低级错误,很多知识点都不熟悉。在今后的时间里,我一定要投入更多精力学习C语言,以课本为基础,请教老师,与同学讨论,参考资料,上机操作,我相信我一定能把C语言学好。


完整的Word格式文档51黑下载地址:
C语言电子英汉词典设计.doc (608 KB, 下载次数: 19)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表