c语言程序电子词典,C语言实现小型电子词典
本文实例为大家分享了C语言实现小型词典系统,供大家参考,具体内容如下
1. 题目描述
用C语言编写一个小型词典,用户可以进行英译汉、汉译英、删除修改单词、添加单词等功能。
2.源代码
/*
小型词典系统
版本:0.9
作者:个快快
应用模型:文件增删改查
*/
#include
#include
int worsNumber = 0; //单词数目
//----------------------
//定义结构体存储词典数据
//----------------------
typedef struct dic
{
char word[20];
char cn[80];
}data;
data dictionnarySql[9000];//词典数据库
//------------
//加载词典数据
//------------
int loadSql(data *sql,char path[100])
{
int i=0;
FILE *fp=NULL;
fp=fopen(path,"r");
while(fscanf(fp,"%s\t%s",(sql+i)->word,(sql+i)->cn)!=EOF)
{
i++;
}
fclose(fp);
printf("共计%d个单词数据\n",i);
printf("单词加载完毕,请输入指令进行操作:\n");
return (i); //返回单词数目
}
//------------
//输出用户提示
//------------
void printAction()
{
printf("-----------------\n");
printf("1.英译汉\t|\n");
printf("2.汉译英\t|\n");
printf("3.添加单词数据\t|\n");
printf("4.删除单词数据\t|\n");
printf("5.修正单词数据\t|\n");
printf("0.退出程序\t|\n");
printf("-----------------\n");
}
//------------
//指令处理函数
//------------
void dealAction(int action)
{
if(action==1)
{
char word[20];
int pos;//单词位置
printf("请您输入要查询的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
printf("单词\'%s\'的中文意思是: %s\n",word,dictionnarySql[pos].cn);
else
printf("对不起,没有找到您所需要的单词\n");
}
else if(action==2)
{
int pos;
char cn[80];
printf("请您输入汉语词意(关键词即可):");
scanf("%s",cn);
pos = searchCn(cn);
if(pos!=-1)
printf("该翻译的英语单词是: %s\n",dictionnarySql[pos].word);
else
printf("对不起,没有找到您所需要的翻译\n");
}
else if(action==3)
{
char word[20];
char cn[80];
printf("请您输入要补充的单词:");
scanf("%s",word);
strcpy(dictionnarySql[worsNumber].word,word);
printf("请您输入该单词汉语翻译:");
scanf("%s",cn);
strcpy(dictionnarySql[worsNumber].cn,cn);
worsNumber++;
saveSql();
printf("补充单词完成\n");
}
else if(action==4)
{
char word[50];
int pos;//单词位置
printf("请输入您要删除的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
{
char a[5] = "#";
strcpy(dictionnarySql[pos].cn,a);
strcpy(dictionnarySql[pos].word,a);
saveSql();
printf("已经删除该单词\n");
}
else
printf("对不起,没有找到您所需要的单词\n");
}
else if(action==5)
{
char word[50];
int pos;//单词位置
printf("请输入您要修正的单词:");
scanf("%s",word);
pos = searchWord(word);
if(pos!=-1)
{
printf("请输入单词汉语翻译:");
char cn[60];
scanf("%s",cn);
strcpy(dictionnarySql[pos].cn,cn);
saveSql();
printf("已经修正该单词翻译。\n");
}
else
printf("对不起,没有找到您所需要的单词\n");
}
}
//------------------------
//返回单词在数据库中的位置
//------------------------
int searchWord(char word[20])
{
int low, mid, high;
low = 0;
high = worsNumber;
while(low<=high)
{
mid = (low+high)/2;
if(strcmp(dictionnarySql[mid].word,word)>0)
high = mid-1;
else if(strcmp(dictionnarySql[mid].word,word)<0)
low = mid+1;
else
{
return mid;
}
}
//若二分查找查询不到,就执行顺序查找
int i=0;
for(i=0;i
{
if(strcmp(dictionnarySql[i].word,word)==0)
return i;
}
return -1;//如果查询不到,就返回负数
}
//------------------------
//返回翻译在数据库中的位置
//------------------------
int searchCn(char cn[80])
{
//顺序查找
int i=0;
for(i=0;i
{
if(strstr(dictionnarySql[i].cn,cn)!=NULL)
return i;
}
return -1;//如果查询不到,就返回负数
}
//--------
//保存数据
//--------
void saveSql()
{
FILE *fp=NULL;
fp=fopen("dictionary.txt","w");
int i=0;
for(i=0;i
{
if(dictionnarySql[i].word[0]!='#')
{
fprintf(fp,"%s\t%s\n",dictionnarySql[i].word,dictionnarySql[i].cn);
}
}
fclose(fp);
}
//----------
//主函数部分
//----------
int main()
{
worsNumber = loadSql(dictionnarySql,"dictionary.txt"); //加载单词
int action=-1;//定义动作变量
while(action!=0)
{
printAction();
scanf("%d",&action);
dealAction(action);
}
return 0;
}
效果:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
c语言程序电子词典,C语言实现小型电子词典相关推荐
- 8255a初始化c语言程序,8255A的c语言程序.doc
8255A的c语言程序 8255A的c语言程序 [实例24]用8243扩展I/O端口 #include sbit ContrBit0=P1^0; sbit ContrBit1=P1^1; sbit C ...
- 单片机 中断秒表 c语言程序,51单片机c语言的秒表设计.doc
51单片机c语言的秒表设计.doc 课程设计报告 基于AT89C51单片机的秒表设计 院 系 电子信息工程学院 专 业 电子信息工程 1 姓 名 摘 要 本设计是设计一个单片机控制的多功能秒表系统. ...
- 编写一个分奇偶的c语言程序,程序设计入门——C语言 第3周编程练习 1 奇偶个数(5分)...
1 题目内容: 你的程序要读入一系列正整数数据,输入-1表示输入结束,-1本身不是输入的数据.程序输出读到的数据中的奇数和偶数的个数. 输入格式: 一系列正整数,整数的范围是(0,100000).如果 ...
- 怎么用centos7运行c语言程序_写C语言程序,如何提升程序运行效率?我的一点经验分享给你们!...
在编写C语言程序后,经常需要对源码进行优化,以提高程序的运行效率,下面简述几个常用的优化技巧以供大家参考: 1.C于代码在程序中的优化 现在的C编译器会自动对代码进行优化,但这些优化是对执行速度和代码 ...
- 单纯形 c语言 程序,单纯形法完全c语言程序
单纯形法完全c语言程序 更新时间:2017/2/8 13:37:00 浏览量:566 手机版 单纯形法完全c语言程序,能运行 #include "math.h" #includ ...
- 程序设计基础(c语言),程序设计基础(C语言)
<程序设计基础(C语言)>由会员分享,可在线阅读,更多相关<程序设计基础(C语言)(26页珍藏版)>请在人人文库网上搜索. 1.程序设计基础(C语言),东北大学高级语言程序设计 ...
- c语言程序链接过程,C语言简明教程(二):C程序编译链接过程和实例对照详解...
不像高级编程语言,在C语言开发中,了解其编译链接过程显得相对重要,因为C语言是较为底层的语言,很多时候我们调试C程序或者解决其它问题都可能会涉及到C编译链接的相关知识,例如编译动态库或者静态库.下面我 ...
- c语言程序改错例题,C语言程序改错习题
C语言程序改错习题 行动是通向成功的唯一途径.以下是小编为大家搜索整理的C语言程序改错习题,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网! 在考生文件夹下,给定程序MODI.C的功 ...
- c语言程序40例,C语言程序讲解40例.pdf
实用标准文案 C 语言程序讲解 40 例 [程序 1] 题目:有 1.2.3.4 个数字, 能组成多少个互不相同且无重复数字的三位数?都是多少? 1. 程序分析:可填在百位.十位.个位的数字都是 1. ...
- c语言程序优化设计,C程序设计语言的教学策略优化设计
摘要:本文围绕提高C语言课堂教学的教学质量,依据教学内容的属性与特点,融合任课教师的教学经验与智慧,通过选择恰当的教学方法,采用合理的教学手段设计了一种教学优化策略,强化了教学方案设计的科学性,保证了 ...
最新文章
- 驳Linux不娱乐 堪比Win平台中十款播放器
- pip安装pytorch 速度更快
- python程序开发正则表达式_python正则表达式的使用(实验代码)
- HDU 3487 Play with Chain(Splay)
- SCCM Learning2
- git pull提示remote error:CAPTCHA required
- C语言储蓄系统编程,C语言:银行储蓄系统的开发(初级)-Go语言中文社区
- linux常用命令笔记大全
- Servlet 输出中文乱码的新收获(1)
- 在AD中安装元件和封装库
- ezd激光雕刻机软件使用笔记。
- mysql 删除表的方法_MySQL 删除表的三种方式
- win10照片查看器_win10最好的看图软件?win10照片查看软件推荐
- 记一次成功修复U盘的痛苦经历
- python numpy 矩阵运算_NumPy向量和矩阵的运算
- 随机密聊 匿名聊天室程序源码
- (浙大-19-夏-数据结构学习笔记)二叉树的初步认识
- 计算机绘图图层基本线性,计算机绘图基础-第10章 尺寸标注.ppt
- 开源学校管理系统php,SchoolCMS学校管理系统 v2.3
- 02百万架构师核心技术设计实践