亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C > 正文

C語言實現圖書管理系統

2020-01-26 13:47:49
字體:
來源:轉載
供稿:網友

本文實例為大家分享了C語言實現圖書管理系統的具體代碼,供大家參考,具體內容如下

一、分析過程

首先此程序需要實現輸入、增加、刪除、查詢、輸出的五大功能,則首先需要設置一個菜單鍵,讓用戶可以選擇不同的功能,完成不同的操作,然后編寫不同的函數實現不同的功能,在這個過程中注意要人性化,讓用戶方便,直觀的進行操作。

二、算法

三、函數模塊介紹

 1錄入模塊:本模塊主要執行信息的錄入功能

 2瀏覽模塊:本模塊主要是執行把已有信息輸出瀏覽功能

 3查詢模塊:本模塊主要是按照圖書名查找圖書的相關信息

 4刪除模塊:主要是執行刪除圖書信息的功能

 5退出模塊:方便用戶離開

四、源程序

#include<stdio.h> #include<math.h> #include<string.h> #include<stdlib.h>   struct books_list {   char author[20];  /*作者名*/  char bookname[20];  /*書名*/  char publisher[20];  /*出版單位*/  char pbtime[15];  /*出版時間*/  char loginnum[10];  /*登陸號*/  float price;   /*價格*/  char classfy[10];  /*分類號*/  struct books_list * next; /*鏈表的指針域*/ };  struct books_list * Create_Books_Doc(); /*新建鏈表*/ void InsertDoc(struct books_list * head); /*插入*/ void DeleteDoc(struct books_list * head , int num);/*刪除*/ void Print_Book_Doc(struct books_list * head);/*瀏覽*/ void search_book(struct books_list * head); /*查詢*/ void save(struct books_list * head);/*保存數據至文件*/  /*新建鏈表頭節點*/ struct books_list * Create_Books_Doc() {  struct books_list * head;  head=(struct books_list *)malloc(sizeof(struct books_list)); /*分配頭節點空間*/  head->next=NULL; /*頭節點指針域初始化,定為空*/  return head; }  /*保存數據至文件*/ void save(struct books_list * head) {  struct books_list *p;  FILE *fp;  p=head;  fp=fopen("data.txt","w+"); /*以寫方式新建并打開 data.txt文件*/  fprintf(fp,"┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓/n"); /*向文件輸出表格*/  fprintf(fp,"┃登錄號┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時間 ┃分類號┃ 價格 ┃/n");  fprintf(fp,"┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫/n");  /*指針從頭節點開始移動,遍歷至尾結點,依次輸出圖書信息*/  while(p->next!= NULL)  {  p=p->next;  fprintf(fp,"┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃/n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price);  }  fprintf(fp,"┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛/n");  fclose(fp);  printf("   已將圖書數據保存到 data.txt 文件/n"); }  /*插入*/ void InsertDoc(struct books_list *head) {  /*定義結構體指針變量 s指向開辟的新結點首地址 p為中間變量*/  struct books_list *s, *p;  char flag='Y'; /*定義flag,方便用戶選擇重復輸入*/  p=head;  /*遍歷到尾結點,p指向尾結點*/  while(p->next!= NULL)  {  p=p->next;  }  /*開辟新空間,存入數據,添加進鏈表*/  while(flag=='Y'||flag=='y')  {  s=(struct books_list *)malloc(sizeof(struct books_list));  printf("/n   請輸入圖書登陸號:");  fflush(stdin);  scanf("%s",s->loginnum);  printf("/n   請輸入圖書書名:");  fflush(stdin);  scanf("%s",s->bookname);  printf("/n   請輸入圖書作者名:");  fflush(stdin);  scanf("%s",s->author);  printf("/n   請輸入圖書出版社:");  fflush(stdin);  scanf("%s",s->publisher);  printf("/n   請輸入圖書出版時間:");  fflush(stdin);  scanf("%s",s->pbtime);  printf("/n   請輸入圖書分類號:");  fflush(stdin);  scanf("%s",s->classfy);  printf("/n   請輸入圖書價格:");  fflush(stdin);  scanf("%f",&s->price);  printf("/n");  p->next=s; /*將新增加的節點添加進鏈表*/  p=s; /*p指向尾節點,向后移*/  s->next=NULL;  printf("   ━━━━ 添加成功!━━━━");  printf("/n    繼續添加?(Y/N):");  fflush(stdin);  scanf("%c",&flag);  printf("/n");  if(flag=='N'||flag=='n')  {break;}  else if(flag=='Y'||flag=='y')  {continue;}  }  save(head); /*保存數據至文件*/  return; }  /*查詢操作*/  void search_book(struct books_list *head) {  struct books_list * p;  char temp[20];  p=head;  if(head==NULL || head->next==NULL) /*判斷數據庫是否為空*/  {  printf(" ━━━━ 圖書庫為空!━━━━/n");  }  else  {  printf("請輸入您要查找的書名: ");  fflush(stdin);  scanf("%s",temp);  /*指針從頭節點開始移動,遍歷至尾結點,查找書目信息*/  while(p->next!= NULL)  {  p=p->next;  if(strcmp(p->bookname,temp)==0)  {  printf("/n圖書已找到!/n");  printf("/n");  printf("登錄號: %s/t/n",p->loginnum);  printf("書名: %s/t/n",p->bookname);  printf("作者名: %s/t/n",p->author);  printf("出版單位: %s/t/n",p->publisher);  printf("出版時間: %s/t/n",p->pbtime);  printf("分類號: %s/t/n",p->classfy);  printf("價格: %.2f/t/n",p->price);  }  if(p->next==NULL)  {  printf("/n查詢完畢!/n");  }  }  }  return; }   /*瀏覽操作*/  void Print_Book_Doc(struct books_list * head) {  struct books_list * p;  if(head==NULL || head->next==NULL) /*判斷數據庫是否為空*/  {  printf("/n   ━━━━ 沒有圖書記錄! ━━━━/n/n");  return;  }  p=head;  printf("┏━━━┳━━━━━┳━━━━━┳━━━━━┳━━━━━━┳━━━┳━━━━┓/n");  printf("┃登錄號┃ 書 名 ┃ 作 者┃ 出版單位 ┃ 出版時間 ┃分類號┃ 價格 ┃/n");  printf("┣━━━╋━━━━━╋━━━━━╋━━━━━╋━━━━━━╋━━━╋━━━━┫/n");  /*指針從頭節點開始移動,遍歷至尾結點,依次輸出圖書信息*/  while(p->next!= NULL)  {  p=p->next;  printf("┃%-6.6s┃%-10.10s┃%-10.10s┃%-10.10s┃%-12.12s┃%-6.6s┃%.2f ┃/n",p->loginnum,p->bookname,p->author,p->publisher,p->pbtime,p->classfy,p->price); /*循環輸出表格*/  }  printf("┗━━━┻━━━━━┻━━━━━┻━━━━━┻━━━━━━┻━━━┻━━━━┛/n");  printf("/n"); }  /*刪除操作*/ void DeleteDoc(struct books_list * head) {  struct books_list *s,*p; /*s為中間變量,p為遍歷時使用的指針*/  char temp[20];  int panduan; /*此變量用于判斷是否找到了書目*/  panduan=0;  p=s=head;  printf("   [請輸入您要刪除的書名]:");  scanf("%s",temp);  /*遍歷到尾結點*/  while(p!= NULL)  {  if(strcmp(p->bookname,temp)==0)  {  panduan++;  break;  }  p=p->next;  }  if(panduan==1)  {  for(;s->next!=p;) /*找到所需刪除卡號結點的上一個結點*/  {  s=s->next;  }  s->next=p->next; /*將后一節點地址賦值給前一節點的指針域*/  free(p);  printf("/n   ━━━━ 刪除成功! ━━━━/n");  }  else /*未找到相應書目*/  {  printf("   您輸入的書目不存在,請確認后輸入!/n");  }  return; }  int main() {  struct books_list * head;  char choice;  head=NULL;  for(;;) /*實現反復輸入選擇*/  {  printf("  ┏━┓━━━━━━━━━━━━━━━━━━━┏━┓/n");  printf("  ┃ ┃  tony 圖書館管理系統 ┃ ┃/n");  printf("  ┃ ┗━━━━━━━━━━━━━━━━━━━┛ ┃/n");  printf("  ┃  [1]圖書信息錄入  ┃/n");  printf("  ┃      ┃/n");  printf("  ┃  [2]圖書信息瀏覽  ┃/n");  printf("  ┃      ┃/n");  printf("  ┃  [3]圖書信息查詢  ┃/n");  printf("  ┃      ┃/n");  printf("  ┃  [4]圖書信息刪除  ┃/n");  printf("  ┃      ┃/n");  printf("  ┃  [5]退出系統   ┃/n");  printf("  ┃      ┃/n");  printf("  ┃      ┃/n");  printf("  ┗━━━━━━━━━━━━━━━━━━━━━━━┛/n");  printf("    請選擇:");  fflush(stdin);  scanf("%c",&choice);  if(choice=='1')  {  if(head==NULL)  {  head=Create_Books_Doc();  }  InsertDoc(head);   }  else if(choice=='2')  {  Print_Book_Doc(head);  }  else if(choice=='3')  {  search_book(head);  }  else if(choice=='4')  {  DeleteDoc(head);  }   else if(choice=='5')  {  printf("/n");  printf("  ━━━━━━━━ 感謝使用圖書管理系統 ━━━━━━━━/n");  break;  }  else  {  printf("   ━━━━ 輸入錯誤,請重新輸入!━━━━/n");   }  }   return 0; } 

五、課程設計總結

通過這一周的課程設計,我感受到做程序一定要有自己的清晰計劃,否則會無處用力,感覺會很亂,當高屋建瓴的有計劃后,然后開始認真嚴謹的設計每一個模塊,要知道用戶的一切輸入都是不可信的,必須想得要全面,要仔細的對待每一個細節,任何一個差錯都有可能讓程序崩潰,這其中有許多的困難,剛開始感覺到束手無策,但是放一放,換個角度想就會豁然開朗,我覺得從這個中感覺到了充實,滿足感,也提醒我以后要多多練練,多上機,積累經驗,爭取設計出更多的好的程序。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品黄视频| 日本久久久久久久久| 国产欧美精品在线播放| 亚洲精品videossex少妇| 国产精品久久久久久久av电影| 最近2019中文字幕在线高清| 欧美激情视频免费观看| 91免费在线视频网站| 九九视频这里只有精品| 久久影视电视剧凤归四时歌| 韩国国内大量揄拍精品视频| 怡红院精品视频| 日韩激情第一页| 国产一区玩具在线观看| 久久久成人av| 国产91ⅴ在线精品免费观看| 精品国产拍在线观看| 色777狠狠综合秋免鲁丝| 久久精品视频99| 日韩精品中文字幕在线| 性欧美在线看片a免费观看| 久久91精品国产91久久久| 日韩成人性视频| 欧美激情欧美狂野欧美精品| 久久国产精彩视频| 欧美午夜精品久久久久久人妖| 欧美性开放视频| www.欧美精品一二三区| 亚洲精品国产品国语在线| www.欧美免费| 亚洲人成在线电影| 两个人的视频www国产精品| 久久久久久久999精品视频| 亚洲成人教育av| 亚洲精品视频网上网址在线观看| 国产精品高清网站| 91精品国产色综合久久不卡98| 91日韩在线视频| 亚洲人成77777在线观看网| 久久在线精品视频| 国产成人鲁鲁免费视频a| 91久久精品一区| 亚洲色图35p| 亚洲欧美激情四射在线日| 精品国产成人在线| 亚洲人在线视频| 亚洲欧美激情另类校园| 91精品国产综合久久香蕉最新版| 久久免费少妇高潮久久精品99| 中文字幕视频在线免费欧美日韩综合在线看| 国产精品美女在线| 中文字幕欧美专区| 久热精品视频在线| 欧美日韩一区二区三区| 国产日韩精品视频| 日韩美女写真福利在线观看| 狠狠躁天天躁日日躁欧美| 国产www精品| 麻豆乱码国产一区二区三区| 亚洲人成77777在线观看网| 91精品国产沙发| 国产在线观看91精品一区| 在线观看久久久久久| 国产精品69精品一区二区三区| 亲爱的老师9免费观看全集电视剧| 久久精品视频在线播放| 亚洲精品99久久久久| 欧美日韩中文在线观看| 国产精品99久久99久久久二8| 最新日韩中文字幕| 亚洲精品国产成人| 国内精品久久久久| 91精品免费久久久久久久久| 欧美激情在线狂野欧美精品| 欧美中文在线观看国产| 亚洲激情在线观看视频免费| 国内偷自视频区视频综合| 久久精品国产成人| 国产欧美最新羞羞视频在线观看| 欧美激情第99页| 国产有码在线一区二区视频| 国产精品jizz在线观看麻豆| 国模视频一区二区三区| 97精品在线视频| 欧美资源在线观看| 青青草国产精品一区二区| 精品久久久久久久久中文字幕| 精品国产一区二区三区在线观看| 日韩av网站大全| 欧美怡红院视频一区二区三区| 欧美性猛交xxxxx水多| 美女少妇精品视频| 成人激情视频在线播放| 日韩精品高清在线观看| 色综合视频一区中文字幕| 中文字幕少妇一区二区三区| 国产精品jvid在线观看蜜臀| 亚洲精品日韩欧美| 成人免费观看网址| 欧美裸体xxxx极品少妇软件| 成人欧美一区二区三区黑人孕妇| 国产女精品视频网站免费| 国产亚洲福利一区| 欧美激情xxxx| 欧美国产在线视频| 国产精品久久一区主播| 亚洲综合成人婷婷小说| 全亚洲最色的网站在线观看| 69av在线播放| 日韩不卡中文字幕| 九九久久国产精品| 色无极影院亚洲| 欧美午夜激情在线| 日韩美女在线观看| 欧美性猛交xxxx免费看久久久| 国产主播精品在线| 17婷婷久久www| 亚州精品天堂中文字幕| 欧美成人精品h版在线观看| 日韩成人在线网站| 68精品久久久久久欧美| 久久精品亚洲94久久精品| 91久久国产婷婷一区二区| 成人www视频在线观看| 亚洲jizzjizz日本少妇| 国产精品高清免费在线观看| 日韩av一区在线| 亚洲无av在线中文字幕| 欧美怡红院视频一区二区三区| 国产精品入口免费视| 色综合视频一区中文字幕| 久久综合久久八八| 中文字幕日韩av电影| 日韩精品中文在线观看| 91探花福利精品国产自产在线| 在线播放日韩专区| 亚洲男子天堂网| 91在线播放国产| 欧美日韩国产色视频| 久久久精品一区二区三区| 激情亚洲一区二区三区四区| 精品国偷自产在线视频99| 国产精品久久久91| 国产成人久久久| 亚洲自拍高清视频网站| 亚洲欧美日韩精品久久奇米色影视| 欧美色播在线播放| 久久成人一区二区| 国产精品扒开腿爽爽爽视频| 91免费在线视频网站| 亚洲国产日韩欧美在线动漫| 国产日韩av高清| 日韩电影网在线| 亚洲男人天堂手机在线| 欧美性猛交xxxxx免费看| 一区二区欧美在线| 亚洲人成电影网站色…| 亚洲成人av在线播放| 成人亚洲激情网| 欧美日韩在线视频首页| 精品无人区乱码1区2区3区在线| 人人澡人人澡人人看欧美| 日韩中文字幕视频| 国产精品入口福利|