版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 《數(shù)據(jù)結(jié)構(gòu)》</b></p><p><b> 課程設(shè)計(jì)報(bào)告</b></p><p><b> (圖書(shū)管理系統(tǒng))</b></p><p><b> 目錄</b></p><p> 一.需求分析…………………………………
2、…………………….3</p><p> 二.概要設(shè)計(jì)……………………………………………………….3</p><p> 三.詳細(xì)設(shè)計(jì)……………………………………………………….4</p><p> 四.調(diào)試分析……………………………………………………….6</p><p> 五.用戶使用說(shuō)明………………………………………………….6&l
3、t;/p><p> 六.測(cè)試結(jié)果……………………………………………………….7</p><p> 七.附錄:帶注釋的源代碼……………………………………….8</p><p><b> 一.需求分析</b></p><p> 大學(xué)的圖書(shū)館藏書(shū)是非常龐大的,原始的人工借書(shū)也是非常麻煩的,因此用一種自動(dòng)系統(tǒng)來(lái)管理圖書(shū)是非常
4、有必要的,所以設(shè)計(jì)一個(gè)圖書(shū)管理系統(tǒng),要能夠自如管理借書(shū),還書(shū),以及注冊(cè),注銷(xiāo)書(shū)本,這樣就能節(jié)省很多資源,提高效率。</p><p><b> 明確規(guī)定:</b></p><p> 1.每種書(shū)的登記內(nèi)容包括書(shū)號(hào)、書(shū)名、著作者、現(xiàn)存量和庫(kù)存量;</p><p> 2.對(duì)書(shū)號(hào)建立索引表(線性表)以提高查找效率;</p><p
5、> 3.系統(tǒng)主要功能如下:</p><p> *采編入庫(kù):新購(gòu)一種書(shū),確定書(shū)號(hào)后,登記到圖書(shū)帳目表中,如果表中已有,則只將庫(kù)存量增加;*借閱:如果一種書(shū)的現(xiàn)存量大于0,則借出一本,登記借閱者的書(shū)證號(hào)和歸還期限,改變現(xiàn)存量;*歸還:注銷(xiāo)對(duì)借閱者的登記,改變?cè)摃?shū)的現(xiàn)存量。</p><p><b> 二.概要設(shè)計(jì)</b></p><p&g
6、t; 1.本題中用到了以下函數(shù)和結(jié)構(gòu)體:</p><p> 本程序首先命名頭文件:</p><p> #include <stdio.h> </p><p> #include <stdlib.h> </p><p> #include <conio.h> </p><p>
7、; 以實(shí)現(xiàn)對(duì)各種函數(shù)的調(diào)用以及可能用到的各種循環(huán)。</p><p> 用“struct BOOK”結(jié)構(gòu)體,用來(lái)存放書(shū)籍以及借書(shū)信息;</p><p> 并用到“void page_title”的頁(yè)頭函數(shù),通過(guò)“void book_out”, “void book_in”來(lái)實(shí)現(xiàn)對(duì)書(shū)本的借出以及還書(shū),定義“search_book”來(lái)實(shí)現(xiàn)對(duì)書(shū)本各種信息的搜索任務(wù),“void book_ad
8、d”實(shí)現(xiàn)對(duì)書(shū)本的購(gòu)進(jìn)時(shí)的注冊(cè),用“void book_del”實(shí)現(xiàn)對(duì)書(shū)本的注銷(xiāo)。最后通過(guò)“goto menu”語(yǔ)句跳出整個(gè)循環(huán)語(yǔ)句,在各種操作做完后能夠返回到主菜單。用到goto語(yǔ)句原則上一般不符合結(jié)構(gòu)化一些規(guī)定,但是此題中大大提高了效率,因此我采用了。</p><p> 2. 主程序的流程及各程序模塊之間的層次:</p><p> 本程序運(yùn)用到的是用數(shù)組作為線性表的一種代替方式,實(shí)現(xiàn)
9、各種查詢,對(duì)各種數(shù)據(jù)的管理,運(yùn)用線性表的話可能會(huì)更加簡(jiǎn)便,但是我在用了數(shù)組代替后發(fā)現(xiàn)其實(shí)這樣更容易看懂?!皊truct Book”結(jié)構(gòu)體就保證了各種信息的存放和管理,接下來(lái)便是定義各種函數(shù)來(lái)一一實(shí)現(xiàn)對(duì)書(shū)籍的借出,歸還,注銷(xiāo)和注冊(cè),而在這些函數(shù)中,有包括了一些小的函數(shù)以及循環(huán),例如在搜索函數(shù)中,我用到了“for , if”等循環(huán)語(yǔ)句,當(dāng)然少不了數(shù)組的添加,一個(gè)大的程序就是這些小的部分而組成的。</p><p>
10、也可以簡(jiǎn)單的歸納為:整個(gè)程序是由搜索,借書(shū),還書(shū),注冊(cè)書(shū),注銷(xiāo)書(shū)這幾個(gè)模塊組成,這些又都是在整個(gè)“struct Book”結(jié)構(gòu)體中。</p><p><b> 三.詳細(xì)設(shè)計(jì)</b></p><p> struct BOOK為主結(jié)構(gòu)體;</p><p> void page_title(char *menu_item)為頁(yè)頭函數(shù)也就是登錄界
11、面的顯示; </p><p> void return_confirm(void)為返回確認(rèn)函數(shù),以便返回主菜單;</p><p> int search_book(void)為搜索書(shū)本信息的變量定義;</p><p> void book_out(void)為借出書(shū)本的變量定義;</p><p> void book_in(void
12、)為歸還書(shū)本的變量定義;</p><p> void book_add(void)為注冊(cè)書(shū)本的變量定義;</p><p> void book_del(void)為注銷(xiāo)書(shū)本的變量定義;</p><p> switch(getch())為多分支選擇語(yǔ)句,即輸入一個(gè)數(shù),即選擇了一個(gè)操作;</p><p> goto menu返回主菜單的語(yǔ)
13、句;</p><p> ——圖書(shū)目錄文件示例圖</p><p> struct Book</p><p> int search_book void book_out void book_in void book_add void book_del</p><p><b> ——函數(shù)調(diào)用關(guān)系圖</b>
14、;</p><p> 詳細(xì)流程為: Start </p><p><b> Home</b></p><p> user option</p><p> Member login Borrow Return Registeration</p>&
15、lt;p> Search book</p><p><b> 四.調(diào)試分析</b></p><p> (1).調(diào)試過(guò)程中遇到的問(wèn)題是如何解決的以及對(duì)設(shè)計(jì)與實(shí)現(xiàn)的回顧討論和分析:</p><p> 在調(diào)試過(guò)程中主要遇到的問(wèn)題是對(duì)函數(shù)的定義是出現(xiàn)過(guò)一些錯(cuò)誤,最后是翻看教材找到了對(duì)這些函數(shù)的準(zhǔn)確定義和使用解決了問(wèn)題。</p>
16、<p> (2).算法的時(shí)空分析(包括基本操作和其他算法的時(shí)間復(fù)雜度和空間復(fù)雜度的分析)和改進(jìn)設(shè)想:</p><p> 一個(gè)能執(zhí)行的程序除了需要存儲(chǔ)空間來(lái)寄存本身所用指令、常數(shù)、變量和輸入數(shù)據(jù)外,也需要一些對(duì)數(shù)據(jù)進(jìn)行操作的工作單元和存儲(chǔ)一些為實(shí)現(xiàn)計(jì)算所需要的信息的輔助空間。我的算法應(yīng)當(dāng)說(shuō)是挺簡(jiǎn)單的一種方法實(shí)現(xiàn)的,空間可能做得不夠好,但是時(shí)間我想是有保證的,這也就是彌補(bǔ)了那方面的不足了。需要改進(jìn)的
17、地方就是:每輸入完一個(gè)操作,就得返回原來(lái)的操作界面,不能夠繼續(xù)在現(xiàn)有的面板上操作,這挺不方便的,需要改進(jìn)。</p><p> (3).經(jīng)驗(yàn)和體會(huì):</p><p> 經(jīng)過(guò)了這次編程體驗(yàn),我感想蠻多的,一個(gè)好的程序最起碼要能運(yùn)行成功,其次是里邊的算法的簡(jiǎn)便度,這能夠?yàn)槟愎?jié)省很多時(shí)間和空間,當(dāng)然如果自己還不能運(yùn)用高級(jí)算法,那么我們就用自己會(huì)的東西編,這也是一種達(dá)到目標(biāo)的方法。</p&
18、gt;<p><b> 五.用戶使用說(shuō)明</b></p><p> 首先成功運(yùn)行程序后,會(huì)彈出一個(gè)運(yùn)行窗口,窗口會(huì)有一個(gè)簡(jiǎn)單的介紹操作步驟:如</p><p> 按照步驟,你可以很簡(jiǎn)便的實(shí)現(xiàn)各種操作,完成一個(gè)操作后,你必須按任意鍵返回到最初的界面然后繼續(xù)接下來(lái)的操作。</p><p><b> 六.測(cè)試結(jié)果<
19、;/b></p><p> 七.附錄:帶注釋的源代碼</p><p> #include <stdio.h> </p><p> #include <stdlib.h> </p><p> #include <conio.h> </p><p> struct BOO
20、K </p><p><b> { </b></p><p> int id,usr[10],total,store,days[10]; </p><p> char name[30],author[20]; </p><p> }books[100]; </p><p> /*結(jié)構(gòu)體,
21、存放書(shū)籍及借書(shū)信息。*/ </p><p> void page_title(char *menu_item) </p><p><b> { </b></p><p> printf(">>> 以下是圖 書(shū) 管 理 系 統(tǒng)--請(qǐng) 按 要 求 操 作 <<<\n\n- %s -\n\n&quo
22、t;,menu_item); </p><p><b> } </b></p><p> /*頁(yè)頭函數(shù),可以通過(guò)參數(shù)menu_item,顯示當(dāng)前狀態(tài)。*/ </p><p> void return_confirm(void) </p><p><b> { </b></p>
23、<p> printf("\n任意鍵返回……\n"); </p><p><b> getch(); </b></p><p><b> } </b></p><p> /*返回前請(qǐng)求確認(rèn)函數(shù),方便返回前觀察結(jié)果*/ </p><p> int search_
24、book(void) </p><p><b> { </b></p><p><b> int n,i; </b></p><p> printf("請(qǐng)輸入圖書(shū)序號(hào):"); </p><p> scanf("%d",&i); </p&g
25、t;<p> for(n=0;n<100;n++) </p><p><b> { </b></p><p> if(books[n].id==i) </p><p><b> { </b></p><p> printf("書(shū)名:%s\n",boo
26、ks[n].name); </p><p> printf("作者:%s\n",books[n].author); </p><p> printf("存數(shù):%d\n",books[n].store); </p><p> printf("總數(shù):%d\n",books[n].total); </
27、p><p> return n; </p><p><b> } </b></p><p><b> } </b></p><p> printf("\n輸入有錯(cuò)或圖書(shū)序號(hào)不存在.\n"); </p><p> return -1; </p&g
28、t;<p><b> } </b></p><p> /*上面是在數(shù)組中找到圖書(shū)號(hào)匹配的記錄,顯示其信息并返 </p><p> 回?cái)?shù)組下標(biāo),如果找不到相應(yīng)記錄則提示錯(cuò)誤并返回-1。*/ </p><p> void book_out(void) </p><p><b> { <
29、/b></p><p> int n,s,l,d; </p><p> page_title("借書(shū)"); </p><p> if((n=search_book())!=-1&&books[n].store>0) </p><p><b> { </b></
30、p><p> printf("請(qǐng)輸入借書(shū)證序號(hào):"); </p><p> scanf("%d",&s); </p><p> printf("請(qǐng)輸入可借天數(shù):"); </p><p> scanf("%d",&d); </p>
31、<p> for(l=0;l<10;l++) </p><p><b> { </b></p><p> if(books[n].usr[l]==0) </p><p><b> { </b></p><p> books[n].usr[l]=s; </p>
32、<p> books[n].days[l]=d; </p><p><b> break; </b></p><p><b> } </b></p><p><b> } </b></p><p> books[n].store--; </p>
33、<p><b> } </b></p><p> if(n!=-1&&books[n].store==0) printf("此書(shū)已經(jīng)全部借出.\n"); </p><p> return_confirm(); </p><p><b> } </b></p>
34、;<p> /*借書(shū)的函數(shù),首先調(diào)用找書(shū)函數(shù)*/ </p><p> void book_in(void) </p><p><b> { </b></p><p> int n,s,l; </p><p> page_title("還書(shū)"); </p><
35、p> if((n=search_book())!=-1&&books[n].store<books[n].total) </p><p><b> { </b></p><p> printf("借閱者圖書(shū)證列表:\n"); </p><p> for(l=0;l<10;l++) &
36、lt;/p><p> if (books[n].usr[l]!=0) </p><p> printf("[%d] - %d天\n",books[n].usr[l],books[n].days[l]); </p><p> printf("請(qǐng)輸入借書(shū)證序號(hào):"); </p><p> scanf(&
37、quot;%d",&s); </p><p> for(l=0;l<10;l++) </p><p><b> { </b></p><p> if(books[n].usr[l]==s) </p><p><b> { </b></p><p&g
38、t; books[n].usr[l]=0; </p><p> books[n].days[l]=0; </p><p><b> break; </b></p><p><b> } </b></p><p><b> } </b></p><p
39、> books[n].store++; </p><p><b> } </b></p><p> if(n!=-1&&books[n].store==books[n].total) </p><p> printf("全部入藏.\n"); </p><p> retu
40、rn_confirm(); </p><p><b> } </b></p><p> void book_add(void) </p><p><b> { </b></p><p><b> int n; </b></p><p> pag
41、e_title("注冊(cè)書(shū)"); </p><p> for(n=0;n<100;n++) </p><p> if(books[n].id==0) break; </p><p> printf("序號(hào):"); </p><p> scanf("%d",&boo
42、ks[n].id); </p><p> printf("書(shū)名:"); </p><p> scanf("%s",&books[n].name); </p><p> printf("作者:"); </p><p> scanf("%s",&
43、;books[n].author); </p><p> printf("數(shù)量:"); </p><p> scanf("%d",&books[n].total); </p><p> books[n].store=books[n].total; </p><p> return_con
44、firm(); </p><p><b> } </b></p><p> void book_del(void) </p><p><b> { </b></p><p><b> int n; </b></p><p> page_titl
45、e("注銷(xiāo)書(shū)"); </p><p> if((n=search_book())!=-1) books[n].id=0; </p><p> printf("該書(shū)已注銷(xiāo).\n"); </p><p> return_confirm(); </p><p><b> } </b&g
46、t;</p><p> void main(void) </p><p><b> { </b></p><p> menu: page_title("操作選擇單子"); </p><p> printf("請(qǐng)按以上要求選擇操作\n\n"); </p><
47、;p> printf("1 借書(shū)\n2 還書(shū)\n\n"); </p><p> printf("3 注冊(cè)書(shū)\n4 注銷(xiāo)書(shū)\n\n"); </p><p> printf("\n0 退出\n"); </p><p> switch(getch()) </p><p>&l
48、t;b> { </b></p><p> case '1' : book_out();break; </p><p> case '2' : book_in();break; </p><p> case '3' : book_add();break; </p><p>
49、; case '4' : book_del();break; </p><p> case '0' : exit(0); </p><p><b> } </b></p><p> goto menu; </p><p><b> }</b></p&g
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)-圖書(shū)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告——圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告--學(xué)院圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)——圖書(shū)管理信息系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)圖書(shū)管理系統(tǒng)實(shí)驗(yàn)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告---- 圖書(shū)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)-圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)借閱管理系統(tǒng)
- 圖書(shū)管理系統(tǒng)(含源代碼)c語(yǔ)言_數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)----用c++語(yǔ)言實(shí)現(xiàn)圖書(shū)管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--圖書(shū)館管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)--小型圖書(shū)購(gòu)銷(xiāo)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論