标题:制作英汉词典 求大神帮助 帮我看一下这个程序中 E和C 两个数组有没有问题 ...
只看楼主
bobotu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-7-7
结帖率:0
已结贴  问题点数:20 回复次数:2 
制作英汉词典 求大神帮助 帮我看一下这个程序中 E和C 两个数组有没有问题怎么修改
/************2017.7.5上午***********/
/*制作简单的英汉电子词典*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
char A[100][20];
char E[100][20];//英文
char C[100][20];//中文
int count;
int display();
void search();
void modify();
void quit();
void Search_China();
void Search_English();

int showmenu()
{
   int choice;
   printf("\t\t\t\t*********************************\n");
   printf("\t\t\t\t|*********英汉电子词典**********|\n");
   printf("\t\t\t\t|*******************************|\n");
   printf("\t\t\t\t|***********功能选择************|\n");
   printf("\t\t\t\t|        1.显示所有单词         |\n");
   printf("\t\t\t\t|        2.查询单词             |\n");
   printf("\t\t\t\t|        3.词条修改             |\n");
   printf("\t\t\t\t|        4.退出程序             |\n");  
   printf("\t\t\t\t*********************************\n");
   printf("输入你的选择(1-4):");
}

int main()
 {
   int choice;
   while(1)
 {
   system("cls");
   showmenu();
   scanf("%d",&choice);
   switch(choice)
   {
      case 1:system("cls");display();break;
      case 2:system("cls");search();break;
      case 3:system("cls");modify();break;
      case 4:system("cls");quit();exit(0);
   }
 }
 }
 
 int display()
 {
   
    FILE *fp;
    int len,j=0,k,i = 0;
    int select;
    if ((fp = fopen("C:\\Users\\10028\\Desktop\\实训\\7.6\\day4发学生\\上午\\dictionary.txt", "r")) == NULL)
    {
        printf("文件1.txt不存在\n");  
    }
    while (fscanf(fp, "%s", A[i]) != EOF)
    puts(A[i++]);
    count=i-1;//计数
    fclose(fp);
    for(k=0;k<count;k++)
    {
        for(i=0;A[k][i]!=',';i++)
        {
          E[k][i]=A[k][i];   
        }
    } //把英文放入E
    for(k=0;k<count;k++)
    {
        len=strlen(E[k]);
        j=0;
        for(i=len+1;A[k][i]!='\0';i++)
        {
            C[k][j]=A[k][i];
            j++;
        }   
        
    }//把中文放入C
   
    printf("按任意键返回\n");
    system("pause");
   
 }
 
 void search()
 {
  int Choice;
    system("cls");
    printf("\t\t\t\t 【**********1、按中文查找 **********】\n\n");
    printf("\t\t\t\t 【**********2、按英文查找 **********】\n\n");
    printf("\t\t\t\t   选择 : ");
    scanf("%d",&Choice);
    if(Choice==1)
        Search_China();
    else if(Choice==2)
        Search_English();
 }
 void Search_China()
 {
     int i,flag=1;
    char s[20]={0};
    char judge;
    system("cls");
    printf("\n\n\n\n\n\t\t\t\t 输入你所要查询的中文 : ");
    scanf("%s",s);
    for(i=0;i<count;i++)
    {
        if(strcmp(s,C[i])==0)
        {
            printf("\n\n");
            printf("\t\t\t\t****************************************\n");
            printf("\t\t\t\t##************* 所查如下 *************##\n");
            printf("\n\t\t\t\t\t中文 : %s   英文 : %s \n\n",C[i],E[i]  );
            printf("\t\t\t\t****************************************\n");
            flag=0;
        }
    }
    if(flag=1)
        printf("\n\t\t\t\t 没有该词条 \n");
        
        printf("是否需要继续查询:(Y/N)");
        do
        {
          judge=getchar();
        }while(judge!='Y'&&judge!='y'&&judge!='N'&&judge!='n');
         if(judge=='y'||judge=='Y')
        search();  //返回查询
 }
 void Search_English()
 {
     int i,flag=1;
    char s[20]={0};
    char judge;
    system("cls");
    printf("\n\n\n\n\n\t\t\t\t 输入你所要查询的英文 : ");
    scanf("%s",s);
    for(i=0;i<count;i++)
    {
        if(strcmp(s,E[i])==0)
        {
            printf("\n\n");
            printf("\t\t\t\t########################################\n");
            printf("\t\t\t\t##************* 所查如下 *************##\n");
            printf("\n\t\t\t\t\t中文 : %s   英文 : %s \n\n",C[i],E[i]);
            printf("\t\t\t\t########################################\n");
            flag=0;
        }
    }
   
    if(flag=1)
        printf("\n\t\t\t\t 没有该词条 \n");
        
        printf("是否需要继续查询:(Y/N)");
        do
        {
          judge=getchar();
        }while(judge!='Y'&&judge!='y'&&judge!='N'&&judge!='n');
         if(judge=='y'||judge=='Y')
        search();  //返回查询
 }
 void modify()
 {
     int i,k;
     char x[200];
     char y[20];
     char judge;
     FILE *fp;
     printf("\n请输入要修改的单词的英文:");
     scanf("%s",x);
     if(strcmp(x,E[i])==0)
        {
            printf("输入修改后的信息:");
            scanf("%s",y);
            strcpy(E[i],y);
            fp = fopen("C:\\Users\\10028\\Desktop\\实训\\7.6\\day4发学生\\上午\\dictionary.txt", "w");
            fscanf(fp, "%s", E[i]);
            fclose(fp);  
        }
    do
        {
          judge=getchar();
        }while(judge!='Y'&&judge!='y'&&judge!='N'&&judge!='n');
         if(judge=='y'||judge=='Y')
         modify(); //返回修改
 }
 void quit()
 {
     printf("\t\t\t\t********************************************\n");
     printf("\t\t\t\t*                                          *\n");
     printf("\t\t\t\t*********         谢谢使用!      **********\n");
     printf("\t\t\t\t*                                          *\n");
     printf("\t\t\t\t********************************************\n");

 }
 
搜索更多相关主题的帖子: char int void printf system 
2017-07-07 15:02
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:20 
有哪里有问题呢

DO IT YOURSELF !
2017-07-07 15:45
bobotu
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2017-7-7
得分:0 
回复 2楼 wp231957
就是它运行的时候 有的时候有用有的时候没用  我在想是不是 把文件中的数据分别读出来时出了问题
2017-07-07 15:52



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-479248-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.081186 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved