⑴ 用C語言編寫「背單詞 程序」
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct word //定義一個word的結構體,裡面的兩個成員分別放英語單詞和相應的漢語翻譯
{
char chinese[20];
char english[20];
};
int point=0; //統計分數的
int count1=0; //測試的次數
void tianjia(struct word str[100],int &count); //函數聲明,往詞庫中添加片語
void shuchu(struct word str[100],int &count); //函數聲明,輸出詞庫中所有的片語
void fanyi1(struct word str[100],int &count); //函數聲明,輸入漢語,對英語翻譯的考察
void fanyi2(struct word str[100],int &count);
void chaxun(int point,int count1); //函數聲明,輸出成績!
void main()
{
int count=0;
struct word str[100]; //定義一個結構體數組str
int n;
char ch,chioch;
while(1)
{
printf("*************背單詞系統*********************\n");
printf("*************1,添加詞庫*********************\n");
printf("*************2,漢譯英***********************\n");
printf("*************3,英譯漢***********************\n");
printf("*************4,輸出所有詞庫*****************\n");
printf("*************5,成績查詢*********************\n");
printf("*************0,退出*************************\n");
printf("********************************************\n");
printf("請輸入你要經行的操作:\n");
scanf("%d",&n);
switch(n)
{
case 1:tianjia(str,count);break; //函數調用
case 2:fanyi1(str,count);break; //函數調用
case 3:fanyi2(str,count);break; //函數調用
case 4:shuchu(str,count);break;
case 5:chaxun(point,count1);break; //函數調用
case 0:{printf("你確認要退出嗎?y/n!!\n");
scanf("%c%c",&ch,&chioch);
if(ch=='y'||ch=='Y') exit(0);
}
default :printf("你輸入了錯誤的操作,無法執行!!!");
exit(0);
}
}
}
void tianjia(struct word str[100],int &count) //往詞庫中添加片語
{
char ch;
do{
printf("錄入詞庫!!!\n");
printf("請輸入詞庫中的英語單詞:\n");
scanf("%s",str[count].english);
printf("\n請輸入相應的中文意思:\n");
scanf("%s",str[count].chinese);
count++;
printf("是否繼續錄入?y/n!!!\n");
scanf("%s",&ch);
}while(ch=='y');
printf("%d\n\n",count);
}
void shuchu(struct word str[100],int &count) // 輸出詞庫中所有的片語
{
int i=0;
printf("輸出詞庫中所有的單詞!!!\n");
if(count<=0) {printf("沒有任何單詞,無法輸出!!!\n");return;}
else {
for(i=0;i<count;i++){
printf("英文單詞是:%s",str[i].english);
printf("\n相應的中文意思是:%s",str[i].chinese);
printf("\n\n");
}
printf("詞庫所有單詞輸入完畢!!!!\n");
}
}
void fanyi1(struct word str[100],int &count) //輸入漢語,對英語翻譯的考察
{
int i;
char ch[20];
char bh[20];
printf("請輸入英語單詞:\n");
scanf("%s",ch);
printf("請輸入翻譯後的中文:\n");
scanf("%s",bh);
for(i=0;i<count;i++)
{
if(strcmp(ch,str[i].english)==0)
{
if(strcmp(bh,str[i].chinese)==0)
{
point++;
count1++;
printf("恭喜你!!答對了!!!\n");
}
else
{
count1++;
printf("很遺憾,答錯了!!!正確的翻譯是:%s\n",str[i].chinese);
}
}
}
}
void fanyi2(struct word str[100],int &count) //輸入英語,對漢語翻譯的考察
{
int i;
char ch[20];
char bh[20];
printf("請輸入中文:\n");
scanf("%s",ch);
printf("請輸入翻譯後的英文:\n");
scanf("%s",bh);
for(i=0;i<count;i++)
{
if(strcmp(ch,str[i].chinese)==0)
{
if(strcmp(bh,str[i].english)==0){
point++;
count1++;
printf("恭喜你!!答對了!!!\n");
}
else
{
count1++;
printf("很遺憾,答錯了!!!正確的翻譯是:%s\n",str[i].english);
}
}
}
}
void chaxun(int point,int count1)
{
printf("本次測試的成績是:\n");
printf("總共:%d個\n",count1);
printf("正確:%d個\n",point);
// printf("正確率為:%d\%\n",point*100/count1);
}