文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

C语言如何实现图书管理系统

2023-06-28 23:39

关注

这篇文章将为大家详细讲解有关C语言如何实现图书管理系统,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

主要内容

        开发一个图书信息管理系统,图书信息包括:图书编号、书名、作者、出版社、类别、出版时间、价格等基本信息(也可以根据自己情况进行扩充,比如是否借出、库存量等)。使之能提供以下基本功能:

(1)图书信息录入功能(图书信息用文件保存)--输入

(2)图书信息浏览功能--输出

(3)查询功能(至少一种查询方式)、排序功能(至少一种排序方式):

            ①按书名查询

            ②按作者名查询 按照价钱排序 按出版时间排序等等

(4)图书信息的删除与修改

          扩展功能:可以按照自己的程度进行扩展。比如

                          (1)简单的权限处理

                          (2)报表打印功能

                          (3)甚至根据自己情况,可以加上学生信息,并扩充为图书借阅系统。

                          (4)模糊查询

                          (5)综合查询

                          (6)统计功能 比如统计处某一类别的图书信息 或 筛选出小于指定数量库存的图书信息等等。

概要设计

1 图书录入可以录入图书名,作者,出版社,出版日期,价格!录入图书编号时函数就会判断此        编 号是否存在,若存在不能成功录入!

2 图书浏览可以浏览全部图书!

3 图书查询提供按图书编号模糊查询,按图书名关键字查询,按图书编号精确查询,按图书名精确      查询!模糊查询和关键字查询事通过比价字符串的相似度而实现的!

4 修改删除图书可以通过图书查询来查询操作的图书编号,通过编号操作!函数会提示用户是否调      用图书查询来找到自己想要操作的图书的编号。如果某一本图书已经被借阅那么用户就不能删        除 该图书!

5 借阅图书通过学号和图书编号进行借阅!如果该学号是第一次借阅那么会提示用户输入自己的姓      名,并存入student.txt,方便以后借阅与归还!

6 归还图书先提供学号,然后程序会输出该学号借阅的所有图书,然后再通过编号归还!

7 借阅查询可查询某个学生已借但未归还的图书!

C语言如何实现图书管理系统

项目源码

结构体

先建立结构体,定义结构体成员

typedef struct book{char num[10];  char name[10];  char auth[10]; int count;int sum;}Book;typedef struct borrow{char id[20];char user[20];char book[20];char bookid[20];struct borrow *next;}BBnode,*BBlink;struct user { char num[10]; char pass[15];char name[15]; char sex[10];  };  typedef struct unode { struct user data; struct unode *next; }Unode,*Ulink; Unode *os;

登录界面函数

int login(Ulink l){  while(!flag){char User_id[10],password[10],tmp;int i=0;User_id[0]='\0';password[0]='\0';textbackground(179);clrscr();gotoxy(33,23);textcolor(YELLOW);cputs("ESC = EXIT");textcolor(WHITE);textbackground(179);box(1,1,80,24);h_line(2,3,78);gotoxy(15,2);cputs("Login now please input the User__ID  and Password");bar_(30,10,23,5,5);while(User_id[0]=='\0'){gotoxy(31,11);textcolor(YELLOW);textbackground(5);cputs("User__ID:");gotoxy(31,13);cputs("Password:");textbackground(179);textcolor(WHITE);gotoxy(28,7);cputs("please input the User__ID!");textbackground(179);textcolor(YELLOW);gotoxy(27,11);putch(272);gotoxy(27,13);putch(' ');gotoxy(40,11);tmp=getch();if(tmp==27){flg=27;return 0;}while(tmp!='\r'&&i<=9&&(tmp>=64&&tmp<=90)||(tmp>=97&&tmp<=122||(tmp>=48&&tmp<=57))){textcolor(YELLOW);textbackground(5);putch(tmp);User_id[i]=tmp;i++;tmp=getch();if(tmp==27){flg=27;return 0;}}User_id[i]='\0';}while(password[0]=='\0'){gotoxy(28,7);textbackground(179);textcolor(WHITE);cputs("  input the password now  ");textbackground(179);textcolor(YELLOW);gotoxy(27,13);putch(272);gotoxy(27,11);putch(' ');gotoxy(40,13);i=0;tmp=getch();if(tmp==27){flg=27;return 0;}while(tmp!='\r'&&i<=10&&(tmp>=64&&tmp<=90)||(tmp>=97&&tmp<=122||(tmp>=48&&tmp<=57))){textbackground(5);putch('*'); password[i]=tmp;i++;tmp=getch();if(tmp==27){flg=27;return 0;}}password[i]='\0';}if(!strcmp(User_id,"admin")&&!strcmp(password,"admin")){return 2;}if(cmps(l,User_id,password)){ return 1;}}}

选择界面函数

void choose(){while(1){ textbackground(179);clrscr();gotoxy(33,2);textcolor(WHITE);cputs("Administrastor");textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,6);cputs(">>>-------------------------1.User Management----------------------------<<<");gotoxy(3,10);cputs(">>>-------------------------2.Book Management----------------------------<<<");gotoxy(3,14);cputs(">>>-------------------------3.Borrow Books-------------------------------<<<");gotoxy(30,22);textcolor(RED);cputs("Please Select!!!");flg=getch();if(flg=='2')bookss();if(flg=='1')users();if(flg=='3')borrow();if(flg==27){flg=-1;return;}}}void admin(){while(1){choose();if(flg=='1')bookss();if(flg=='2')users();if(flg=='3')borrow();if(flg==27){return;}}}

操作界面函数

void user(Ulink h){int flag;BBlink l,p,r; FILE *fp;  int count=0; l=(BBnode*)malloc(sizeof(BBnode)); l->next=NULL; r=l; fp=fopen(bfile,"rb"); if(fp==NULL) { fp=fopen(bfile,"wb"); } while(!feof(fp)) {p=(BBnode*)malloc(sizeof(BBnode)); if(fread(p,sizeof(BBnode),1,fp))  { p->next=NULL;         r->next=p;         r=p;          count++;     } } while(1) {textbackground(179);clrscr();textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,2);textcolor(RED);cputs("A.");textcolor(BLUE);cputs("my message  ");textcolor(RED);cputs("B.");textcolor(BLUE);cputs("modyfy my message  ");textcolor(RED);cputs("C.");textcolor(BLUE);cputs("my borrow  ");textcolor(RED);cputs("D.");textcolor(BLUE);cputs("search book");textcolor(YELLOW);gotoxy(50,50);flag=getch();     switch(flag){ case 'a':show(os);break; case 'b':Modify_user(h);Save(h);break;case 'c':Myborrow();break;case 'd':usersearch(); break;case 27:return;}  }  }

添加函数

图书的添加,包括用户添加以及管理员添加

void add(blink l){ Bnode *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; textcolor(RED);gotoxy(25,4);cputs("INPUT THE MESSAGE ABOUT BOOK");gotoxy(31,10);textcolor(YELLOW);cputs("Book ID:");scanf("%s",num); p=(Bnode *)malloc(sizeof(Bnode));  while(s) { if(strcmp(s->data.num,num)==0) { textcolor(WHITE);gotoxy(25,15);cputs("This ID:");printf("'%s'",num); cputs("is exist!");    gotoxy(25,22);cputs("please Press any key to continue...");  gotoxy(255,252);getch();                    return; } s=s->next; } strcpy(p->data.num,num); gotoxy(31,12);textcolor(YELLOW);cputs("Input Book name:"); scanf("%s",p->data.name); gotoxy(31,14);cputs("input your Book auth:"); scanf("%s",p->data.auth); gotoxy(31,16);cputs("input your Book count:"); scanf("%d",&p->data.count); bookcount=p->data.count+bookcount;p->data.sum=0;p->next=NULL; r->next=p; r=p; gotoxy(30,22);textcolor(RED);cputs("Add Book Success !!!");getch();textcolor(YELLOW);}   void Add(Ulink l){ Unode *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; textcolor(RED);gotoxy(25,4);cputs("INPUT THE MESSAGE ABOUT BOOK");gotoxy(31,10);textcolor(YELLOW);cputs("User ID:");scanf("%s",num); p=(Unode *)malloc(sizeof(Unode));  while(s) { if(strcmp(s->data.num,num)==0) { gotoxy(25,15);cputs("This ID:");printf("'%s'",num); cputs("is exist!");    gotoxy(25,22);textcolor(RED);cputs("please Press any key to continue...");  gotoxy(255,252);getch();                    return; } s=s->next; } strcpy(p->data.num,num); gotoxy(31,12);textcolor(YELLOW);cputs("Input Password:"); scanf("%s",p->data.pass); gotoxy(31,14);cputs("input your name:"); scanf("%s",p->data.name); gotoxy(31,16);cputs("input the sex:"); scanf("%s",p->data.sex); p->next=NULL; r->next=p; r=p; gotoxy(30,22);cputs("Add User Success !!!");usercount++;getch();textcolor(YELLOW);}

查找函数

用户查找以及管理员查找

void qur(blink l){ int sel; char findmess[20]; Bnode *p;  if(!l->next) { gotoxy(30,4);textcolor(WHITE);     cputs("Not Find Bookdata!!!");  getch();    return; } textcolor(RED);gotoxy(25,4);cputs("Please Select Search  Type !");gotoxy(10,8);textcolor(WHITE);cputs("1.Search by ID");gotoxy(10,10);cputs("2.Search by Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel); if(sel==1) {gotoxy(36,8);textcolor(YELLOW);cputs("Input the search ID:"); scanf("%s",findmess); p=locate(l,findmess,"num"); if(p) { gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->data.name);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count);getch();textcolor(YELLOW);gotoxy(30,21);cputs("Search Success !!");}else {gotoxy(30,22);textcolor(RED);cputs("Not finde !!!"); getch();}}else if(sel==2) { gotoxy(36,8);textcolor(YELLOW);cputs("Input the search name:");scanf("%s",findmess); p=locate(l,findmess,"name"); if(p) { gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->data.name);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count);getch();textcolor(YELLOW);} else {textcolor(RED);gotoxy(30,22);cputs("Not finde !!!"); }} else {textcolor(RED);gotoxy(30,22); cputs("Error !!"); getch();}}  void usersearch(){ int sel; char findmess[20]; Bnode *p; blink l; FILE *fp;  int count=0; Bnode *P,*r;l=(Bnode*)malloc(sizeof(Bnode)); l->next=NULL; r=l; fp=fopen(file,"rb"); if(fp==NULL) { fp=fopen(file,"wb");  } while(!feof(fp)) {     P=(Bnode*)malloc(sizeof(Bnode));     if(fread(P,sizeof(Bnode),1,fp))      {         P->next=NULL; bookcount=bookcount+P->data.count;booksum=booksum+P->data.sum;        r->next=P;         r=P;          count++;     }} fclose(fp);    if(!l->next) { gotoxy(30,4);textcolor(WHITE);     cputs("Not Find Bookdata!!!"); getch();    return; } textcolor(RED);gotoxy(25,4);cputs("Please Select Delete  Type !");gotoxy(10,8);textcolor(WHITE);cputs("1.Search by ID");gotoxy(10,10);cputs("2.Search by Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel); if(sel==1) {gotoxy(36,8);textcolor(YELLOW);cputs("Input the search ID:"); scanf("%s",findmess); p=locate(l,findmess,"num"); if(p) { gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->data.name);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",p->data.count-p->data.sum);getch();textcolor(YELLOW);}else {gotoxy(30,22);textcolor(RED);cputs("Not finde !!!"); getch();}}else if(sel==2){ gotoxy(36,8);textcolor(YELLOW);cputs("Input the search name:");scanf("%s",findmess); p=locate(l,findmess,"name"); if(p) { gotoxy(36,12);textcolor(WHITE);cputs("Book ID:");printf("%s",p->data.num);gotoxy(36,14);textcolor(WHITE);cputs("Book Name:");printf("%s",p->data.name);gotoxy(36,16);textcolor(WHITE);cputs("Book author:");printf("%s",p->data.auth);gotoxy(36,18);textcolor(WHITE);cputs("Book count:");printf("%d",(p->data.count-p->data.sum));getch();textcolor(YELLOW);} else {textcolor(RED);gotoxy(30,22);cputs("Not finde !!!"); }} else {textcolor(RED);gotoxy(30,22); cputs("Error !!"); getch();}}  int cmpbook(blink l,char id[],char na[]){ char findm[20];Bnode *p; if(!l->next) { gotoxy(25,4);textcolor(RED);     cputs("Not Find Book!!!");  getch();    return 0; } strcpy(findm,id);p=locate(l,findm,"num"); if(p) { strcpy(findm,na);p=locate(l,findm,"name"); if(p) { return 1;} else {textcolor(RED);gotoxy(30,22);cputs("Book name is NULL !!!"); getch();return 0;}}else {gotoxy(30,22);textcolor(RED);cputs("Book id is NULL !!!"); getch();return 0;}   }

删除函数

图书的删除

void del(blink l) { int sel; Bnode *p,*r; char findmess[20]; if(!l->next) { gotoxy(25,4);textcolor(RED);cputs("=====>not thing could delete!\n"); getch();return; } textcolor(RED);gotoxy(25,4);puts("Please Select Delete  Type !");gotoxy(10,8);textcolor(WHITE);cputs("1.Delete by Book ID");gotoxy(10,10);cputs("2.Delete by Book Name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel); if(sel==1)     { gotoxy(36,8);textcolor(YELLOW);cputs("Input the delete ID:"); scanf("%s",findmess); p=locate(l,findmess,"num"); if(p) { bookcount=bookcount-p->data.count;r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); gotoxy(30,22);textcolor(RED);cputs("Delete success!\n");     textcolor(YELLOW);  } else {textcolor(RED);gotoxy(30,22); cputs("Error !!"); }} else if(sel==2) { gotoxy(36,8);textcolor(YELLOW);cputs("Input the delete name:"); scanf("%s",findmess); p=locate(l,findmess,"name"); if(p) { r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); gotoxy(30,22);textcolor(RED);cputs("Delete success!\n"); bookcount--;textcolor(YELLOW);  } else{gotoxy(25,18);cputs("Not find!!"); }} else{textcolor(RED);gotoxy(30,22); cputs("Error !!");  }getch();textcolor(YELLOW);}

借书管理函数

void borrow(){while(1){int flag;BBlink l,p,r; FILE *fp;  int count=0; l=(BBnode*)malloc(sizeof(BBnode)); l->next=NULL; r=l; fp=fopen(bfile,"rb"); if(fp==NULL) { fp=fopen(bfile,"wb"); } while(!feof(fp)) {p=(BBnode*)malloc(sizeof(BBnode)); if(fread(p,sizeof(BBnode),1,fp))  { p->next=NULL;         r->next=p;         r=p;          count++;     } borrowcount=count;} while(1) {textbackground(179);clrscr();textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,2);textcolor(RED);cputs("B");textcolor(BLUE);cputs("orrow book  ");textcolor(RED);cputs("R");textcolor(BLUE);cputs("eturn book  ");textcolor(RED);cputs("S");textcolor(BLUE);cputs("earch borrow  ");textcolor(YELLOW);printf("count: (borrow=%d)",borrowcount);textcolor(RED);gotoxy(50,50);flag=getch();     switch(flag){ case 'b':Add_borrow(l);break; case 'r':Del_borrow(l);Save_borrow(l);break;case 's':Qur_borrow(l);break;case 27:return;}      }    }}

信息储存函数

图书信息的储存

*******借书信息保存*******/void Save_borrow(BBlink l) {  FILE* fp;  BBnode *p;  int flag=1,count=0;  fp=fopen(bfile,"wb");  if(fp==NULL)  { gotoxy(35,12);textcolor(RED);      cputs("open error!");       exit(1);  }  p=l->next;  while(p)  {       if(fwrite(p,sizeof(BBnode),1,fp)==1)       {           p=p->next;           count++;       }       else       {           flag=0;           break;       } } if(flag) { textcolor(RED);gotoxy(30,24); }fclose(fp); }

还书函数

 void Del_borrow(BBlink l) { int sel; BBnode *p,*r; Bnode *L;char findmess[20];FILE *fp; Bnode *P,*R,*Q;L=(Bnode*)malloc(sizeof(Bnode)); L->next=NULL; R=L; fp=fopen(file,"rb"); if(fp==NULL) { fp=fopen(file,"wb"); }while(!feof(fp)){    P=(Bnode*)malloc(sizeof(Bnode));    if(fread(P,sizeof(Bnode),1,fp))     {        P->next=NULL;        R->next=P;        R=P;     }}fclose(fp);  if(!l->next){gotoxy(30,4);textcolor(RED);cputs("not Book could Return!\n");getch();return;}textcolor(RED);gotoxy(25,4);puts("Please Select Return  Type !");gotoxy(10,8); textcolor(WHITE);cputs("1.Return by Borrow ID");gotoxy(10,10);cputs("2.Return by book name");gotoxy(10,12);cputs("Please Select 1 or 2:");scanf("%d",&sel);if(sel==1){gotoxy(36,8);textcolor(YELLOW);cputs("Input the Borrow ID:");scanf("%s",findmess);p=Locate_borrow(l,findmess,"num");if(p){ Q=locate(L,findmess,"num");if(Q) { Q->data.sum=Q->data.sum-1;save(L);} r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); gotoxy(30,22);textcolor(RED);cputs("Return success!\n"); borrowcount--;getch();textcolor(YELLOW);  } else {gotoxy(30,22);textcolor(RED);cputs("Note find !!"); getch();}} else if(sel==2) { gotoxy(36,8);textcolor(YELLOW);cputs("Input the Book name:"); scanf("%s",findmess); p=Locate_borrow(l,findmess,"book");if(p) { Q=locate(L,findmess,"name"); if(Q) { Q->data.sum=Q->data.sum-1;save(L);} r=l; while(r->next!=p) r=r->next; r->next=p->next; free(p); gotoxy(30,22);textcolor(RED);cputs("Borrow success!\n"); borrowcount--;getch();textcolor(YELLOW);  } else{gotoxy(30,18);textcolor(RED);cputs("Not find!!"); getch();}} else{gotoxy(30,22);textcolor(RED);cputs("Not finde !!"); getch();}textcolor(YELLOW);}

修改函数

也分为用户和管理员两种情况 

void Modify(Ulink l) { Unode *p; char findmess[20]; if(!l->next) {gotoxy(30,4);textcolor(RED);cputs("not thing could modify!"); getch();return; } gotoxy(30,4);textcolor(RED);cputs("Modify User Message");gotoxy(25,8);textcolor(YELLOW);cputs("input the User Id:");scanf("%s",findmess); p=Locate(l,findmess,"num"); if(p) { textcolor(YELLOW);gotoxy(25,10);printf("Inpute The New ID(old:%s):",p->data.num); scanf("%s",p->data.num); gotoxy(25,12);printf("Input The New Password(old:%s):",p->data.pass); scanf("%s",p->data.pass); gotoxy(25,14);printf("Input The New Name(old:%s):",p->data.name); scanf("%s",p->data.name); gotoxy(25,16);printf("Input The New Sex(old:%s):",p->data.sex); scanf("%s",p->data.sex); gotoxy(30,20);textcolor(RED);cputs("Modify Success !!!"); getch();textcolor(YELLOW);} else {gotoxy(30,16);textcolor(RED);cputs("Not Finde !!!"); getch();}}    void Modify_user(Ulink l){ Unode *p; char findmess[20]; if(!l->next) {gotoxy(30,4);textcolor(RED);cputs("not thing could modify!"); getch();return; } gotoxy(30,4);textcolor(RED);cputs("Modify User Message");gotoxy(33,8);textcolor(YELLOW);strcpy(findmess,os->data.num);printf("your id:%s",findmess);p=Locate(l,findmess,"num"); if(p) { textcolor(YELLOW);gotoxy(24,10);printf("Input The New Password(old:%s):",p->data.pass); scanf("%s",p->data.pass); gotoxy(24,12);printf("Input The New Name(old:%s):",p->data.name); scanf("%s",p->data.name); gotoxy(24,14);printf("Input The New Sex(old:%s):",p->data.sex); scanf("%s",p->data.sex); gotoxy(31,18);textcolor(RED);cputs("Modify Success !!!"); getch();textcolor(YELLOW);} else {gotoxy(30,16);textcolor(RED);cputs("Not Finde !!!"); getch();}}

添加借书函数

void Add_borrow(BBlink l) { Ulink H; FILE *Fp;  Unode *Q,*T;blink L; FILE *FP;  int ttl; Bnode *P,*R;char bookid[20];char bookname[20];char userid[20];BBnode *p,*r,*s; char num[10]; r=l; s=l->next; while(r->next!=NULL) r=r->next; L=(Bnode*)malloc(sizeof(Bnode)); L->next=NULL; R=L; FP=fopen(file,"rb"); if(FP==NULL) { FP=fopen(file,"wb");  } while(!feof(FP)) {     P=(Bnode*)malloc(sizeof(Bnode));     if(fread(P,sizeof(Bnode),1,FP))      {         P->next=NULL; bookcount=bookcount+P->data.count;        R->next=P;         R=P;       } } fclose(FP);    H=(Unode*)malloc(sizeof(Unode)); H->next=NULL; T=H;Fp=fopen(ufile,"rb"); if(Fp==NULL) { Fp=fopen(ufile,"wb");  } while(!feof(Fp)) {     Q=(Unode*)malloc(sizeof(Unode));    if(fread(Q,sizeof(Unode),1,Fp))      {         Q->next=NULL;         T->next=Q;         T=Q;      } } fclose(Fp); textcolor(RED);gotoxy(25,4);cputs("Please input thease message");gotoxy(30,10);textcolor(YELLOW);cputs("Input Borrow ID:");scanf("%d",&ttl);itoa(ttl,num,10) ;p=(BBnode *)malloc(sizeof(BBnode));while(s) { if(strcmp(s->id,num)==0) { gotoxy(30,15);cputs("Borrow ID:");printf("'%s'",num); cputs("is exist!");    gotoxy(26,22);textcolor(RED);cputs("please Press any key to continue...");  gotoxy(255,252);getch();                    return; } s=s->next; } strcpy(p->id,num);gotoxy(31,12);textcolor(YELLOW);cputs("Input book id:"); scanf("%s",bookid);gotoxy(31,14);textcolor(YELLOW);cputs("Input book name:"); scanf("%s",bookname); if(cmpbook(L,bookid,bookname)){strcpy(p->bookid,bookid);strcpy(p->book,bookname);gotoxy(31,16);cputs("input your ID:"); scanf("%s",userid); if(cmpuser(H,userid)){strcpy(p->user,userid);p->next=NULL; r->next=p; r=p; if(changeb(L,bookid)){gotoxy(30,22);cputs("Borrow Success !!!");Save_borrow(l);borrowcount++; getch();}} } textcolor(YELLOW);}

查找借书函数

查找自己借了哪些书

void Myborrow(){int i; BBlink l,p,r; FILE *fp;  int count=0; l=(BBnode*)malloc(sizeof(BBnode)); l->next=NULL; r=l; fp=fopen(bfile,"rb"); if(fp==NULL) { fp=fopen(bfile,"wb"); } i=6;while(!feof(fp)) {  p=(BBnode*)malloc(sizeof(BBnode)); if(fread(p,sizeof(BBnode),1,fp))  { textcolor(WHITE);gotoxy(30,4);cputs("Your borrow book");if(strcmp(p->user,os->data.num)==0){textcolor(YELLOW); gotoxy(20,i);printf("Borrow ID:%s\tBook id:%s\tBook name:%s",p->id,p->bookid,p->book);i++; p->next=NULL; r->next=p; r=p;  count++; }    } myborrow=count;if(myborrow==0){textcolor(YELLOW);gotoxy(30,13);cputs("You  no borrow !!");  }   }fclose(fp);textcolor(YELLOW);gotoxy(65,2);printf("(borrow=%d)",myborrow);getch(); }

借书管理函数

void borrow(){while(1){int flag;BBlink l,p,r; FILE *fp;  int count=0; l=(BBnode*)malloc(sizeof(BBnode)); l->next=NULL; r=l; fp=fopen(bfile,"rb"); if(fp==NULL) { fp=fopen(bfile,"wb"); } while(!feof(fp)) {p=(BBnode*)malloc(sizeof(BBnode)); if(fread(p,sizeof(BBnode),1,fp))  { p->next=NULL;         r->next=p;         r=p;          count++;     } borrowcount=count;} while(1) {textbackground(179);clrscr();textcolor(YELLOW);box(1,1,80,24);h_line(2,3,78);gotoxy(3,2);textcolor(RED);cputs("B");textcolor(BLUE);cputs("orrow book  ");textcolor(RED);cputs("R");textcolor(BLUE);cputs("eturn book  ");textcolor(RED);cputs("S");textcolor(BLUE);cputs("earch borrow  ");textcolor(YELLOW);printf("count: (borrow=%d)",borrowcount);textcolor(RED);gotoxy(50,50);flag=getch();     switch(flag){ case 'b':Add_borrow(l);break; case 'r':Del_borrow(l);Save_borrow(l);break;case 's':Qur_borrow(l);break;case 27:return;}  }  }  }

主函数

main(){ Ulink h,os; FILE *fp;  Unode *p,*r;h=(Unode*)malloc(sizeof(Unode)); h->next=NULL; r=h; fp=fopen(ufile,"rb"); if(fp==NULL) { fp=fopen(ufile,"wb");  } while(!feof(fp)) {     p=(Unode*)malloc(sizeof(Unode));     if(fread(p,sizeof(Unode),1,fp))     {        p->next=NULL;        r->next=p;        r=p;      }}fclose(fp);system("wellcome");if(flg==27){flg=-1;return;}while(1){flag=login(h);if(flg==27){flg=-1;break;} if(flag==2){choose();flag=0;}if(flag==1){user(h);flag=0;} } }

关于“C语言如何实现图书管理系统”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯