| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 475 人关注过本帖
标题:各位大虾,看看我的这程序那出现了问题啊,可以运行,但不正确。。。
只看楼主 加入收藏
My→style
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-7
结帖率:66.67%
收藏
 问题点数:0 回复次数:2 
各位大虾,看看我的这程序那出现了问题啊,可以运行,但不正确。。。
为什么保存到文件可以看见,但程序却不能读出来啊,而且删除函数也有点问题,帮忙解决一下啊



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define SIZE 100
struct record
{  int num;
   char name[10];
   char tel[12],celtel[12],dw[20],email[20],qq[12];
}rec[SIZE];
int i,m=0;             //m为当前通讯录中的记录数
char menu();           //选单
void list();           //显示
void search();         //查找
void app();            //增加
void dele();           //删除
void correct();        //修改
void save();           //保存
void load();           //读入

void main()
{ char choice;
  while(1)
  { choice=menu();
    switch(choice)
    {case'1':printf("显示通讯录中的内容\n");
        list();break;
     case'2':printf("查找\n");
        search();break;
     case'3':printf("增加记录\n");
         app();break;
     case'4':printf("删除记录\n");
         dele();break;
     case'5':printf("修改通讯录\n");
         correct();break;
     case'6':printf("保存通讯录\n");
         save();break;
     case'7':printf("从文件中读取记录\n");
         load();break;
     case'8':printf("退出通讯录管理系统\n");
         save();break;
    default:printf("输入错误!!");

    }
    if(choice=='8')break;
    printf("\n按任意键退出....\n");getchar();
  }
}




char menu()
{  char c;
printf("\n\n*************简易通讯录*************\n");
 printf("         1.显示通讯录\n");
 printf("         2.按姓名查找\n");
 printf("         3.增加通讯录\n");
 printf("         4.删除通讯录\n");
 printf("         5.修改通讯录\n");
 printf("         6.保存到文件\n");
 printf("         7.从文件读取\n");
 printf("         8.退出此系统\n");
 printf("************************************\n");
 printf(" \n请选择………\n\n");
c=getchar();
getchar();
return c;
}


void list()          //显示通讯录中的内容
{printf("编号姓名   电话\t\t手机 \t工作单位\t\tEMAIL  \t\tQQ\n");
   for(i=0;i<m;i++)
{  if(rec[i].name[0])
{  
   printf("%d、%-8s%-12s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name,rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);
    }
}printf("当前通讯录中有%d条记录\n",m);
}



void app()           //添加通讯记录
{ char an;
  puts("当前通讯录中的内容\n");
  list();
  
  do
  {  rec[i].num=m+1;
     printf("姓名:");
     gets(rec[m].name);
     printf("电话:");
     gets(rec[m].tel);
     printf("手机:");
     gets(rec[m].celtel);
     printf("工作单位:");
     gets(rec[m].dw);
     printf("EMAIL:");
     gets(rec[m].email);
     printf("QQ:");
     gets(rec[m].qq);
     puts("新纪录输入完成!");
     printf("编号姓名   电话\t\t手机 \t工作单位\t\tEMAIL  \t\tQQ\n");
      printf("%d、%-8s%-12s%-12s%-18s%-18s%-12s\n",rec[i].num,rec[i].name,rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);
     m++;
     puts("继续添加吗?(y/n)");
     an=getchar();
     getchar();
  }while(an=='y');
}





void search()          //查找
{ char xm[10];
  printf("输入查找的姓名:");
  gets(xm);
  for(i=0;i<m;i++)
  { if(strcmp(xm,rec[i].name)==0)
  {  printf("编号姓名   电话\t\t手机 \t工作单位\t\tEMAIL  \t\tQQ\n");
     printf("%d、%-8s%-12s%-12s%-18s%-18s%-12s\n",i+1,rec[i].name,rec[i].tel,rec[i].celtel,rec[i].dw,rec[i].email,rec[i].qq);
     
  
  } else
      printf("无此记录...\n");
 
  }
}
  



void dele()            //删除记录
{ int a;
  list();
  do
  { printf("删除几号记录?");
    scanf("%d",&a);
   
  }while(a>m&&a>0);
  if(a!=m-1)
      for(i=a;i<m;i++)
      {rec[i-1]=rec[i];rec[i-1].num=i;
      break;}
      m--;
      list();
}






void correct()        //修改通讯录
{char xm[10];
 printf("输入要修改的姓名:");
 gets(xm);
 for(i=0;i<m;i++)
  { if(strcmp(xm,rec[i].name)==0)
 {   printf("电话:");gets(rec[i].tel);
     printf("手机:");gets(rec[i].celtel);
     printf("工作单位:");gets(rec[i].dw);
     printf("EMAIL:");gets(rec[i].email);
     printf("QQ:");gets(rec[i].qq);
     break;}
 }printf("修改完成!\n");
 list();
}
   

void save()            //保存通讯录内容到文件中
{ FILE *fp;
  if((fp=fopen("txl.txt","wb"))==NULL)
  {printf("Can't open file");exit(0);}
  list();
  for(i=0;i<m;i++)
      if(fwrite(&rec[i],sizeof(struct record),1,fp)!=1)
          printf("File wrete error!\n");
      fclose(fp);
}



void load()            //从文件读记录到通讯录中
{ FILE *fp;
  if((fp=fopen("txl.txt","rb"))==NULL)
  {printf("Can't open file");exit(0);}
  for(i=0;i<SIZE;i++)
  { if(fread(&rec[i],sizeof(struct record),1,fp)!=1)
  {if(feof(fp))break;
   printf("File wrete error!\n");}
      
  }
  list();
  fclose(fp);
 }
搜索更多相关主题的帖子: include search 通讯录 
2011-11-12 14:27
My→style
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-7
收藏
得分:0 
我实在vc上运行的    我是跪求啊!!!!!!!!!!!
2011-11-12 14:30
My→style
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-12-7
收藏
得分:0 
我是急需啊!!!!!谁能帮我修改一下啊
2011-11-12 14:32
快速回复:各位大虾,看看我的这程序那出现了问题啊,可以运行,但不正确。。。
数据加载中...
 
   



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

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