| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 583 人关注过本帖
标题:创建了一个通讯录管理系统,可是出错,求指教
只看楼主 加入收藏
兜里有糖哦
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-13
结帖率:0
收藏
已结贴  问题点数:20 回复次数:8 
创建了一个通讯录管理系统,可是出错,求指教
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<conio.h>
int n;
struct tongxunlu
{
int no;//序号
char xingming[20];//姓名
char dianhuahaoma[15];/
char dizhi[50];//地址
char youzhengbianma[10];//邮政编码
char qqhaoma[11];/号码
    int pno;
}txl  ;


  
 

void ReadFile(txl emp[],int &n) //读取文件并存入emp数组
{


if((fp=fopen("tongxunlu.dat","rb"))==NULL) //判断文件是否可读
{
n=0;
return;
}
fseek(fp,0,2); //文件指针移到文件尾
length=ftell(fp); //length求出文件长度
rewind(fp); //文件位置指针指向文件首
n=length/sizeof(txl);


for(i=0;i<=n;i++)
fread(&emp[i],sizeof(txl),1,fp); //将文件的数据读到emp中
    fclose(fp);
}

  void Clearup(txl emp[],int &n) //清空文件的全部记录
{
FILE *fp;
if((fp=fopen("tongxunlu.dat","wb"))==NULL){
printf(">> 文件不能打开\n");
return;
}
emp[0].pno=-1;
n=0;
fclose(fp);
printf(" ============================================================================\n");
}

void SaveFile(txl emp[],int &n) //将emp数组存入库存文件
{
int i;
FILE *fp;
if((fp=fopen("tongxunlu.dat","wb"))==NULL)
{
printf(">> 文件不能打开\n");
return;
}
if(n>1)
{ for(i=0;i<=n;i++)
fwrite(&emp[i],sizeof(txl),1,fp);
       fclose(fp);
printf(" ============================================================================\n");
}
}  
void chazhao ( txl emp[],int n)/*查找人的信息记录*/
{
   char c;
   system("cls");
   printf("\n\t\t------------------显示和查找联系人-----------------");
   printf("\n\t\t             1-逐个显示所有          2-按姓名查询      ");
   printf("\n\t\t             3-按电话查询                  ");
   printf("\n\t\t请选择您所需要的服务:");
   c=getch();
   switch (c)
   {
   case'1':xianshi(txl emp[]);break;/*显示所有联系人*/
   case'2':chazhao_xingming(txl emp[]);break;/*调用按姓名查询的函数*/
   case'3':chazhao_dianhuahaoma(txl emp[]);break;/*调用按号码查询的函数*/

   }
}
void xianshi(txl emp[],int n)
{
int i;
system("cls");
     if(n!=0)
{
printf("\n\t\t------------欢迎您查询通讯录的所有联系人信息--------------");
for(i=0;i<n;i++)
{
  
      printf("\n\t\t 姓名:%s", emp[i].xingming);
  printf("\n\t\t 地址:%s", emp[i].dizhi);
  printf("\n\t\t 电话:%s", emp[i].dianhuahaoma);
  printf("\n\t\t 邮政编码:%s", emp[i].youzhengbiana);
  printf("\n\t\t QQ号码:%s", emp[i].qqhaoma);
  printf("\n\t\t----------------------------------");
  if(i+1<n)
  {
  printf("\n\t\t---------------");
  system("pause");/*返回错误信息*/
  }
}
printf("\n\t\t------------------------------------");

}
else
printf("\n\t\t通讯录中无任何记录");
    printf("\n\t\t按任意键返回主菜单");
getch();
return;
}
void chazhao_dianhuahaoma(txl emp[],int n)
{
int mark=0;
int i;
char phone[15];
printf("\n\t\t----------------按电话查找-------------");
printf("\n\t\t 请输入电话号码:");
scanf("%s",phone);
for (i=0;i<n;i++)
{
if (strcmp(emp[i].dianhuahaoma.phone)==0)/*对比查找函数*/
{
printf("\n\t\t------------以下是您查找的联系人信息--------------");
printf("\n\t\t 姓名:%s",emp[i].xingming);
            printf("\n\t\t 地址:%s",emp[i].dizhi);
    printf("\n\t\t 电话:%s",emp[i].dianhuahaoma);
    printf("\n\t\t 邮政编码:%s",emp[i].youzhengbianma);
    printf("\n\t\t QQ号码:%s",emp[i].qqhaoma);
            printf("\n\t\t----------------------------------");
            printf("\n\t\t按任意键返回主菜单");
mark++;
getch();
return;
}
}
   if(mark==0)
   {
   printf("\n\t\t 没有找到联系人的信息");
   printf("\n\t\t 按任意键返回主菜单");
   getch();
   return;
   }

}
void chazhao_xingming(txl emp[])
{
int mark=0;
int i;
char name[20];
printf("\n\t\t -------------------按姓名查找--------------------");
printf("\n\t\t 请输入您要查找的姓名:");
scanf("%s",name);
for(i=0;i<n;i++)
{
      if(strcmp(emp[i].xingming.name)==0)
  {
         printf("\n\t\t------------以下是您查找的联系人信息--------------");
     printf("\n\t\t 姓名:%s",emp[i].xingming);
         printf("\n\t\t 地址:%s",emp[i].dizhi);
 printf("\n\t\t 电话:%s",emp[i].dianhua);
 printf("\n\t\t 邮政编码:%s",emp[i].youzhengbianma);
 printf("\n\t\t QQ号码:%s",emp[i].qqhaoma);
         printf("\n\t\t----------------------------------");
 mark++;
 getch();
 return;
  }
}
if(mark==0)
{
printf("\n\t\t没有找到联系人的信息");
    printf("\n\t\t 按任意键返回主菜单");
getch();
return;
}


}



void xiugai_xingming(txl emp[],int &n)
{
char c;
int i,mark=0;
char name[20];
printf("\n\t\t请输入要修改的联系人姓名:");
scanf("%s",name);
if(n==0)
{
printf("\n\t\t文件中无任何联系人");
     
    getchar();
mark++;
    return;
}
for(i=0;i<n;i++)
{
    if(strcmp(emp[i].xingming.name)==0)
{
     printf("\n\t\t以下是您要修改的联系人信息");
     printf("\n\t\t姓名: %s",emp[i].xingming);
     printf("\n\t\t电话号码: %s",emp[i].dianhuahaoma);
     printf("\n\t\t地址: %s",emp[i].dizhi);
     printf("\n\t\t邮政编码:%s",emp[i].youzhengbianma);
     printf("\n\t\tqq号码:%s",emp[i].qqhaoma);
     printf("\n\t\t是否修改(y/n)");
      if(getchar()=='y')
      {
          printf("\n\t------------请选择修改信息---------------");
          printf("\n\t          1-修改姓名             2-修改电话");
          printf("\n\t          3-修改地址             4-修改邮政编码");
          printf("\n\t          5-修改qq号码");

          printf("\n\t-----------------------------------------");
          printf("\n\t请选择您所所要的服务:");
          scanf("%s",&c);
          switch(c)
          {

          case '1': printf("\n\t请输入新姓名:");
          scanf("%s",emp[i].xingming);break;
          case '2':printf("\n\t请输入新电话:");
          scanf("%s",emp[i].dianhuahaoma);break;
          case '3':printf("\n\t请输入新地址:");
          scanf("%s",emp[i].dizhi);break;
          case '4':printf("\n\t请输入新邮政编码:");
          scanf("%s",emp[i].youzhengbianma);break;
          case '5':printf("\n\t请输入新qq号码:");
          scanf("%s",emp[i].qqhaoma);break;
          }

      }

}

}
if (mark==0)
{
printf("\n\t\t没有找到联系人信息");
printf("\n\t是否继续修改?(Y/N):");
if(getchar()=='y')
xiugai_xingming(txl emp[]);
return;
}




void zengjia(txl emp[],int &n)
{
printf("\n\t\t------------------ 请输入联系人信息--------------------\n");
printf("\n\t\t输入联系人姓名:");
scanf("%s",emp[n].xingming);  
printf("\n\t\t输入联系人电话号码:");
scanf("%s",emp[n].dianhua);
printf("\n\t\t输入联系人地址:");
scanf("%s",emp[n].dizhi);
printf("\n\t\t输入联系人邮政编码:");
scanf("%s",emp[n].youzhengbianma);
printf("\n\t\t输入联系人qq号码:");
scanf("%s",emp[n].qqhaoma);
n++;  
printf("\n\t\t是否继续添加联系人?(Y/N):");  
if (getchar()=='y')
    zengjia(txl emp[]);
return;
}




void delect(txl emp[],int &n)          /*删除某人的信息记录*/
{int i,No,j;
 if(n<1)
 {
     printf("没有信息记录!!!");
  return;
 }
  printf("请输入你要删除的人的序号:\n");
  scanf("%d",&No);
 
  for(i=0;i<=n;i++)
{   if(i==NO)
 {
    for(j=i;j<n;j++)
    emp[j]=emp[j+1];
 }   

  }
 n--;
 printf("==================================================================================================\n");
printf("\n\t\t是否继续删除联系人?(Y/N):");  
if (getchar()=='y')
    delect(txl emp[]);
return;
}

void main()
 {int a,n;
txl emp[];
  printf("                     欢迎登陆个人通讯录管理系统!!!\n");
  printf("===================================================================================================\n");
  readfile(emp,n);
 do {
     printf("\n\t\t1.显示\n");
    printf("\t\t\t2.查找联系人\n");
    printf("\t\t\t3.清除记录\n");
    printf("\t\t\t4.增加记录\n");
    printf("\t\t\t5.按照姓名修改联系人\n");
    printf("\t\t\t6.删除记录\n");
    printf("\t\t\t7.存储\n");
    printf("\t\t**************************************\n\n");
        
   
        printf("enter your choice(1~7):");
            scanf("%d",&a);
  
switch(a)
  {case 1:  xianshi(txl emp[],int n) ;break;
   case 2:  chazhao(txl emp[],int n);break;
   case 3: Cleanup(txl emp[],int &n);break;
   case 4: zengjia(txl emp[],int &n) ;break;
   case 5: xiugai_xingming(txl emp[],int &n) ;break;
   case 6: delect(txl emp[],int & n) ;break;
   case 7: SaveFile(txl emp[],int &n);break;
   
  }
 }while(a!=0) ;

  
printf("                               谢谢使用!!!\n");
 printf("=====================================================================================================\n");
 
 
 }
}
2015-04-14 21:52
兜里有糖哦
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-13
收藏
得分:0 
2015-04-15 15:35
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:4 
太长

DO IT YOURSELF !
2015-04-15 15:48
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:4 
错误满篇  自己慢慢调吧

风回小院庭芜绿,柳眼春相续
2015-04-15 16:10
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:4 
超过3处地方出现问题的代码,基本上都是用Ctrl+C/Ctrl+V大法“写”出来的。

授人以渔,不授人以鱼。
2015-04-15 20:27
兜里有糖哦
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2015-4-13
收藏
得分:0 
回复 4楼 纳兰伽香
太桑心了
2015-04-16 20:37
纳兰伽香
Rank: 10Rank: 10Rank: 10
来 自:北京
等 级:贵宾
威 望:10
帖 子:426
专家分:1650
注 册:2015-4-5
收藏
得分:0 
周末我给你调调吧!

风回小院庭芜绿,柳眼春相续
2015-04-16 23:04
诸葛欧阳
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:流年
等 级:贵宾
威 望:82
帖 子:2790
专家分:14619
注 册:2014-10-16
收藏
得分:4 
以下是引用TonyDeng在2015-4-15 20:27:03的发言:

超过3处地方出现问题的代码,基本上都是用Ctrl+C/Ctrl+V大法“写”出来的。

什么打法?

一片落叶掉进了回忆的流年。
2015-04-16 23:16
昨天太近
Rank: 1
等 级:新手上路
帖 子:1
专家分:4
注 册:2015-4-17
收藏
得分:4 
回复 7楼 纳兰伽香
明天能调调吗?我正在尝试读这个大程序,但是我的水平不行,看了好久,还是没有弄好
2015-04-17 19:58
快速回复:创建了一个通讯录管理系统,可是出错,求指教
数据加载中...
 
   



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

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