Yahoo奇摩知識+ 將於 2021 年 5 月 4 日 (美國東部時間) 終止服務。自 2021 年 4 月 20 日 (美國東部時間) 起,Yahoo奇摩知識+ 網站將會轉為唯讀模式。其他 Yahoo奇摩產品與服務或您的 Yahoo奇摩帳號都不會受影響。如需關於 Yahoo奇摩知識+ 停止服務以及下載您個人資料的資訊,請參閱說明網頁。

匿名使用者
匿名使用者 發問時間: 電腦與網際網路程式設計 · 1 0 年前

c語言~~怎麼編譯不暸?60點 6/14中午前 part2

第二部份如下

/*選擇性結構 - 每種case分別代表選單的功能1.2.3.4*/

switch (ch)

{

case 1:

add(data);

printf("\n");

break;

case 2:

read(data);

printf("\n");

break;

case 3:

read(data);

print(data,num);

printf("\n");

break;

case 4:

read(data);

search(data,num);

printf("\n");

break;

case 5:

exit(0);

printf("\n");

break;

default;

break;

}

}

}

}

int read(struct book data[256])

{

FILE *fp;

int i=1,num;

fp=fopen("bookdata.txt","r");

while(!feof(fp))

{

fscanf(fp,"%5",data[i].subject);

fscanf(fp,"%5",data[i].title);

fscanf(fp,"%5",data[i].author);

fscanf(fp,"%5",data[i].publisher);

i++;

};

num=i-1;

fclose(fp);

return num;

}

/*功能1 - 新增圖書資料*/

void print(struct book data[256],int num)

{

int p,count=0;

printf("種類\t\t出版社\t\t\t作者\t\t\t\t書名\n\n");

for(p=0;p,num;p++)

{

printf("%-5s\t%-20s\t%-30s\t%-10s",data[p].subject,data[p].publisher,data[p].author,data[p].title);

printf("\n");

count=count+1;

}

printf("共%d筆資料\n\n",count);

}

void add(struct book data[256])

{

struct book addedbook;

FILE *fp;

int i;

printf("請輸入種類:");

scanf("%s",&addebook.subject);

printf("請輸入出版社:\n");

scanf("%s",&addebook.publisher);

printf("請輸入作者:\n");

scanf("%s",addebook.&author);

printf("請輸入書名:\n");

scanf("%s",addebook.&title);

fp=fopen("bookdata.txt","a");

fprintf(fp,"\n%s %s %s %s",addebook.subject,addebook.publisher,addebook.author,addebook.title);

fclose(fp);

printf("%s這本書已經新增到你的資料庫中\n",name);

}

因為實在太多了..

分成三帖

共60點喔

2 個解答

評分
  • ?
    Lv 5
    1 0 年前
    最佳解答

    既然只是要編譯, 就只修改到能編譯為止, 程式邏輯部分, 匿名大自己加油吧!!

    /*選擇性結構 - 每種case分別代表選單的功能1.2.3.4*/

    switch (ch)

    {

    case 1:

    add(data);

    printf("\n");

    break;

    case 2:

    read(data);

    printf("\n");

    break;

    case 3:

    read(data);

    print(data,num);

    printf("\n");

    break;

    case 4:

    read(data);

    search(data,num);

    printf("\n");

    break;

    case 5:

    exit(0);

    printf("\n");

    break;

    default:

    break;

    }

    }

    }

    return 0;

    }

    int read(struct book data[256])

    {

    FILE *fp;

    int i=1,num;

    fp=fopen("bookdata.txt","r");

    while(!feof(fp))

    {

    fscanf(fp,"%5",data[i].subject);

    fscanf(fp,"%5",data[i].title);

    fscanf(fp,"%5",data[i].author);

    fscanf(fp,"%5",data[i].publisher);

    i++;

    };

    num=i-1;

    fclose(fp);

    return num;

    }

    /*功能1 - 新增圖書資料*/

    void print(struct book data[256],int num)

    {

    int p,count=0;

    printf("種類\t\t出版社\t\t\t作者\t\t\t\t書名\n\n");

    for(p=0;p,num;p++)

    {

    printf("%-5s\t%-20s\t%-30s\t%-10s",data[p].subject,data[p].publisher,data[p].author,data[p].title);

    printf("\n");

    count=count+1;

    }

    printf("共%d筆資料\n\n",count);

    }

    void add(struct book data[256])

    {

    struct book addebook;

    FILE *fp;

    int i;

    printf("請輸入種類:");

    scanf("%s",addebook.subject);

    printf("請輸入出版社:\n");

    scanf("%s",addebook.publisher);

    printf("請輸入作者:\n");

    scanf("%s",addebook.author);

    printf("請輸入書名:\n");

    scanf("%s",addebook.title);

    fp=fopen("bookdata.txt","a");

    fprintf(fp,"\n%s %s %s %s",addebook.subject,addebook.publisher,addebook.author,addebook.title);

    fclose(fp);

    printf("%s 這本書已經新增到你的資料庫中\n",addebook.title);

    }

    2009-06-14 03:34:58 補充:

    case 2:

    num=read(data);

    printf("\n");

    break;

    case 3:

    num=read(data);

    print(data,num);

    printf("\n");

    break;

    case 4:

    num=read(data);

    search(data,num);

    printf("\n");

    break;

    參考資料: , num 的值或許是由read()所傳回. 所以要設定.
  • 匿名使用者
    7 年前

    【亞洲36588合法彩券公司直營 官網: A36588.NET 】

    【 最新活動→迎接新會員,首存狂送20% 】

    【運動→電子→對戰→現場→彩球 】

    【免費服務 →電影區、討論區、KTV歡唱、運動轉播、即時比分、24H客服 】

    【亞洲36588合法彩券公司直營 官網: A36588.NET 】

還有問題?馬上發問,尋求解答。