⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 123.c

📁 C语言课程设计==通讯录 课程设计作业啊
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#define M 50
typedef struct
{
   char name[20];
   char units[30];
   char tele[10];
}ADDRESS;
int enter(ADDRESS t[]);
void list(ADDRESS t[],int n);
void search(ADDRESS t[],int n);
int delete(ADDRESS t[],int n);
int  add(ADDRESS t[],int n);
void save(ADDRESS t[],int n);
int load(ADDRESS t[]);
void print(ADDRESS temp);
int find(ADDRESS t[],int n,char *s) ;
int menu_select();
main()
{
   int i;
   ADDRESS adr[M];
   int length;
   clrscr();
   for(;;)
   {
      switch(menu_select())
      {
         case 0:length=enter(adr);break;
         case 1:list(adr,length);break;
         case 2:search(adr,length);break;
         case 3:length=delete(adr,length);break;
         case 4:length=add(adr,length);  break;
         case 5:save(adr,length);break;
         case 6:length=load(adr); break;
         case 7:exit(0);
      }
   }
}
menu_select()
{
   char s[80];
   int c;
   gotoxy(1,25);
   printf("press any key enter menu......\n");
   getch();
   clrscr();
   gotoxy(1,1);
   printf("********************MENU*********************\n\n");
   printf("                0. Enter record\n");
   printf("                1. List the file\n");
   printf("                2. Search record on name\n");
   printf("                3. Delete a record\n");
   printf("                4. add record \n");
   printf("                5. Save the file\n");
   printf("                6. Load the file\n");
   printf("                7. Quit\n");
   printf("***********************************************\n");
   do{
      printf("\n         Enter you choice(0~7):");
      scanf("%s",s);
      c=atoi(s);
   }while(c<0||c>7);
   return c;
}
int  enter(ADDRESS t[])
{
   int i,n;
   char *s;
   clrscr();
   printf("\nplease input num \n");
   scanf("%d",&n);
   printf("please input record \n");
   printf("name             unit                     telephone\n");
   printf("------------------------------------------------\n");
   for(i=0;i<n;i++)
   {
      scanf("%s%s%s",t[i].name,t[i].units,t[i].tele);
      printf("----------------------------------------------\n");
   }
   return n;
}
void list(ADDRESS t[],int n)
{
   int i;
   clrscr();
   printf("\n\n*******************ADDRESS******************\n");
   printf("name               unit                     telephone\n");
   printf("------------------------------------------------\n");
   for(i=0;i<n;i++)
   printf("%-20s%-30s%-10s\n",t[i].name,t[i].units,t[i].tele);
   if((i+1)%10==0)
   {
      printf("Press any key continue...\n");
      getch();
   }
   printf("************************end*******************\n");
}
void search(ADDRESS t[],int n)
{
   char s[20];
   int i;
   clrscr();
   printf("please search name\n");
   scanf("%s",s);
   i=find(t,n,s);
   if(i>n-1)
      printf("not found\n");
   else
      print(t[i]);
}
void print(ADDRESS temp)
{
   clrscr();
   printf("\n\n********************************************\n");
   printf("name                unit                      telephone\n");
   printf("------------------------------------------------\n");
   printf("%-20s%-30s%-10s\n",temp.name,temp.units,temp.tele);
   printf("**********************end***********************\n");
}
int find(ADDRESS t[],int n,char *s)
{
   int i;
   for(i=0;i<n;i++)
   {
      if(strcmp(s,t[i].name)==0)
      return i;
   }
   return i;
}
int delete(ADDRESS t[],int n)
{
   char s[20];
   int ch=0;
   int i,j;
   printf("please deleted name\n");
   scanf("%s",s);
   i=find(t,n,s);
   if(i>n-1)
      printf("no found not deleted\n");
   else
   {
      print(t[i]);
      printf("Are you sure delete it(1/0)\n");
      scanf("%d",&ch);
      if(ch==1)
      {
         for(j=i+1;j<n;j++)
         {
            strcpy(t[j-1].name,t[j].name);
            strcpy(t[j-1].units,t[j].units);
            strcpy(t[j-1].tele,t[j].tele);
         } 
   n--;
      }
   }
   return n;
}
int add(ADDRESS t[],int n)
{
   ADDRESS temp;
   int i,j;
   char s[20];
   printf("please input record\n");
   printf("************************************************\n");
   printf("name                unit                      telephone\n");
   printf("--------------------------------------------------\n");
   scanf("%s%s%s",temp.name,temp.units,temp.tele);
   printf("------------------------------------------------\n");
   printf("please input locate name \n");
   scanf("%s",s);
   i=find(t,n,s);
   for(j=n-1;j>=i;j--)
   {
      strcpy(t[j+1].name,t[j].name);
      strcpy(t[j+1].units,t[j].units);
      strcpy(t[j+1].tele,t[j].tele);
   }
   strcpy(t[i].name,temp.name);
   strcpy(t[i].units,temp.units);
   strcpy(t[i].tele,temp.tele);
   n++;
   return n;
}
void save(ADDRESS t[],int n)
{
   int i;
   FILE *fp;
   if((fp=fopen("addrbook","wb"))==NULL)
   {
      printf("can not open file\n");
      exit(1);
   }
   printf("\nSaving file\n");
   fprintf(fp,"%d",n);
   fprintf(fp,"\r\n");
   for(i=0;i<n;i++)
   {
      fprintf(fp,"%-20s%-30s%-10s",t[i].name,t[i].units,t[i].tele);
      fprintf(fp,"\r\n");
   }
   fclose(fp);
   printf("****save success***\n");
}
int load(ADDRESS t[])
{
   int i,n;
   FILE *fp;
   if((fp=fopen("addrbook","rb"))==NULL)
   {
      printf("can not open file\n");
      exit(1);
   }
   fscanf(fp,"%d",&n);
   for(i=0;i<n;i++)
      fscanf(fp,"%20s%30s%10s",t[i].name,t[i].units,t[i].tele);
   fclose(fp);
   printf("You have success read data from file!!!\n");
   return n;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -