版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p> 一、需求分析- 2 -</p><p> 二、概要設(shè)計- 2 -</p><p> 2.1 設(shè)計思想- 2 -</p><p> 2.2運行平臺及開發(fā)環(huán)境- 2 -</p><p> 2.3 數(shù)據(jù)結(jié)構(gòu)- 3 -<
2、;/p><p> 2.4 系統(tǒng)結(jié)構(gòu)圖- 3 -</p><p> 三、詳細設(shè)計- 3 -</p><p> 3.1 主函數(shù)- 3 -</p><p> 3.2 圖書基本信息輸入- 4 -</p><p> 3.3查詢模塊- 5 -</p><p> 3.4 刪除模塊- 6 -
3、</p><p> 3.5 辦理借書手續(xù)模塊- 7 -</p><p> 3.6 辦理還書手續(xù)模塊- 8 -</p><p> 四、測試結(jié)果分析- 9 -</p><p> 4.1 輸入圖書信息模塊效果- 9 -</p><p> 4.2 查詢模塊效果示意- 10 -</p><
4、p> 4.3 刪除模塊效果圖- 12 -</p><p> 4.4 借閱圖書模塊效果示意圖- 12 -</p><p> 4.5 歸還圖書模塊效果示意圖- 13 -</p><p> 五、總結(jié)- 14 -</p><p> 5.1 優(yōu)缺點分析- 14 -</p><p> 5.2 心得體會與
5、收獲- 15 -</p><p> 六、參考文獻- 15 -</p><p> 七、附錄- 16 -</p><p><b> 一、需求分析</b></p><p> 先分析我所拿到的題目,我需要設(shè)計一個簡單的圖書管理系統(tǒng)。分為兩個方面,一方面是對圖書的管理。首先需將圖書的基本信息寫入到指定的儲存圖書信息的
6、文件中;接下來是查詢功能,要實現(xiàn)根據(jù)圖書的序號和書名查詢圖書的基本信息;然后是刪除功能,要求根據(jù)輸入序號刪除對應(yīng)圖書所有信息。另一方面是學(xué)生借書和還書系統(tǒng)。借書后,要求輸入學(xué)生信息,并且與所借書本對應(yīng),并且借出后,書本所存狀態(tài)隨之發(fā)生改變,并儲存;還書時,要求輸入學(xué)生的信息,并且將還書信息儲存。</p><p> 根據(jù)以上分析可知,由于圖書的信息是存放在文件中,所以要有文件的寫入讀出等操作;同時要對圖書信息和對
7、應(yīng)學(xué)生的信息進行瀏覽、查找或刪除等一系列的操作,就要對文件的內(nèi)容進行讀出寫入保存,就要涉及到一些簡單的算法;此外,由于是一個操作系統(tǒng),就需要有主菜單實現(xiàn)選擇操作。</p><p><b> 二、概要設(shè)計</b></p><p><b> 2.1 設(shè)計思想</b></p><p> 根據(jù)以上的需求分析可以將整個系統(tǒng)的設(shè)
8、計分為六個模塊:1、輸入圖書基本信息模塊, 2、查詢圖書基本信息模塊,3、刪除圖書信息模塊,4、辦理借書手續(xù)模塊,5、辦理還書手續(xù)模塊。另外加上系統(tǒng)主菜單的選擇的設(shè)計。</p><p> 2.2運行平臺及開發(fā)環(huán)境</p><p> 此程序是在Microsoft Visual C++軟件平臺上編譯的,具有集成開發(fā)環(huán)境,可提供編輯C語言,C++以及C++/CLI等等編程語言。VC++整合了
9、便利的除錯工具,特別是整合了微軟視窗程式設(shè)計(Windows API)、三維動畫DirectX API,Microsoft .NET框架。</p><p><b> 2.3 數(shù)據(jù)結(jié)構(gòu)</b></p><p> 綜合以上的分析及開發(fā)平臺特點,我決定采用結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu),將圖書的基本信息設(shè)計為結(jié)構(gòu)體數(shù)據(jù),用來存放多種圖書的信息,把圖書的名稱、編號、單價、作者、存在狀態(tài),
10、包括與之對應(yīng)的借書人姓名、性別、學(xué)號作為結(jié)構(gòu)體成員,然后將結(jié)構(gòu)體數(shù)據(jù)存儲到文件中,以便實現(xiàn)信息之間的對應(yīng)輸入輸出,以及存儲。</p><p><b> 2.4 系統(tǒng)結(jié)構(gòu)圖</b></p><p> 根據(jù)以上分析,可得以下圖書管理系統(tǒng)設(shè)計的框圖:</p><p> 圖2-1 圖書管理系統(tǒng)設(shè)計框圖</p><p>
11、<b> 三、詳細設(shè)計</b></p><p><b> 3.1 主函數(shù)</b></p><p> 主函數(shù)的設(shè)計主要是為調(diào)用菜單函數(shù),在菜單函數(shù)中實現(xiàn)各個模塊功能子函數(shù)的調(diào)用,同時為用戶提供一個較為人性化的操作界面,能夠提示用戶進行正確的操作,在輸入出錯后可以有出錯提示。具體流程圖如圖:</p><p> 圖 3-
12、1 主函數(shù)操作流程圖</p><p> 實現(xiàn)這部分功能是主要采用switch語句。首先用printf函數(shù)在運行界面上打出學(xué)籍管理系統(tǒng)和個功能模塊及其對應(yīng)的數(shù)字選項。然后輸入要進行的操作選項,利用switch語句進行判斷,而后進入到不同的功能函數(shù)中,進行不同的操作。當(dāng)然,要在進行完某一項操作要調(diào)用main函數(shù),方便用戶進行線下一項的操作</p><p> 3.2 圖書基本信息輸入<
13、;/p><p> 在定義變量時采用結(jié)構(gòu)體數(shù)據(jù)結(jié)構(gòu),圖書編號、儲存的數(shù)量是整型,圖書的價格在此定義為整型(本也可以定義為float型),圖書名稱、圖書的作者是字符型,采用字符型數(shù)組,但數(shù)組長度一定要足夠,否則會出現(xiàn)數(shù)據(jù)丟失錯誤,考慮到圖書名稱、作者的字符長度,在此定義它們的長度要足夠。將涉及到的圖書和對應(yīng)學(xué)生的基本信息定義為結(jié)構(gòu)體。</p><p> 在將圖書的基本信息輸入時,要將其保存為b
14、ook_list1.txt,用來存放所有輸入的圖書的信息。這時就涉及到文件的建立和寫入,選取較為簡單的fprintf函數(shù)作為寫入文件的函數(shù)。首先定義一個指向文件的指針,再定義一個整型變量,該整型變量count是人為輸入的,其目的是為了實現(xiàn)輸入書本數(shù)目的多少,利用循環(huán)輸入。在循環(huán)輸入之前通過指針打開建立一個文本文件,循環(huán)輸入時fprintf函數(shù)自動建立一個文本文件,實現(xiàn)向文件中寫入count組數(shù)據(jù)的功能。循環(huán)結(jié)束后文件中已經(jīng)寫入要輸入的信
15、息。流程圖如下;</p><p> 圖3-2 圖書信息輸入模塊操作流程圖</p><p><b> 3.3查詢模塊</b></p><p> 查詢模塊的基本思想比較簡單,就是在已輸入的文件信息中讀取出原文件信息。我設(shè)計的具體查詢方法和操作分為兩方面:一方面是通過圖書編號進行查詢,另一方面是通過書名進行查詢。</p><
16、;p> 第一方面,首先在查詢函數(shù)中定義文件指針,指向要打開的文件,利用fscanf函數(shù)讀取文件中信息,如果文件指針查到的圖書編號與用戶輸入的序號相同,就將該結(jié)構(gòu)體中的圖書的基本信息從文件中輸出,顯示在屏幕上,從而實現(xiàn)基本信息的查詢。</p><p> 第二方面,首先在查詢函數(shù)中定義文件指針,指向要打開的文件,利用fscanf函數(shù)讀取文件中信息,如果文件指針查到的圖書名稱的長度與用戶輸入的書名相同(利用s
17、trcmp比較字符串),就將該結(jié)構(gòu)體中的該圖書的基本信息從文件中輸出,顯示在屏幕上,從而實現(xiàn)基本信息的查詢。</p><p> 在查詢模塊成績查詢與基本信息查詢的流程一樣,應(yīng)此將二者作為一起。流程圖如下:</p><p> 圖3-3 圖書信息查詢模塊操作流程圖</p><p><b> 3.4 刪除模塊</b></p>&
18、lt;p> 刪除??斓幕舅枷刖褪呛竺娴男畔⒏采w前面的信息,后面的信息被0代替,從而實現(xiàn)刪除功能。具體實現(xiàn)方法就是選擇刪除功能,利用文件指針和fscanf函數(shù),將文件內(nèi)容讀出,顯示在屏幕上,讓用戶決定刪除哪一個學(xué)生的基本信息,然后輸入該學(xué)生的學(xué)號賦值給一個整型變量,利用for循環(huán)在文件中查找與該變量值相同的學(xué)生,找到之后將結(jié)構(gòu)體中一組空的信息(全為0)賦值給當(dāng)前結(jié)構(gòu)體,從而將該學(xué)生信息“刪除”。</p><p
19、> 同時要實現(xiàn)的是在存放成績的文件中也要該同學(xué)的成績信息刪除,原理相同,就是在找到該同學(xué)的信息之后,保留循環(huán)變量的值,再對成績文件里該同學(xué)的進行相同覆蓋操作,即可實現(xiàn)同時在B文件刪除信息。流程圖如下;</p><p> 圖3-4 刪除模塊操作流程圖</p><p> 3.5 辦理借書手續(xù)模塊</p><p> 辦理借書手續(xù)模塊的基本思想是將文件打開,
20、然后輸入并儲存對應(yīng)該圖書的學(xué)生的相關(guān)信息,同時,讓所存書本的數(shù)目減少借走的書的數(shù)目。在編寫函數(shù)時,首先要打開圖書存儲所在的文件,將圖書的信息讀回到結(jié)構(gòu)體中。然后輸入要借的圖書的序號,通過循環(huán)查找結(jié)構(gòu)體中圖書的編號,直到找到該圖書時,輸入該組對應(yīng)的學(xué)生的信息。并且輸入要借的書本的數(shù)目,此時,讓所存書本的數(shù)目減少借走的書的數(shù)目,之后將這一組信息全部儲存到文件里面,完成辦理借書手續(xù)。流程圖如下:</p><p> 圖
21、3-5 辦理借書手續(xù)操作流程圖</p><p> 3.6 辦理還書手續(xù)模塊</p><p> 辦理借書手續(xù)模塊的基本思想是將文件打開,改變并儲該文件的信息。在編寫函數(shù)時,首先要打開圖書存儲所在的文件,將圖書的信息讀回到結(jié)構(gòu)體中。然后輸入學(xué)生的學(xué)號,通過循環(huán)查找結(jié)構(gòu)體中對應(yīng)學(xué)生的學(xué)號,直到找到對應(yīng)該組圖書的信息時,輸入該組圖書和學(xué)生的所有信息,之后輸入要還的書本的數(shù)目,此時,讓所存書本
22、的數(shù)目增加還書的數(shù)目。如果存數(shù)等于總數(shù),則顯示完全儲存。之后將這結(jié)構(gòu)體信息全部存回到文件里面,完成辦理還書手續(xù)。流程圖如下:</p><p> 圖3-5 辦理還書手續(xù)操作流程圖</p><p> 以上就是各模塊的詳細設(shè)計,在主菜單中選擇調(diào)用各個模塊子的函數(shù),從而實現(xiàn)不同功能。</p><p><b> 四、測試結(jié)果分析</b></
23、p><p> 4.1 輸入圖書信息模塊效果</p><p> 存放文件的位置可以有自己指定,如在打開建立一個新文件時,指定存放到F://Csheji時,則要在此位置才能找到文件。此時,對應(yīng)學(xué)生的信息全部為0。其輸入信息與文件寫入文件的結(jié)果如下圖:</p><p> 圖 4-1 圖書信息輸入</p><p> 文件按內(nèi)容寫入如圖:<
24、/p><p> 圖 4-2 圖書信息儲存到文件</p><p> 4.2 查詢模塊效果示意</p><p><b> 基本信息查詢:</b></p><p> (1)按圖書序號查詢。過程及結(jié)果如圖4—3:(輸入圖書編號)</p><p> 圖 4-3 按圖書序號查詢結(jié)果</p>
25、;<p> ?。?)按圖書名稱查詢。過程及結(jié)果如圖4—4:(輸入圖書名稱)</p><p> 圖 4-4 按圖書名稱查詢結(jié)果</p><p> 4.3 刪除模塊效果圖</p><p> 圖 4-5 注銷圖書的操作過程</p><p><b> 文件中被刪除效果:</b></p>&
26、lt;p> 圖 4-6 圖書注銷的結(jié)果顯示</p><p> 4.4 借閱圖書模塊效果示意圖</p><p> 借閱過程和結(jié)果如圖:</p><p> 圖 4-7 借閱圖書的操作示意圖</p><p> 此時文件中的儲存效果:(注意第二組信息:所存書本數(shù)目減少了2本,并輸入了學(xué)生信息)</p><p&g
27、t; 圖 4-8 借閱圖書的操作結(jié)果示意圖</p><p> 4.5 歸還圖書模塊效果示意圖</p><p> 歸還過程和結(jié)果如圖:</p><p> 圖 4-9 歸還圖書的操作過程示意圖</p><p> 文件中保存的結(jié)果如圖:</p><p> 圖 4-8 歸還圖書的操作結(jié)果示意圖</p&g
28、t;<p><b> 五、總結(jié)</b></p><p><b> 5.1 優(yōu)缺點分析</b></p><p> 優(yōu)點分析:針對書本題目所設(shè)計的圖書管理系統(tǒng)基本上能完成題目規(guī)定的要求。整個系統(tǒng),結(jié)構(gòu)清晰,程序思維一目了然。其中查詢模塊,我還加入了兩種查詢功能(通過編號查詢,通過書名查詢)。各個模塊運行較好,并且并加入了模塊的完善
29、部分。比如輸入出錯,并且能從各個模塊回到主菜單進行下一步操作等。缺點:程序較為冗長,而且中間很多重復(fù)的部分因為時間原因未采用函數(shù)的調(diào)用,使得各個模塊中都有很多重復(fù)的部分,如回到主菜單等,造成了各個函數(shù)程序較長,未能精煉。</p><p> 5.2 心得體會與收獲</p><p> 個人心得體會:之前剛剛拿到題目的時候,我傻眼了。一方面,C語言課程去年上半年就結(jié)束了,而現(xiàn)在才開始課程設(shè)計
30、,感覺很多知識都已忘卻。第二方面,本身C語言基礎(chǔ)不是很好,而且面對如此龐大的系統(tǒng),我感到束手無策,無從下手。而且因為時間原因,前面的兩天都耽誤了很多。這個時候,我很著急。后來,我決定仔細分析題目,在自己腦海里構(gòu)造一個整個系統(tǒng)的框架和模塊。各個模塊分別可以怎樣實現(xiàn)。在遇到問題和知識點遺漏的時候,我決定回歸課本,仔細研讀和回憶學(xué)過的知識。在我把第一個模塊成功的編寫出來的時候,我興奮了!看著程序暢通的運行,我真的體會到了學(xué)習(xí)的快樂和成就感。但
31、是,之后我發(fā)現(xiàn),存入文件的全部是亂碼。我調(diào)試了好幾次都不行。后來我虛心向同學(xué)請教,才發(fā)現(xiàn)原來是文件的寫入有問題。后來經(jīng)過糾正,果然,信息能正確的儲存在文件里了。</p><p> 諸如這種遇到困難,然后不斷摸索和解決問題的過程,在實習(xí)的過程中還遇到了很多很多??傊诮?jīng)過無數(shù)次挑燈夜戰(zhàn)之后,程序和系統(tǒng)能正確運行了!那種苦盡甘來,客服磨難,到達成功的彼岸的感覺,真的是太深刻,太讓我銘記了。</p>
32、<p> 同時,我在編程時收獲很多,學(xué)會了如何將信息寫入到文件里,如何將文件里的內(nèi)容讀出來,學(xué)會了如何使用結(jié)構(gòu)體變量,學(xué)會了調(diào)用函數(shù),學(xué)會了用簡單的算法得到想要的數(shù)據(jù),最重要的是對整個C語言有了一個良好的把握和正確的理解。這些,在別人眼里也許是微不足道的,但我卻覺得受益匪淺。我甚至覺得此次課程設(shè)計實習(xí)所收獲到的東西,甚至比一個學(xué)期的課堂學(xué)習(xí)都多,也可以說經(jīng)過這次的課程設(shè)計的實習(xí),我自己也成長了很多。這些微小的成績,都來自我的
33、刻苦努力,還有老師和同學(xué)們的熱心幫助。我還要真心的感謝給我?guī)椭睦蠋熀屯瑢W(xué)!</p><p><b> 六、參考文獻</b></p><p> ?。郏保葑T浩強《C程序設(shè)計》 第三版 清華大學(xué)出版社 2005</p><p> ?。郏玻輳埗返取禖語言課程設(shè)計與實習(xí)指導(dǎo)》 第一版 中國鐵道出版社 2008</p><p&
34、gt;<b> 七、附錄</b></p><p><b> 1、變量定義:</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<conio.h><
35、/p><p> #include <string.h></p><p><b> int get()</b></p><p><b> {</b></p><p><b> int o;</b></p><p> scanf("
36、;%d",&o);</p><p><b> return o;</b></p><p><b> }</b></p><p> struct BOOK /*用結(jié)構(gòu)體存放書籍及借書和借閱人的信息。*/ </p><p><b> {<
37、/b></p><p><b> int num;</b></p><p> int price;</p><p> char aurthor[21];</p><p> int total;</p><p> int store;</p><p> in
38、t xuehao;</p><p> char name[31];</p><p> char sex[8];</p><p> char borrow_name[20];</p><p> }books[4];</p><p> void page_title(char*menu_item)</p&g
39、t;<p><b> {</b></p><p> printf(" 圖書管理系統(tǒng) \n-%s-\n",menu_item);</p><p><b> }</b></p><p><b> 2、主函數(shù):</b></
40、p><p> void main()</p><p><b> { </b></p><p><b> while(1)</b></p><p><b> {</b></p><p> void book_add();</p><
41、;p> void search_of_book();</p><p> void book_del();</p><p> void book_out();</p><p> void book_in();</p><p> printf(" /*************系統(tǒng)菜單*******
42、******/\n\n");</p><p> printf("\n 請用數(shù)字選擇操作 \n\n");</p><p> printf(" /********* 1,注冊新圖書 ***********/\n");</p>
43、<p> printf(" /********* 2,查詢圖書 ***********/\n");</p><p> printf(" /********* 3,注銷舊書 ***********/\n");</p><p> printf("
44、 /********* 4,借閱圖書 ************/\n");</p><p> printf(" /********* 5,歸還圖書 ***********/\n");</p><p> printf("\n /********* 0,退
45、 出 ***********/\n");</p><p> switch(get())</p><p><b> { </b></p><p> case 1: book_add();break;</p><p> case 2: search_of_book();break;<
46、/p><p> case 3: book_del();break;</p><p> case 4: book_out();break;</p><p> case 5: book_in();break;</p><p> default : exit(0);</p><p><b> }</b&
47、gt;</p><p><b> return;</b></p><p><b> }</b></p><p><b> }</b></p><p> 3、圖書基本信息輸入函數(shù):</p><p> void book_add()
48、 /*新圖書基本信息的輸入*/</p><p><b> {</b></p><p> int n,count,i;</p><p><b> FILE *fp;</b></p><p> page_title("/************** 注冊新圖書 ****
49、**********/");</p><p> if((fp=fopen("book_list1.txt","a+"))==NULL)</p><p> {printf("cannot open the file\n");</p><p><b> }</b></
50、p><p> printf("您需要注冊幾本書:");</p><p> scanf("%d",&count);</p><p> printf("請按如下順序輸入圖書信息:序號 書名 單價 作者 數(shù)量 學(xué)生姓名 性別 學(xué)號\n");</p><p> fo
51、r(n=0;n<count;n++)</p><p><b> {</b></p><p> scanf("%d %s %d %s %d %s %s %d\n",&books[n].num,books[n].name,&books[n].price,books[n].aurthor,&books[n]
52、.total,books[n].borrow_name,books[n].sex,&books[n].xuehao);</p><p> books[n].store=books[n].total;</p><p> fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n]
53、.name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow_name,books[n].sex,books[n].xuehao);</p><p><b> }</b></p><p> fclose(fp);</p><p> p
54、rintf("1,返回主菜單 2,退出\n");</p><p> scanf("%d",&i);</p><p><b> switch(i)</b></p><p><b> {</b></p><p> case 1:main();b
55、reak;</p><p> default: exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> 4、新圖書基本信息的查找函數(shù):</p><p> void search_of_book()
56、 /*新圖書基本信息的查找*/</p><p><b> {</b></p><p> int n=0,a,m,i,j=0;</p><p><b> FILE *fp;</b></p><p> char b[10];</p><p> page_title(
57、"/************** 查詢圖書信息 **************/");</p><p> printf("\n1.按圖書序號查詢,2.按圖書名稱查詢.\n");</p><p> printf(" 請用數(shù)字選擇操作--> \n\n&quo
58、t;);</p><p> scanf("%d",&a);</p><p> if(a==1) //按圖書序號查詢</p><p><b> {</b></p><p> printf("請輸入圖書序號:\n");</p>
59、<p> scanf("%d",&i);</p><p> if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\nCannot open
60、book_list1!\n");</p><p><b> }</b></p><p> for(;!feof(fp);)</p><p><b> {</b></p><p> fscanf(fp,"%d %s %d %s %d %d %s %s %d\
61、n",&books[n].num,books[n].name,&books[n].price,books[n].aurthor,&books[n].total,&books[n].store,books[n].borrow_name,books[n].sex,&books[n].xuehao);</p><p><b> n++;</b>&
62、lt;/p><p><b> }</b></p><p> for(n=0;n<4;n++)</p><p><b> {</b></p><p> if(books[n].num==i)</p><p><b> {</b></p&
63、gt;<p> printf("書名:%s\n",books[n].name);</p><p> printf("圖書編號:%d\n",books[n].num);</p><p> printf("單價:%d 元\n",books[n].price);</p><p> print
64、f("作者:%s\n",books[n].aurthor);</p><p> printf("現(xiàn)存:%d 本\n",books[n].store);</p><p> printf("總數(shù):%d 本\n",books[n].total);</p><p><b> break;</b
65、></p><p><b> }</b></p><p> else printf("there is no record!!!\n");</p><p><b> }</b></p><p><b> }</b></p>&l
66、t;p> else if(a==2) //按圖書名稱查詢</p><p><b> {</b></p><p> printf("\n請輸入您要查詢的書名:");</p><p> scanf("%s",&b);</p><p> if((fp=fop
67、en("book_list1.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\nCannot open book_list1!\n");</p><p><b> }</b></p>
68、<p> for(;!feof(fp);)</p><p><b> {</b></p><p> fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurtho
69、r,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p><b> j++;</b></p><p><b> }</b></p><p> for(j=0;j&
70、lt;4;j++)</p><p> if(strcmp(books[j].name,b)==0)</p><p><b> {</b></p><p> printf("書名:%s\n",books[j].name); </p><p> printf("圖書編號:%d\n&
71、quot;,books[j].num);</p><p> printf("單價:%d 元\n",books[j].price);</p><p> printf("作者:%s\n",books[j].aurthor );</p><p> printf("現(xiàn)存:%d 本\n",books[j].st
72、ore );</p><p> printf("總數(shù):%d 本\n",books[j].total);</p><p><b> }</b></p><p><b> }</b></p><p><b> else </b></p>&
73、lt;p><b> {</b></p><p> printf("\n輸入錯誤(無效圖書序號或圖書名)!\n");</p><p><b> exit(0);</b></p><p><b> }</b></p><p> fclose(fp
74、);</p><p> printf("1,返回主菜單 2,退出");</p><p> scanf("%d",&m);</p><p><b> switch(m)</b></p><p><b> {</b></p>&l
75、t;p> case 1:main();break;</p><p> default: exit(0);</p><p><b> }</b></p><p><b> }</b></p><p> 5、舊書的注銷函數(shù):</p><p> void book
76、_del()</p><p><b> {</b></p><p> int n,m,a,j=0;</p><p><b> FILE *fp;</b></p><p> page_title("/************** 注銷圖書信息 **************
77、/");</p><p> printf("請輸入您要注銷的圖書序號:(<4)\n");</p><p> scanf("%d",&a);</p><p> if((fp=fopen("book_list1.txt","r"))==NULL)</p&g
78、t;<p><b> {</b></p><p> printf("\nCannot open book_list1!\n");</p><p><b> }</b></p><p> for(;!feof(fp);)</p><p><b>
79、{</b></p><p> fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_na
80、me,books[j].sex,&books[j].xuehao);</p><p> if(books[j].num==a)</p><p><b> {</b></p><p> printf("您要注銷的舊書的信息:圖書編號 書名 價格 作者 總數(shù) 現(xiàn)存 借閱者姓名 性別 學(xué)號\n");
81、</p><p> printf("%d %s %d %s %d %d %s %s %d\n",books[j].num,books[j].name,books[j].price,books[j].aurthor,books[j].total,books[j].store,books[j].borrow_name,books[j].sex,books[j].xuehao);&
82、lt;/p><p> books[j]=books[4];</p><p><b> }</b></p><p><b> j++;</b></p><p><b> }</b></p><p> for(n=0;n<4;n++)</p
83、><p> {fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow_name,books[n].sex,books[n].xuehao);&l
84、t;/p><p><b> }</b></p><p> fclose(fp);</p><p> printf("圖書已成功注銷!!\n");</p><p> printf("\n1,返回主菜單 2,退出");</p><p> scanf(&
85、quot;%d",&m);</p><p><b> switch(m)</b></p><p><b> {</b></p><p> case 1:main();break;</p><p> default: exit(0);</p><p>
86、<b> }</b></p><p><b> }</b></p><p> 6、辦理借閱手續(xù)的函數(shù):</p><p> void book_out() /*借書函數(shù),首先要找書*/ </p><p><b> {</b></p><
87、p> int n=0,m,k,x,j=0,a=0;</p><p><b> FILE *fp;</b></p><p> page_title("/************** 借閱圖書 **************/");</p><p> printf("請輸入您想借的圖書的序號:&
88、quot;);</p><p> scanf("%d",&x);</p><p> if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b> {</b></p><p> printf(&qu
89、ot;\nCannot open book_list1!\n");</p><p><b> }</b></p><p> for(;!feof(fp);)</p><p><b> {</b></p><p> fscanf(fp,"%d %s %d %s %d
90、 %d %s %s %d\n",&books[j].num,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p><b>
91、 j++;</b></p><p><b> }</b></p><p><b> do{</b></p><p> if((books[n].num==x) && books[n].store >0)</p><p><b> {</b&
92、gt;</p><p> printf("請按如下順序輸入您的信息:姓名 性別 學(xué)號 想借幾本書(<= %d 本)\n",books[n].store);</p><p> scanf("%s%s%d%d",books[n].borrow_name,books[n].sex,&books[n].xuehao,&k);&
93、lt;/p><p> printf("本書現(xiàn)存: %d 本\n",books[n].store);</p><p> books[n].store=books[n].store-k;</p><p> printf("本書還有: %d 本\n",books[n].store);</p><p> p
94、rintf("借閱成功??!\n");</p><p><b> a=1;</b></p><p><b> }</b></p><p><b> n++;</b></p><p> if(n==4) { a=2; break;}</p>
95、<p> //else if(a==0) printf("此書已借完或輸入錯誤(本館沒有您想要的書)。\n");</p><p> }while(a==0);</p><p> if(a==2) printf("此書已借完或輸入錯誤(本館沒有您想要的書)。\n");</p><p> fclose(fp);
96、</p><p> if((fp=fopen("book_list1.txt","w+"))==NULL) //重新寫入并替換文件</p><p> {printf("cannot open the file\n");</p><p><b> }</b></p>
97、<p> for(n=0;n<4;n++)</p><p> {fprintf(fp,"%d %s %d %s %d %d %s %s %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store,books[n].borrow
98、_name,books[n].sex,books[n].xuehao);</p><p><b> }</b></p><p> fclose(fp);</p><p> printf("1,返回主菜單 2,退出");</p><p> scanf("%d",&
99、m);</p><p><b> switch(m)</b></p><p><b> {</b></p><p> case 1:main();break;</p><p> default: exit(0);</p><p><b> }</b&
100、gt;</p><p><b> }</b></p><p> 7、辦理還書手續(xù)的函數(shù):</p><p> void book_in() /*還書函數(shù)*/</p><p><b> {</b></p><p> int n,a,b,m,j=0;</p&g
101、t;<p><b> FILE *fp;</b></p><p> page_title("/************** 還圖書 **************/");</p><p> printf("輸入您的學(xué)號:\n");</p><p> scanf("
102、%d",&a);</p><p> if((fp=fopen("book_list1.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\nCannot open book_list1!\n");<
103、/p><p><b> }</b></p><p> for(;!feof(fp);)</p><p><b> {</b></p><p> fscanf(fp,"%d %s %d %s %d %d %s %s %d\n",&books[j].num
104、,books[j].name,&books[j].price,books[j].aurthor,&books[j].total,&books[j].store,books[j].borrow_name,books[j].sex,&books[j].xuehao);</p><p> if(books[j].xuehao==a)</p><p><b&
105、gt; {</b></p><p> printf("您的信息:\n");</p><p> printf("姓名:%s\n",books[j].borrow_name);</p><p> printf("性別:%s\n",books[j].sex);</p><p
106、> printf("學(xué)號:%d\n",books[j].xuehao);</p><p> printf("\n您的相關(guān)借閱信息:\n");</p><p> printf("書名:%s\n",books[j].name);</p><p> printf("作者:%s\n"
107、;,books[j].aurthor);</p><p> printf("本書現(xiàn)存:%d\n",books[j].store);</p><p> printf("\n您還幾本書:\n");</p><p> scanf("%d",&b);</p><p> boo
108、ks[j].store=books[j].store+b;</p><p> printf("還書成功。\n\n");</p><p><b> }</b></p><p><b> }</b></p><p> fclose(fp);</p><p&
109、gt; if((fp=fopen("book_list001.txt","w+"))==NULL) //重新寫入并替換文件</p><p> {printf("cannot open the file\n");</p><p><b> }</b></p><p> for
110、(n=0;n<4;n++)</p><p> {fprintf(fp,"%d %s %d %s %d %d\n",books[n].num,books[n].name,books[n].price,books[n].aurthor,books[n].total,books[n].store);</p><p><b> }</b>
111、;</p><p> fclose(fp);</p><p> printf("1,返回主菜單 2,退出");</p><p> scanf("%d",&m);</p><p><b> switch(m)</b></p><p><
溫馨提示
- 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c++課程設(shè)計--圖書管理系統(tǒng)
- 圖書管理系統(tǒng)c++課程設(shè)計
- c語言課程設(shè)計--圖書管理系統(tǒng)
- c++圖書管理系統(tǒng)課程設(shè)計
- c++圖書管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計--圖書管理系統(tǒng)
- c課程設(shè)計報告-- 圖書管理系統(tǒng)
- c語言課程設(shè)計(圖書管理系統(tǒng))
- c#-圖書管理系統(tǒng)-課程設(shè)計
- c++圖書管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計-圖書管理系統(tǒng)
- c語言課程設(shè)計---圖書管理系統(tǒng)
- 課程設(shè)計---課程設(shè)計圖書管理系統(tǒng)
- c語言課程設(shè)計--圖書管理
- 《圖書管理系統(tǒng)》課程設(shè)計
- c語言課程設(shè)計報告~圖書管理系統(tǒng)
- 圖書管理系統(tǒng)課程設(shè)計
- 圖書管理系統(tǒng)課程設(shè)計
- 圖書管理系統(tǒng)課程設(shè)計
- 課程設(shè)計---圖書管理系統(tǒng)
評論
0/150
提交評論