




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 東南大學(xué)C語言課程設(shè)計報告課程名稱: 計算機綜合課程設(shè)計 學(xué) 院: 土木工程學(xué)院 設(shè)計題目: 圖書信息管理系統(tǒng)設(shè)計 級 別: A級 學(xué)生姓名: 學(xué) 號: 同組學(xué)生: 學(xué) 號: 指導(dǎo)教師: 2012年 09月05日 課程報告任務(wù)書題目圖書信息管理系統(tǒng)主 要 內(nèi) 容圖書信息包括:登錄號,書名,作者名,分類號,出版單位,出版時間,價格等。試設(shè)計一圖書信息管理系統(tǒng),使之提供以下功能:系統(tǒng)以菜單方式工作;圖書信息錄入功能圖書信息用文本文件形式保存;圖書信息瀏覽功能;查詢和排序功能: 按書名查找; 按作者名查找;圖書信息刪除功能;圖書信息修改功能。任 務(wù) 要 求采用模塊化程序設(shè)計;鼓勵可視化編程;源程序
2、中應(yīng)有足夠的注釋;學(xué)生可自行增加新功能模塊視情況可另外加分;必須上機調(diào)試通過;注重算法運用,優(yōu)化存儲效率與運算效率;需提交源程序(含有注釋)及相關(guān)文件(數(shù)據(jù)或數(shù)據(jù)庫文件); (cpp文件、txt或dat文件等)提交設(shè)計報告書成績評定評定 教師摘要:隨著當(dāng)今社會開展,信息化水平逐步提高,對圖書管理有了新的要求,因此,編寫一個信息管理系統(tǒng)是十分必要的。為了滿足圖書管理的要求,通過計算機技術(shù)給圖書管理人員帶來便利。使用C語言編寫圖書管理系統(tǒng),其中主要運用了結(jié)構(gòu)化設(shè)計與鏈表結(jié)構(gòu)。本系統(tǒng)主要實現(xiàn)圖書信息管理的功能,通過此系統(tǒng)可對圖書館庫存圖書信息進(jìn)行管理和維護(hù)操作。實現(xiàn)了圖書館內(nèi)管理的一般功能,包括圖書
3、信息錄入、瀏覽、排序、刪除和修改等功能。所設(shè)計的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進(jìn)行各種處理。圖書信息包括登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。圖書信息的錄入和顯示要求有一定的標(biāo)準(zhǔn)格式,錄入的圖書信息用文件形式保存,并可以對其進(jìn)行瀏覽、查詢、刪除和修改等根本操作。關(guān)鍵字:圖書信息管理 C語言 鏈表 結(jié)構(gòu)目錄設(shè)計的目的與要求-4分析-4總體設(shè)計-5主要功能算法-5完整程序及注釋-8調(diào)試分析-24總結(jié)-28辯論記錄-29教師意見-29 設(shè)計的目的與要求 1.1設(shè)計的目的 使用鏈表和結(jié)構(gòu)等結(jié)構(gòu)數(shù)據(jù),編寫一C語言程序,實現(xiàn)圖書信 息管理的功能,通過此系
4、統(tǒng)可對圖書館圖書信息進(jìn)行管理和維護(hù)等操作,給圖書管理人員帶來便利。 1.2設(shè)計的要求 圖書信息包括:登錄號,書名,作者名,分類號,出版單位,出版時間,價格等。試設(shè)計一圖書信息管理系統(tǒng),使之提供以下功能:系統(tǒng)以菜單方式工作2圖書信息錄入功能圖書信息用文本文件形式保存3圖書信息瀏覽功能4查詢和排序功能: 按書名查找 按作者名查找5圖書信息刪除功能6圖書信息修改功能2.分析根據(jù)題目要求,應(yīng)當(dāng)把圖書信息用結(jié)構(gòu)體形式輸入,再定義一個全局變量和文件指針進(jìn)行整個程序的運行,然后把圖書信息送到文件中,所以應(yīng)該提供一個結(jié)構(gòu)體和文件的輸入輸出等操作;在程序中需實現(xiàn)圖書信息錄入,瀏覽,查詢,排序,刪除和修改等功能的
5、操作,所以需要建立相應(yīng)的函數(shù)模塊來實現(xiàn);另外還需提供鍵盤式選擇菜單實現(xiàn)功能,在運行時到達(dá)所要目的。3.總體設(shè)計 根據(jù)題目要求,我們經(jīng)過分析和討論后,決定將此系統(tǒng)分為十個功能模塊:菜單項選擇擇模塊圖書信息錄入功能模塊圖書信息瀏覽功能模塊圖書信息查詢功能模塊圖書信息刪除功能模塊圖書信息修改功能模塊退出系統(tǒng)功能模塊主要功能的算法 4.1 錄入函數(shù)算法 4.2 按書名查找算法按作者名與此類似 4.3 刪除圖書信息算法修改與此類似4.4顯示函數(shù)算法5.完整程序及注釋#include /*引用庫函數(shù)*/ #include # include # include # include # include ty
6、pedef struct book_info/定義圖書信息的結(jié)構(gòu)體變量并聲明新的類型名 char AN10; /*登錄號*/ char name20; /*書名*/ char author20; /*作者名*/ char clc10; /*分類名*/ char company20; /*出版單位*/ char date20; /*出版日期*/ char price10; /*價格*/ struct book_info *next; Booklist,*Pointer;int num=0;/全局變量的定義Pointer Head=NULL;/頭指針為空FILE *fp;/指向文件的指針 /*聲明
7、函數(shù)*/int menu_select();/*主菜單函數(shù)*/void Insert(Pointer * Head);/*錄入函數(shù)*/void Scan(Pointer Head);/*顯示函數(shù)*/void Search_name(Pointer Head);/*按書名查找函數(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);/*運行前
8、清屏*/ for(;) switch(menu_select() case 1:Insert(& Head); break; case 2:Scan(Head); break; case 3:Search_name(Head); break; case 4:Search_author(Head); break; case 5:Delete(&Head); break; Case6:Update(Head); break; case 0:Exit(); default: putchar(a); menu_select()/主菜單函數(shù) int a; printf(nttt歡送使用圖書信息管理系統(tǒng)n
9、nnnntt * 請按任意鍵進(jìn)入系統(tǒng)菜單! * n); getch(); system(cls); printf(tt*MENU*n);/主菜單 printf(tt 1. 錄入圖書信息n); printf(tt 2. 瀏覽圖書信息n); printf(tt 3. 按書名查詢圖書信息n); printf(tt 4. 按作者名查詢圖書信息n); printf(tt 5. 刪除圖書信息n); printf(tt 7. 修改圖書信息n); printf(tt 0. 退出n); printf(tt*n); do printf(nt請選擇您所需要的功能:); scanf(%d,&a); while (a6
10、); return a;void Insert(Pointer * Head) /錄入圖書信息函數(shù)char AN10 ;char c;Pointer p,q,r;printf(ntt* 請輸入圖書信息 *n);/*交互輸入*/ printf(ntt請輸入登錄號:);scanf(%s,AN);p=q= * Head;/檢測登錄號是否重復(fù)while(p!=NULL)if(strcmp(p-AN,AN)=0) printf (已經(jīng)有相同的登錄號:);return; else q=p;p=p-next;r=(Pointer)malloc(sizeof(Booklist);r-next=NULL;if(
11、r=NULL)printf(分配空間失敗!);return;if(q=NULL)* Head=r;elseq-next=r; strcpy(r-AN,AN); printf(ntt輸入書名:); /錄入圖書信息 scanf(%s,r-name); getchar(); printf(ntt輸入作者名:); scanf(%s,r-author); getchar(); printf(ntt輸入分類號:); scanf(%s,r-clc) ; getchar(); printf(ntt輸入出版單位:); scanf(%s,r-company) ; getchar(); printf(ntt輸入出版
12、日期:); gets(r-date) ; printf(ntt輸入價格:); scanf(%s,r-price); doprintf(ntt錄入成功!);num+;printf(選擇是否繼續(xù)錄入(Y/N)?:); /*連續(xù)錄入圖書信息*/getchar();scanf(%c,&c);if(c=y|c=Y)Insert(Head);else if(c=n|c=N) return; else printf(ntt輸入錯誤,請重新輸入!);while(c!=y&c!=n&c!=Y&c!=N);void Scan(Pointer Head) /顯示圖書信息函數(shù)Pointer p;p=Head;if(p
13、=NULL)printf(記錄為空);/檢測是否有圖書信息else printf(nt共有%d條記錄,num);while(p!=NULL) printf(nntt登錄號:%-10s,p-AN);/顯示圖書信息 printf(ntt書名: %-20s,p-name); printf(ntt作者名: %-20s,p-author); printf(ntt分類號: %-10s,p-clc); printf(ntt出版單位:%-20s,p-company); printf(ntt出版時間:%-20s,p-date); printf(ntt價格: ¥%-10s,p-price); p=p-next;p
14、rintf(ntt請按任意鍵回到主菜單);return;void Search_name(Pointer Head) /按書名查找函數(shù)int flag=0;/標(biāo)記變量的初值char name10;Pointer p;printf (n請輸入需要查詢的書名:);scanf(%s,name);printf(ntt* 以下是您查找的信息 *);p=Head;while(p!=NULL) if(strcmp(p-name,name)=0)/查找符合的圖書 printf(nt登錄號: %-10s,p-AN); printf(nt書名: %-20s,p-name); printf(nt作者名: %-20s
15、,p-author); printf(nt分類號: %-10s,p-clc); printf(nt出版單位:%-20s,p-company); printf(nt出版時間:%-20s,p-date); printf(nt價格: ¥%-10s,p-price); flag=1;/找到標(biāo)記變量設(shè)為1 p=p-next;/指針走到下一個節(jié)點 else p=p-next;if(flag=0)printf(ntt沒有相同書名紀(jì)錄);printf(ntt請按任意鍵返回主菜單);getchar();void Search_author(Pointer Head) /按作者名查找函數(shù)int flag=0;ch
16、ar author10;Pointer p;printf (n請輸入需要查詢的作者名:);scanf(%s,author);printf(ntt* 以下是您查找的信息 *);p=Head;while(p!=NULL)/查找符合的圖書 if(strcmp(p-author,author)=0)/*找到圖書顯示信息*/ printf(nt登錄號: %-10s,p-AN); printf(nt書名: %-20s,p-name); printf(nt作者名: %-20s,p-author); printf(nt分類號: %-10s,p-clc); printf(nt出版單位:%-20s,p-compa
17、ny); printf(nt出版時間:%-20s,p-date); printf(nt價格: ¥%-10s,p-price); flag=1; p=p-next; else p=p-next;if(flag=0)printf(ntt沒有相同作者名紀(jì)錄);printf(ntt請按任意鍵返回主菜單);getch(); void Delete(Pointer *Head)/*刪除函數(shù)*/int flag=1;char AN10;char c,z;Pointer p,q;printf(ntt* 圖書刪除 *n);printf(t請輸入要刪除圖書的信息的登錄號:);scanf(%s,AN);p=q=*H
18、ead;/*查找符合條件的圖書*/while(p!=NULL&flag)if(strcmp(p-AN,AN)=0)/*找到該圖書*/ printf(tn登錄號:%-10s,p-AN);/顯示即將要刪除的圖書的信息 printf(tn書名:%-20s,p-name); printf(tn作者名:%-20s,p-author); printf(tn分類號:%-10s,p-clc); printf(tn出版單位:%-20s,p-company); printf(tn出版時間:%-20s,p-date); printf(tn價格:¥%-10sn,p-price); printf(確定刪除?確定請輸Y,
19、其它那么不刪除);/詢問是否刪除getchar();scanf(%c,&z); if(z=Y|z=y) if(p=*Head)*Head=p-next;free(p);/*刪除圖書信息*/ elseq-next=p-next;free(p);flag=0; else printf(圖書信息未刪除,返回主菜單。); return; else q=p;p=p-next;/*指針走到下一個節(jié)點*/ printf(tt刪除成功!n);if(flag)printf(t沒有找到可以刪除的數(shù)據(jù)!);doprintf(選擇是否繼續(xù)刪除(Y/N)?:); /*連續(xù)刪除圖書信息*/getchar();scanf(
20、%c,&c);if(c=y|c=Y)Delete(Head);/*繼續(xù)刪除*/else if(c=n|c=N) return;/*不刪除返回主菜單*/ else printf(ntt輸入錯誤,請重新輸入!);while(c!=y&c!=n&c!=Y&c!=N);void Update(Pointer Head)/*圖書信息修改函數(shù)*/int flag=1;char AN10;char c;Pointer p;printf(ntt* 圖書信息修改 *n);printf(t請輸入要修改的圖書的登錄號:);scanf(%s,AN);/*查找符合條件的圖書*/p=Head;while(p!=NULL&
21、flag)if(strcmp(p-AN,AN)=0) printf(ntt請輸入登錄號:);/*修改圖書信息*/ scanf(%s,p-AN); printf(ntt輸入書名:); scanf(%s,p-name); getchar(); printf(ntt輸入作者名:); scanf(%s,p-author); getchar(); printf(ntt輸入分類號:); scanf(%s,p-clc) ; getchar(); printf(ntt輸入出版單位:); scanf(%s,p-company) ; getchar(); printf(ntt輸入出版日期:); gets(p-da
22、te); printf(ntt輸入價格:); scanf(%s,p-price); flag=0;printf(修改成功!n); else p=p-next;/*指針走到下一個節(jié)點*/if(flag)printf(ntt沒有該圖書記錄!);doprintf(選擇是否繼續(xù)修改(Y/N)?:); /*連續(xù)修改圖書信息*/getchar();scanf(%c,&c);if(c=y|c=Y)Update(Head);/*繼續(xù)修改*/else if(c=n|c=N) return;/不修改,返回菜單 else printf(ntt輸入錯誤,請重新輸入!);while(c!=y&c!=n&c!=Y&c!=N);/輸入錯誤那么繼續(xù)詢問void Exit()/*退出程序的函數(shù)*/char c;doprintf(ntt退出中.是否保存到文件(Y/N)?); /*詢問是否保存圖書信息,防止喪失*/getchar();scanf(%
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030年中國土雞行業(yè)深度研究分析報告
- 2025年機動噴粉機項目可行性研究報告
- 2024-2025學(xué)年高中政治第四單元發(fā)展社會主義市抄濟(jì)第十課科學(xué)發(fā)展觀和械社會的經(jīng)濟(jì)建設(shè)課時1中國經(jīng)濟(jì)發(fā)展進(jìn)入新時代課時精練含解析新人教版必修1
- 2024-2025學(xué)年高中語文第二單元義薄云天自讀文本管鮑之交鞏固提升案魯人版選修史記蚜
- 2024-2025學(xué)年高中地理第四章生態(tài)環(huán)境保護(hù)第五節(jié)中國區(qū)域生態(tài)環(huán)境問題及其防治途徑課時作業(yè)新人教版選修6
- 中國男式帆布鞋行業(yè)市場調(diào)研分析及投資前景預(yù)測報告
- 2025年電扇金屬配件行業(yè)深度研究分析報告
- 2024中國機械設(shè)備租賃市場前景及投資研究報告
- 2024黑色金屬礦采選業(yè)行業(yè)分析報告
- 2025年中國監(jiān)護(hù)儀行業(yè)市場運營現(xiàn)狀及投資戰(zhàn)略咨詢報告
- 文化產(chǎn)業(yè)管理專業(yè)大學(xué)生職業(yè)生涯規(guī)劃書
- DSM-V美國精神疾病診斷標(biāo)準(zhǔn)
- 文獻(xiàn)的載體課件
- 2023年高考語文全國乙卷《長出一地的好蕎麥》解析
- 混凝土強度回彈檢測方案
- 歷年中考地理生物變態(tài)難題
- 研學(xué)旅行課程標(biāo)準(zhǔn)(一)-前言、課程性質(zhì)與定位、課程基本理念、課程目標(biāo)
- 部編版二年級下冊語文教案全冊
- 解放牌汽車CA10B后鋼板彈簧吊耳加工工藝及夾具設(shè)計哈
- 大學(xué)專科《機電傳動控制》課件
- 高中地理高清區(qū)域地理填圖冊
評論
0/150
提交評論