求教图书馆 管理系统的问题 C语言 谢了 求图书馆管理系统程序(c语言)

\u6c42\u4e2a\u4eba\u56fe\u4e66\u7ba1\u7406\u7cfb\u7edfc\u8bed\u8a00\u4ee3\u7801\uff0c\u5b9e\u73b0\u529f\u80fd\u89c1\u95ee\u9898\u8865\u5145

#include#includestruct Book{ char number[15]; char writer[10]; char name[50];};void eatline(){ char ch; while((ch=getchar())!='\n') continue;}int addbook(Book*b,int *n){ puts("\u8bf7\u8f93\u5165\u4e66\u53f7:"); gets(b[*n].number); puts("\u8bf7\u8f93\u5165\u4f5c\u8005:"); gets(b[*n].writer); puts("\u8bf7\u8f93\u5165\u4e66\u540d:"); gets(b[*n].name); *n=*n+1; return 0;}int deletebook(Book *b,int *n){char s[50];int i,j,flag=0;puts("\u8bf7\u8f93\u5165\u60a8\u8981\u5220\u9664\u7684\u4e66\u540d:");gets(s);for(i=0;i<*n;i++){if(strcmp(b[i].name,s)==0){for(j=i;j<*n-1;j++){strcpy(b[j].number,b[j+1].number);strcpy(b[j].writer,b[j+1].writer);strcpy(b[j].name,b[j+1].name);}flag=1;}}if(flag==1){puts("\u4e66\u7c4d\u5df2\u5220\u9664!!!");*n=*n-1;return 0;}else{puts("\u60a8\u8981\u5220\u9664\u7684\u4e66\u7c4d\u4e0d\u5b58\u5728!!!");return 1;}}int search(Book*b,int n,char*str){ int i; for(i=0;i<n;i++) { if(strcmp(b[i].name,str)==0) { printf("\u4e66\u53f7:%s\n\u4f5c\u8005:%s\n\u4e66\u540d:%s\n",b[i].number,b[i].writer,b[i].name); return i; } } printf("\u6ca1\u6709\u4f60\u8981\u627e\u7684\u4e66\u7c4d\n"); return -1;}int modifym(Book *b,int *n){char nu[15];char w[10];char na[50];int flag;puts("\u8bf7\u8f93\u5165\u60a8\u8981\u4fee\u6539\u7684\u4e66\u540d:");gets(na);if((flag=search(b,*n,na))==-1){printf("\u60a8\u8981\u4fee\u6539\u7684\u4e66\u7c4d\u4e0d\u5b58\u5728!!!\n");return -1;}else{puts("\u8bf7\u8f93\u5165\u65b0\u7684\u4e66\u53f7:");while(gets(nu),strcmp(nu,"")==0){puts("\u60a8\u7684\u8f93\u5165\u6709\u8bef,\u8bf7\u91cd\u65b0\u8f93\u5165:");}puts("\u8bf7\u8f93\u5165\u65b0\u7684\u4f5c\u8005:");while(gets(w),strcmp(w,"")==0){puts("\u60a8\u7684\u8f93\u5165\u6709\u8bef,\u8bf7\u91cd\u65b0\u8f93\u5165:");}puts("\u8bf7\u8f93\u5165\u65b0\u7684\u4e66\u540d:");while(gets(na),strcmp(na,"")==0){puts("\u60a8\u7684\u8f93\u5165\u6709\u8bef,\u8bf7\u91cd\u65b0\u8f93\u5165:");}strcpy(b[flag].number,nu);strcpy(b[flag].writer,w);strcpy(b[flag].name,na);return 0;}}void printmenu(){ printf("\t\t1\u3001\u6dfb\u52a0\u56fe\u4e66\u4fe1\u606f\n"); printf("\t\t2\u3001\u67e5\u8be2\u56fe\u4e66\u4fe1\u606f\n");printf("\t\t3\u3001\u5220\u9664\u56fe\u4e66\u4fe1\u606f\n");printf("\t\t4\u3001\u4fee\u6539\u56fe\u4e66\u4fe1\u606f\n");printf("\t\t5\u3001\u6253\u5370\u56fe\u4e66\u4fe1\u606f\n"); printf("\t\t0\u3001\u9000\u51fa\u7cfb\u7edf\n");}int printmessage(Book*b,int n){int i;for(i=0;i<n;i++){printf("\u4e66\u53f7:");puts(b[i].number);printf("\u4f5c\u8005:");puts(b[i].writer);printf("\u4e66\u540d:");puts(b[i].name);}return 0;}int main(){ Book book[50]; char str[20]; int n=0,flag; printmenu(); while(scanf("%d",&flag),flag!=0) { eatline(); switch(flag) { case 1: addbook(book,&n); break; case 2: printf("\u8bf7\u8f93\u5165\u4f60\u8981\u67e5\u627e\u7684\u4e66\u540d:"); gets(str); search(book,n,str); break;case 3:deletebook(book,&n);break;case 4:modifym(book,&n);case 5:printmessage(book,n);break; default:break; } printmenu(); } return 0;}

C\u7a0b\u5e8f\u9879\u76ee-\u56fe\u4e66\u7ba1\u7406\u7cfb\u7edf\u6536\u85cf
#include"stdio.h"#include"stdlib.h"#include"windows.h"#include"string.h"
/*\u56fe\u4e66\u76f8\u5173\u4fe1\u606f*/struct bookinf //\u5b9a\u4e49\u56fe\u4e66\u76f8\u5173\u4fe1\u606f\u7ed3\u6784\u4f53{ int num; char bname[20]; char wname[10]; char clanum[14]; char pubcom[10]; char pubtime[10]; float price;};
structmanage //\u5b9a\u4e49\u7ba1\u7406\u5458\u76f8\u5173\u4fe1\u606f\u7ed3\u6784\u4f53{ char manage_name[10]; char password[10];};
/*\u9996\u9875*/void index() //\u9996\u9875\u6253\u5370\u8bbe\u7f6e{ char input; printf("\n\n\t\t\t*****************************\n"); printf("\t\t\t Paladin\u56fe\u4e66\u4fe1\u606f\u67e5\u8be2\u7ba1\u7406\u7cfb\u7edf\n"); printf("\t\t\t*****************************\n\n\n"); printf("------------------------------------------------------------------------------\n"); printf("\n\t\t\t\u4e66\u5c71\u6709\u8def\u52e4\u4e3a\u5f84\n"); printf("\t\t\t\t \u5b66\u6d77\u65e0\u6daf\u82e6\u4f5c\u821f\n"); printf("\n\n\t \u603b\u7b56\u5212:\u5434\u660a\n\n"); printf("\t \u7a0b\u5f0f\u8bbe\u8ba1:\u8096\u4e66\u660e\u6a0a\u542f\u6052\u82a6\u4e39\u8983\u679d\u971e\u51b5\u8f69 (\u6392\u540d\u4e0d\u5206\u5148\u540e)\n\n"); printf("\t \u8054\u7cfb\u65b9\u5f0f:QQ:6828000 or Mail To:[email protected]\n"); printf("\t________________________________________________________________\n"); printf("\t\tCopyrights @ Accp SIT25 Leo Workgroup 2004.8\n"); printf("\t\t\t All RightsReserved\n"); printf("\t\t\t\tVer 1.03\n"); printf("\t\n\t"); input=getchar(); //\u8ba9\u7528\u6237\u8f93\u5165\u4e00\u4e2a\u5b57\u7b26\u540e\u518d\u8fdb\u884c\u4e0b\u4e00\u6b65\uff08\u4ee5\u540e\u5728\u672c\u7a0b\u5e8f\u4e2d\u7528\u5f97\u5f88\u591a\uff09 system("cls"); //\u6e05\u5c4f}
/*\u767b\u9646\u65b9\u5f0f*/ void login(){ void tra_view(); //\u58f0\u660e\u5305\u542b\u7684\u51fd\u6570 void adm_view(); void byebye(); void about(); void coloregg();
int input; char input_1; do //\u5faa\u73af\u663e\u793a\u767b\u9646\u9009\u9879(\u5f53\u8f93\u5165\u7684\u6570\u4e0d\u4e3a\u9009\u9879\u6570\u7684\u65f6\u5019\u91cd\u590d\u5faa\u73af) { system("cls"); printf("\n\n\n\t1.\u4ee5\u6e38\u5ba2\u8eab\u4efd\u8fdb\u5165\n"); printf("\t2.\u4ee5\u7ba1\u7406\u5458\u8eab\u4efd\u8fdb\u5165\n"); printf("\t3.\u5173\u4e8e\u672c\u7cfb\u7edf\n"); printf("\t4.\u9000\u51fa\u672c\u7cfb\u7edf\n\n\n"); printf("\t\u8bf7\u9009\u62e9\u670d\u52a1\u7c7b\u522b:"); scanf("%d",&input); if(input!=1&&input!=2&&input!=3&&input!=4&&input!=99) //\u8f93\u5165\u6570\u4e0d\u7b49\u4e8e\u9009\u9879\u7684\u65f6\u5019\u6253\u5370\u753b\u9762 { printf("\n\t\u8f93\u5165\u51fa\u9519!\u8bf7\u91cd\u65b0\u9009\u62e9~\n"); printf("\n\t\u6309\u4efb\u610f\u952e\u8fd4\u56de\u9009\u62e9\u9875\u9762~\n\t"); input_1=getchar(); input_1=getchar(); system("cls"); } if (input==4) { byebye(); //\u5982\u679c\u8f93\u5165\u6570\u4e3a4\uff0c\u5219\u6267\u884cbyebye()\u51fd\u6570 } } while (input!=1&&input!=2&&input!=3&&input!=4&&input!=99);
switch(input) //\u5206\u652f\u9009\u62e9 { case 1:tra_view(); break; //\u90091\u6267\u884c\u6e38\u5ba2\u8fdb\u5165\u65b9\u5f0f case 2:adm_view(); break; //\u90092\u6267\u884c\u7ba1\u7406\u5458\u8fdb\u5165\u65b9\u5f0f case 3:about(); break; //\u90093\u6267\u884c\u5173\u4e8e\u754c\u9762\u51fd\u6570 case 99:coloregg(); break; //\u900999\u6267\u884c\u5f69\u86cb\u51fd\u6570 }}/*\u5173\u4e8e\u754c\u9762*/void about(){ void login(); char input; //\u5173\u4e8e\u754c\u9762\u7684\u6253\u5370\u8bbe\u7f6e system("cls"); printf("\n\n\t\t\t\t\u6b22\u8fce\u4f7f\u7528\u5e2e\u52a9\n"); printf("\t_______________________________________________________________"); printf("\n\t1.\u672c\u7cfb\u7edf\u91c7\u7528\u6a21\u5757\u5316\u8bbe\u8ba1\n"); printf("\t\u6bcf\u4e00\u9879\u529f\u80fd\u7531\u5355\u72ec\u7684\u51fd\u6570\u5757\u63a7\u5236,\u4e00\u4e2a\u529f\u80fd\u5757\u6709\u9519\u4e0d\u4f1a\u5f71\u54cd\u5168\u5c40\n\n"); printf("\t2.\u4eba\u6027\u5316\u8bbe\u8ba1\n"); printf("\t\u76f8\u5173\u63d0\u793a\u4fe1\u606f\u4e30\u5bcc,\u4ee5\u4eba\u4e3a\u672c\n\n"); printf("\t3.\u529f\u80fd\u5f3a\u5927\n\n"); printf("\t \u5b9e\u73b0\u4e86:\n"); printf("\t\t1 \u56fe\u4e66\u4fe1\u606f\u5f55\u5165\n"); printf("\t\t2 \u56fe\u4e66\u4fe1\u606f\u67e5\u8be2\n"); printf("\t\t3 \u56fe\u4e66\u4fe1\u606f\u4fee\u6539\n"); printf("\t\t4 \u56fe\u4e66\u4fe1\u606f\u5220\u9664\n"); printf("\t\t5 \u56fe\u4e66\u4fe1\u606f\u6392\u5e8f\n"); printf("\t\t6 \u63d0\u4f9b\u6e38\u5ba2\u548c\u7ba1\u7406\u5458\u4e24\u79cd\u767b\u9646\u65b9\u5f0f\n"); printf("\t\t \u52a0\u4ee5\u4fee\u6539\u53ef\u4ee5\u6ee1\u8db3\u7f51\u7edc\u7684\u9700\u8981\n\n"); printf("\t\t7 \u7ba1\u7406\u5458\u7684\u5e10\u53f7\u5bc6\u7801\u53ef\u4ee5\u81ea\u6211\u8bbe\u5b9a,\u4fee\u6539\n"); printf("\t\t8 \u5f69\u86cb~~(\u8fdb\u5165\u65b9\u6cd5\u561b,\u563f\u563f)\n"); printf("\n\t\u6309\u4efb\u610f\u952e\u8fd4\u56de\u767b\u9646\u754c\u9762!"); input=getchar(); input=getchar(); login(); //\u4efb\u610f\u952e\u8fd4\u56de\u767b\u9646\u754c\u9762}
/*\u5f69\u86cb*/void coloregg() //\u6253\u5370\u754c\u9762{ char inp; void login(); system("cls"); printf("\n\n\n\t\t\u4e00\u76f4\u4ee5\u4e3a\n\t\t"); inp=getchar(); inp=getchar(); printf("\t\t\u9690\u4e86\u8eab\u522b\u4eba\u5c31\u627e\u4e0d\u5230\u6211\n\t\t"); inp=getchar(); printf("\t\t\u53ef\u662f\u6211\u9519\u4e86\n\t\t"); inp=getchar(); printf("\t\t\u8c61\u6211\u8fd9\u4e48\u51fa\u4f17\u7684\u7537\u4eba\n\t\t"); inp=getchar(); printf("\t\t\u4e0d\u7ba1\u5230\u54ea\u90fd\u662f\u53d7\u4eba\u77a9\u76ee\u7684\u7126\u70b9\n\t\t"); inp=getchar(); printf("\t\t\u6211\u90a3\u5fe7\u90c1\u7684\u773c\u795e\n\t\t"); inp=getchar(); printf("\t\t\u550f\u5618\u7684\u80e1\u6e23\u5b50\n\t\t"); inp=getchar(); printf("\t\t\u8fd8\u6709\u90a3\u795e\u4e4e\u5176\u6280\u7684AK\u626b\u5c04\n\t\t"); inp=getchar(); printf("\t\t\u4ee5\u53ca\u90a3\u676f82\u5e74\u7684\u9a6c\u7239\u5229\u548c\u53d1\u54e5\u7ed9\u7684\u7259\u7b7e\n\t\t"); inp=getchar(); printf("\t\t\u65e0\u4e0d\u6df1\u6df1\u51fa\u5356\u4e86\u6211~~~\n\t\t"); inp=getchar(); printf("\t\t\t\t--------\u72c2\u4eba\n\t\t"); inp=getchar();
login();}
/*\u79bb\u5f00\u754c\u9762*/void byebye() //\u79bb\u5f00\u754c\u9762{ char input; system("cls"); printf("\n\n\n\n\n\t\t\t\u8def\u6f2b\u6f2b\u5176\u4fee\u8fdc\u516e"); printf("\n\n\n\n\t\t\t\t\t\u543e\u5c06\u4e0a\u4e0b\u800c\u6c42\u7d22"); printf("\n\n\t________________________________________________________________"); printf("\n\n\n\t\t*\u611f\u8c22\u60a8\u7684\u4f7f\u7528*\n\n\t\t"); printf("\u6309\u4efb\u610f\u952e\u9000\u51fa\u672c\u7cfb\u7edf\n\t\t"); input=getchar(); input=getchar(); printf("\n\t\t"); exit(0); //exit()\u51fd\u6570\u8df3\u51fa\u6574\u4e2a\u7a0b\u5e8f}
/*\u5220\u9664\u6240\u6709\u76f8\u5173\u4fe1\u606f*/void delall() //\u7ba1\u7406\u5458\u9009\u9879\u4e2d\u7684\u521d\u59cb\u5316\u51fd\u6570{ void login(); void adm_servelist(); int inp; char input; do //\u5982\u679c\u8f93\u5165\u7684\u4e0d\u662f\u754c\u9762\u63d0\u4f9b\u7684\u9009\u9879\u503c\uff0c\u5219\u91cd\u590d\u663e\u793a\u8f93\u5165\u754c\u9762 { system("cls"); printf("\n\n\t----------!!\u8b66\u544a!!----------\n"); printf("\n\t\u4e00\u65e6\u9009\u62e9\u4e86\u5168\u90e8\u521d\u59cb\u5316\u5c06\u6e05\u9664\u5168\u90e8\u6570\u636e!\u5305\u62ec\u56fe\u4e66\u4fe1\u606f\u548c\u7ba1\u7406\u5458\u4fe1\u606f!\n"); printf("\n\t\u521d\u59cb\u5316\u5b8c\u6bd5\u540e\u8fd4\u56de\u767b\u9646\u754c\u9762\n"); printf("\n\n\t\u4f60\u786e\u5b9a\u8981\u521d\u59cb\u5316\u5417\n"); printf("\n\n\t1.\u662f\u7684~\u6211\u8981\u521d\u59cb\u5316\t2.\u4e0d\u8981~\u8ba9\u6211\u518d\u60f3\u60f3\n"); printf("\n\t\u8bf7\u8f93\u5165\u670d\u52a1\u9009\u9879:"); scanf("%d",&inp); switch (inp) { case 1: //\u5982\u679c\u8f93\u5165\u4e3a1\u5219\u5220\u9664book.dat\u548cpassword.dat\u6587\u4ef6 remove("book.dat"); remove("password.dat"); printf("\n\n\t\u521d\u59cb\u5316\u5b8c\u6bd5!\n\t\u6240\u6709\u6570\u636e\u5168\u90e8\u6e05\u7a7a!\n\t\u6309\u4efb\u610f\u952e\u8fd4\u56de\u767b\u9646\u754c\u9762!"); input=getchar(); input=getchar(); login(); //\u5e76\u8fd4\u56de\u767b\u9646\u754c\u9762 break; case 2: //\u90092\u5219\u8fd4\u56de\u7ba1\u7406\u5458\u767b\u9646\u754c\u9762 adm_servelist(); break; default: //\u5426\u5219\u6253\u5370\u5982\u4e0b\u5b57\u6837\u5e76\u91cd\u590d\u5faa\u73af printf("\n\n\t\u5bf9\u4e0d\u8d77~\u6ca1\u6709\u8fd9\u9879\u670d\u52a1!\n\t\u6309\u4efb\u610f\u952e\u91cd\u65b0\u9009\u62e9\n\t"); input=getchar(); input=getchar(); break; } } while (inp!=1&&inp!=2&&inp!=3);}
/*\u6e38\u5ba2\u767b\u9646\u65b9\u5f0f*/void tra_view(){ void tra_book_view(); void tra_book_search(); void login();
int inp; char input;
do //\u540c\u4ee5\u5f80\u7684do{}while\u4e00\u6837\uff0c\u7528\u6765\u4fdd\u8bc1\u7528\u6237\u8f93\u5165\u7684\u6570\u80fd\u591f\u88ab\u6267\u884c { system("cls"); printf("\n\n\t------------\u6b22\u8fce\u5149\u4e34ACCP\u56fe\u4e66\u9986------------"); printf("\n\n\n\t1.\u56fe\u4e66\u4fe1\u606f\u6d4f\u89c8\n"); printf("\t2.\u67e5\u8be2\u6307\u5b9a\u56fe\u4e66\n"); printf("\t3.\u9000\u51fa\n"); printf("\n\n\t\u8bf7\u9009\u62e9\u670d\u52a1\u7c7b\u522b:"); scanf("%d",&inp); if (inp!=1&&inp!=2&&inp!=3) { printf("\n\t\u6ca1\u6709\u8fd9\u9879\u670d\u52a1~\n"); printf("\t\u6309\u4efb\u610f\u952e\u91cd\u65b0\u9009\u62e9"); input=getchar(); input=getchar(); } } while (inp!=1&&inp!=2&&inp!=3);
switch(inp) //\u5206\u652f\u9009\u62e9 { case 1: tra_book_view(); break; //\u90091\u5219\u6267\u884c\u6e38\u5ba2\u6d4f\u89c8 case 2: tra_book_search(); break; //\u90092\u5219\u6267\u884c\u6e38\u67e5\u8be2 case 3: login(); break; //\u90093\u8fd4\u56de\u767b\u9646\u754c\u9762 }}
/*\u6e38\u5ba2\u6d4f\u89c8\u65b9\u5f0f*/void tra_book_view(){ void tra_view(); void tra_book_view();
intinp,i=0,n=0; FILE *fp; char input; struct bookinf bookview[100]; if((fp=fopen("book.dat","rb"))==NULL) //\u5224\u65ad\u56fe\u4e66\u4fe1\u606f\u6587\u4ef6\u662f\u5426\u5b58\u5728\uff0c\u4e0d\u5b58\u5728\u5219\u663e\u793a\u5982\u4e0b\u5b57\u6837 { system("cls"); printf("\n\n\n\t\u6570\u636e\u5c1a\u672a\u521d\u59cb\u5316~~\n\n\t\u8bf7\u5728\u7ba1\u7406\u83dc\u5355\u4e2d\u589e\u52a0\u56fe\u4e66\u4fe1\u606f~~~\n"); printf("\n\t\n\t"); input=getchar(); input=getchar(); tra_view(); //\u5e76\u8fd4\u56de\u6e38\u5ba2\u8fdb\u5165\u753b\u9762 } else //\u5b58\u5728\u7684\u8bdd\u5219\u5faa\u73af\u8bfb\u53d6\u6587\u4ef6\u4e2d\u7684\u4fe1\u606f\u76f4\u5230\u6587\u4ef6\u6307\u9488\u5230\u8fbe\u6587\u4ef6\u5c3e\u90e8 { do { fread(&bookview[i],sizeof(struct bookinf),1,fp); i=i+1; } while (!feof(fp)); //\u8fd9\u4e00\u6bb5\u4ee3\u7801\u4ee5\u540e\u4e5f\u4f1a\u7ecf\u5e38\u7528\u5230 fclose(fp); //\u5173\u95ed\u6587\u4ef6\u6307\u9488 do { system("cls"); //\u663e\u793a\u8bfb\u53d6\u6570\u636e\u7684\u7b2c\u4e00\u6761\uff0c\u6761\u6570\u7528\u53d8\u91cfn\u63a7\u5236 printf("\n\t--------\u5171\u6709%d\u6761\u8bb0\u5f55--------",i-1); printf("\n\n\t\u7f16\u53f7: %d\n",bookview[n].num); printf("\n\t\u4e66\u540d: %s\n",bookview[n].bname); printf("\n\t\u4f5c\u8005\u540d: %s\n",bookview[n].wname); printf("\n\t\u5206\u7c7b\u53f7: %s\n",bookview[n].clanum); printf("\n\t\u51fa\u7248\u5355\u4f4d: %s\n",bookview[n].pubcom); printf("\n\t\u51fa\u7248\u65f6\u95f4: %s\n",bookview[n].pubtime); printf("\n\t\u4ef7\u683c: %f\n",bookview[n].price);
printf("\n\n\t1.\u4e0a\u4e00\u9875\t2.\u4e0b\u4e00\u9875\t3.\u56de\u76ee\u5f55\n"); printf("\n\t\u8bf7\u9009\u62e9:"); scanf("%d",&inp); switch (inp) { case 1: //\u5982\u679c\u9009\u62e9\u4e86\u4e0a\u4e00\u9875 { if (n==0) //\u5982\u679cn\u5230\u9996\u9875\u5219\u8f93\u51fa\u4ee5\u4e0b\u5b57\u6837 { printf("\n\t\u5df2\u5230\u8fbe\u9996\u9875\n\t\u6309\u4efb\u610f\u952e\u91cd\u65b0\u9009\u62e9"); input=getchar(); input=getchar(); } else //\u5426\u5219\u5c31\u8ba9n\u81ea\u51cf1\u8df3\u51fa\u9009\u62e9\u91cd\u590d\u5faa\u73af { n=n-1; } break; } case 2: //\u5982\u679c\u9009\u62e9\u4e86\u4e0b\u4e00\u9875 { if (n==i-2) //\u5982\u679cn\u5230\u8fbe\u6700\u5c3e\u9875 { printf("\n\t\u5df2\u5230\u8fbe\u6700\u672b\u9875\n\t\u6309\u4efb\u610f\u952e\u91cd\u65b0\u9009\u62e9"); input=getchar(); input=getchar(); } else //\u5426\u5219\u5c31\u8ba9n\u81ea\u52a01\u8df3\u51fa\u9009\u62e9\u91cd\u590d\u5faa\u73af { n=n+1; } break; } case 3: //\u9009\u62e93\u7684\u8bdd\u56de\u5230\u6e38\u5ba2\u767b\u9646\u754c\u9762 { tra_view(); break; } default: //\u6ca1\u6709\u8fd9\u9879\u9009\u62e9\u65f6\u7684\u63d0\u793a { printf("\n\t\u6ca1\u6709\u8fd9\u9879\u670d\u52a1\n\t\u6309\u4efb\u610f\u952e\u91cd\u65b0\u9009\u62e9"); input=getchar(); input=getchar(); break; } } } while (inp!=3); }}
/*\u6e38\u5ba2\u67e5\u8be2\u65b9\u5f0f*/void tra_book_search(){ void tra_view(); void tra_id_search(); void tra_wr_search(); void tra_bn_search();
char input; FILE *fp; int inp; if((fp=fopen("book.dat","rb"))==NULL) //\u5224\u65ad\u56fe\u4e66\u4fe1\u606f\u662f\u5426\u5b58\u5728 { system("cls"); //\u4e0d\u5b58\u5728\u5219\u6253\u5370\u7684\u754c\u9762 printf("\n\n\n\t\u6570\u636e\u5c1a\u672a\u521d\u59cb\u5316~~\n\n\t\u8bf7\u5728\u7ba1\u7406\u83dc\u5355\u4e2d\u589e\u52a0\u56fe\u4e66\u4fe1\u606f~~~\n"); printf("\n\t\n\t"); input=getchar(); input=getchar(); tra_view(); } else { do //\u540c\u4ee5\u524d\u4e00\u6837\u7528do{}while\u6765\u91cd\u590d\u663e\u793a { system("cls"); printf("\n\n\n\t1.\u6309\u56fe\u4e66\u7f16\u53f7\u67e5\u8be2\n"); printf("\n\t2.\u6309\u56fe\u4e66\u4f5c\u8005\u67e5\u8be2\n"); printf("\n\t3.\u6309\u56fe\u4e66\u540d\u67e5\u8be2\n"); printf("\n\t4.\u56de\u5230\u4e3b\u83dc\u5355\n"); printf("\n\n\t\u8bf7\u9009\u62e9\u67e5\u8be2\u7c7b\u522b:");

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

#define BORROWED 1
#define NOBORROW 0

/* 定义图书结构 */
struct Book
{
int _id; // 编号,唯一
char _name[32]; // 图书的名称,不唯一
char _author[32]; // 图书的作者,不唯一
int _type; // 图书的类型,不唯一
int _status; // 图书的状态,借出或未借出
int _count; // 图书借出的次数
struct Book* _next; // 下一本书
struct Book* _prev; // 上一本书
};

/* 定义读者结构 */
//struct Reader
//{
// int _rid;
// char _rname[32];

/* 操作的目录提示 */
char book_menu[][32] =
{
"图书管理",
"读者管理",
"借书管理",
"归还管理",
"查询与统计",
"退出系统",
"书库",
"",
};

/* 操作的目录提示1 */
char book_menu_sub[][32] =
{
"图书查询",
"读者查询",
"",
};

/* 添加图书类型(出版社),用户信息显示 */
char book_types[][32] =
{
"publisher1",
"publisher2",
"publisher3",
"",
};
/* 添加图书状态,用户信息显示 */
char book_status[][32] =
{
"未借出",
"已借出",
"",
};

/* 增加图书,id自动排号 */
int add_books(Book* head, Book* book_for_add)
{
Book* p = head;
if (!p)
return - 1;
while (p->_next)
{
p = p->_next;
};
p->_next = book_for_add;
book_for_add->_id = p->_id+1;
book_for_add->_prev = p;
book_for_add->_next = NULL;
book_for_add->_count = 0;
book_for_add->_status = 0;
return 0;
};

/* 增加读者,id自动排号 */
//int add_readers(Reader* head, Reader* reader_for_add)
//{
// Reader* p = rhead;
// if (!p)
// return - 1;
// while (p->_rnext)
// {
// p = p->_rnext;
// };
// p->_rnext = reader_for_add;
// reader_for_add->_rid = p->_id+1;
// reader_for_add->_rprev = p;
// reader_for_add->_rnext = NULL;
// return 0;
//};

/* 建立图书管理链表 */
Book* create_list(Book* book_head)
{
if (book_head)
{
book_head->_prev = book_head;
book_head->_next = NULL;
book_head->_id = 1;
book_head->_count = 0;
book_head->_status = 0;
}
return book_head;
}

/* 释放链表 */
void free_list(Book* book_head)
{
Book *p, *p1;
p = book_head;
while(p)
{
p1 = p->_next;
free(p);
p = p1;
}
}

/* 打印图书信息 */
void print_book(Book* book)
{
printf("书号:%d, 书名:%s, 作者:%s, 出版社:%s, 状态:%s, 借阅次数:%d\n",
book->_id, book->_name, book->_author, book_types[book->_type],
book_status[book->_status], book->_count);
}

/* 列出所有登记的图书 */
void list_books(Book* book_head)
{
Book* p = book_head;
while (p)
{
print_book(p);
p = p->_next;
}
}

/* 借书,返回该书的指针,否则就返回NULL,可能不存在图书,或者已经被借走了 */
Book* borrow_books(Book* book_head, int id)
{
Book* p = book_head;
while (p)
{
if (p->_id == id)
break;
p = p->_next;
}

if (!p)/* 不存在 */
return NULL;

if (p->_status != 0) /* 已经被借走 */
return NULL;

p->_status = 1; /* 借书登记 */
p->_count++; /* 被借阅次数+1 */
return p;
}

/* 查找书名称,返回查找到的数量,书名可能有重复的,一本书可能也有很多本,但是ID却是唯一的 */
int search_books_by_name(Book* book_head, char* name)
{
int count = 0;
Book* p = book_head;
while (p)
{
if (strcmp(p->_name, name) == 0)
{
print_book(p);
++count;
}
p = p->_next;
}

return count;
}

/* 查找书类型,返回查找到的数量,一个类型会有很多书 */
int search_books_by_type(Book* book_head, int type)
{
int count = 0;
Book* p = book_head;
while (p)
{
if (p->_type == type)
{
print_book(p);
++count;
}
p = p->_next;
}

return count;
}

//int search_books_by_id(Book* book_head, char* id)
//{
// int count = 0;
// Book* p = book_head;
// while (p)
// {
// if (strcmp(p->_id, id) == 0)
// {
// print_book(p);
// ++count;
// }
// p = p->_next;
// }
//
// return count;
//}

/* 还书,正常归还就返回该书的指针,否则就返回NULL */
Book* return_books(Book* book_head, int id)
{
Book* p = book_head;
while (p)
{
if (p->_id == id && p->_status != 0)
{
p->_status = 0; /* 还书登记 */
break;
}
p = p->_next;
}
return p;
}

/* 打印操作选项 */

void print_menu(char menus[][32])
{
int no = 0;
printf("\n图书借阅管理系统\n");
while (strlen(menus[no]))
{
printf("%d.%s\n", no+1, menus[no]);
++no;
}
printf("菜单选项(");
while (no)
{
printf("/%d", no--);
}
printf("):");
}

/* 主函数 */
int main(void)
{
char key = 0;
char ss[128];
int loop = 1;
Book first_book, *pBooks, *pTmp;
strcpy(first_book._name, "library guide");
strcpy(first_book._author, "admin");
first_book._type = 0;
pBooks = create_list(&first_book);
while (loop)
{
print_menu(book_menu);
gets(ss);
key = ss[0] - 48;
if(key < 1 || key > 7)
printf("输入错误,请重新输入!\n");
else
printf("输入的选项:%d\n", key);
switch (key)
{
case 1: // add books
pTmp = (Book*)malloc(sizeof(Book));
if(pTmp)
{
printf("添加书名:");
gets(ss);
strncpy(pTmp->_name, ss, 31);
printf("添加作者:");
gets(ss);
strncpy(pTmp->_author, ss, 31);
print_menu(book_types);
gets(ss);
key = ss[0] - 48;
if(key <= 0 || key > (sizeof(book_types)/32) )
key = 1;
pTmp->_type = key - 1;
add_books(pBooks, pTmp);
}
break;
case 2: // add readers

case 3: // borrow books
printf("输入要借阅的书号:");
gets(ss);
key = atoi(ss);
pTmp = borrow_books(pBooks, key);
if (!pTmp)
printf("借阅失败,书号:%d\n", key);
else
{
printf("借阅成功!\n");
print_book(pTmp);
}
break;
case 4: // return books
printf("输入要归还的书号:");
gets(ss);
key = atoi(ss);
pTmp = return_books(pBooks, key);
if (!pTmp)
printf("归还失败,书号:%d\n", key);
else
{
printf("归还成功!\n");
print_book(pTmp);
}
break;
case 5: // search books
print_menu(book_menu_sub);
gets(ss);
key = ss[0] - 48;
printf("输入的选项:%d\n", key);
switch (key)
{
case 1: // search books by name
printf("输入书名:");
gets(ss);
key = search_books_by_name(pBooks, ss);
if(key == 0)
printf("无此书!\n");
case 2: // search books by type
print_menu(book_types);
gets(ss);
key = ss[0] - 48;
key = search_books_by_type(pBooks, key);
if(key == 0)
printf("无此出版社!\n");
case 3: // search books by id
printf("输入书号:");
gets(ss);
// key = search_books_by_id(pBooks, ss);
if(key == 0)
printf("无此书!\n");
default:
break;
}
break;
case 6: // exit
loop = 0;
break;
default:
break;
case 7: // list books
list_books(pBooks);
break;
}
printf("--按回车键继续--");
gets(ss);
}
free_list(pBooks);
return 0;
}

我以前的程序里的,没试过,你自己改改吧。

用文件指针,文件读写需要知道写入的格式的,不然会乱的,例子如下:
File *p;
if(p=fopen("学生成绩.txt","r")==NULL)
{printf("读取失败");
exit(0);}
fclose(p);
我写过你这个系统,你有什么问题可以找我,我可以帮你


扩展阅读:扫一扫题目出答案 ... 基于ssm图书馆管理系统 ... 全自动图书阅览室 ... 解忧图书馆 万能入口 ... 图书管理系统java源码 ... 在图书馆遇到的问题 ... 张雪峰谈图书情报专硕 ... 图书馆普遍存在的问题 ... java实现图书馆管理系统 ...

本站交流只代表网友个人观点,与本站立场无关
欢迎反馈与建议,请联系电邮
2024© 车视网