C语言课设之电话查询系统。


#include<stdio.h>     /* 标准输入 /输出头文件 */
#include<string.h>    /* 包含字符串处理函数头文件 */ 
#include<stdlib.h>    /* 包含动态储存与释放函数头文件 */
#include<conio.h>     /*包含绘制图形函数等头文件(包括getch()函数)*/
struct pho_book
{
 long int num;       /*电话号码*/
 char name[20];     
 char work[10];      /*工作单位*/
 char company[20];   /*公司名称*/
 char addr[50];       /*公司地址*/
};
void input();            /*录入模块*/
void pnodeadd();         /*个人信息节点添加*/
void cnodeadd();         /*公司信息节点添加 */
void modify();           /*修改模块*/
void pnodemodify();       /*个人信息节点修改*/
void cnodemodify();       /*公司信息节点修改*/
void del();               /*删除模块*/ 
void pnodedel();          /*个人信息节点删除*/
void cnodedel();          /*公司信息节点删除*/
void pnodesearch();       /*个人信息节点查找*/
void cnodesearch();       /*公司信息节点查找*/
void admin();             /*管理员登录函数*/
void guest();             /*客人登录函数*/
void main() 
{  
 
        char message[]={"                  ★   电话查询系统使用说明   ★                               /n"
                  "           本系统是一个电话号码簿,供客人查询电话号码。                              /n"
         "    管理员可以录入、修改、删除电话号码信息;客人只能进行查询。                /n"
                                              
            "                      欢迎你来使用电话查询系统!                            /n"   }; 
 
        char menu[]={"        *1. admin entry                         /n"
                  "        *2. guest entry                         /n"
               "       *0. quit  entry                         /n"};
          int sel;
    printf("%s ",message);   
    printf("按任意键进入主菜单:");
    getch();
    do
    {   system("color 46");      
     system("cls");
        printf("%s",menu);
     printf("请在1-2之间选择登录方式,选择0退出系统:/n");
     scanf("%d",&sel);
     switch(sel)
     {  
        case 1:  admin();
      break;
       
     case 2:   guest( );
         break;
     case 0:
      printf("           ★   See You !  ★    /n");
     break;
     }
    }while(sel!=0); 
}
void admin()
{  
 int m,password;
    password='258';
 printf("请输入密码:/n");
 scanf("%d",&m);
  while(m!=258)
  {
      printf("密码错误!请重新输入:/n");
  
     scanf("%d",&m);
  
  }
  printf("成功登录!/n");
        printf("按任意键进入菜单:/n");
  getch();
       char menu1[]={"  *1.input information       /n"
                "  *2.modify information      /n"
       "  *3.delete information       /n"
       "  *0.quit                 /n"
 
    };
    int sel1;
  do
  {   system("cls");
      system("color 2");
      printf("%s",menu1);
   printf("请在1-3之间选择所要的操作的类型,选择0退出系统:");
      scanf("%d",&sel1);
   switch(sel1)
   {
      case 1:    input();
                break;
      case 2:    modify();
               break;
               case 3:    del();
               break;
               case 0:   
       printf(" ★See You Next Time! ★ /n");
              break;
   }
  }while(sel1!=0);
 
}
void guest()
{
 printf("                 ★欢迎您查询电话号码!★             /n");
 printf("*************请选择所查号码类型!");
 printf("按任意键进入选择菜单!*************/n");
    getch();
    char menu2[]={"       *1.单位号码                /n"
                 "       *2.私人号码                /n"
        "       *0.返回上一菜单           /n"
    };
    int sel2;
    do
    {
     system("cls");
     system("color 14");
     printf("%s",menu2);
       scanf("%d",&sel2);
    switch(sel2)
    {
      case 1:  cnodesearch();
            break;
      case 2:  pnodesearch();
           break;
      case 0:
       printf("Back to the previous menu!/n");
       break;
    }
    }while(sel2!=0);
}
void input()
{      
    char menu3[]={"        *1. 公司电话信息添加                        /n"
            "        *2. 个人电话信息添加                          /n"
         "     *0. 返回上一菜单                       /n"     
 };
 int sel3;
   do
   {       printf("%s",menu3);
     printf("请在1-2之间选择,选择0返回上一菜单:/n");
     scanf("%d",&sel3);
     switch(sel3)
    {
      case 1: cnodeadd();
          break;
      case 2:  pnodeadd();
           break;
      case 0:
       printf("Back to the previous menu!/n");
       break;
    }
    }while(sel3!=0);
}
void modify()
{
 char menu4[]={"        *1. 公司电话信息修改                        /n"
            "        *2. 个人电话信息修改                        /n"
         "     *0. 返回上一菜单                       /n"     
 };
 int sel4;
         printf("按任意键确定:");
      getch();
   do
   {       printf("%s",menu4);
     printf("请在1-2之间选择,选择0返回上一菜单:/n");
     scanf("%d",&sel4);
     switch(sel4)
    {
      case 1: cnodemodify();
          break;
      case 2:  pnodemodify();
           break;
      case 0:
       printf("Back to the previous menu!/n");
       break;
    }
    }while(sel4!=0);
}
void del()
{
   char menu5[]={"        *1. 公司电话信息删除                       /n"
            "        *2. 个人电话信息删除                        /n"
         "     *0. 返回上一菜单                       /n"     
 };
 int sel5;
         printf("按任意键确定:");
      getch();
   do
   {       printf("%s",menu5);
     printf("请在1-2之间选择,选择0返回上一菜单:/n");
     scanf("%d",&sel5);
     switch(sel5)
    {
      case 1: cnodedel();
          break;
      case 2:  pnodedel();
           break;
      case 0:
       printf("Back to the previous menu!/n");
       break;
    }
    }while(sel5!=0);
}
void cnodeadd()
{
 FILE *fp;
    pho_book bk[700];
 int i=0,c;
 if((fp=fopen("c://companyhaoma.txt","a"))==NULL)
 {
   printf("/nerror on opening company file");
   return;
 }
       printf("/n要添加几条记录(填整数)?");
         scanf("%d",&c);
          
   for(i=0;i<c;i++)
   {
    printf("/n输入公司名称:");
     scanf("%s",&bk[i].company);
    printf("/n输入公司地址:");
      scanf("%s",&bk[i].addr);
    printf("/n输入电话号码:");
    scanf("%ld",&bk[i].num);
             fprintf(fp,"%s/n",bk[i].company);
    fprintf(fp,"%s/n",bk[i].addr);
    fprintf(fp,"%ld /n",bk[i].num);
 
   
   }
  fclose(fp);
}
void pnodeadd()

 FILE *fp;
    pho_book bk[700];
 int i=0,c;
 if((fp=fopen("c://privatehaoma.txt","a"))==NULL)
 {
   printf("/nerror on opening guest file");
  return;
 }
       printf("/n要添加几条记录(填整数)?");
         scanf("%d",&c);
          
   for(i=0;i<c;i++)
   {
    printf("/n输入姓名:");
     scanf("%s",&bk[i].name);
    printf("/n输入工作单位:");
      scanf("%s",&bk[i].work);
    printf("/n输入电话号码:");
    scanf("%ld",&bk[i].num);
 
 
        fprintf(fp,"%s/n",bk[i].name);
     fprintf(fp,"%s/n",bk[i].work);
       fprintf(fp,"%ld/n",bk[i].num);
 
   }
  fclose(fp);
}
void cnodemodify()
{   FILE *fp;
 struct pho_book bk[500];
 struct pho_book bkt;
 int i,sf,s,ii=0,it;
 char sear[100];
 char temp[100];
       if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
    {
   printf("/n error on opening company file");
   exit(1);
 
    }
 while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
 {
  strcpy(bk[ii].company,bkt.company);
        strcpy(bk[ii].addr,bkt.addr);
  ii++;
 }
 fclose(fp);
 it=ii;
cc:
 printf("/n1公司名称/n2公司地址/n3电话号码 你要修改什么?");
    scanf("%d",&s);
 if(s==1)
 { 
  printf("/n请输入要查的公司名称:");
        scanf("%s",&sear);
 }else if(s==2){
  printf("/n请输入要查的公司地址:");
        scanf("%s",&sear);
 }else if(s==3){
  printf("/n请输入要查的电话号码");
  scanf("%ld",&sear);
    printf("/n公司名称:/t公司地址:/t电话号码");
 i=0;
 ii=0;
 for(;ii<it;ii++)
 {
         if(s==1)
    {  
       if(!strcmp(bk[ii].company,sear))
    {
             printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
          i++;
          printf("/n请输入修改后的公司名称:");
          scanf("%s",&temp);
          strcpy(bk[ii].company,temp);
    }
    }
      if(s==2)
   {
       if(!strcmp(bk[ii].addr,sear))
   {
            printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
          i++;
          printf("/n请输入修改后的公司地址:");
          scanf("%s",&temp);
         strcpy(bk[ii].addr,temp);
   }
   }
 }
      if(i==0)
   {
        printf("/n对不起!没有你要找的数据");
   }else
   {   if((fp=fopen("c://companyhaoma.txt","wb"))==NULL)
  
        printf("/nerro on opening company file");
    exit(0);
 
         for(ii=0;ii<it;ii++)
             fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
          printf("/n修改完成!.");
          fclose(fp);
   }
       printf("继续修改(1/0)?");
          scanf("%d",&sf);
       if(sf==1)
       goto cc;
 }

}
void pnodemodify()
{
 FILE *fp;
 struct pho_book bk[500];
 struct pho_book bkt;
 int i,sf,s,ii=0,it;
 char sear[100];
 char temp[100];
       if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
    {
   printf("/n erro on opening private file");
   exit(0);
 
    }
    while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
    {
   strcpy(bk[ii].company,bkt.company);
         strcpy(bk[ii].addr,bkt.addr);
   ii++;
    }
    fclose(fp);
    it=ii;
cc:
     printf("/n1姓名/n2工作单位/n3电话号码 你要修改什么?");
        scanf("%d",&s);
    if(s==1)
    {
   printf("/n请输入要查的姓名:");
         scanf("%s",&sear);
    }else if(s==2){
   printf("/n请输入要查的工作单位:");
         scanf("%s",&sear);
    }else if(s==3){
  printf("/n请输入要查的电话号码");
  scanf("%ld",&sear);
       printf("/n姓名:/t工作单位:/t电话号码");
     i=0;
     ii=0;
    for(;ii<it;ii++)
    {
         if(s==1)
    {  
       if(!strcmp(bk[ii].company,sear))
    {
             printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
          i++;
          printf("/n请输入修改后的姓名:");
          scanf("%s",&temp);
          strcpy(bk[ii].company,temp);
    }
    }
      if(s==2)
   {
       if(!strcmp(bk[ii].addr,sear))
   {
            printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
          i++;
          printf("/n请输入修改后的工作单位:");
          scanf("%s",&temp);
         strcpy(bk[ii].addr,temp);
   }
   }
 }
      if(i==0)
   {
        printf("/n对不起!没有你要找的数据");
   }else
   {   if((fp=fopen("c://haoma.txt","wb"))==NULL)
  
        printf("/nerro on opening target file");
    exit(0);
 
         for(ii=0;ii<it;ii++)
             fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
          printf("/n修改完成!.");
          fclose(fp);
   }
          printf("继续修改(1/0)?");
             scanf("%d",&sf);
          if(sf==1)
           goto cc;
    }
}
void cnodedel()
{
    FILE *fp;
 struct pho_book bk[700];
 struct pho_book bkt;
 int i,sf,s,ii=0,it,cv;
 char sear[100];
    if((fp=fopen("c://haoma.txt","rb"))==NULL){
   printf("/nERROR oening customet file");
   exit(0);
  }
 while((fread(&bkt,sizeof(struct pho_book),1,fp))==1)
 {
  strcpy(bk[ii].company,bkt.company);
        strcpy(bk[ii].addr,bkt.addr);
  ii++;
 }
 fclose(fp);
 it=ii;
cc:
 printf("/n1公司名称/n2公司地址/n你要查找那一条记录来删除?");
    scanf("%d",&s);
 if(s==1)
 {
  printf("/n请输入要查的公司名称:");
        scanf("%s",&sear);
 }else if(s==2){
  printf("/n请输入要查的公司地址:");
        scanf("%s",&sear);
 }
    printf("/n公司名称:/t公司地址:");
 i=0;
 ii=0;
 for(;ii<it;ii++)
{
   if(s==1)
 {  
  if(!strcmp(bk[ii].name,sear))
  {
       printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
    i++;
    printf("确定要删除吗(1/0)?");
    scanf("%d",&cv);
    for(;ii<it;ii++)
    {
     if(ii==it-1)
     break;
       strcpy(bk[ii].company,bk[ii+1].company);
    strcpy(bk[ii].addr,bk[ii+1].addr);
    }
  }
 }
 if(s==2)
 {
  if(!strcmp(bk[ii].company,sear))
  {
      printf("/n%s/t%s/t",bk[ii].company,bk[ii].addr);
   i++;
   printf("/n确定要删除吗(1/0)?");
   scanf("%d",&cv);
   if(cv==1)
   for(;ii<it;ii++)
    {
     if(ii==it-1)
     break;
       strcpy(bk[ii].company,bk[ii+1].company);
    strcpy(bk[ii].addr,bk[ii+1].addr);
    }
  }
 }
 }
 if(i==0){
  printf("/n对不起!没有你要找的数据");
 }else
 {  if((fp=fopen("c://haoma.txt","wb"))==NULL)
 {
   printf("/nERROR oening customet file");
   exit(0);
 }
 for(ii=0;ii<it-1;ii++)
    fwrite(&bk[ii],sizeof(struct pho_book),1,fp);
  printf("/n该记录已被删除!.");
  fclose(fp);
 }
 printf("继续删除(1/0)?");
 scanf("%d",&sf);
 if(sf==1)
 goto cc; 
}
void pnodedel()
{
}
void pnodesearch()
{
 FILE *fp;
 char c;
 if((fp=fopen("c://privatehaoma.txt","r+"))==NULL)
 {  
  printf("Cannot open file strike any key exit!");
  getchar();
  exit(1);
 }
 c=fgetc(fp);
 while(c!=EOF)
 {
  putchar(c);
  c=fgetc(fp);
 }
 system("pause");
 fclose(fp);
 
}
void cnodesearch()
{
 FILE *fp;
 char c;
 if((fp=fopen("c://companyhaoma.txt","r+"))==NULL)
 {  
  printf("Cannot open file strike any key exit!");
  getchar();
  exit(1);
 }
 c=fgetc(fp);
 while(c!=EOF)
 {
  putchar(c);
  c=fgetc(fp);
 }
 system("pause");
 fclose(fp);
}
此系统存在缺陷,只是实现了信息的录入和打印输出。希望有时间用数据结构的知识解决
智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
China Scenic Area
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告