

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 軟件設計報告</b></p><p> 題 目:圖 書 館 管 理 系 統(tǒng)</p><p><b> 三、需求分析</b></p><p> 可以實現圖書館圖書數據的錄入,保存,瀏覽,查找,添加,刪除,修改排序,使圖書信息一目了然。</p><p><b&
2、gt; 三、課程設計目的</b></p><p> 加深對C語言課程所學知識的理解,進一步鞏固C語言語法規(guī)則。學會編制結構清晰、風格良好、數據結構適當的C語言程序,從而具備解決綜合性實際問題的能力,使學生通過系統(tǒng)分析、系統(tǒng)設計、編程調試、,寫實驗報告等環(huán)節(jié),初步掌握軟件系統(tǒng)設計的方法和步驟,訓練靈活運用程序設計語言進行軟件開發(fā)的能力,提高分析問題和解決問題的能力,提高程序設計水平,培養(yǎng)必要的工程實
3、踐動手能力。</p><p><b> 四、程序內容</b></p><p> 數據的錄入 數據存儲、數據讀寫 數據添加</p><p> 數據刪除 數據查詢 數據修改 </p><p&
4、gt; 數據排序 數據打印</p><p> 五、詳細設計及運行結果</p><p><b> 功能模塊的說明</b></p><p> 輸入信息模塊:函數名為input,分為三個小的模塊,即在程序目錄下創(chuàng)建文件保存數據。</p><p> ②瀏覽模塊:函數名為scan,分別打印
5、出輸入的:圖書號,圖書名,作者,出版社,出版時間,價格。</p><p> ?、鄄樵兡K:函數名為search,分為兩個小的模塊,即分別以圖書號(search_num)或圖書名(search_name)查詢。</p><p> ?、芴砑有畔⒛K:函數名為add,讀出信息,讀入結構體,插入信息后,覆蓋寫入源文件。</p><p> ⑤刪除細細模塊:函數名為del,打
6、開文件讀出信息至結構體后,先查詢并確認,然后跳過該信息覆蓋寫入源文件。</p><p> ?、扌薷男畔⒛K:函數名為change,通過strcmp(number,library.book[i].number)檢索出要修改的圖書號,通過scanf分別輸入各成員的值,在通過strcpy將各值覆蓋到原成員的值上,就完成了修改。</p><p> ?、?排序模塊:函數名為sort,通過比較pric
7、e的大小排序,用for循環(huán)將小的放在前面。</p><p> ?、?main函數:調用以上各功能模塊,實現程序功能。</p><p> 六、調試情況,設計技巧及體會</p><p> ?、僬{試情況:經過若干次調試,程序已基本達到設計功能要求。</p><p> ?、谠O計技巧:通過數組及字符串的比較實現函數功能。</p><
8、;p> ?、坌牡皿w會:通過這次課程設計,我對C語言有了更深刻的了解,增強了程序的編寫能力,鞏固了專業(yè)知識,對程序的模塊化觀念也又模糊逐漸變的清晰了。在程序的運行與調試過程中出現了很多錯誤,通過反復地復習課本上的相關知識,不停地修改與調試,我終于完成了這段程序。在調試過程中,我認識到了C語言的靈活性與嚴謹性,同一個功能可以由不同的語句來實現,但編寫程序時要特別注意細節(jié)方面的問題,因為一個小小的疏忽就能導致整個程序不能運行。當然我也認
9、識到了自己的薄弱之處,如對鏈表相關知識的欠缺,文件運用的不熟練,在以后的學習中我要集中精力,爭取把知識學得更扎實、更全面。</p><p> ④不足及改進:沒有用到指針及鏈表,是本程序最大的不足,程序也存在其他缺點,比如排序是不能按字符進行排序,是功能有局限性;使用數組使程序結構簡單,可用性不強。以后應對程序進行改進,比如部分功能用鏈表實現,改進排序方案等。</p><p><b&
10、gt; 八、附錄:源代碼</b></p><p> #include<stdio.h></p><p> #include<stdlib.h></p><p> #include<string.h></p><p> typedef struct </p><p&g
11、t;<b> {</b></p><p> char number[10]; /*圖書號*/</p><p> char name[20]; /*書名*/</p><p> char writer[20]; /*作者*/</p><p> char pu
12、blish[50]; /*出版社*/</p><p> char time[20]; /*出版時間*/</p><p> float price; /*價格*/</p><p> }mbook; /*圖書類型標識符*/</p><p&
13、gt; typedef struct </p><p><b> {</b></p><p> int count; /*數量統(tǒng)計*/</p><p> mbook book[100]; </p><p> }mlibrary;
14、 </p><p> mlibrary library;</p><p> void save()</p><p><b> {</b></p><p><b> FILE *fp;</b></p><p> if((fp=fopen("library.
15、txt","w"))==NULL)</p><p><b> {</b></p><p> printf("\n不能保存圖書信息\n");</p><p><b> return;</b></p><p><b> }</b&
16、gt;</p><p> fwrite(&library.count,sizeof(int),1,fp);</p><p> fwrite(library.book,sizeof(library.book[0]),library.count,fp);</p><p><b> }</b></p><p>
17、 void input() /*輸入模塊*/</p><p><b> { </b></p><p><b> int y=1;</b></p><p> system("cls");</p><p><b> while(y)
18、</b></p><p><b> { </b></p><p> printf("\t請輸入您的書籍的書號:");</p><p> scanf("%s",library.book[library.count].number);</p><p> printf
19、("\t請輸入書名:");</p><p> scanf("%s",library.book[library.count].name);</p><p> printf("\t請輸入作者名:");</p><p> scanf("%s",library.book[library.c
20、ount].writer);</p><p> printf("\t請輸入出版社:");</p><p> scanf("%s",library.book[library.count].publish);</p><p> printf("\t請輸入出版時間:");</p><p&
21、gt; scanf("%s",library.book[library.count].time);</p><p> printf("\t請輸入該書的價格:");</p><p> fflush(stdin);</p><p> scanf("%f",&library.book[librar
22、y.count].price);</p><p> library.count++;</p><p> printf("\n是否繼續(xù)錄入(1.繼續(xù);0,退出錄入):");</p><p> fflush(stdin);</p><p> scanf("%d",&y);</p>
23、<p><b> if (y!=1)</b></p><p><b> {</b></p><p><b> y=0;</b></p><p><b> break;</b></p><p><b> }</b>
24、;</p><p><b> }</b></p><p><b> save();</b></p><p><b> }</b></p><p> void scan() /*輸出模塊*/</p><p>
25、<b> {</b></p><p><b> int i;</b></p><p> system("cls");</p><p> printf("圖書號\t圖書名\t作者名\t出版社\t出版日期\t圖書價格\n");</p><p> for
26、(i=0;i<library.count;i++)</p><p><b> {</b></p><p> printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].writer,library.book
27、[i].publish,library.book[i].time,library.book[i].price);</p><p><b> }</b></p><p> fflush(stdin);</p><p> getchar();</p><p><b> }</b></p&g
28、t;<p> void search() /*查詢模塊*/</p><p><b> { </b></p><p><b> int a;</b></p><p> system("cls"); </p><p>
29、; printf("\t\t****************************\n");</p><p> printf("\t\t請輸入查詢方式\n");</p><p> printf("\t\t1------------按書名查詢\n");</p><p> printf("\
30、t\t2------------按書號查詢\n");</p><p> printf("\t\t0------------退出\n");</p><p> printf("\t\t****************************\n");</p><p> scanf("%d",&a
31、mp;a);</p><p><b> switch(a)</b></p><p><b> {</b></p><p><b> case 1:</b></p><p> search_name();</p><p> break;
32、 </p><p><b> case 2:</b></p><p> search_num();</p><p><b> break;</b></p><p><b> case 0:</b></p><p><b> retur
33、n;</b></p><p><b> }</b></p><p><b> }</b></p><p> int add() /*添加模塊*/</p><p><b> {</b></p><p
34、> int sum=0;</p><p><b> char a;</b></p><p> while(a=='y'||a=='Y')</p><p><b> {</b></p><p> printf("要添加本新書嗎?y/n\n&qu
35、ot;);</p><p> scanf("%c",&a);</p><p> if(a=='n'||a=='N')</p><p><b> break;</b></p><p><b> else </b></p>
36、<p> if(a=='y'||a=='Y')</p><p><b> {</b></p><p> library.count++;</p><p><b> }</b></p><p><b> else</b><
37、;/p><p> printf("\n輸入不正確,請重新輸入\n");</p><p><b> }</b></p><p> printf("\n新書信息:\n");</p><p><b> scan();</b></p><p&g
38、t;<b> input();</b></p><p> return sum; </p><p><b> } </b></p><p> void del() /*刪除模塊*/</p><p><b> { </
39、b></p><p><b> int i;</b></p><p> char number[10];</p><p> system("cls"); </p><p> printf("\n請輸入要刪除的圖書號:");</p><p>
40、fflush(stdin);</p><p> scanf("%s",number);</p><p> for (i=0;i<library.count;i++)</p><p><b> {</b></p><p> if(strcmp(number,library.book[i].
41、number)==0)</p><p><b> break;</b></p><p><b> }</b></p><p> if (i!=library.count)</p><p><b> {</b></p><p> for(;i&
42、lt;library.count-1;i++)</p><p><b> {</b></p><p> strcpy(library.book[i].name,library.book[i+1].name);</p><p> strcpy(library.book[i].number,library.book[i+1].number);
43、</p><p> strcpy(library.book[i].publish,library.book[i+1].publish);</p><p> strcpy(library.book[i].writer,library.book[i+1].writer);</p><p> strcpy(library.book[i].time,library.b
44、ook[i+1].time);</p><p> library.book[i].price=library.book[i+1].price;</p><p><b> }</b></p><p> library.count--;</p><p><b> }</b></p>
45、<p><b> else</b></p><p> printf("\n cannot found!\n");</p><p><b> save();</b></p><p> fflush(stdin);</p><p> getchar();<
46、/p><p><b> }</b></p><p> void change() /*修改模塊*/</p><p><b> {</b></p><p><b> int i;</b></p><p>
47、 char number[10];</p><p> system("cls");</p><p> printf("\n請輸入要修改的圖書號:");</p><p> fflush(stdin);</p><p> scanf("%s",number);</p>
48、<p> for (i=0;i<library.count;i++)</p><p><b> {</b></p><p> if(strcmp(number,library.book[i].number)==0)</p><p><b> {</b></p><p>
49、 printf("圖書號\t圖書名\t作者名\t出版社\t出版日期\t圖書價格\n");</p><p> printf("%s\t%s\t%s\t%s\t%s\t%6.2f\n",library.book[i].number,library.book[i].name,library.book[i].writer,library.book[i].publish,libra
50、ry.book[i].time,library.book[i].price);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> if (i!=library.count)<
51、;/p><p><b> {</b></p><p> mbook book;</p><p> printf("\n\t\t請輸入修改后此圖書的信息\n");</p><p> printf("\t請輸入圖書號:");</p><p> scanf(
52、"%s",book.number);</p><p> printf("\t請輸入圖書名:");</p><p> scanf("%s",book.name);</p><p> printf("\t請輸入作者名:");</p><p> scanf(&q
53、uot;%s",book.writer);</p><p> printf("\t請輸入出版社:");</p><p> scanf("%s",book.publish);</p><p> printf("\t請輸入出版時間:");</p><p> scanf(
54、"%s",book.time);</p><p> printf("\t請輸入該書的價格:");</p><p> fflush(stdin);</p><p> scanf("%f",&book.price);</p><p> strcpy(library.boo
55、k[i].name,book.name);</p><p> strcpy(library.book[i].number,book.number);</p><p> strcpy(library.book[i].publish,book.publish);</p><p> strcpy(library.book[i].writer,book.writer)
56、;</p><p> strcpy(library.book[i].time,book.time);</p><p> library.book[i].price=book.price;</p><p><b> save();</b></p><p><b> }</b></p>
57、;<p><b> else</b></p><p> printf("\n cannot found!\n");</p><p> fflush(stdin);</p><p> getchar();</p><p><b> }</b></p&g
58、t;<p> void sort() /*排序模塊*/</p><p><b> {</b></p><p><b> mbook t;</b></p><p> int i,j,k;</p><p> printf(&q
59、uot;\n 圖書排行\(zhòng)n");</p><p> printf("圖書號\t圖書名\t作者名\t出版社\t出版日期\t圖書價格\n");</p><p> for(i=0;i<library.count;i++)</p><p><b> {<
60、/b></p><p><b> k=i;</b></p><p> for(j=i+1;j<library.count;j++)</p><p> if(library.book[i].price>library.book[j].price) k=j;</p><p><b> if
61、(k!=i)</b></p><p><b> {</b></p><p> t=library.book[i];</p><p> library.book[i]=library.book[k];</p><p> library.book[k]=t;</p><p><
62、;b> }</b></p><p><b> }</b></p><p><b> scan();</b></p><p><b> }</b></p><p> void password() /*密碼
63、*/</p><p><b> {</b></p><p> char a[10];</p><p><b> int i;</b></p><p> printf("\t\t\t****************************\n");</p>&
64、lt;p> printf("\t\t\t \n");</p><p> printf("\t\t\t\t請輸入密碼\n");</p><p> printf("\t\t\t \n");</p>&l
65、t;p> printf("\t\t\t****************************\n");</p><p> printf("\t\t\t\t輸入(學號):");</p><p> while(i<=3)</p><p><b> {</b></p><
66、;p> scanf("%s",a);</p><p> if(strcmp(a,"05091043")==0)</p><p><b> { </b></p><p> printf("\t\t\t密碼正確\n");</p><p><b&g
67、t; break;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\t\t\t密碼錯誤,請重新輸入:");</p><p><b> i++;</b><
68、/p><p><b> }</b></p><p><b> }</b></p><p> void main()</p><p><b> {</b></p><p><b> int a;</b></p>&
69、lt;p><b> FILE *fp;</b></p><p> if((fp=fopen("library.txt","r"))==NULL)</p><p><b> {</b></p><p> printf("\n不能打開圖書信息庫\n");
70、</p><p> fp=fopen("library.txt","w+");</p><p> library.count=0;</p><p> fwrite(&library.count,sizeof(int),1,fp);</p><p> fclose(fp);</p&g
71、t;<p><b> return;</b></p><p><b> }</b></p><p> fread(&library.count,sizeof(int),1,fp);</p><p> fread(library.book,sizeof(library.book[0]),libr
72、ary.count,fp);</p><p> fclose(fp);</p><p> password();</p><p><b> do</b></p><p><b> {</b></p><p> printf("\t\t■■■■■■■■■■■
73、■■■■■■■■■■■■■■\n");</p><p> printf("\t\t┏━━━━━━━━━━━━━━━━━━━━━━━┓\n");</p><p> printf("\t\t┃ 圖書管理系統(tǒng) ┃\n");</p><p> printf
74、("\t\t┃ ┃\n");</p><p> printf("\t\t┃-----------------1:輸入圖書信息---------------┃\n");</p><p> printf("\t\t┃
75、 ┃\n");</p><p> printf("\t\t┃-----------------2:查看圖書信息---------------┃\n");</p><p> printf("\t\t┃ ┃\
76、n");</p><p> printf("\t\t┃-----------------3:查找圖書-------------------┃\n");</p><p> printf("\t\t┃ ┃\n");</p><p&g
77、t; printf("\t\t┃-----------------4:刪除圖書信息---------------┃\n");</p><p> printf("\t\t┃ ┃\n");</p><p> printf("\t\t┃--------
78、---------5:添加圖書信息---------------┃\n");</p><p> printf("\t\t┃ ┃\n");</p><p> printf("\t\t┃-----------------6:修改圖書信息-------------
79、--┃\n");</p><p> printf("\t\t┃ ┃\n");</p><p> printf("\t\t┃-----------------7:圖書排序-------------------┃\n");</p><
80、;p> printf("\t\t┃ ┃\n");</p><p> printf("\t\t┃-----------------0:退出圖書信息系統(tǒng)-----------┃\n");</p><p> printf("\t\t┃
81、 ┃\n");</p><p> printf("\t\t┗━━━━━━━━━━━━━━━━━━━━━━━┛\n");</p><p> printf("\t\t■■■■■■■■■■■■■■■■■■■■■■■■■\n");</p><p&g
82、t; fflush(stdin);</p><p> scanf("%d",&a);</p><p><b> switch(a)</b></p><p><b> {</b></p><p><b> case 1:</b></p&
83、gt;<p><b> input();</b></p><p><b> break;</b></p><p><b> case 2:</b></p><p><b> scan();</b></p><p><b>
84、 break;</b></p><p><b> case 3:</b></p><p><b> search();</b></p><p><b> break;</b></p><p><b> case 4:</b></p
85、><p><b> del();</b></p><p><b> break;</b></p><p><b> case 5:</b></p><p><b> add();</b></p><p><b> b
86、reak;</b></p><p><b> case 6:</b></p><p><b> change();</b></p><p><b> break;</b></p><p><b> case 7:</b></p&g
87、t;<p><b> sort();</b></p><p><b> break;</b></p><p><b> case 0:</b></p><p> printf("\n\n退出\n\n");</p><p><b&g
88、t; break;</b></p><p><b> default:</b></p><p> printf("\n序號不對\n");</p><p><b> }</b></p><p> }while(a!=0);</p><p&g
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設計--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計
- c語言圖書館管理系統(tǒng)課程設計---高校圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計報告
- 圖書館管理信息------系統(tǒng)課程設計
- jsp課程設計《圖書館管理系統(tǒng)》
- sqlserver課程設計——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計報告
- 軟件課程設計--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設計報告
- vfp圖書館管理系統(tǒng)課程設計
- java課程設計----圖書館管理系統(tǒng)
- 圖書館系統(tǒng)課程設計
- javaweb課程設計——圖書館管理系統(tǒng)
- java課程設計——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)mis課程設計
- 課程設計報告---圖書館管理系統(tǒng)
- 圖書館書籍管理系統(tǒng)課程設計
- java圖書館管理系統(tǒng)課程設計
- 圖書館管理系統(tǒng)_pb課程設計報告
評論
0/150
提交評論