通讯录工程的构建(三)

对通讯录的操作都已经实现了,但前提是已经有一个通讯录了。那么第一次进入的时候我们需要建立一个通讯录,让前面的主程序读取。于是就有了这个“安装程序”,第一次运行通讯录前,让用户运行这个程序,将 数据,file_name,len 存入相应文件。

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct stu
{
    int num;
    char name[20],tel[13],email[30];
    char sort;
    char yn;
    struct stu *next;
};


main()
{
    FILE *in,*f_name,*ll;
    char fname[50],ch;
    struct stu stud[15],ss[15];
    int i,len=0;

    loop:printf("\nplease enter the number of contacts :");
    scanf("%d",&len);
    if(len>15)
    {
        printf("\n*  The number should be less than 15\n");
        goto loop;
    }

    puts("\n\n*   Tips: when you enter 'sort' information, 'a' means official, 'b' means personal, 'c' means commercial   *\n");

    printf("\n\n     *******************   Enter information   *******************\n\n");

    for(i=0;i<len;i++)
    {
        printf("\t\tname:  ");
        scanf("%s",stud[i].name);

        printf("\t\ttel :  ");
        scanf("%s",stud[i].tel);

        printf("\t\tsort:  ");
        getchar();
        stud[i].sort=getchar();
        getchar();


        printf("\n\t\temail: ");
        scanf("%s",stud[i].email);
        puts("\n");
    }

    if((in=fopen("D:\\telbook.dat","wb"))==NULL)
    {
        puts("cannot open the file");
        exit (0);
    }

    for(i=0;i<len;i++)
        fwrite(&stud[i],sizeof(struct stu),1,in);

    fclose(in);

    if((f_name=fopen("D:\\file_name.dat","wb"))==NULL)
    {
        puts("cannot open the file");
        exit (0);
    }

    rewind(f_name);

    fputs("D:\\telbook.dat",f_name);                                                         // note filename

    fclose(f_name);

    if((in=fopen("D:\\len.dat","wb"))==NULL)
    {
        puts("cannot open the file");
        exit(0);
    }

    rewind(in);

    fputc(len,in);

    fclose(in);

    //check

    puts("\n\nCheck");


    if((in=fopen("D:\\telbook.dat","rb"))==NULL)
    {
        puts("cannot open the file");
        exit (0);
    }

    for(i=0;i<len;i++)
        fread(&ss[i],sizeof(struct stu),1,in);

    fclose(in);

    if((f_name=fopen("D:\\file_name.dat","rb"))==NULL)
    {
        puts("cannot open the file");
        exit (0);
    }

    fgets(fname,49,f_name);                                                         // note filename

    fclose(f_name);

    printf("\n\nfile name : %s\n\n\n",fname);

    for(i=0;i<len;i++)
    {
        printf("\t\tname: %s\n",ss[i].name);


        printf("\t\ttel : %s\n",ss[i].tel);

        printf("\t\tsort: %c",ss[i].sort);



        printf("\n\t\temail: %s",ss[i].email);
        puts("\n");
    }

    if((ll=fopen("D:\\len.dat","rb"))==NULL)
    {
        puts("cannot open the file len");
        exit(0);
    }

    rewind(ll);

    ch=fgetc(ll);

    fclose(ll);

    printf("\n\nsaved len : %d\n",ch);

    //check end

}

 

posted @ 2015-06-06 08:44  Numerz  阅读(296)  评论(0编辑  收藏  举报