版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 課程設(shè)計</b></p><p> 專 業(yè):電子信息工程</p><p> 課程名稱:數(shù)據(jù)結(jié)構(gòu)課程設(shè)計 </p><p><b> 班 級:</b></p><p><b> 姓 名:</b></p><p&
2、gt;<b> 學(xué) 號: </b></p><p> 設(shè)計題目:學(xué)院圖書管理系統(tǒng)</p><p><b> 指導(dǎo)老師:</b></p><p> 評 語:_________________________________</p><p> _____________________
3、____________________</p><p> _________________________________________</p><p> _________________________________________</p><p> _________________________________________</p&g
4、t;<p> 評閱成績:__ __評閱教師:__ </p><p> 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計任務(wù)書 </p><p><b> 目錄</b></p><p><b> 一、概要設(shè)計3</b></p><p> 二、學(xué)院圖書管理系統(tǒng)總體框圖5</p>
5、;<p><b> 三、算法設(shè)計5</b></p><p> 三、運行結(jié)果和調(diào)試分析12</p><p><b> 五、參考文獻20</b></p><p><b> 附件:21</b></p><p><b> 學(xué)院圖書管理系統(tǒng)<
6、;/b></p><p><b> 一、概要設(shè)計</b></p><p><b> 有十個模塊:</b></p><p><b> 管理員登錄</b></p><p> 密碼驗證(初始管理員為:administer;初始密碼為:000000)</p>
7、<p><b> 圖書初始化</b></p><p> 輸入圖書的一些信息,編號、作者、書名、數(shù)量,使有一定的庫存。</p><p><b> 新書入庫</b></p><p> 新書采編入庫,輸入編號后如果有次數(shù)只需輸入數(shù)量,沒有則繼續(xù)輸入書名、作者、數(shù)量。</p><p>&
8、lt;b> 添加讀者信息</b></p><p> 讀者信息初始化,輸入讀書證號和姓名,只有輸入書證號和姓名才能進行借書還書</p><p><b> 借書模塊</b></p><p> 讀者輸入讀書證號,證號存在輸入要借的圖書編號,不能借同一本書,如果借書數(shù)量以達到最大也不能借書。</p><p&
9、gt;<b> 還書模塊</b></p><p> 歸還已借的圖書,要先輸入讀者書證號,書證號存在繼續(xù)輸入要還的圖書編號,圖書編號存在并且借來此書,歸還成功。</p><p><b> 查詢圖書信息</b></p><p><b> 查詢讀者信息</b></p><p>
10、; 可查詢讀者姓名書證號,借了幾本書,都是什么書和還書日期,還可以借幾本書。</p><p><b> 管理員修改密碼</b></p><p><b> 退出</b></p><p> 退出讀書管理系統(tǒng)并保存讀者和圖書信息。</p><p> 二、學(xué)院圖書管理系統(tǒng)總體框圖 </
11、p><p><b> 三、算法設(shè)計</b></p><p> 1)進入操作界面后,首先需要管理員密碼登錄</p><p> 2)進入系統(tǒng)后首先進行圖書初始化,輸入圖書的信息。</p><p> 3)初始化之后,進入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息。</p><p&g
12、t;<b> 4)采編入庫</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b> 5)輸入讀者信息</b></p><p><b> 6)借閱圖書</b></p&
13、gt;<p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p>
14、<p><b> 是</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p
15、><b> 7)歸還圖書</b></p><p><b> 否</b></p><p><b> 是</b></p><p><b> 否</b></p><p><b> 是</b></p><p
16、><b> 8)查詢圖書信息</b></p><p><b> 否</b></p><p><b> 9)查詢讀者信息</b></p><p><b> 否</b></p><p><b> 管理員密碼修</b><
17、;/p><p> 三、運行結(jié)果和調(diào)試分析</p><p><b> 管理員密碼登錄</b></p><p> 2)圖書信息初始化 </p><p> 3)圖書管理系統(tǒng)主菜單</p><p><b> 4)新書入庫</b></p><p><
18、b> 5)讀者信息初始化</b></p><p><b> 6)借書模塊</b></p><p> 7)查詢讀者借書后信息</p><p> 8)查詢借書后書庫信息</p><p><b> 9)還書模塊</b></p><p> 10)查詢還書
19、后讀者信息</p><p><b> 查詢還書后庫存信息</b></p><p> 12)管理員修改密碼</p><p> ?、俚谝淮屋斎脲e誤舊密碼,第二次輸入正確的舊密碼</p><p> ?、隍炞C是否能夠更改密碼</p><p><b> 13)退出系統(tǒng)</b>&l
20、t;/p><p><b> 四、總結(jié)體會</b></p><p> 選到這個課程設(shè)計題目的時候,自認為很簡單,因為在平時上課有被都老師點名上去講這類型的課題。但真正拿到手中,才發(fā)現(xiàn),真正要做好真的不容易。像查找,增加,,顯示,這些平時在數(shù)據(jù)結(jié)構(gòu)和C語言中都學(xué)過,用過,但是實際操作中還是遇到了很多問題,所以特意到圖書館專門借了幾本關(guān)于數(shù)據(jù)結(jié)構(gòu)程序設(shè)計方面的書以及幾本關(guān)于
21、C語言和C++方面的書,同時也希望能把平時沒有學(xué)好的地方好好補一補,能對知識有更深層次的理解。一切準備就緒,把平時寫的相關(guān)的程序拿出來參考,對比,慢慢才找到一些感覺,把源程序?qū)懗鰜?。開始的時候,我就只對老師給出設(shè)計的幾條要求做了系統(tǒng)分析,并且起草出了最初的程序。但是結(jié)合具體的圖書管理系統(tǒng),我發(fā)現(xiàn)僅僅這些還遠遠達不到實用的標準,于是我就相關(guān)興趣查找資料,發(fā)現(xiàn)可以加的功能很多,由于時間的問題,我就選擇其中的管理員密碼登錄與管理員密碼修改這兩
22、條功能做了詳細分細,并且得出最初算法。</p><p> 經(jīng)過幾天的努力終于寫完了程序的初稿,然后輸入電腦,一編譯,發(fā)現(xiàn)錯誤幾十個,還有許多警告,只得一條一條的看,一個一個的改,首當其沖的是再輸入電腦過程中不小心漏掉的標點符號,有些括號忘了,有些是忘了寫分號等粗心導(dǎo)致的小毛病,這些錯誤很容易改正.到后面的錯誤就有些麻煩了,編譯過程中好幾十個錯誤就是改不過來,后來和同學(xué)討論才知道原來錯在什么地方,這樣一下就變成了
23、幾個錯誤,這時信心大增,有些錯誤都看不懂錯在那里,由于英文水平不太好,只好去查字典,還要推敲這個單詞在這里到底是哪個意思,由于電腦系統(tǒng)原因,裝的VC6.0用不了,我?guī)滋於寂菰趫D書館多媒體閱覽室里,經(jīng)過幾大塊時間的思考,才得到零錯誤零警告,那時真開心,我的程序終于可以運行了,激動的按下運行,得到了預(yù)想的界面,按照提示操作,都很順利,一個一個的實驗每一個功能,都以為成功了,當運行到了修改管理員密碼功能時,突然不往下運行了,只見操作界面不停的
24、閃。這是邏輯錯誤,很難找,后來只有一步一步的,一句一句的檢查,找到了錯誤的根源,并改正。</p><p> 回顧這些日子的設(shè)計之路,我不由得想到下面這些。從進入大學(xué)來,我們學(xué)習(xí)了C語言,數(shù)據(jù)結(jié)構(gòu)。特別是周老師的認真授課,精心講解下,同學(xué)們學(xué)到了很多東西,知識方面的很多,還有平時?心的習(xí)慣也養(yǎng)成了.這對我們以后的學(xué)習(xí)生活很有好處,這次的實驗還讓我復(fù)習(xí)了C語言的一些知識,如數(shù)組,while語句,switch語句,通
25、過這次實驗,我對鏈表的使用更加清楚,以及怎樣從整體上設(shè)計系統(tǒng)有了更深刻的認識。還知道了如何使用system("cls")清屏,還知道了strcmp是用來比較字符串s1和s2大小的,strcpy使用來把字符串s2的值賦給s1的。</p><p> 我覺得更重要的是,這次課程設(shè)計讓我對自己有了更深的了解,以及對數(shù)據(jù)結(jié)構(gòu)這門課程有了更好的掌握。這次的課程設(shè)計增加了自己動手動腦的能力,我誠心希望以后
26、有更多機會多做這樣類似的的實踐,真的很有意義,設(shè)計與現(xiàn)實生活結(jié)合的程序增加了我的興趣。</p><p> 最后要感謝周老師和吳老師這一學(xué)期以來對我們的教導(dǎo)與幫助。謝謝你們!</p><p><b> 五、參考文獻</b></p><p> [1]譚浩強,C++程序設(shè)計[M],北京,清華大學(xué)出版社,2006年</p><
27、p> [2]李振鵬,張小莉,鄭艷娟,數(shù)據(jù)結(jié)構(gòu)[M],中國鐵道出版社,2007年</p><p> [3]楊小平,VisualC++項目案例導(dǎo)航[M],北京,科學(xué)出版社,2002年</p><p> [4]David Conger,軟件開發(fā):編程與設(shè)計[M],北京,清華大學(xué)出版社,2006 年.</p><p> [5]Francis Glassboro
28、w Roberta Allen ,You Can Do It!——C++編程新手互動教程[M],北京,人民郵電出版社,2005年</p><p> [6]譚浩強,C程序設(shè)計[M],北京,清華大學(xué)出版社,2007年,第三版</p><p> [7]田魯懷,數(shù)據(jù)結(jié)構(gòu)[M],北京,電子工業(yè)出版社,2010年</p><p> [8]匡松,C++語言程序設(shè)計[M],中
29、國鐵道部出版社,2008年,第一版</p><p><b> 附件:</b></p><p><b> 最終程序:</b></p><p> #include<stdio.h></p><p> #include <string.h></p><p
30、> #include <stdlib.h></p><p> #include<malloc.h></p><p> #include<conio.h></p><p> #define Max 4 </p><p> #define N 20 </p><p>
31、 char Password[N]={"000000"};//把Password定義為全局變量;</p><p> typedef struct book</p><p><b> {</b></p><p> char book_num[10];</p><p> char book_nam
32、e[20];</p><p> char book_writer[10];</p><p> int book_xy;</p><p> int book_kc;</p><p> struct book *next;</p><p><b> }BK;</b></p>&
33、lt;p> typedef struct borrow</p><p><b> {</b></p><p> char borrow_book_num[10];</p><p> char limit_date[8];</p><p><b> }BO;</b></p>
34、<p> typedef struct reader</p><p><b> {</b></p><p> char reader_num[10];</p><p> char reader_name[10];</p><p> int right;</p><p>
35、BO borrow[Max];</p><p> struct reader *next;</p><p><b> }RD;</b></p><p> BK *h_book;</p><p> RD *h_reader; </p><p> void Update();
36、 //改密碼 </p><p> void Entry(); </p><p> void Login(); </p><p> int Menu(); </p><p> void Init(); </p><p> void Init
37、_book(); </p><p> void Menu_select(); </p><p> void Insert_New_Book(); </p><p> void Find_Book(); </p><p> void add_reader();</p>
38、<p> void Print_reader(); </p><p> void Print_book(); </p><p> void Borrow_Book(); </p><p> void Return_Book(); </p><p> void Save(); <
39、/p><p> void Save_Book(); </p><p> void Save_Reader(); </p><p> void Load();</p><p> void Load_Reader(); </p><p> void Load_Book(); </p><p>
40、 void Update() //修改密碼的C語言算法 </p><p><b> {</b></p><p><b> int i; </b></p><p> char password[N],temp[N];</p><p> strcpy(temp,Password);</p
41、><p> printf("請輸入舊密碼:");</p><p> for(i=1;i<4;i++)</p><p> { scanf("%s",password);</p><p> if(strcmp(Password,password)==0)</p><p>
42、 {printf(" 請輸入新密碼:");</p><p> scanf("%s",password);</p><p> strcpy(Password,password);</p><p> printf(" 請再次輸入新密碼確認修改:");</p><p>
43、 scanf("%s",password);</p><p> if(strcmp(Password,password)==0)</p><p><b> {</b></p><p> printf("\n重新設(shè)置密碼成功!!!!按任意鍵繼續(xù)下一步操作..\n"); </p><
44、p> getch(); break;</p><p><b> }</b></p><p> else printf(" 請重新輸入新密碼:");</p><p><b> }</b></p><p><b> else </b><
45、/p><p><b> {</b></p><p> strcpy(Password,temp);</p><p> printf(" 修改密碼失敗,你還%d有次,請重新輸入舊密碼",3-i);</p><p><b> }</b></p><p&g
46、t;<b> } </b></p><p> getch();system("cls");</p><p><b> }</b></p><p> void Entry()//管理員登錄的C語言算法</p><p><b> {</b><
47、;/p><p> char Administer[N]={"administer"};</p><p> char administer[N];</p><p> char password[N];</p><p> int findOK;</p><p><b> while(1)
48、</b></p><p><b> {</b></p><p><b> findOK=0;</b></p><p> printf("\t\t*******************************************\n");</p><p>
49、printf("\t\t 登錄 ");</p><p> printf("\n\t\t*****************************************\n");</p><p> printf("\t\t 管理員:");</p><p> scanf(&q
50、uot;%s",administer);</p><p> printf("\n\t\t*****************************************\n");</p><p> printf("\t\t 密碼:");</p><p> scanf("%s",
51、password);</p><p> printf("\n\t\t******************************************\n");</p><p> if(strcmp(Administer,administer)==0 && strcmp(Password,password)==0)</p><p
52、><b> {</b></p><p><b> findOK=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p> if(findOK==1)</p><
53、p><b> {</b></p><p> printf("\n\t\t歡迎用戶 %s\n",administer); </p><p><b> }</b></p><p> else printf("\n\n\t\t用戶名或密碼有錯!請重新\n");</p&g
54、t;<p><b> }</b></p><p> printf("\n管理員登錄成功!!!!按任意鍵繼續(xù)下一步操作..\n"); </p><p> getch(); system("cls"); </p><p><b> }</b></p>
55、<p> void Login()</p><p><b> {</b></p><p> system("cls");</p><p> printf("\n\n\n\t\t***************************************\n");</p>
56、<p> printf("\n\n\n\t\t\t歡迎使用學(xué)院圖書管理系統(tǒng)\n");</p><p> printf("\n\n\n\t\t***************************************\n");</p><p> printf("\n\n\t\t本程序制作人 天人\n\n\n\n\n\n\n
57、");</p><p> printf("\n\n\n\t\t 管理員請輸入密碼登錄系統(tǒng)\n\n\n\n\n\n");</p><p> Entry(); system("cls");</p><p><b> }</b></p><p> int Menu()
58、/*主菜單*/</p><p><b> { int dm;</b></p><p> printf("\n\t\t學(xué)院圖書管理系統(tǒng)主菜單\n");</p><p> printf("=================================================\n");<
59、/p><p> printf("*\t0----退出系統(tǒng) \n");</p><p> printf("*\t1----采編入庫 \n");</p><p> printf("*\t2----登記讀者 \n"); </p><p&g
60、t; printf("*\t3----借閱登記 \n");</p><p> printf("*\t4----還書管理 \n");</p><p> printf("*\t5----查詢圖書信息 \n");</p><p> printf("*
61、\t6----查詢讀者信息 \n");</p><p> printf("*\t7----管理員密碼修改 \n");</p><p> printf("=================================================\n");</p><p> printf(&
62、quot;請選擇相應(yīng)的代碼:"); </p><p><b> for(;;) </b></p><p> { scanf("%d",&dm); //dm輸入的數(shù)字</p><p> if(dm<0||dm>7)</p><p> printf("\n錯
63、誤!請重新輸入:");</p><p> else break;</p><p><b> }</b></p><p> return dm; </p><p><b> }</b></p><p> void Menu_select()/*主菜單選擇函數(shù)
64、*/</p><p><b> {</b></p><p><b> for(;;) </b></p><p><b> {</b></p><p> switch(Menu()) /*功能選擇*/</p><p><b> { ca
65、se 0:</b></p><p> system("cls");</p><p><b> Save();</b></p><p> printf("\n\n\t文件保存成功!\n"); </p><p> printf("\n\n\t歡迎下次使用本
66、系統(tǒng)!\n"); </p><p><b> getch(); </b></p><p><b> exit(0);</b></p><p> case 1:Insert_New_Book();break; </p><p> case 2:add_reader();break;&
67、lt;/p><p> case 3:Borrow_Book();break;</p><p> case 4:Return_Book();break;</p><p> case 5:Print_book();break;</p><p> case 6:Print_reader();break;</p><p>
68、 case 7:Update();break;</p><p> default:printf("\n錯誤!");</p><p><b> exit(0);}</b></p><p><b> }</b></p><p><b> }</b>&l
69、t;/p><p> void Init() /*初始化*/</p><p><b> { </b></p><p><b> BK *p0;</b></p><p> printf("\n圖書初始化開始,請輸入圖書信息..\n包括編號.書名.數(shù)量..\n");</p&g
70、t;<p> p0=(BK*)malloc(sizeof(BK));</p><p> h_book=p0;</p><p> printf("\n請輸入圖書信息:\n");</p><p> printf("圖書編號:"); /*輸入圖書編號(唯一)*/</p>&l
71、t;p> scanf("%s",p0->book_num);</p><p> printf("圖書名稱:"); /*輸入圖書名稱*/</p><p> scanf("%s",p0->book_name);</p><p> printf("圖書作者:
72、"); /*輸入圖書作者*/</p><p> scanf("%s",p0->book_writer);</p><p> printf("圖書數(shù)量:"); /*輸入圖書數(shù)量*/</p><p> scanf("%d",&p0->
73、;book_kc);</p><p> p0->book_xy=p0->book_kc; /*開始時圖書現(xiàn)有量和庫存量相等*/</p><p> p0->next=NULL;</p><p> printf("\n\t圖書信息初始化完畢!按任意鍵繼續(xù)下一步操作..\n");</p><p>
74、<b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p> void Insert_New_Book()/*新書入庫*/</p><p><b> {</b></
75、p><p> BK *p,*p0,*p1; </p><p> p=p1=h_book;</p><p> printf("\n新書入庫模塊...\n");</p><p> printf("\n請輸入新書信息..\n包括書號.書名.數(shù)量..\n");</p><p> p
76、0=(BK *)malloc(sizeof(BK));</p><p> printf("圖書編號:");</p><p> scanf("%s",p0->book_num);</p><p> while(strcmp(p0->book_num,p1->book_num)!=0&&p1
77、->next!=NULL)</p><p> p1=p1->next;</p><p> if(strcmp(p0->book_num,p1->book_num)==0) /*此處分兩種情況,若圖書編號存在,則直接進庫,只須輸入書的數(shù)量*/</p><p><b> {</b></p><p&g
78、t; printf("\n此編號圖書已存在!!直接入庫!\n"); </p><p> printf("圖書數(shù)量:");</p><p> scanf("%d",&p0->book_kc);</p><p> p1->book_kc+=p0->book_kc;</p&
79、gt;<p> p1->book_xy+=p0->book_kc;</p><p><b> }</b></p><p> else/*若不存在,則需要輸入其他的信息,然后在進行插入操作*/</p><p><b> {</b></p><p> printf(&
80、quot;圖書名稱:");</p><p> scanf("%s",p0->book_name);</p><p> printf("圖書作者:");</p><p> scanf("%s",p0->book_writer);</p><p> prin
81、tf("圖書數(shù)量:");</p><p> scanf("%d",&p0->book_kc);//庫存數(shù)量</p><p> while(p->next) </p><p> { p=p->next; }</p><p> if(h_book==NULL) h_book
82、=p0; /*此處分兩種情況,鏈表中沒有數(shù)據(jù),head直接指向p0處*/</p><p> else p->next=p0; /*此處分兩種情況,鏈表中有數(shù)據(jù),鏈表中最后元素的next指向p0處*/ </p><p> p0->next=NULL;</p><p> p0->book_xy=p0->
83、book_kc; </p><p><b> }</b></p><p> printf("\n新書入庫完畢!按任意鍵繼續(xù)下一步操作..\n");</p><p><b> getch();</b></p><p> system("cls");<
84、;/p><p><b> }</b></p><p> void add_reader()/*添加讀者*/</p><p><b> { RD *p0;</b></p><p><b> int i;</b></p><p> printf(&qu
85、ot;\n讀者初始化開始,請輸入讀者信息..\n包括書證號.姓名..\n");</p><p> p0=(RD*)malloc(sizeof(RD)); /*申請新結(jié)點存儲空間*/</p><p> h_reader=p0;</p><p> printf("\n請輸入讀者的信息:\n");</p><
86、p> printf("讀者書證號:"); </p><p> scanf("%s",p0->reader_num);</p><p> printf("讀者姓名:"); </p><p> scanf("%s",p0->reader_name
87、);</p><p> p0->right=0;</p><p> for(i=0;i<Max;i++)</p><p><b> {</b></p><p> strcpy(p0->borrow[i].borrow_book_num,"0"); /*所借圖書直接置為(即沒有
88、借書)*/</p><p> strcpy(p0->borrow[i].limit_date,"0"); </p><p><b> }</b></p><p> p0->next=NULL;</p><p> printf("\n讀者信息初始化完畢!按任意鍵繼續(xù)下一步操
89、作..\n"); </p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p> void Borrow_Book() /*借書模塊*/</p><
90、p><b> {</b></p><p> BK *p0; RD *p1;</p><p> char bo_num[10],rea_num[10],lim_date[8];</p><p><b> int i;</b></p><p> p0=h_book; p1=h_reade
91、r;</p><p> printf("\n借書模塊...\n");</p><p> printf("\n請輸入借書的讀者書證號:"); </p><p> scanf("%s",rea_num);</p><p> while(p1->next!=NULL&am
92、p;&strcmp(rea_num,p1->reader_num)!=0) </p><p> p1=p1->next;</p><p> if(p1->next==NULL&&strcmp(rea_num,p1->reader_num)!=0) </p><p><b> { <
93、;/b></p><p> printf("\n此讀者編號不存在!按任意鍵返回..\n");</p><p><b> goto END;</b></p><p><b> } </b></p><p> printf("\n請輸入你要借的書的編號:&qu
94、ot;); </p><p> scanf("%s",bo_num);</p><p> while(strcmp(bo_num,p0->book_num)!=0&&p0->next!=NULL) </p><p> p0=p0->next;</p><p> if(p0
95、->next==NULL&&strcmp(bo_num,p0->book_num)!=0) </p><p><b> {</b></p><p> printf("\n此圖書編號不存在!按任意鍵返回..\n");</p><p><b> goto END;</b
96、></p><p><b> }</b></p><p> else if(p0->book_xy<=0) </p><p><b> {</b></p><p> printf("\n抱歉,此書已借完!請等待新書的到來!!\n按任意鍵返回....&quo
97、t;);</p><p><b> goto END;</b></p><p><b> } </b></p><p> else if(p1->right>Max||p1->right==Max) </p><p><b> {</b></p&
98、gt;<p> printf("\n不好意思,借書數(shù)目已滿!不能借書!\n按任意鍵返回....");</p><p><b> goto END;</b></p><p><b> }</b></p><p> else if(strcmp(p1->borrow[0].bor
99、row_book_num,"0")!=0) </p><p><b> {</b></p><p> for(i=0;i<Max;i++) </p><p><b> {</b></p><p> if(strcmp(p1->borrow[i].b
100、orrow_book_num,bo_num)==0)</p><p><b> {</b></p><p> printf("\n抱歉!同一個讀者不能同借兩本相同的書!\n按任意鍵返回....");</p><p><b> goto END;</b></p><p>&l
101、t;b> }</b></p><p> else if(strcmp(p1->borrow[i].borrow_book_num,"0")==0) </p><p><b> {</b></p><p> printf("\n請輸入你要歸還圖書的日期:"); <
102、;/p><p> scanf("%s",lim_date);</p><p> strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); </p><p> strcpy(p1->borrow[p1->right-1].limit_date,lim_date)
103、; </p><p> p0->book_xy--;</p><p> p0->book_kc--;</p><p> printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p1->reader_num);</p><p><b> goto END;</b&g
104、t;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p><p><b> {</
105、b></p><p> printf("\n請輸入你要歸還圖書的日期:"); </p><p> scanf("%s",lim_date);</p><p> strcpy(p1->borrow[p1->right++].borrow_book_num,bo_num); </p>&
106、lt;p> strcpy(p1->borrow[p1->right-1].limit_date ,lim_date ); </p><p> p0->book_xy--;</p><p> p0->book_kc--;</p><p> printf("\n讀者編號%s借書完畢!按任意鍵繼續(xù)下步操作..",p
107、1->reader_num);</p><p><b> }</b></p><p> END:getch(); system("cls");</p><p><b> } </b></p><p> void Return_Book() /*還書模塊*/</
108、p><p><b> {</b></p><p> BK *p; RD *q;</p><p> int i,j,find=0;</p><p> char return_book_num[10],return_reader_num[10];</p><p> p=h_book; q=h_r
109、eader;</p><p> printf("\n還書模塊...\n");</p><p> printf("\n請輸入要還書的讀者編號:"); </p><p> scanf("%s",return_reader_num); </p><p> whi
110、le(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0) </p><p> q=q->next;</p><p> if(q->next==NULL&&strcmp(return_reader_num,q->reader_num)!=0)</p>
111、<p><b> {</b></p><p><b> find=2;</b></p><p> printf("\n此讀者編號不存在!按任意鍵返回..\n");</p><p> goto end; </p><p><b> }</b&
112、gt;</p><p> printf("\n請輸入讀者還書的編號:");</p><p> scanf("%s",return_book_num);</p><p> while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)&l
113、t;/p><p> p=p->next;</p><p> if(p->next==NULL&&strcmp(return_book_num,p->book_num)!=0)</p><p><b> {</b></p><p><b> find=2;</b>
114、</p><p> printf("\n錯誤!此圖書編號不存在!按任意鍵返回..\n");</p><p><b> goto end;</b></p><p><b> } </b></p><p> for(i=0;i<Max;i++)</p>&
115、lt;p> if(strcmp(return_book_num,q->borrow[i].borrow_book_num)==0) /*如果此讀者借了此書*/</p><p><b> {</b></p><p><b> find=1; </b></p><p> for(j=i;j<M
116、ax-1;j++)</p><p><b> {</b></p><p> strcpy(q->borrow[j].borrow_book_num,q->borrow[j+1].borrow_book_num); </p><p> strcpy(q->borrow[j].limit_date,q->borrow[
117、j+1].limit_date); </p><p><b> }</b></p><p> strcpy(q->borrow[Max-1].borrow_book_num,"0");</p><p> strcpy(q->borrow[Max-1].limit_date,"0");&l
118、t;/p><p> p->book_xy++;</p><p> p->book_kc++;</p><p> q->right--;</p><p> printf("\n編號%s的讀者還書完畢!按任意鍵繼續(xù)下步操作..",return_reader_num);</p><p&g
119、t;<b> }</b></p><p> if(find==0) </p><p> printf("\n錯誤!此讀者未借此書!按任意鍵返回..\n"); </p><p> end: getch(); system("cls");</p><p>&l
120、t;b> }</b></p><p> void Print_book() /*查詢圖書信息*/</p><p><b> {</b></p><p><b> BK *p;</b></p><p><b> p=h_book;</b></p&
121、gt;<p> printf("\n圖書信息如下:\n\n");</p><p> printf("圖書編號\t圖書名稱\t圖書作者\t現(xiàn)有\(zhòng)t\t庫存\n");</p><p> while(p!=NULL)</p><p><b> {</b></p><p&
122、gt; printf("%s\t\t%s\t\t%s\t\t%d\t\t%d\n",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);</p><p> p=p->next;</p><p><b> }</b></p>
123、<p> printf("\n圖書信息打印完畢!按任意鍵繼續(xù)下一步操作..");</p><p><b> getch();</b></p><p> system("cls");</p><p><b> }</b></p><p>
124、 void Print_reader() /*查詢讀者信息*/</p><p><b> {</b></p><p><b> RD *p;</b></p><p><b> int i;</b></p><p> p=h_reader;</p>
125、<p> printf("\n讀者信息如下:\n\n");</p><p> printf("讀者書證號\t\t讀者姓名\n"); </p><p> printf("\n");</p><p> while(p!=NULL) </p><p><b>
126、 {</b></p><p> printf("\t%s\t\t%s",p->reader_num,p->reader_name);</p><p> for(i=0;i<Max;i++)</p><p><b> {</b></p><p> printf(&q
127、uot;\n");</p><p> printf("圖書編號",i+1); </p><p> printf("\t還書日期",i+1); </p><p> printf("\n");</p><p> printf("\t%s",p->
128、;borrow[i].borrow_book_num);</p><p> printf("\t\t%s",p->borrow[i].limit_date); </p><p><b> }</b></p><p> printf("\n");</p><p> p=
129、p->next;</p><p><b> }</b></p><p> printf("\n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作..");</p><p><b> getch();</b></p><p> system("cls");&
130、lt;/p><p><b> }</b></p><p> void Save() /*保存信息*/</p><p><b> {</b></p><p> Save_Reader();</p><p> Save_Book();</p><p>
131、;<b> }</b></p><p> void Save_Reader() /*保存讀者信息*/</p><p><b> {</b></p><p> FILE *fp_reader; </p><p> RD *p,*p0;</p><p> p=
132、h_reader;</p><p> if((fp_reader=fopen("Reader.txt","wb"))==NULL) /*創(chuàng)建文件,進行保存*/</p><p><b> {</b></p><p> printf("\n文件保存失敗!\n請重新啟動本系統(tǒng)...\n&qu
133、ot;);</p><p><b> exit(0);</b></p><p><b> }</b></p><p> while(p!=NULL) </p><p><b> {</b></p><p> if(fwrite(p,sizeof
134、(RD),1,fp_reader)!=1) /*將鏈表中的信息寫入文件中*/</p><p> printf("\n寫入文件失敗!\n請重新啟動本系統(tǒng)!\n");</p><p><b> p0=p;</b></p><p> p=p->next;</p><p> free(p0)
135、; /*釋放所有結(jié)點*/</p><p><b> }</b></p><p> h_reader=NULL;</p><p> fclose(fp_reader); /*關(guān)閉文件*/</p><p><b> }</b></p><p> void Save
136、_Book() /*保存圖書信息*/</p><p><b> {</b></p><p> FILE *fp_book; /*創(chuàng)建文件型指針*/</p><p> BK *p,*p0;</p><p><b> p=h_book;</b></p><p>
137、 if((fp_book=fopen("Book.txt","wb"))==NULL) /*創(chuàng)建文件,進行保存*/</p><p><b> {</b></p><p> printf("\n文件保存失敗!\n請重新啟動本系統(tǒng)...\n");</p><p><b&
138、gt; exit(0);</b></p><p><b> }</b></p><p> while(p!=NULL) </p><p><b> {</b></p><p> if(fwrite(p,sizeof(BK),1,fp_book)!=1)
139、 /*將鏈表中的信息寫入文件中*/</p><p> printf("\n寫入文件失敗!\n請重新啟動本系統(tǒng)!\n");</p><p><b> p0=p;</b></p><p> p=p->next;</p><p> free(p0); </p><p&g
140、t;<b> }</b></p><p> h_book=NULL;</p><p> fclose(fp_book); /*關(guān)閉文件*/</p><p><b> }</b></p><p> void Load() /*加載信息*/</p><p><
141、b> {</b></p><p> Load_Reader();</p><p> Load_Book();</p><p><b> }</b></p><p> void Load_Reader() /*加載讀者信息*/</p><p><b> {
142、</b></p><p> RD *p1,*p2,*p3;</p><p> FILE *fp; /*創(chuàng)建文件型指針*/</p><p> fp=fopen("book.txt","rb"); /*打開文件*/</p><p> p1=(RD *)ma
143、lloc(sizeof(RD));</p><p> fread(p1,sizeof(RD),1,fp);</p><p> h_reader=p3=p2=p1;</p><p> while(! feof(fp)) /*讀出信息,重新鏈入鏈表*/</p><p> { p1=(RD *)malloc(sizeof(RD));&l
144、t;/p><p> fread(p1,sizeof(RD),1,fp);</p><p> p2->next=p1;</p><p><b> p3=p2;</b></p><p><b> p2=p1;</b></p><p><b> }</b
145、></p><p> p3->next=NULL;</p><p><b> free(p1);</b></p><p> fclose(fp); /*關(guān)閉文件*/</p><p><b> }</b></p><p> void Load_Book()
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告——圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理系統(tǒng)
- 《數(shù)據(jù)結(jié)構(gòu)》課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計---圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計-圖書管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書管理
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計圖書管理系統(tǒng)實驗報告
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告---- 圖書管理系統(tǒng)的設(shè)計與實現(xiàn)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計——圖書管理信息系統(tǒng)
- 圖書管理系統(tǒng)(含源代碼)c語言_數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告
- 數(shù)據(jù)結(jié)構(gòu)-圖書管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計--圖書借閱管理系統(tǒng)
- 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計----用c++語言實現(xiàn)圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告---圖書管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計報告----圖書管理系統(tǒng)
評論
0/150
提交評論