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