

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 軟件設(shè)計報告</b></p><p> 題 目:圖 書 館 管 理 系 統(tǒng)</p><p><b> 三、需求分析</b></p><p> 可以實(shí)現(xiàn)圖書館圖書數(shù)據(jù)的錄入,保存,瀏覽,查找,添加,刪除,修改排序,使圖書信息一目了然。</p><p><b&
2、gt; 三、課程設(shè)計目的</b></p><p> 加深對C語言課程所學(xué)知識的理解,進(jìn)一步鞏固C語言語法規(guī)則。學(xué)會編制結(jié)構(gòu)清晰、風(fēng)格良好、數(shù)據(jù)結(jié)構(gòu)適當(dāng)?shù)腃語言程序,從而具備解決綜合性實(shí)際問題的能力,使學(xué)生通過系統(tǒng)分析、系統(tǒng)設(shè)計、編程調(diào)試、,寫實(shí)驗報告等環(huán)節(jié),初步掌握軟件系統(tǒng)設(shè)計的方法和步驟,訓(xùn)練靈活運(yùn)用程序設(shè)計語言進(jìn)行軟件開發(fā)的能力,提高分析問題和解決問題的能力,提高程序設(shè)計水平,培養(yǎng)必要的工程實(shí)
3、踐動手能力。</p><p><b> 四、程序內(nèi)容</b></p><p> 數(shù)據(jù)的錄入 數(shù)據(jù)存儲、數(shù)據(jù)讀寫 數(shù)據(jù)添加</p><p> 數(shù)據(jù)刪除 數(shù)據(jù)查詢 數(shù)據(jù)修改 </p><p&
4、gt; 數(shù)據(jù)排序 數(shù)據(jù)打印</p><p> 五、詳細(xì)設(shè)計及運(yùn)行結(jié)果</p><p><b> 功能模塊的說明</b></p><p> 輸入信息模塊:函數(shù)名為input,分為三個小的模塊,即在程序目錄下創(chuàng)建文件保存數(shù)據(jù)。</p><p> ?、跒g覽模塊:函數(shù)名為scan,分別打印
5、出輸入的:圖書號,圖書名,作者,出版社,出版時間,價格。</p><p> ?、鄄樵兡K:函數(shù)名為search,分為兩個小的模塊,即分別以圖書號(search_num)或圖書名(search_name)查詢。</p><p> ?、芴砑有畔⒛K:函數(shù)名為add,讀出信息,讀入結(jié)構(gòu)體,插入信息后,覆蓋寫入源文件。</p><p> ?、輨h除細(xì)細(xì)模塊:函數(shù)名為del,打
6、開文件讀出信息至結(jié)構(gòu)體后,先查詢并確認(rèn),然后跳過該信息覆蓋寫入源文件。</p><p> ?、扌薷男畔⒛K:函數(shù)名為change,通過strcmp(number,library.book[i].number)檢索出要修改的圖書號,通過scanf分別輸入各成員的值,在通過strcpy將各值覆蓋到原成員的值上,就完成了修改。</p><p> ⑦ 排序模塊:函數(shù)名為sort,通過比較pric
7、e的大小排序,用for循環(huán)將小的放在前面。</p><p> ?、?main函數(shù):調(diào)用以上各功能模塊,實(shí)現(xiàn)程序功能。</p><p> 六、調(diào)試情況,設(shè)計技巧及體會</p><p> ?、僬{(diào)試情況:經(jīng)過若干次調(diào)試,程序已基本達(dá)到設(shè)計功能要求。</p><p> ②設(shè)計技巧:通過數(shù)組及字符串的比較實(shí)現(xiàn)函數(shù)功能。</p><
8、;p> ③心得體會:通過這次課程設(shè)計,我對C語言有了更深刻的了解,增強(qiáng)了程序的編寫能力,鞏固了專業(yè)知識,對程序的模塊化觀念也又模糊逐漸變的清晰了。在程序的運(yùn)行與調(diào)試過程中出現(xiàn)了很多錯誤,通過反復(fù)地復(fù)習(xí)課本上的相關(guān)知識,不停地修改與調(diào)試,我終于完成了這段程序。在調(diào)試過程中,我認(rèn)識到了C語言的靈活性與嚴(yán)謹(jǐn)性,同一個功能可以由不同的語句來實(shí)現(xiàn),但編寫程序時要特別注意細(xì)節(jié)方面的問題,因為一個小小的疏忽就能導(dǎo)致整個程序不能運(yùn)行。當(dāng)然我也認(rèn)
9、識到了自己的薄弱之處,如對鏈表相關(guān)知識的欠缺,文件運(yùn)用的不熟練,在以后的學(xué)習(xí)中我要集中精力,爭取把知識學(xué)得更扎實(shí)、更全面。</p><p> ?、懿蛔慵案倪M(jìn):沒有用到指針及鏈表,是本程序最大的不足,程序也存在其他缺點(diǎn),比如排序是不能按字符進(jìn)行排序,是功能有局限性;使用數(shù)組使程序結(jié)構(gòu)簡單,可用性不強(qiáng)。以后應(yīng)對程序進(jìn)行改進(jìn),比如部分功能用鏈表實(shí)現(xiàn),改進(jìn)排序方案等。</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; /*圖書類型標(biāo)識符*/</p><p&
13、gt; typedef struct </p><p><b> {</b></p><p> int count; /*數(shù)量統(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輸入(學(xué)號):");</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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課程設(shè)計--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計
- c語言圖書館管理系統(tǒng)課程設(shè)計---高校圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計報告
- 圖書館管理信息------系統(tǒng)課程設(shè)計
- jsp課程設(shè)計《圖書館管理系統(tǒng)》
- sqlserver課程設(shè)計——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計報告
- 軟件課程設(shè)計--圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)課程設(shè)計報告
- vfp圖書館管理系統(tǒng)課程設(shè)計
- java課程設(shè)計----圖書館管理系統(tǒng)
- 圖書館系統(tǒng)課程設(shè)計
- javaweb課程設(shè)計——圖書館管理系統(tǒng)
- java課程設(shè)計——圖書館管理系統(tǒng)
- 圖書館管理系統(tǒng)mis課程設(shè)計
- 課程設(shè)計報告---圖書館管理系統(tǒng)
- 圖書館書籍管理系統(tǒng)課程設(shè)計
- java圖書館管理系統(tǒng)課程設(shè)計
- 圖書館管理系統(tǒng)_pb課程設(shè)計報告
評論
0/150
提交評論