C語言實現(xiàn)圖書管理系統(tǒng)課程設(shè)計
更新時間:2022年07月22日 11:58:00 作者:成就一億技術(shù)人
這篇文章主要為大家詳細介紹了C語言實現(xiàn)圖書管理系統(tǒng)課程設(shè)計,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了C語言實現(xiàn)圖書管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
設(shè)計要求
設(shè)計圖書管理系統(tǒng)
要求如下:
1.對書名,作者,編號,出版單位,出版日期,類別,存放位置進行添加、刪除、修改
2.查詢相關(guān)信息
3.保存所有信息
實現(xiàn)代碼
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> typedef struct book ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*定義結(jié)構(gòu)體*/ { ?? ?char bookname[100] ; ? ? ? ?/*書名*/ ?? ?char writer[100]; ? ? ? ? ? /*作者*/ ?? ?char classnumber[100]; ? ? ?/*編號*/ ?? ?char publisher[100]; ? ? ? ?/*出版單位*/ ?? ?char time[100]; ? ? ? ? ? ? /*出版日期*/ ? ? char ?type[100]; ? ? ? ? ? ? ? ?/*類別*/? ? ? char ? place[100]; ? ? ? ? ? ? ?/*存放位置*/ ? ? ? struct ?book *next; }Book; int mima() { ?? ?int i=0; ?? ?char user[10]="aa"; ?? ?char Code[10]="123456"; ?? ?char getuser[10]; ?? ?char Getskey[10]; ?? ?while(1) ?? ?{ ?? ??? ?printf("\t\t\t請輸入賬號:"); ?? ??? ?scanf("%s",getuser); ?? ??? ?printf("\t\t\t請輸入密碼:"); ?? ??? ?while(1) ?? ??? ?{ ?? ??? ??? ?Getskey[i]=getch(); ?? ??? ??? ?if(Getskey[i]=='\r') ?? ??? ??? ??? ?break; ?? ??? ??? ?else if(Getskey[i]=='\b') ?? ??? ??? ?{ ?? ??? ??? ??? ?if(i==0) ?? ??? ??? ??? ??? ?continue; ?? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ?printf(" "); ?? ??? ??? ??? ?printf("\b"); ?? ??? ??? ??? ?i--; ?? ??? ??? ?} ?? ??? ??? ?else ?? ??? ??? ?{ ?? ??? ??? ??? ?printf("*"); ?? ??? ??? ??? ?i++; ?? ??? ??? ?} ?? ??? ?} ?? ??? ?Getskey[6]='\0'; ?? ??? ?if(strcmp(user, getuser)==0&&strcmp(Code, Getskey)==0) ?? ??? ??? ?return 1; ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?printf("\n\n\t\t\t賬號不存在或密碼輸入錯誤,請重新輸入\n"); ?? ??? ??? ?i = 0; ?? ??? ?} ?? ?} } void showmenu1() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示管理員菜單*/? { ?? ?system("cls"); ?? ?printf("\n\n\n\n\n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ? printf("\t ? ? ? ? ? ? ? ? 歡迎來到圖書信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.錄入圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.刪除圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? ? ? ? ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 3.修改圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 4.查詢圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 5.顯示所有圖書信息 ? ? ? ? ? ? ? ? ? \n"); ? ? ? ? ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? 6.返回登錄界面 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 7.保存數(shù)據(jù)并退出系統(tǒng) ? ? ? ? ? ? ? ? \n");? ? ? printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); } void showmenu2() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示游客菜單*/? { ?? ?system("cls"); ?? ?printf("\n\n\n\n\n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? 歡迎來到圖書信息管理系統(tǒng) ? ? ? ? ? ? ? ? \n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ?主菜單 ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 1.查詢圖書信息 ? ? ? ? ? ? ? ? ? ? ? \n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 2.顯示所有圖書信息 ? ? ? ? ? ? ? ? ? \n"); ? ? ? ? ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? 3.返回登錄界面 ? ? ? ? ? ? ? ? ? ? ? \n"); ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); ?? ?printf("\t ? ? ? ? ? ? ? ? ? ? 4.退出系統(tǒng) ? ? ? ? ? ? ? ? ? ? ? ? ? \n");? ? ??? ?printf("\t ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n"); } int savebookdata(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*將數(shù)據(jù)保存到文件中*/ { ?? ?Book *p; ?? ?FILE*fp; ?? ?fp=fopen("D:\\java\\zuoye.txt","w"); ?? ?p=head->next; ?? ?do ?? ?{ ?? ??? ?fprintf(fp,"%s\t",p->bookname); ? ? ? ? /* 把這個結(jié)點的數(shù)據(jù)全部寫入至文件內(nèi)由于next指針不需要寫入至文件,*/ ?? ??? ?fprintf(fp,"%s\t",p->writer); ? ? ? ? ?/*因此,數(shù)據(jù)大小就是sizeof(book)-sizeof(book*)總數(shù)據(jù)大小減去指針的大小 */ ?? ??? ?fprintf(fp,"%s\t",p->classnumber); ?? ??? ?fprintf(fp,"%s\t",p->publisher); ?? ? ? ?fprintf(fp,"%s\t",p->time); ?? ? ? ?fprintf(fp,"%s\t",p->type); ? ? ? ? fprintf(fp,"%s\t\n",p->place); ?? ? ? ?fprintf(fp,"\n"); ?? ??? ?p=p->next; ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ?}while(p!=NULL); ?? ?fclose(fp); ?? ?return 0; } void addnewbook(Book **head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*錄入圖書信息*/ { ?? ?int i; ?? ?Book *p,*s; ?? ?system("cls"); ?? ?if(*head == NULL) { ? ? ? ? ? ? ? ? /* 如果表頭為空,先為它分配內(nèi)存 */ ? ? ? ? *head = (Book *)calloc(1, sizeof(Book)); ? ? ? ? p = *head; ? ? } else { ? ? ? ? ? ? ? ? ? ? ? ? ? ?/* 否則,就說明有內(nèi)容,直接切換到尾結(jié)點 */ ? ? ? ? p = *head; ? ? ? ? while(p->next)? ? ? ? ? p = p->next;? ? ? } ? ? printf("\n\n\n"); ?? ?printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ? ? printf("\t\t\t請問添加幾本書:");? ? ? scanf("%d",&i); ? ? printf("\t--------------------------------------------------------\n"); ? ? while(i) ? ? { ? ? ?? ?s = (Book *)calloc(1, sizeof(Book)); ? ? ? ? ? ? ? ? ? ? ? ?/*為這個結(jié)點分配內(nèi)存 */ ?? ??? ?printf("\t\t\t請輸入書名:"); ?? ??? ?scanf("%s",s->bookname); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\t\t\t請輸入作者:"); ?? ??? ?scanf("%s",s->writer); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\t\t\t請輸入編號:"); ?? ??? ?scanf("%s",s->classnumber); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\t\t\t請輸入出版單位:"); ?? ??? ?scanf("%s",s->publisher); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\t\t\t請輸入出版日期:"); ?? ??? ?scanf("%s",s->time); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\t\t\t請輸入類別:"); ?? ??? ?scanf("%s",s->type); ?? ??? ?printf("\t--------------------------------------------------------\n"); ? ? ? ? printf("\t\t\t請輸入存放位置:"); ?? ??? ?scanf("%s",s->place); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?printf("\n"); ?? ??? ?printf("\t--------------------------------------------------------\n"); ?? ??? ?i--; ?? ??? ??? ? ?? ??? ?p->next=s; ? ?/*保存輸進去的這個結(jié)點*/ ?? ??? ?p=p->next; ? ?/*切換到下一個結(jié)點*/? ?? ??? ?p->next=NULL; /*最后一個結(jié)點為NULL*/ ?? ?} ?? ? ? ? ? ? ? ? printf("\t\t\t圖書添加成功!!!\n"); ?? ?system("pause"); } int readbookdata(Book **head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*將數(shù)據(jù)從文件中讀取*/? { ? ? int n; ? ? Book *s, *p; ? ? FILE *fp; ? ?? ? ? fp=fopen("d:\\java\\zuoye.txt","r"); ? ? /* 如果文件打開失敗,就返回-1 */ ? ? if(NULL == fp) {? ? ? ? ? *head = NULL;? ? ? ? ? return -1; ? ? }? ? ? ? ? ? *head = (Book *)calloc(1, sizeof(Book)); ? ? p = *head;? ? ? ? ??? ? while (!feof(fp)) ?? ?{ ? ? ? ? s = (Book *)calloc(1, sizeof(Book));?? ? ? ? ? ? ? ??? ?/* 為下個結(jié)點分配內(nèi)存空間 */ ?? ??? ?fscanf(fp,"%s",s->bookname); ?? ??? ?fscanf(fp,"%s",s->writer); ?? ??? ?fscanf(fp,"%s",s->classnumber); ?? ??? ?fscanf(fp,"%s",s->publisher); ?? ??? ?fscanf(fp,"%s",s->time); ?? ??? ?fscanf(fp,"%s",p->type); ? ? ? ? fscanf(fp,"%s\n",p->place); ?? ??? ?p->next=s; ? /*保存該結(jié)點*/ ?? ??? ?p=p->next; ? /*切換到下一個結(jié)點*/ ?? ??? ?p->next=NULL; /*保證最后一個結(jié)點為NULL*/ ?? ?} ? ? ? ? ? fclose(fp);/* 關(guān)閉文件 */ ? ? return 0;? } void deletebook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*刪除圖書信息*/ { ?? ?system("cls"); ?? ?int flag=0; ?? ?char name[100],ch[10]; ?? ?Book *p,*t; ?? ? ?? ?/* 如果表頭為空 */ ? ? if(head == NULL || head->next == NULL) { ? ? ? ? printf("沒有記錄圖書信息!\n"); ? ? ? ? system("pause"); ? ? ? ? return; ? ? } ?? ? ?? ?p=head; ?? ?printf("\n\n\n"); ? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ?printf("請輸入要刪除的書名;"); ?? ?scanf("%s",&name); ?? ?printf("----------------------------------------------------------------------\n"); ?? ?printf("書名\t\t作者名\t\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ?while(p->next) ?? ?{ ?? ??? ?t=p; ?? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ? ? ?if(strcmp(name,p->bookname)==0) ?? ? ? ?{ ?? ? ? ??? ?flag=1; ?? ? ? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ? ? ? ? ?break; ?? ??? ?} ?? ?} ?? ?? ?? ?if(flag==1) ?? ?{ ?? ??? ?printf("是否刪除該本圖書信息(y/n)"); ?? ??? ?scanf("%s",ch); ?? ??? ?printf("----------------------------------------------------------------------\n"); ?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) ?? ??? ?{ ?? ??? ??? ?t->next=p->next; ?? ??? ??? ?printf("該書已刪除!\n"); ?? ??? ?} ?? ??? ?else ?? ??? ? ? ?return; ?? ?} ?? ?else if(flag==0) ?? ? ? ?printf("沒找到那本書!\n"); ?? ? ?? ?system("pause"); } void modifybook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*修改圖書信息*/ { ?? ?system("cls"); ?? ?int flag=0; ?? ?char name[100],ch[10]; ?? ?Book *p,*t; ?? ? ?? ?/* 如果表頭為空 */ ? ? if(head == NULL || head->next == NULL) { ? ? ? ? printf("沒有記錄圖書信息!\n"); ? ? ? ? system("pause"); ? ? ? ? return ; ? ? } ?? ? ?? ?p=head; ?? ? ?? ?printf("\n\n\n"); ?? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ?printf("請輸入要修改的書名:"); ?? ?scanf("%s",name); ?? ?printf("--------------------------------------------------------------------\n"); ?? ?while(p->next) ?? ?{ ?? ??? ?p=p->next; ? ? ? ? ? ? ? ? /*切換到下一個結(jié)點*/ ?? ? ? ?if(strcmp(name,p->bookname)==0) ?? ? ? ?{ ?? ? ? ??? ?flag=1; ?? ? ? ??? ?t=p; ?? ??? ??? ?printf("書名\t\t作者名\t\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ? ? ??? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ??? ?} ?? ?} ?? ? ?? ?if(flag==1) ?? ?{ ?? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ?printf("\t\t是否修改該本圖書信息(y/n):"); ?? ??? ?scanf("%s",ch); ?? ??? ?printf("\t--------------------------------------------------------------------\n"); ?? ??? ?if(strcmp(ch,"Y")==0||strcmp(ch,"y")==0) ?? ??? ?{ ?? ??? ??? ?int c; ?? ??? ??? ?printf("\t\t【1】書名\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t\t【2】作者\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t\t【3】編號\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t\t【4】出版單位\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t\t【5】出版日期\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t\t【6】類別\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ? ? ? ? ? ? printf("\t\t【7】存放位置\n"); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?printf("\t請輸入你要修改的內(nèi)容;"); ?? ??? ??? ?scanf("%d",&c); ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ??? ?p=t; ?? ??? ??? ?switch(c) ?? ??? ??? ?{ ?? ??? ??? ??? ?case 1: ?? ??? ??? ??? ? ? ?printf("\t請輸入書名:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->bookname); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ? ? ?case 2: ?? ??? ??? ? ? ? ? ?printf("\t請輸入作者:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->writer); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ? ? ?case 3: ?? ??? ??? ? ? ? ? ?printf("\t請輸入編號:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->classnumber); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ? ? ?case 4: ?? ??? ??? ? ? ? ? ?printf("\t請輸入出版單位:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->publisher); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ? ? ?case 5: ?? ??? ??? ? ? ? ? ?printf("\t請輸入出版日期:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->time); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ? ? ?case 6: ?? ??? ??? ? ? ? ? ?printf("\t請輸入類別:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->type); ?? ??? ??? ? ? ? ? ?break; ? ? ? ? ? ? ? ? ? ? ?case 7: ?? ??? ??? ? ? ? ? ?printf("\t請輸入存放位置:"); ?? ??? ??? ? ? ? ? ?scanf("%s",p->place); ?? ??? ??? ? ? ? ? ?break; ?? ??? ??? ?} ?? ??? ??? ?printf("--------------------------------------------------------------------\n"); ?? ??? ? ? ?printf("\t恭喜大佬修改成功!!!\n"); ?? ??? ?} ?? ?} ?? ? ?? ?else if(flag==0) ?? ? ? ?printf("對不起,該書庫沒有該書\n"); ?? ? ? ?system("pause"); } void searchbook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*查詢圖書信息*/ { ?? ?system("cls"); ?? ?int choose,flag=0; ?? ?Book *p; ?? ?char b[100]; ?? ? ?? ?/* 如果表頭為空 */ ? ? if(head == NULL || head->next == NULL) { ? ? ? ? printf("沒有記錄圖書信息!\n"); ? ? ? ? system("pause"); ? ? ? ? return ; ? ? } ? ?? ? ? do ?? ?{ ?? ??? ?system("cls"); ?? ??? ?printf("\n\n\n"); ?? ??? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ??? ?printf("\t\t1.按書名查找\n"); ?? ??? ?printf("----------------------------------------------------------------------\n"); ?? ??? ?printf("\t\t2.按作者名查找\n"); ?? ??? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? printf("\t\t3.按編號查找\n"); ?? ??? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? printf("\t\t4.按出版單位查找\n"); ?? ??? ?printf("----------------------------------------------------------------------\n"); ? ? ? ? printf("\t\t返回主菜單(其他數(shù)字)\n"); ?? ??? ?printf("----------------------------------------------------------------------\n"); ?? ??? ?printf("\t\t請輸入您的選擇:"); ?? ??? ?scanf("%d",&choose); ?? ??? ?printf("----------------------------------------------------------------------\n"); ?? ??? ?p=head; ?? ??? ? ?? ??? ?if(choose==1) ?? ??? ?{ ?? ??? ??? ?printf("輸入所查書名:"); ?? ??? ??? ?scanf("%s",b); ?? ??? ??? ?printf("----------------------------------------------------------------------\n\n"); ?? ??? ??? ?while(p->next) ?? ??? ??? ?{ ?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ??? ??? ??? ?if(strcmp(b,p->bookname)==0) ? ? ? ? /*判斷是否找到并輸出*/ ?? ??? ??? ? ? ?{ ?? ??? ??? ??? ? ? ? flag=1; ?? ??? ??? ??? ? ? ? printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ??? ??? ??? ??? ? printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ? ? ? ?? ??? ??? ? ??? ? printf("----------------------------------------------------------------------\n"); ?? ??? ??? ??? ? ? ? printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ??? ??? ? ? ?} ?? ??? ??? ?} ?? ??? ??? ?if(flag==0) ?? ??? ??? ? ? ? ? ? printf("不存在該信息\n"); ?? ??? ?} ?? ??? ? ?? ??? ?else if(choose==2) ?? ??? ?{ ?? ??? ??? ?printf("輸入所查作者名:"); ?? ??? ??? ?scanf("%s",b); ?? ??? ??? ?printf("----------------------------------------------------------------------\n\n"); ?? ??? ??? ?while(p->next) ?? ??? ??? ?{ ?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ??? ??? ??? ?if(strcmp(b,p->writer)==0) ? ? ? ? /*判斷是否找到并輸出*/ ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n"); ?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(flag==0) ?? ??? ??? ? ? ? ? ?printf("不存在該信息\n"); ?? ??? ?} ?? ??? ?else if(choose==3) ?? ??? ?{ ?? ??? ??? ?printf("輸入所查編號:"); ?? ??? ??? ?scanf("%s",b); ?? ??? ??? ?printf("----------------------------------------------------------------------\n\n"); ?? ??? ??? ?while(p->next) ?? ??? ??? ?{ ?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ??? ??? ??? ?if(strcmp(b,p->classnumber)==0) ? ? ? ? /*判斷是否找到并輸出*/ ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n"); ?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(flag==0) ?? ??? ??? ? ? ? ? ?printf("不存在該信息\n"); ?? ??? ?} ?? ??? ?else if(choose==4) ?? ??? ?{ ?? ??? ??? ?printf("輸入所查出版單位:"); ?? ??? ??? ?scanf("%s",b); ?? ??? ??? ?printf("----------------------------------------------------------------------\n\n"); ?? ??? ??? ?while(p->next) ?? ??? ??? ?{ ?? ??? ??? ??? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ??? ??? ??? ?if(strcmp(b,p->publisher)==0) ? ? ? ? /*判斷是否找到并輸出*/ ?? ??? ??? ??? ?{ ?? ??? ??? ??? ??? ?flag=1; ?? ??? ??? ??? ? ? ?printf("※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ? ? ? ? ? ? ? ? ?printf("書名\t作者名\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ? ? ? ? ? ? ? ? ?printf("----------------------------------------------------------------------\n"); ?? ??? ??? ??? ? ? ?printf("%s\t%s\t%s\t%s\t%s%s\t%s\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ??? ??? ??? ?} ?? ??? ??? ?} ?? ??? ??? ?if(flag==0) ?? ??? ??? ? ? ? ? ?printf("不存在該信息\n"); ?? ??? ?}?? ??? ? ?? ??? ?else ?? ??? ? ? ?return; ?? ??? ?system("pause"); ?? ?}while(1); } int printfbook(Book *head) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /*顯示所有圖書信息*/ ? ? ? ? ? { ?? ?Book *p; ?? ?system("cls"); ?? ? ?? ?/* 如果表頭為空 */ ? ? if(head == NULL || head->next == NULL) { ? ? ? ? printf("沒有記錄圖書信息!\n"); ? ? ? ? system("pause"); ? ? ? ? return 0; ? ? } ?? ? ? ? p=head->next; ? ? printf("\n\n\n"); ? ? printf("**********************************************************************************\n"); ? ? printf(" ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 圖書列表 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? \n"); ? ? printf("----------------------------------------------------------------------------------\n"); ?? ?printf("書名\t作者\t編號\t出版單位\t出版時間\t類別\t存放位置\n"); ?? ?? ?printf("----------------------------------------------------------------------------------\n"); ? ?? ?? ?do ?? ?{ ?? ? ? ?printf("%s\t%s\t%s\t%s\t%s\t%s\t%s\n\n",p->bookname,p->writer,p->classnumber,p->publisher,p->time,p->type,p->place); ?? ? ? ?p=p->next; ? ? ? ? ? ? ? ? ? ? ? ? ? /*轉(zhuǎn)換到下一個結(jié)點*/ ?? ?}while(p!=NULL); ?? ? ?? ?system("pause"); } int main(void) { ?? ?system("cls"); ?? ?Book *head=NULL; ?? ?readbookdata(&head); ?? ?int choice,z,c; ?? ?printf("\n\n\n"); ?? ?printf("\t※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"); ?? ?printf("\t\t\t歡迎光臨圖書信息管理系統(tǒng)\n"); ?? ?printf("\t--------------------------------------------------------\n"); ?? ?printf("\t\t\t【1】游客\n"); ?? ?printf("\t\t\t【2】管理員\n"); ?? ?printf("\t\t\t【3】退出系統(tǒng)\n"); ?? ?printf("\t--------------------------------------------------------\n"); ?? ?while(printf("\t\t\t請選擇身份:")&&scanf("%d",&c)!=EOF) ?? ?{ ?? ??? ?if(c==1) ?? ??? ?{ ?? ??? ??? ?showmenu2(); ?? ??? ??? ?while (printf("\t請輸入選擇項(1-3):")&&scanf("%d",&choice)!=EOF) ? ? ?? ??? ?{ ?? ??? ? ? ??? ?switch (choice) ? ? ?? ??? ??? ?{ ? ? ?? ??? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書信息*/ ?? ??? ??? ??? ? ? ??? ?searchbook(head); ?? ??? ??? ? ? ??? ??? ?break; ?? ??? ??? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書信息*/ ? ? ?? ? ? ? ? ? ? ??? ?printfbook(head); ?? ??? ??? ? ? ??? ??? ?break;? ?? ??? ??? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/ ?? ??? ??? ??? ??? ??? ?main(); ?? ??? ??? ??? ??? ??? ?break; ?? ??? ??? ??? ??? ?case 4: ?? ??? ??? ??? ??? ??? ?exit(0);? ?? ??? ??? ? ? ??? ?default: ?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯誤!!!\n"); ?? ??? ??? ??? ? ? ??? ?system("pause"); ?? ??? ??? ??? ? ? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?showmenu2(); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?else if(c==2) ?? ??? ?{ ?? ??? ??? ?z=mima(); ?? ??? ??? ?showmenu1(); ?? ??? ??? ?while (printf("\t請輸入選擇項(1-6):")&&z==1&&scanf("%d",&choice)!=EOF) ? ? ?? ??? ?{ ?? ? ? ??? ??? ?switch (choice) ? ? ?? ??? ??? ?{ ?? ??? ? ? ??? ??? ?case 1: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*錄入圖書信息*/ ?? ??? ??? ??? ? ? ??? ?addnewbook(&head); ?? ??? ??? ? ? ??? ??? ?break; ? ?? ??? ? ? ??? ??? ?case 2: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*刪除圖書信息*/ ?? ??? ??? ? ? ??? ??? ?deletebook(head); ?? ??? ??? ? ? ??? ??? ?break; ?? ??? ? ? ??? ??? ?case 3: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*修改圖書信息*/ ?? ??? ??? ? ? ??? ??? ?modifybook(head); ?? ??? ??? ? ? ?? ??? ? ?? ?break; ?? ??? ? ? ??? ??? ?case 4: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*查詢圖書信息*/ ?? ??? ??? ??? ? ? ??? ?searchbook(head); ?? ??? ??? ? ? ??? ??? ?break; ?? ??? ??? ??? ??? ?case 5: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*顯示所有圖書信息*/ ? ? ? ? ? ? ?? ? ? ??? ?printfbook(head); ?? ??? ? ? ??? ??? ??? ?break; ?? ??? ? ? ??? ??? ?case 6: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*返回登錄界面*/ ?? ??? ??? ??? ??? ??? ?main(); ?? ??? ??? ??? ??? ??? ?break;? ?? ??? ??? ??? ??? ?case 7: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?/*保存數(shù)據(jù)并退出系統(tǒng)*/ ?? ??? ??? ??? ? ? ??? ?savebookdata(head); ?? ??? ??? ??? ??? ??? ?exit(0); ?? ??? ? ? ??? ??? ?default: ?? ??? ??? ??? ? ? ??? ?printf("\t輸入錯誤!!!\n"); ?? ??? ??? ??? ? ? ??? ?system("pause"); ?? ??? ??? ??? ? ? ??? ?break; ?? ??? ??? ??? ?} ?? ??? ??? ??? ?showmenu1(); ?? ??? ??? ?} ?? ??? ?} ?? ??? ?else if(c==3) ?? ??? ??? ?exit(0); ?? ??? ?else ?? ??? ?{ ?? ??? ??? ?printf("\t\t\t輸入錯誤!!!\n\n"); ?? ??? ?} ?? ?} ?? ?return 0; }
運行結(jié)果
這里提供的是管理員身份
這里提供游客身份(供選擇的功能相對管理員少)
后面大家就可以自行輸入對應(yīng)功能前的序號,實現(xiàn)此系統(tǒng)的功能
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
基于Qt實現(xiàn)C/C++調(diào)用Matlab函數(shù)全過程
這篇文章給大家詳細介紹了基于Qt平臺實現(xiàn)C/C++調(diào)用Matlab函數(shù)全流程,文中通過圖文和代碼示例給大家講解的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下2024-01-01