{cout<<\¶ÁÈ¡´ÅÅÌÎļþʧ°Ü!\
fread.open(ReaderFile,ios::binary);//ʹÎļþÁ÷ÓëÎļþ¹ØÁª£¬ÒÔ¶þ½øÖÆ·½Ê½´ò¿ª int i=0; while((fread.read((char *)&readers[i],sizeof(Reader))))//¼ÆËã²¢·µ»ØËùÕ¼×Ö½ÚÊý i++; length=i;
fread.close();//¹Ø±Õ´ÅÅÌÎļþ } void saveFile() //±£´æ¶ÁÕßÎļþ { ofstream fwrite; //¶¨ÒåÊä³öÎļþÁ÷¶ÔÏófwrite if(!fwrite) {cout<<\Îļþ±£´æÊ§°Ü!\\n\ fwrite.open(ReaderFile,ios::binary);//ʹÎļþÁ÷ÓëÎļþ¹ØÁª£¬ÒÔ¶þ½øÖÆ·½Ê½´ò¿ª fwrite.write((char *)readers,length*sizeof(Reader));//¼ÆËã²¢·µ»ØËùÕ¼×Ö½ÚÊý fwrite.close(); //¹Ø±Õ´ÅÅÌÎļþ } public:
ReaderManage() //¹¹Ô캯Êý£¬¶ÁÈ¡¶ÁÕßÎļþ {readFile();}
~ReaderManage() //Îö¹¹º¯Êý£¬±£´æ¶ÁÕßÎļþ {saveFile();}
void add_reader(Reader r) //Ìí¼Ó¶ÁÕßÓû§º¯Êý { if(length>=50)
{cout<<\¶Ô²»Æð£¬×¢²áÈËÊýÒÑÂú!\\n\
readers[length].copy(r); //µ÷ÓöÁÕ߽ṹÌåcopyº¯Êý length++; } int search(char *rn) //°´ÐÕÃû²éÕÒ¶ÁÕߺ¯Êý { for(int i=0;i return -1; } bool revise(Reader reader,int i) //Ð޸ĶÁÕß×ÊÁϺ¯Êý { readers[i].copy(reader); //µ÷ÓöÁÕ߽ṹÌåcpoyº¯Êý return true; } void delete_reader(int index) //ɾ³ý¶ÁÕߺ¯Êý { for(int i=index;i cout<<\ÇëÊäÈëÄúµÄÐÕÃû:\ cin>>n; cout<<\ÇëÊäÈëÄúµÄËùÔڰ༶:\ cin>>c; cout<<\ÇëÊäÈëÄúµÄÁªÏµµç»°:\ cin>>t; reader.set_rname(n); //µ÷ÓöÁÕ߽ṹÌåÉèÖöÁÕßÐÕÃûº¯Êý reader.set_rclass(c); //µ÷ÓöÁÕ߽ṹÌåÉèÖöÁÕ߰༶º¯Êý reader.set_rtel(t); //µ÷ÓöÁÕ߽ṹÌåÉèÖÃÁªÏµµç»°º¯Êý add_reader(reader); //µ÷ÓöÁÕ߽ṹÌåÌí¼Ó¶ÁÕߺ¯Êý cout<<\×¢²á³É¹¦!\ } void show_reader() //²»´ø²ÎµÄÏÔʾ¶ÁÕßÐÅÏ¢º¯Êý { cout<<\¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¶Á¡ï¡ïÕß¡ï¡ïÐÅ¡ï¡ïÏ¢¡ï¡ïÁСï¡ï±í¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î\\n\\n\ cout<<\ÐÕÃû\\t\\t\\t°à¼¶\\t\\t\\tµç»°\\n\ for(int i=0;i cout<<\¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¶Á¡ï¡ïÕß¡ï¡ïÐÅ¡ï¡ïÏ¢¡ï¡ïÁСï¡ï±í¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î\\n\\n\ cout<<\ÐÕÃû\\t\\t\\t°à¼¶\\t\\t\\tµç»°\\n\ cout< cout<<\ cout<<\ } }; //********Êé¼®½á¹¹Ì壬ÓÃÓÚ´æ·ÅÊé¼®»ù±¾ÐÅÏ¢******** class Book { private: char bnum[10]; //ÊéºÅ char bname[20]; //ÊéÃû char bauthor[10]; //×÷Õß char rname[10]; //½èÔÄÈË public: int tag; //״̬±ê¼ÇÅжÏÖ¸±ê(Òѽè/ÔÚ¼Ü) Book() //¹¹Ô캯Êý³õʼ»¯ÐÅÏ¢ {strcpy(bnum,\ void set_bnum(char *no) //ÉèÖÃÊéºÅ {strcpy(bnum,no);} //°Ñ×Ö·û´®noÖеÄ×Ö·û¸´ÖƵ½×Ö·û´®bnumÖÐ char *get_bnum() //»ñµÃÊéºÅ { return bnum;} //·µ»ØÖµÎªbnum void set_bname(char *n) //ÉèÖÃÊéÃû {strcpy(bname,n);} char *get_bname() //»ñµÃÊéÃû {return bname;} void set_bauthor(char *a) //ÉèÖÃ×÷Õß {strcpy(bauthor,a);} char * get_bauthor() //»ñµÃ×÷ÕßÐÕÃû {return bauthor;} void set_tag(int t) //״̬ÉèÖà {tag=t;} void set_rname(char *rn) //ÉèÖýèÔÄÈË {strcpy(rname,rn);} char *get_rname() //»ñµÃ½èÔÄÈËÐÕÃû {return rname;} void show_tag() //ÏÔʾͼÊé״̬ { if(tag==1) {cout<<\Òѽè\ else {cout<<\ÔÚ¼Ü\ } void copy(Book m) //Book½á¹¹Ìåcopyº¯Êý { strcpy(bnum,m.get_bnum()); //½«»ñµÃÊéºÅº¯ÊýÀïµÄ·µ»ØÖµÀïµÄ×Ö·û¸´ÖƵ½bnum strcpy(bname,m.get_bname()); strcpy(bauthor,m.get_bauthor()); tag=0; } }; //**********Êé¼®¹ÜÀí½á¹¹Ìå,ʵÏÖ¹ÜÀíÊé¼®¹¦ÄÜ********** class BookManage { private: Book books[100]; //¶¨ÒåBookÊé¼®½á¹¹ÌåÊý×é¶ÔÏó£¬×î´óÈÝÁ¿100±¾ int length; void saveFile() //±£´æÊé¼®Îļþ { ofstream fwrite; //¶¨ÒåÊä³öÎļþÁ÷ofstream½á¹¹Ìå¶ÔÏófwrite if(!fwrite) {cout<<\Îļþ±£´æÊ§°Ü!\\n\ } fwrite.open(BookFile,ios::binary);//ʹÎļþÁ÷ÓëÎļþ½¨Á¢¹ØÁª£¬ÒÔ¶þ½øÖÆ·½Ê½´ò¿ª fwrite.write((char *)books,length*sizeof(Book)); //¼ÆËã²¢·µ»ØËùÕ¼×Ö½ÚÊý fwrite.close(); //¹Ø±Õ´ÅÅÌÎļþ } void readFile() //¶ÁÈ¡Êé¼®Îļþ { ifstream fread; //¶¨ÒåÊäÈëÎļþÁ÷¶ÔÏófread length=0; if(!fread) {cout<<\Îļþ¶Áȡʧ°Ü!\ Book temp; //¶¨ÒåÊé¼®½á¹¹ÌåÁÙʱ¶ÔÏótemp int i=0; fread.open(BookFile ,ios::binary);//ʹÎļþÁ÷ÓëÎļþ½¨Á¢¹ØÁª£¬ÒÔ¶þ½øÖÆ·½Ê½´ò¿ª while((fread.read((char *)&books[i],sizeof(Book)))) i++; //ÿ¶ÁÍêÒ»´Î£¬Ö¸ÕëºóÒÆÒ»Î»£¬Ö±µ½²»ÄܶÁ³öÕýÈ·½á¹ûΪֹ length=i; fread.close(); } public: BookManage() //¹¹Ô캯Êý£¬¶ÁÈ¡´ÅÅÌÎļþ { length=0; //´ÓÍ·¶ÁÆð,¼ÆÊý£¬×î´ó100 readFile(); //µ÷ÓöÁÈ¡Îļþº¯Êý } ~BookManage() //Îö¹¹º¯Êý£¬±£´æ´ÅÅÌÎļþ { saveFile(); //µ÷Óñ£´æÎļþº¯Êý } bool add(Book book) //Ìí¼ÓͼÊé×ÊÁÏ { if(length>=100) { cout<<\¶Ô²»Æð£¬´¢´æÒÑÂú£¬ÄúÎÞ·¨¼ÌÐøÌí¼Ó£¡\\n\ return -1; } else { books[length].copy(book); //µ÷ÓÃÊé¼®½á¹¹Ìåcopyº¯Êý length++; return (length-1); } } int bnu_search(char *bnu) //°´ÊéºÅ²éÕÒÊé¼® { for(int i=0;i if(strcmp(books[i].get_bnum(),bnu)==0) //×Ö·û´®±È½Ï£¬ÅжÏÊÇ·ñÏàµÈ return i; return -1; } int bna_search(char *bna) //°´ÊéÃû²éÕÒÊé¼® { for(int i=0;i if(strcmp(books[i].get_bname(),bna)==0) //ÅÐ¶Ï return i; return -1; } int bau_search(char *bau) //°´×÷Õß²éÕÒÊé¼® { for(int i=0;i if(strcmp(books[i].get_bauthor(),bau)==0)//ÅÐ¶Ï return i; return -1; } int rn_search(char *rn) //°´½èÔÄÈ˲éÕÒÊé¼® { for(int i=0;i if(strcmp(books[i].get_rname(),rn)==0)//ÅÐ¶Ï return i; return -1; } void revise(Book book,int i)//´ø²ÎµÄÐÞ¸ÄÊé¼®º¯Êý {books[i].copy(book);} //µ÷ÓÃBook½á¹¹Ìåcopyº¯Êý void deleteBook(int index)//´ø²ÎµÄɾ³ýÊé¼®×ÊÁϺ¯Êý { for(int i=index;i books[i].copy(books[i+1]);//ÓúóÃæµÄµØÖ·½«µ±Ç°µÄµØÖ·¸²¸Ç length--; } void show_book()//²»´ø²ÎµÄÏÔʾÊé¼®º¯Êý { cout<<\¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡îÊé¡ï¡ï¼®¡ï¡ïÐÅ¡ï¡ïÏ¢¡ï¡ïÁСï¡ï±í¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î¡î\\n\\n\ cout<<\ÊéºÅ\ cout.width(10); cout<<\ÊéÃû\ cout.width(10); cout<<\×÷Õß\ cout.width(17); cout<<\״̬\ cout.width(25); cout<<\½èÔÄÈË\\n\ for(int i=0;i { cout<