国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言實現小型電子詞典

2020-01-26 13:30:18
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言實現小型詞典系統,供大家參考,具體內容如下

1. 題目描述

用C語言編寫一個小型詞典,用戶可以進行英譯漢、漢譯英、刪除修改單詞、添加單詞等功能。       

2.源代碼

/*  小型詞典系統  版本:0.9  作者:個快快  應用模型:文件增刪改查*/#include <stdio.h>#include <string.h>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<worsNumber;i++)  {    if(strcmp(dictionnarySql[i].word,word)==0)      return i;  }  return -1;//如果查詢不到,就返回負數}//------------------------//返回翻譯在數據庫中的位置//------------------------int searchCn(char cn[80]){  //順序查找  int i=0;  for(i=0;i<worsNumber;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<worsNumber;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;}

效果:

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 吐鲁番市| 福鼎市| 伊川县| 东城区| 桃江县| 西平县| 类乌齐县| 邮箱| 上饶市| 阳泉市| 云霄县| 罗城| 尉氏县| 巍山| 建昌县| 湖口县| 诸城市| 沐川县| 水城县| 云浮市| 阿城市| 贵南县| 东安县| 手游| 南昌市| 兴业县| 巴里| 广平县| 彭州市| 湟中县| 文成县| 湖北省| 招远市| 浦东新区| 开封市| 博白县| 策勒县| 勃利县| 三门峡市| 淳化县| 长治市|