123圖書(shū)信息管理系統(tǒng)_第1頁(yè)
123圖書(shū)信息管理系統(tǒng)_第2頁(yè)
123圖書(shū)信息管理系統(tǒng)_第3頁(yè)
123圖書(shū)信息管理系統(tǒng)_第4頁(yè)
123圖書(shū)信息管理系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩20頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、- 1 - 東南大學(xué)c語(yǔ)言課程設(shè)計(jì)報(bào)告課程名稱:計(jì)算機(jī)綜合課程設(shè)計(jì)學(xué)院:土木工程學(xué)院設(shè)計(jì)題目:圖書(shū)信息管理系統(tǒng)設(shè)計(jì)級(jí)別: a級(jí)學(xué)生姓名:學(xué)號(hào):同組學(xué)生:學(xué)號(hào):指導(dǎo)教師:2012 年 09 月 05 日- 2 - 課程報(bào)告任務(wù)書(shū)題目圖書(shū)信息管理系統(tǒng)主要內(nèi)容圖 書(shū) 信 息 包 括 : 登 錄 號(hào) , 書(shū) 名 , 作 者 名 , 分 類(lèi) 號(hào) , 出 版 單 位 ,出 版 時(shí) 間 ,價(jià) 格 等 。試 設(shè) 計(jì) 一 圖 書(shū) 信 息 管 理 系 統(tǒng) ,使 之 提 供 以下 功 能 :1) 系 統(tǒng) 以 菜 單 方 式 工 作 ;2)圖 書(shū) 信 息 錄 入 功 能 (圖書(shū)信息用文本文件形式保存) ;3)圖書(shū)信息

2、瀏覽功能;4)查詢和排序功能:按書(shū)名查找;按作者名查找;5)圖書(shū)信息刪除功能;6)圖書(shū)信息修改功能。任務(wù)要求采用模塊化程序設(shè)計(jì);鼓勵(lì)可視化編程;源程序中應(yīng)有足夠的注釋;學(xué)生可自行增加新功能模塊(視情況可另外加分);必須上機(jī)調(diào)試通過(guò);注重算法運(yùn)用,優(yōu)化存儲(chǔ)效率與運(yùn)算效率;需提交源程序 ( 含有注釋 ) 及相關(guān)文件 ( 數(shù)據(jù)或數(shù)據(jù)庫(kù)文件 ) ;(cpp 文件、 txt或 dat 文件等 ) 提交設(shè)計(jì)報(bào)告書(shū)成績(jī)?cè)u(píng)定評(píng)定教師- 3 - 摘要:隨著當(dāng)今社會(huì)發(fā)展,信息化水平逐步提高,對(duì)圖書(shū)管理有了新的要求,因此,編寫(xiě)一個(gè)信息管理系統(tǒng)是十分必要的。為了滿足圖書(shū)管理的要求, 通過(guò)計(jì)算機(jī)技術(shù)給圖書(shū)管理人員帶來(lái)便

3、利。使用c語(yǔ)言編寫(xiě)圖書(shū)管理系統(tǒng),其中主要運(yùn)用了結(jié)構(gòu)化設(shè)計(jì)與鏈表結(jié)構(gòu)。本系統(tǒng)主要實(shí)現(xiàn)圖書(shū)信息管理的功能, 通過(guò)此系統(tǒng)可對(duì)圖書(shū)館庫(kù)存圖書(shū)信息進(jìn)行管理和維護(hù)操作。實(shí)現(xiàn)了圖書(shū)館內(nèi)管理的一般功能,包括圖書(shū)信息錄入、瀏覽、排序、刪除和修改等功能。所設(shè)計(jì)的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來(lái)進(jìn)行各種處理。圖書(shū)信息包括登錄號(hào)、書(shū)名、作者名、分類(lèi)號(hào)、出版單位、出版時(shí)間、價(jià)格等。圖書(shū)信息的錄入和顯示要求有一定的規(guī)范格式,錄入的圖書(shū)信息用文件形式保存,并可以對(duì)其進(jìn)行瀏覽、查詢、刪除和修改等基本操作。關(guān)鍵字:圖書(shū)信息管理 c 語(yǔ)言鏈表 結(jié)構(gòu)目錄1. 設(shè)計(jì)的目的與要求 -4 2. 分析-4 3

4、. 總體設(shè)計(jì) -5 4. 主要功能算法 -5 5. 完整程序及注釋 -8 6. 調(diào)試分析 -24 7. 總結(jié)-28 8. 答辯記錄 -29 9. 教師意見(jiàn) -29 - 4 - 1. 設(shè) 計(jì) 的 目 的 與 要 求1.1 設(shè) 計(jì) 的 目 的使 用 鏈 表 和 結(jié) 構(gòu) 等 結(jié) 構(gòu) 數(shù) 據(jù) , 編 寫(xiě) 一 c 語(yǔ) 言 程 序 , 實(shí)現(xiàn)圖書(shū)信息管理的功能, 通過(guò)此系統(tǒng)可對(duì)圖書(shū)館圖書(shū)信息進(jìn)行管理和維護(hù)等操作,給圖書(shū)管理人員帶來(lái)便利。1.2 設(shè) 計(jì) 的 要 求圖 書(shū) 信 息 包 括 : 登 錄 號(hào) , 書(shū) 名 , 作 者 名 , 分 類(lèi) 號(hào) , 出 版 單 位 ,出 版 時(shí) 間 ,價(jià) 格 等 。試 設(shè) 計(jì)

5、 一 圖 書(shū) 信 息 管 理 系 統(tǒng) ,使 之 提 供 以 下 功 能 :( 1) 系 統(tǒng) 以 菜 單 方 式 工 作( 2) 圖 書(shū) 信 息 錄 入 功 能 (圖書(shū)信息用文本文件形式保存)(3)圖書(shū)信息瀏覽功能(4)查詢和排序功能:按書(shū)名查找按作者名查找(5)圖書(shū)信息刪除功能(6)圖書(shū)信息修改功能2.分析根 據(jù) 題 目 要 求 , 應(yīng) 當(dāng) 把 圖 書(shū) 信 息 用 結(jié) 構(gòu) 體 形 式 輸 入 , 再 定 義 一 個(gè)全 局 變 量 和 文 件 指 針 進(jìn) 行 整 個(gè) 程 序 的 運(yùn) 行 ,然 后 把 圖 書(shū) 信 息 送 到 文 件中 ,所 以 應(yīng) 該 提 供 一 個(gè) 結(jié) 構(gòu) 體 和 文 件 的

6、輸 入 輸 出 等 操作 ;在 程 序 中 需實(shí) 現(xiàn) 圖 書(shū) 信 息 錄 入 , 瀏 覽 , 查 詢 , 排 序 , 刪 除 和 修 改 等 功 能 的 操 作 ,所 以 需 要 建 立 相 應(yīng) 的 函 數(shù) 模 塊 來(lái) 實(shí) 現(xiàn) ;另 外 還 需 提 供 鍵 盤(pán) 式 選 擇 菜 單實(shí) 現(xiàn) 功 能 , 在 運(yùn) 行 時(shí) 達(dá) 到 所 要 目 的 。- 5 - 3.總體設(shè)計(jì)根 據(jù) 題 目 要 求 ,我 們 經(jīng) 過(guò) 分 析 和 討 論 后 ,決 定 將 此 系 統(tǒng) 分 為 十 個(gè) 功能 模 塊 :(1) 菜單選擇模塊(2) 圖 書(shū) 信 息 錄 入 功 能 模 塊(3) 圖書(shū)信息瀏覽功能模塊(4) 圖書(shū)信息

7、查詢功能模塊(5) 圖書(shū)信息刪除功能模塊(6) 圖書(shū)信息修改功能模塊(7) 退出系統(tǒng)功能模塊4. 主要功能的算法 4.1 錄入函數(shù)算法4.2 按書(shū)名查找算法(按作者名與此類(lèi)似)- 6 - 4.3 刪除圖書(shū)信息算法(修改與此類(lèi)似)4.4 顯示函數(shù)算法- 7 - 5. 完整程序及注釋#include /* 引用庫(kù)函數(shù) */#include # include # include # include # include typedef struct book_info/ 定義圖書(shū)信息的結(jié)構(gòu)體變量并聲明新的類(lèi)型名 char an10; /*登錄號(hào) */ char name20; /*書(shū)名*/ char

8、 author20; /*作者名 */ char clc10; /*分類(lèi)名 */ char company20; /*出版單位 */ char date20; /*出版日期 */ char price10; /*價(jià)格*/ struct book_info *next; booklist,*pointer; - 8 - int num=0;/全局變量的定義pointer head=null;/頭指針為空f(shuō)ile *fp;/指向文件的指針/* 聲明函數(shù) */int menu_select();/*主菜單函數(shù) */ void insert(pointer * head);/*錄入函數(shù) */ void

9、 scan(pointer head);/*顯示函數(shù) */ void search_name(pointer head);/*按書(shū)名查找函數(shù) */ void search_author(pointer head);/*按作者名查找函數(shù) */ void delete(pointer * head);/刪除函數(shù)void update(pointer head);/修改函數(shù)void exit();/退出函數(shù)void main()/ 主函數(shù) system(cls);/*運(yùn)行前清屏 */ for(;) switch(menu_select() case 1:insert(& head); bre

10、ak; case 2:scan(head); break; case 3:search_name(head); break; case 4:search_author(head); break; - 9 - case 5:delete(&head); break; case6:update(head); break; case 0:exit(); default: putchar(a); menu_select() / 主菜單函數(shù) int a; printf(nttt歡迎使用圖書(shū)信息管理系統(tǒng)nnnnntt * 請(qǐng)按任意鍵進(jìn)入系統(tǒng)菜單 ! * n); getch(); system(cl

11、s); printf(tt*menu*n);/主菜單 printf(tt 1. 錄入圖書(shū)信息 n); printf(tt 2. 瀏覽圖書(shū)信息 n); printf(tt 3. 按書(shū)名查詢圖書(shū)信息 n); printf(tt 4. 按作者名查詢圖書(shū)信息 n); printf(tt 5. 刪除圖書(shū)信息 n); printf(tt 7. 修改圖書(shū)信息 n); printf(tt 0. 退出n); printf(tt*n); do - 10 - printf(nt請(qǐng)選擇您所需要的功能: ); scanf(%d,&a); while (a6); return a; void insert(poi

12、nter * head) / 錄入圖書(shū)信息函數(shù) char an10 ; char c; pointer p,q,r; printf(ntt* 請(qǐng)輸入圖書(shū)信息 *n);/*交互輸入 */ printf(ntt請(qǐng)輸入登錄號(hào) :); scanf(%s,an); p=q= * head;/檢測(cè)登錄號(hào)是否重復(fù)while(p!=null) if(strcmp(p-an,an)=0) printf (已經(jīng)有相同的登錄號(hào): );return; else q=p;p=p-next; r=(pointer)malloc(sizeof(booklist); r-next=null; if(r=null) print

13、f(分配空間失敗 !);return; - 11 - if(q=null) * head=r; else q-next=r; strcpy(r-an,an); printf(ntt輸入書(shū)名 :); /錄入圖書(shū)信息 scanf(%s,r-name); getchar(); printf(ntt輸入作者名 :); scanf(%s,r-author); getchar(); printf(ntt輸入分類(lèi)號(hào) :); scanf(%s,r-clc) ; getchar(); printf(ntt輸入出版單位 :); scanf(%s,r-company) ; getchar(); printf(ntt

14、輸入出版日期 :); gets(r-date) ; printf(ntt輸入價(jià)格 :); scanf(%s,r-price); do printf(ntt錄入成功 !); num+; printf(選擇是否繼續(xù)錄入 (y/n)? :); /*連續(xù)錄入圖書(shū)信息 */ getchar(); scanf(%c,&c); if(c=y|c=y) insert(head); else - 12 - if(c=n|c=n) return; else printf(ntt輸入錯(cuò)誤,請(qǐng)重新輸入 !); while(c!=y&c!=n&c!=y&c!=n); void scan(

15、pointer head) / 顯示圖書(shū)信息函數(shù) pointer p; p=head; if(p=null) printf(記錄為空 );/檢測(cè)是否有圖書(shū)信息else printf(nt共有%d條記錄 ,num); while(p!=null) printf(nntt登錄號(hào): %-10s,p-an);/顯示圖書(shū)信息 printf(ntt書(shū)名: %-20s,p-name); printf(ntt作者名: %-20s,p-author); printf(ntt分類(lèi)號(hào): %-10s,p-clc); printf(ntt出版單位: %-20s,p-company); printf(ntt出版時(shí)間: %

16、-20s,p-date); printf(ntt價(jià)格:¥%-10s,p-price); p=p-next; - 13 - printf(ntt請(qǐng)按任意鍵回到主菜單 ); return; void search_name(pointer head) / 按書(shū)名查找函數(shù) int flag=0;/標(biāo)記變量的初值char name10; pointer p; printf (n請(qǐng)輸入需要查詢的書(shū)名: ); scanf(%s,name); printf(ntt* 以下是您查找的信息 *); p=head; while(p!=null) if(strcmp(p-name,name)=0)/查找符合的圖書(shū)

17、printf(nt登錄號(hào): %-10s,p-an); printf(nt書(shū)名: %-20s,p-name); printf(nt作者名: %-20s,p-author); printf(nt分類(lèi)號(hào): %-10s,p-clc); printf(nt出版單位: %-20s,p-company); printf(nt出版時(shí)間: %-20s,p-date); printf(nt價(jià)格:¥%-10s,p-price); flag=1;/找到標(biāo)記變量設(shè)為1 p=p-next;/指針走到下一個(gè)節(jié)點(diǎn) else - 14 - p=p-next; if(flag=0) printf(ntt沒(méi)有相同書(shū)名紀(jì)錄 ); p

18、rintf(ntt請(qǐng)按任意鍵返回主菜單 ); getchar(); void search_author(pointer head) /按作者名查找函數(shù) int flag=0; char author10; pointer p; printf (n請(qǐng)輸入需要查詢的作者名:); scanf(%s,author); printf(ntt* 以下是您查找的信息 *); p=head; while(p!=null)/查找符合的圖書(shū) if(strcmp(p-author,author)=0)/*找到圖書(shū)顯示信息 */ printf(nt登錄號(hào): %-10s,p-an); printf(nt書(shū)名: %-2

19、0s,p-name); printf(nt作者名: %-20s,p-author); printf(nt分類(lèi)號(hào): %-10s,p-clc); printf(nt出版單位: %-20s,p-company); printf(nt出版時(shí)間: %-20s,p-date); printf(nt價(jià)格:¥%-10s,p-price); flag=1; p=p-next; - 15 - else p=p-next; if(flag=0) printf(ntt沒(méi)有相同作者名紀(jì)錄 ); printf(ntt請(qǐng)按任意鍵返回主菜單 ); getch(); void delete(pointer *head)/* 刪

20、除函數(shù) */int flag=1; char an10; char c,z; pointer p,q; printf(ntt* 圖書(shū)刪除 *n); printf(t請(qǐng)輸入要?jiǎng)h除圖書(shū)的信息的登錄號(hào):); scanf(%s,an); p=q=*head;/* 查找符合條件的圖書(shū) */ while(p!=null&flag) if(strcmp(p-an,an)=0)/*找到該圖書(shū) */ printf(tn登錄號(hào): %-10s,p-an);/顯示即將要?jiǎng)h除的圖書(shū)的信息 printf(tn書(shū)名: %-20s,p-name); printf(tn作者名: %-20s,p-author); pri

21、ntf(tn分類(lèi)號(hào): %-10s,p-clc); printf(tn出版單位: %-20s,p-company); printf(tn出版時(shí)間: %-20s,p-date); printf(tn價(jià)格:¥ %-10sn,p-price); - 16 - printf(確定刪除 ?確定請(qǐng)輸 y,其它則不刪除 );/詢問(wèn)是否刪除getchar(); scanf(%c,&z); if(z=y|z=y) if(p=*head) *head=p-next;free(p);/*刪除圖書(shū)信息 */ else q-next=p-next;free(p); flag=0; else printf(圖書(shū)信息

22、未刪除,返回主菜單。); return; else q=p;p=p-next;/*指針走到下一個(gè)節(jié)點(diǎn) */ printf(tt刪除成功! !n); if(flag) printf(t沒(méi)有找到可以刪除的數(shù)據(jù)!); do printf(選擇是否繼續(xù)刪除 (y/n)? :); /*連續(xù)刪除圖書(shū)信息 */ getchar(); scanf(%c,&c); if(c=y|c=y) delete(head);/*繼續(xù)刪除 */ else - 17 - if(c=n|c=n) return;/*不刪除返回主菜單 */ else printf(ntt輸入錯(cuò)誤,請(qǐng)重新輸入 !); while(c!=y&

23、amp;c!=n&c!=y&c!=n); void update(pointer head)/* 圖書(shū)信息修改函數(shù) */ int flag=1; char an10; char c; pointer p; printf(ntt* 圖書(shū)信息修改 *n); printf(t請(qǐng)輸入要修改的圖書(shū)的登錄號(hào):); scanf(%s,an);/*查找符合條件的圖書(shū) */ p=head; while(p!=null&flag) if(strcmp(p-an,an)=0) printf(ntt請(qǐng)輸入登錄號(hào) :);/*修改圖書(shū)信息 */ scanf(%s,p-an); printf(ntt

24、輸入書(shū)名 :); scanf(%s,p-name); getchar(); printf(ntt輸入作者名 :); scanf(%s,p-author); - 18 - getchar(); printf(ntt輸入分類(lèi)號(hào) :); scanf(%s,p-clc) ; getchar(); printf(ntt輸入出版單位 :); scanf(%s,p-company) ; getchar(); printf(ntt輸入出版日期 :); gets(p-date); printf(ntt輸入價(jià)格 :); scanf(%s,p-price); flag=0; printf(修改成功 !n); els

25、e p=p-next;/*指針走到下一個(gè)節(jié)點(diǎn) */ if(flag) printf(ntt沒(méi)有該圖書(shū)記錄 !); do printf(選擇是否繼續(xù)修改 (y/n)? :); /*連續(xù)修改圖書(shū)信息 */ getchar(); scanf(%c,&c); if(c=y|c=y) update(head);/*繼續(xù)修改 */ else if(c=n|c=n) return;/不修改,返回菜單 else - 19 - printf(ntt輸入錯(cuò)誤,請(qǐng)重新輸入 !); while(c!=y&c!=n&c!=y&c!=n);/輸入錯(cuò)誤則繼續(xù)詢問(wèn) void exit()/* 退出程序的函數(shù) */char c; do printf(ntt退出中 .是否保存到文件 (y/n)?); /*詢問(wèn)是否保存圖書(shū)信息,防止丟失 */ getch

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論