C語言實現(xiàn)電子英漢詞典系統(tǒng)
更新時間:2022年06月02日 10:04:55 作者:普通學長
這篇文章主要為大家詳細介紹了C語言實現(xiàn)電子英漢詞典系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)電子英漢詞典系統(tǒng)的具體代碼,供大家參考,具體內容如下
一、設計功能(文章僅供參考)
a. 詞條錄入:即添加單詞記錄。
b. 信息顯示:將所有的單詞按字母順序顯示。
c. 詞條修改:對已經(jīng)輸入的單詞信息進行修改。
d. 詞條刪除:刪除某個單詞記錄。
e. 單詞查詢: 輸入單詞英文拼寫,輸出該單詞的中文釋義。
f. 信息保存:將單詞信息保存到文件。
g. 退出系統(tǒng)
二、功能展示




三、思維導圖



四、程序源碼
#include <stdio.h>?? ?//引入庫函數(shù)
#include <stdlib.h>
#include <string.h>
#define szWORD 50?? ?//單詞長度最大50
#define szSTRN 200?? ?//釋義長度最大200
#define szProject sizeof(struct Dictionary)
char fileDict[szSTRN];
typedef struct ? Dictionary{
char word[szWORD];
char mean[szSTRN];
} Project ; //定義字典結構體,定義兩個字符型變量單詞和釋義
fpos_t consult(char *word, char *mean)
{
FILE * f = 0; Project ?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, szProject , 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;}
void Search(void);
void Append(void);
void Delete(void);
void Update(void);
?
int main(int argk, char * argh[])
{
int m= 0;
if(argk>1)?
? strcpy(fileDict, argh[1]);
else
? strcpy(fileDict, "c:\\dict.txt");
for(;;) {
printf("\n\
--------------------\n\
歡迎使用電子英漢詞典!\n\
--------------------\n\
1 - 查詢詞條\n\
2 - 新增詞條\n\
3 - 刪除詞條\n\
4 - 修改詞條\n\
5 - 退出詞典\n\
--------------------\n");
? m = getchar() - '0';
? switch(m) {
case 1: Search();break;
case 2: Append();break;
case 3: Delete();break;
case 4: Update();break;
default : return 0;}
}
return 0;
}
?
void Search(void)
{
?Project i; fpos_t p = 0;
memset(&i, 0, szProject );
printf("please input the word ?you want:"); scanf("%s", i.word );
p = consult(i.word, i.mean );
if(p==0) {
? printf("sorry do not find what you want!\n");
? return;
}
printf("單詞:%s\n釋義:%s", i.word , i.mean );
}
void Append(void)
{
Project ?i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szProject );
printf("please input the word you want:"); scanf("%s", i.word );
p = consult(i.word,0);
if(p) ? ? {
? printf("sorry do not find what you want!\n");
? return;
}
printf("please giving the meaning,按確認結束:");?
fflush(stdin);
gets(i.mean );
f = fopen(fileDict, "ab");
fwrite(&i, szProject , 1, f);
fclose(f);
printf("詞條已新增\n");
}
void Delete(void)
{
?Project ?i; FILE * f = 0; fpos_t p = 0;
memset(&i, 0, szProject );
printf("please input the word you want:"); scanf("%s", i.word );
p = consult(i.word, 0 );
if(p==0) {
? printf("sorry do not find what you want!\n");
? return;
}
p--;
memset(&i, 0, szProject);
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szProject , 1, f);
fclose(f);
printf("詞條已刪除\n");
}
void Update(void)
{
?Project ?i; FILE * f = 0; fpos_t p = 0;?
memset(&i, 0, szProject );
printf("please input the word you want:"); scanf("%s", i.word );
p = consult(i.word, 0 );
if(p==0) {
? printf("sorry do not find what you want!\n");
? return;
}
p--;
printf("please giving the meaning,按確認結束(輸入drop放棄修改):");?
fflush(stdin);
gets(i.mean );
if(strstr(i.mean ,"drop")) {
? printf("已放棄修改!\n");
? return ;
}
f = fopen(fileDict, "rb+");
fsetpos(f, &p);
fwrite(&i, szProject , 1, f);
fclose(f);
printf("詞條已保存\n");
}以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
相關文章
利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖
這篇文章主要介紹了如何利用Matlab實現(xiàn)圖像亮度分布統(tǒng)計圖的繪制,文中的示例代碼講解詳細,對我們學習Matlab有一定的幫助,感興趣的可以了解一下2022-05-05
Qt 使用 canon edsdk 實現(xiàn)實時預覽的示例代碼
這篇文章主要介紹了Qt 使用 canon edsdk 實現(xiàn)實時預覽的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-11-11
C++中String的語法及常用接口的底層實現(xiàn)詳解
在C語言中,string是一個標準庫類(class),用于處理字符串,它提供了一種更高級、更便捷的字符串操作方式,string 類提供了一系列成員函數(shù)和重載運算符,以便于對字符串進行操作和處理,本編文章會對C++中的 string 進行詳解,希望本篇文章會對你有所幫助2023-06-06

