版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 * * * * * * (計算機學院)高級語言課程設計報告題 目: 圖書管理系統(tǒng) 專業(yè)名稱: 計算機科學與技術班 級: 1404班 學生姓名: *學號(8位): *指導教師: 設計起止時間:2015年6月24日2015年7月3日一. 設計目的 1、對學習一年的c語言進行檢驗,并且熟悉鏈表、指針、文件的操作。 2、強化上機動手能力。 3、提高對問題的分析能力。二. 設計內容 建立一個圖書管理系統(tǒng),主要應用了鏈表、指針和文件等。三概要設計1功能模塊圖;2各個模塊詳細的功能描述。 新書入庫:書庫沒有書的情況下,輸入多本書的信息;有書的情況下,添加一本書; 增新讀者:沒有讀者的情況下,輸入多個讀者;
2、有讀者的情況下,添加一個讀者; 查詢圖書/讀者:選擇要查詢的選項,圖書可以按書名進行精確查詢或者模糊查詢,讀者按人名進行精確查詢; 借書登記:登記要借書的讀者和書名,每讀者限借三本書,登記后書的現存量減一; 還書管理:登記要還書的讀者和書名,還書后書的現存量加一; 關于系統(tǒng):關于系統(tǒng)的解釋; 舊書出庫:輸入書名,刪除圖書; 注銷讀者:輸入讀者姓名,刪除讀者; 輸出全部信息:輸出全部信息; 庫存不足圖書:輸出現存量小于等于3 的圖書; 退出系統(tǒng)。四詳細設計。main()main1 功能函數的調用關系圖read()Read()about()Create_Book()Create_Reader()I
3、nsert_Book()Insert_Reader()Print _Book()Del_Oldbook()Del_Oldreader()Find()Print_Reader()Not_enough()find()Borrow_Book()Return_Book()write()Write()2 各功能函數的數據流程圖 (1) 、Read()-讀文件函數; 開始 以r的方式打開文件book.txtfp_b=NULL新建book.txt文件 是 否!feof(fp_b) 否 是 k=-1 否 是將文件的內容寫入鏈表 結束(2) 、read()函數的流程圖同理。(3) 、Create_Book()-
4、創(chuàng)建鏈表的函數。 開始 輸入第一本書的信息pnew-num!=0 否 是將信息存入鏈表輸入下一本書信息 結束(4) 、Create_Reader()創(chuàng)建讀者鏈表函數流程圖同理。(5) 、Insert_Book()-插入圖書函數。 開始創(chuàng)建臨時指針輸入插入圖書的信息存入鏈表 結束(6)、Insert_Reader()創(chuàng)建讀者鏈表函數流程圖同理。(7)、Del_Book()-刪除舊圖書函數。 開始輸入要刪除的書名是否在庫 否 是找到要刪除圖書的位置 刪除 結束(8)、Del_Reader()刪除讀者函數流程圖同理。(9)、Print_Book()-輸出圖書信息函數,遍歷鏈表并輸出。(10)、Pri
5、nt_Reader()函數流程圖同理。(11)、Find()-查找圖書函數。 開始 輸入圖書名輸入關鍵字精確查詢 是 否是否有相關圖書 是找到并輸出 結束(12) 、find()查找讀者函數同理。(13) 、Not_enough()-庫存不足的圖書。 開始遍歷鏈表limitnum,p-name,p-author,p-cbs,&p-count,&p-limit);if(k=-1)free(p);return 0;if(phead=NULL)p-next=phead;pend=p;phead=p;elsep-next=NULL;pend-next=p;pend=p;fclose(fp_b);ret
6、urn 1;(2)、寫文件Write(): struct book *p,*q;q=p=phead;fp_b=fopen(D:book.txt,wt);if(fp_b=NULL)printf(錯誤!n);getch();return;while(p!=NULL)fprintf(fp_b,%d %s %s %s %d %d ,p-num,p-name,p-author,p-cbs,p-count,p-limit);p=p-next;free(q);q=p;free(p);phead=NULL;fclose(fp_b); (3) 、創(chuàng)建鏈表Create_Book(): struct book *p
7、head=NULL;struct book *pend,*pnew;icount=0;printf(請輸入書的編號(數字)、書名、作者、出版社、庫存量(數字)、現存量(數字):(輸入0 0 0 0 0 0結束)n);pend=pnew=(struct book *)malloc(sizeof(struct book);scanf(%d,&pnew-num);scanf(%s,pnew-name);scanf(%s,pnew-author);scanf(%s,pnew-cbs);scanf(%d,&pnew-count);scanf(%d,&pnew-limit);while(pnew-num!
8、=0)icount+;if(icount=1)pnew-next=phead;pend=pnew;phead=pnew;elsepnew-next=NULL;pend-next=pnew;pend=pnew;pnew=(struct book *)malloc(sizeof(struct book);scanf(%d,&pnew-num);scanf(%s,pnew-name);scanf(%s,pnew-author);scanf(%s,pnew-cbs);scanf(%d,&pnew-count);scanf(%d,&pnew-limit);free(pnew);return phead;
9、(1)、(2)是對book的文件的讀取,(3)是創(chuàng)建book的鏈表,對reader的文件的讀取和鏈表的創(chuàng)建同理。(4)、借書Borrow_Book(): int i=0,m;struct reader *rptemp;struct book *ptemp,*p;p=(struct book *)malloc(sizeof(struct book);printf(請輸入讀者的編號:n);scanf(%d,&m);rptemp=rphead;while(rptemp-next!=NULL&rptemp-num!=m)rptemp=rptemp-next;if(rptemp-next=NULL&rp
10、temp-num!=m)printf(n對不起,沒有這個讀者。n);free(p); return;elsewhile(strcmp(rptemp-borrowi,0)!=0&(iname);while(ptemp-next!=NULL&strcmp(ptemp-name,p-name)!=0)ptemp=ptemp-next;if(ptemp-next=NULL&strcmp(ptemp-name,p-name)!=0) printf(n對不起,查無此書。n); free(p); return;else if(ptemp-limitlimit=ptemp-limit-1; strcpy(rp
11、temp-borrowi,p-name);free(p);(5)、還書Return_Book(): int m;int i=0;struct reader *rptemp;struct book *p,*ptemp;p=(struct book *)malloc(sizeof(struct book);printf(請輸入還書讀者的編號:n);scanf(%d,&m);rptemp=rphead;while(rptemp-next!=NULL&rptemp-num!=m)rptemp=rptemp-next;if(rptemp-next=NULL&rptemp-num!=m)printf(n對
12、不起,沒有這個讀者。n);free(p); return;elseprintf(請輸入該讀者還的書名:n);scanf(%s,&p-name);while(strcmp(rptemp-borrowi,p-name)!=0&(iborrowi,0); ptemp=phead; while(strcmp(ptemp-name,p-name)!=0) ptemp=ptemp-next; ptemp-limit=ptemp-limit+1;free(p);5 測試數據及運行結果1正常測試數據和運行結果2異常測試數據及運行結果六調試情況,設計技巧及體會1改進方案 不足之處: (1)、寫圖書管理系統(tǒng)歷時一周,在還沒有真正了解到圖書管理系統(tǒng)的情況下開始 寫,碰到很多問題都是之前沒有考慮到的,這讓我認識的寫復雜一些的程序前應該 想好流程,想到會出現的問題。 (2)、程序在運行時發(fā)現如果有讀者借了書,刪除該讀者時也刪除了這個讀者借的 書,這是沒有考慮到的漏洞。 合理之處: 思路還算清晰,在容易輸錯的地方都有考慮。2體會 通過兩周的課程設計,讓我對這一年的c語言學習有了更全面的認識,讓我對鏈表、指
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年節(jié)日慶典宣傳品批量采購合同2篇
- 2025年暑期大學生兼職項目合作協議書3篇
- 2025年牙科產品市場營銷與推廣合同模板3篇
- 2024年中級經濟師考試題庫實驗班
- 2025年度個人二手房購房合同范本及裝修款項分期支付協議2篇
- CEEM《全球智庫半月談》總第295期
- 銀山路施工方案審查
- 2024年中級經濟師考試題庫附答案【模擬題】
- 音響安裝施工方案
- 2024年中級經濟師考試題庫含完整答案
- 新能源行業(yè)市場分析報告
- 2025年天津市政建設集團招聘筆試參考題庫含答案解析
- 巖土工程勘察.課件
- 60歲以上務工免責協議書
- 2022年7月2日江蘇事業(yè)單位統(tǒng)考《綜合知識和能力素質》(管理崗)
- 初一英語語法練習
- 房地產運營管理:提升項目品質
- 你劃我猜游戲【共159張課件】
- 專升本英語閱讀理解50篇
- 中餐烹飪技法大全
- 新型電力系統(tǒng)研究
評論
0/150
提交評論