< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> < 26> < 27> < 28> < 29> < 30> < 31> < 32> < 33> < 34> < 35> < 36> < 37> < 38> < 39> < 40> < 41> < 42> < 43> < 44> < 45> < 46> < 47> < 48> < 49> < 50> < 51> < 52> < 53> < 54> < 55> < 56> < 57> < 58> < 59> < 60> < 61> < 62> < 63> < 64> < 65> < 66> < 67> < 68> < 69> < 70> < 71> < 72> < 73> < 74> < 75> < 76> < 77> < 78> < 79> < 80> < 81> < 82> < 83> < 84> < 85> < 86> < 87> < 88> < 89> < 90> < 91> < 92> < 93> < 94> < 95> < 96> < 97> < 98> < 99> <100> <101> <102> <103> <104> <105> <106> <107> <108> <109> <110> <111> <112> <113> <114> <115> <116> <117> <118> <119> <120> <121> <122> <123> <124> <125> <126> <127> <128> <129> <130> <131> <132> <133> <134> <135> <136> <137> <138> <139> <140> <141> <142> <143> <144> <145> <146> <147> <148> <149> <150> <151> <152> <153> <154> <155> <156> <157> <158> <159> <160> <161> <162> <163> <164> <165> <166> <167> <168> <169> <170> <171> <172> <173> <174> <175> <176> <177> <178> <179> <180> <181> <182> <183> <184> <185> <186> <187> <188> <189> | #include <string.h> void ViewBookList(const char *shelfname,const char booknames[20][32],const int readcnts[20]){ /**************************** 本棚の内容を表示します。 const char *shelfname:本棚の名前 const char booknames[20][32]:本棚の書名の配列 const int readcnts[20]:本棚の読んだ数の配列 ****************************/ int i,freecnt=0; printf("本棚名:%s\n%32s 読数\n",shelfname,"書名"); for(i=0;i<20;i++){ if(booknames[i][0]!='\0')printf("%32s:%4d\n",booknames[i],readcnts[i]); else freecnt++; } printf("あと%d冊収納することができます。\n\n",freecnt); } int AddBook(const char *shelfname,char booknames[20][32],int readcnts[20],const char *bookname,int newreadcnt){ /************************* 本棚に本を入れる 戻り値:入れられた場合1、入れられない場合0 const char *shelfname:本棚の名前 char booknames[20][32]:[入出力]本を入れる本棚の書名の配列 int readcnts[20]:[入出力]本を入れる本棚の読んだ数の配列 const char *bookname:新しく入れる本の書名 int newreadcnt:新しく入れる本の読んだ数 *************************/ int i,len; len=strlen(bookname); if((len==0)||(len>=31)){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(booknames[i][0]=='\0'){ strcpy(booknames[i],bookname); readcnts[i]=newreadcnt; printf("「%s」の本棚に「%s」を入れました。\n",shelfname,bookname); return 1; } } puts("本棚がいっぱいです。"); return 0; } int RemoveBook(const char *shelfname,char booknames[20][32],const char *bookname){ /************************* 本棚から本を出す(本棚から消す) 戻り値:出した場合1、出せない場合0 const char *shelfname:本棚の名前 char booknames[20][32]:[入出力]本を出す本棚の書名の配列 const char *bookname:出す本の書名 *************************/ int i; if(bookname[0]=='\0'){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(!strcmp(booknames[i],bookname)){ booknames[i][0]='\0'; printf("「%s」の本棚から「%s」を出しました。\n",shelfname,bookname); return 1; } } printf("「%s」の本棚には「%s」がありません。\n",shelfname,bookname); return 0; } int ReadBook(const char *shelfname,const char booknames[20][32],int readcnts[20],const char *bookname){ /**************************** 本棚の本を読みます。(読んだ数を+1します) 戻り値:読んだ数を増やせた場合は1、増やせなかった場合は0 const char *shelfname:本棚の名前 const char booknames[20][32]:本棚の書名の配列 int readcnts[20]:[入出力]本棚の読んだ数の配列 const char *bookname:本の名前 ****************************/ int i; if(bookname[0]=='\0'){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(!strcmp(booknames[i],bookname)){ readcnts[i]++; printf("「%s」の本棚にある「%s」を読みました。\n",shelfname,bookname); return 1; } } printf("「%s」の本棚には「%s」がありません。\n",shelfname,bookname); return 0; } void ResetBookList(char booknames[20][32],int readcnts[20]){ /************* 本棚を初期化します char booknames[20][32]:[出力]本棚の書名の配列 int readcnts[20]:[出力]本棚の読んだ数の配列 *************/ int i; for(i=0;i<20;i++){ booknames[i][0]='\0'; readcnts[i]=0; } } int main(void){ char listname[3][32]; char booknames[3][20][32]; int readcnts[3][20]; int i; strcpy(listname[0],"寿司ネタ"); strcpy(listname[1],"教科書"); strcpy(listname[2],"色"); for(i=0;i<3;i++)ResetBookList(booknames[i],readcnts[i]); for(i=0;i<3;i++)ViewBookList(listname[i],booknames[i],readcnts[i]); getchar(); AddBook(listname[0],booknames[0],readcnts[0],"タマゴ",1); AddBook(listname[0],booknames[0],readcnts[0],"マグロ",3); AddBook(listname[0],booknames[0],readcnts[0],"タイ",5); AddBook(listname[0],booknames[0],readcnts[0],"うに",7); AddBook(listname[0],booknames[0],readcnts[0],"とろ",9); AddBook(listname[1],booknames[1],readcnts[1],"国語",1); AddBook(listname[1],booknames[1],readcnts[1],"算数",3); AddBook(listname[1],booknames[1],readcnts[1],"理科",5); AddBook(listname[1],booknames[1],readcnts[1],"社会",7); AddBook(listname[1],booknames[1],readcnts[1],"情報",9); AddBook(listname[2],booknames[2],readcnts[2],"赤",1); AddBook(listname[2],booknames[2],readcnts[2],"白",3); AddBook(listname[2],booknames[2],readcnts[2],"黄色",5); AddBook(listname[2],booknames[2],readcnts[2],"青",7); AddBook(listname[2],booknames[2],readcnts[2],"紫",9); for(i=0;i<3;i++)ViewBookList(listname[i],booknames[i],readcnts[i]); getchar(); RemoveBook(listname[0],booknames[0],"タマゴ"); RemoveBook(listname[0],booknames[0],"とろ"); RemoveBook(listname[0],booknames[0],"赤"); RemoveBook(listname[1],booknames[1],"社会"); RemoveBook(listname[1],booknames[1],"赤"); RemoveBook(listname[2],booknames[2],"白"); RemoveBook(listname[2],booknames[2],"紫"); RemoveBook(listname[2],booknames[2],"赤"); for(i=0;i<3;i++)ViewBookList(listname[i],booknames[i],readcnts[i]); getchar(); ReadBook(listname[0],booknames[0],readcnts[0],"マグロ"); ReadBook(listname[0],booknames[0],readcnts[0],"とろ"); ReadBook(listname[1],booknames[1],readcnts[1],"情報"); ReadBook(listname[2],booknames[2],readcnts[2],"青"); ReadBook(listname[2],booknames[2],readcnts[2],"青"); for(i=0;i<3;i++)ViewBookList(listname[i],booknames[i],readcnts[i]); getchar(); return 0; } |
< 1> < 2> < 3> < 4> < 5> < 6> < 7> < 8> < 9> < 10> < 11> < 12> < 13> < 14> < 15> < 16> < 17> < 18> < 19> < 20> < 21> < 22> < 23> < 24> < 25> < 26> < 27> < 28> < 29> < 30> < 31> < 32> < 33> < 34> < 35> < 36> < 37> < 38> < 39> < 40> < 41> < 42> < 43> < 44> < 45> < 46> < 47> < 48> < 49> < 50> < 51> < 52> < 53> < 54> < 55> < 56> < 57> < 58> < 59> < 60> < 61> < 62> < 63> < 64> < 65> < 66> < 67> < 68> < 69> < 70> < 71> < 72> < 73> < 74> < 75> < 76> < 77> < 78> < 79> < 80> < 81> < 82> < 83> < 84> < 85> < 86> < 87> < 88> < 89> < 90> < 91> < 92> < 93> < 94> < 95> < 96> < 97> < 98> < 99> <100> <101> <102> <103> <104> <105> <106> <107> <108> <109> <110> <111> <112> <113> <114> <115> <116> <117> <118> <119> <120> <121> <122> <123> <124> <125> <126> <127> <128> <129> <130> <131> <132> <133> <134> <135> <136> <137> <138> <139> <140> <141> <142> <143> <144> <145> <146> <147> <148> <149> <150> <151> <152> <153> <154> <155> <156> <157> <158> <159> <160> <161> <162> <163> <164> <165> <166> <167> <168> <169> <170> <171> <172> <173> <174> <175> <176> <177> <178> <179> <180> <181> <182> <183> <184> <185> <186> <187> <188> <189> <190> <191> <192> | #include <string.h> typedef struct{ char shelfname[32]; char booknames[20][32]; int readcnts[20]; }Bookshelf; void ViewBookList(const Bookshelf *shelf){ /**************************** 本棚の内容を表示します。 const Bookshelf *shelf:本棚オブジェクトへのポインタ ****************************/ int i,freecnt=0; printf("本棚名:%s\n%32s 読数\n",shelf->shelfname,"書名"); for(i=0;i<20;i++){ if(shelf->booknames[i][0]!='\0'){ printf("%32s:%4d\n",shelf->booknames[i],shelf->readcnts[i]); } else freecnt++; } printf("あと%d冊収納することができます。\n\n",freecnt); } int AddBook(Bookshelf *shelf,const char *bookname,int newreadcnt){ /************************* 本棚に本を入れる 戻り値:入れられた場合1、入れられない場合0 Bookshelf *shelf:[入出力]本を入れる本棚オブジェクトへのポインタ const char *bookname:新しく入れる本の書名 int newreadcnt:新しく入れる本の読んだ数 *************************/ int i,len; len=strlen(bookname); if((len==0)||(len>=31)){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(shelf->booknames[i][0]=='\0'){ strcpy(shelf->booknames[i],bookname); shelf->readcnts[i]=newreadcnt; printf("「%s」の本棚に「%s」を入れました。\n",shelf->shelfname,bookname); return 1; } } puts("本棚がいっぱいです。"); return 0; } int RemoveBook(Bookshelf *shelf,const char *bookname){ /************************* 本棚から本を出す(本棚から消す) 戻り値:出した場合1、出せない場合0 Bookshelf *shelf:[入出力]本を出す本棚オブジェクトへのポインタ const char *bookname:出す本の書名 *************************/ int i; if(bookname[0]=='\0'){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(!strcmp(shelf->booknames[i],bookname)){ shelf->booknames[i][0]='\0'; printf("「%s」の本棚から「%s」を出しました。\n",shelf->shelfname,bookname); return 1; } } printf("「%s」の本棚には「%s」がありません。\n",shelf->shelfname,bookname); return 0; } int ReadBook(Bookshelf *shelf,const char *bookname){ /**************************** 本棚の本を読みます。(読んだ数を+1します) 戻り値:読んだ数を増やせた場合は1、増やせなかった場合は0 Bookshelf *shelf:[入出力]読む本が入っている本棚オブジェクトへのポインタ const char *bookname:本の名前 ****************************/ int i; if(bookname[0]=='\0'){ puts("書名が無効です。"); return 0; } for(i=0;i<20;i++){ if(!strcmp(shelf->booknames[i],bookname)){ shelf->readcnts[i]++; printf("「%s」の本棚にある「%s」を読みました。\n",shelf->shelfname,bookname); return 1; } } printf("「%s」の本棚には「%s」がありません。\n",shelf->shelfname,bookname); return 0; } void ResetBookList(Bookshelf *shelf,const char *shelfname){ /************* 本棚を初期化します Bookshelf *shelf:[出力]初期化する本棚オブジェクトへのポインタ const char *shelfname:本棚オブジェクトの新しい名前 *************/ int i; for(i=0;i<20;i++){ shelf->booknames[i][0]='\0'; shelf->readcnts[i]=0; } if(strlen(shelfname)>30){ puts("本棚の名前が長すぎます。"); strcpy(shelf->shelfname,"新しい本棚"); } else strcpy(shelf->shelfname,shelfname); } int main(void){ Bookshelf shelves[3]; int i; ResetBookList(&shelves[0],"寿司ネタ"); ResetBookList(&shelves[1],"教科書"); ResetBookList(&shelves[2],"色"); for(i=0;i<3;i++)ViewBookList(&shelves[i]); getchar(); AddBook(&shelves[0],"タマゴ",1); AddBook(&shelves[0],"マグロ",3); AddBook(&shelves[0],"タイ",5); AddBook(&shelves[0],"うに",7); AddBook(&shelves[0],"とろ",9); AddBook(&shelves[1],"国語",1); AddBook(&shelves[1],"算数",3); AddBook(&shelves[1],"理科",5); AddBook(&shelves[1],"社会",7); AddBook(&shelves[1],"情報",9); AddBook(&shelves[2],"赤",1); AddBook(&shelves[2],"白",3); AddBook(&shelves[2],"黄色",5); AddBook(&shelves[2],"青",7); AddBook(&shelves[2],"紫",9); for(i=0;i<3;i++)ViewBookList(&shelves[i]); getchar(); RemoveBook(&shelves[0],"タマゴ"); RemoveBook(&shelves[0],"とろ"); RemoveBook(&shelves[0],"赤"); RemoveBook(&shelves[1],"社会"); RemoveBook(&shelves[1],"赤"); RemoveBook(&shelves[2],"白"); RemoveBook(&shelves[2],"紫"); RemoveBook(&shelves[2],"赤"); for(i=0;i<3;i++)ViewBookList(&shelves[i]); getchar(); ReadBook(&shelves[0],"マグロ"); ReadBook(&shelves[0],"とろ"); ReadBook(&shelves[1],"情報"); ReadBook(&shelves[2],"青"); ReadBook(&shelves[2],"青"); for(i=0;i<3;i++)ViewBookList(&shelves[i]); getchar(); return 0; } |