版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 目 錄</b></p><p> 1 課程設(shè)計目的與要求1</p><p><b> 2 問題描述2</b></p><p><b> 3總體設(shè)計3</b></p><p> 3.1 功能分析3</p><p&
2、gt; 3.2 系統(tǒng)使用的主要函數(shù)3</p><p> 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu)4</p><p><b> 4 詳細設(shè)計5</b></p><p> 4.1 程序總體結(jié)構(gòu)圖5</p><p> 4.2 程序流程圖7</p><p><b> 5 功能測試1
3、0</b></p><p> 5.1 系統(tǒng)主界面10</p><p> 5.2 系統(tǒng)輸入信息的界面11</p><p> 5.3 系統(tǒng)信息查詢的界面12</p><p> 5.4 系統(tǒng)信息按作者名查詢的界面13</p><p> 5.5 系統(tǒng)信息按作者名排序14</p>&
4、lt;p> 6 程序設(shè)計調(diào)試情況分析15</p><p> 7 課程設(shè)計小結(jié)16</p><p><b> 參考文獻17</b></p><p> 附錄 系統(tǒng)源程序18</p><p><b> 圖書信息管理系統(tǒng)</b></p><p> 1 課程
5、設(shè)計目的與要求</p><p> 圖書信息存放在文件中,提供文件的輸入、輸出等操作;要實現(xiàn)瀏覽功能;查詢和排序功能要求實現(xiàn)查找操作(至少兩種依據(jù));還應(yīng)該提供圖書信息刪除和修改的功能;另外還應(yīng)該提供鍵盤式選擇菜單以實現(xiàn)功能選擇。</p><p> 圖書管理系統(tǒng),其中包括:</p><p> 圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等
6、。</p><p><b> 功能包括:</b></p><p> 1) 系統(tǒng)以菜單方式工作;</p><p> 2) 圖書信息錄入功能(圖書信息用文件保存);</p><p> 3) 圖書信息瀏覽功能;</p><p> 4) 查詢和排序功能;</p><p>
7、 5)圖書信息的刪除與修改功能</p><p><b> 2 問題描述</b></p><p> 1.設(shè)計一個圖書管理系統(tǒng),其中包括:</p><p> 圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。</p><p><b> 功能包括:</b></p>
8、;<p> 1) 系統(tǒng)以菜單方式工作;</p><p> 2) 圖書信息錄入功能(圖書信息用文件保存);</p><p> 3) 圖書信息瀏覽功能;</p><p> 4) 查詢和排序功能;</p><p> 5)圖書信息的刪除與修改功能</p><p><b> 2.需求分析:&l
9、t;/b></p><p> 圖書信息存放在文件中,提供文件的輸入、輸出等操作;要實現(xiàn)瀏覽功能;查詢和排序功能要求實現(xiàn)查找操作(至少兩種依據(jù));還應(yīng)該提供圖書信息刪除和修改的功能;另外還應(yīng)該提供鍵盤式選擇菜單以實現(xiàn)功能選擇。</p><p><b> 顯示模塊</b></p><p> 通過設(shè)計一個模塊,來實現(xiàn)圖書信息的顯示,以便于
10、瀏覽圖書的信息。</p><p><b> 查詢模塊</b></p><p> 通過設(shè)計一個模塊,這個模塊可以按圖書的書名、作者來查詢圖書所有的信息,以便查詢者閱讀。</p><p><b> 刪除模塊</b></p><p> 通過設(shè)計一個模塊,當輸入一個圖書的登入號或者書名的時候,可以通
11、過這個模塊,將輸入登入號或者書名的書籍的所有信息從數(shù)據(jù)庫中刪除出去。以后,這本圖書的信息不再出現(xiàn)在數(shù)據(jù)庫中。</p><p><b> 修改模塊</b></p><p> 通過設(shè)計一個模塊,當某本圖書的信息發(fā)生變化的時候,可以通過修改模塊來進行修改。修改模塊時一具有多級子菜單的模塊。</p><p><b> 排序模塊</
12、b></p><p> 通過設(shè)計一個模塊,來實現(xiàn)數(shù)據(jù)庫的信息按某項成員名的升序或者降序排列,這個模塊提供了按書名,作者名,分類號三種方式來實現(xiàn)排序。</p><p><b> 3總體設(shè)計</b></p><p><b> 3.1 功能分析</b></p><p> ?。ㄏ到y(tǒng)提供主界面,各
13、種功能操作以獨立的函數(shù)為基礎(chǔ),運用對鏈表操作的技術(shù)來實現(xiàn)通訊錄的管理,同時對操作結(jié)果在計算機中做永久保存。)</p><p> 整個系統(tǒng)可以分為信息錄入、信息瀏覽、信息查詢、信息排序、信息刪除和信息修改的功能。系統(tǒng)提供主界面,各種功能操作以獨立的函數(shù)為基礎(chǔ),運用對鏈表操作的技術(shù)來實現(xiàn)圖書信息的管理,同時對操作結(jié)果在計算機中做永久保存。</p><p> 3.2 系統(tǒng)使用的主要函數(shù)<
14、;/p><p> void menu();</p><p> int bookluru(struct book*p,int n); (錄入圖書信息) </p><p> void bookliulan(struct book*p,int n); (圖書信息瀏覽)
15、 </p><p> void bookchaxun(struct book*p,int n);(圖書信息查詢)</p><p> void bookxiugai(struct book*p,int n); (圖書信息修改) </p><p> int bookzengjia(struct book*p,int n); (圖書信息增加)</p>
16、<p> int bookshanchu(struct book*p,int n); (圖書信息刪除) </p><p> void bookpaixu(struct book*p,int n); (圖書信息排序) </p><p> void DLsearch(struct book*p,int n)
17、; (按登入號查詢)</p><p> void AUsearch(struct book*p,int n); (按作者名查詢)</p><p> int bookzairu(struct book*p,int n); (圖書信息文件儲存 )</p><p> void goout(); (退出程序) <
18、/p><p> int bookbaocun(struct book*p,int n); (圖書信息保存) </p><p> void main() </p><p> 3.3 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu)</p><p> struct book //定義一個book類結(jié)
19、構(gòu)體。</p><p><b> {</b></p><p> char no[L];</p><p> char name[L];</p><p> char author[L];</p><p> char fenlei[L];</p><p> char
20、puttime[L];</p><p> char putfrom[L];</p><p> char price[L];</p><p><b> };</b></p><p><b> 4 詳細設(shè)計</b></p><p> 4.1 程序總體結(jié)構(gòu)圖</p&
21、gt;<p> N </p><p><b> Y</b></p><p> 圖4.1 程序總體結(jié)構(gòu)圖</p><p><b> 0</b></p><p> 1 2 3 4
22、 </p><p> 5 6 7</p><p> 圖4.2 程序?qū)哟螆D </p><p><b> 4.2 程序流程圖</b></p><p> 圖4.3信息登入功能流程圖</p><p> 圖4.4 查詢功能流程圖<
23、/p><p> 圖4.5 修改功能流程圖</p><p><b> 5 功能測試</b></p><p><b> 5.1 系統(tǒng)主界面</b></p><p> 圖5.1 系統(tǒng)主界面</p><p> 5.2 系統(tǒng)輸入信息的界面</p><p>
24、; 圖 5.2 輸入信息界面</p><p> 5.3 系統(tǒng)信息查詢的界面 </p><p> 圖5.3信息查詢界面</p><p> 5.4 系統(tǒng)信息按作者名查詢的界面</p><p> 圖5.4 按作者名查詢</p><p> 5.5 系統(tǒng)信息按作者名排序 </p><p>
25、; 圖5.5 信息排序界面</p><p> 6 程序設(shè)計調(diào)試情況分析</p><p> 1)問題:在信息查詢完成后,無法跳出該界面,無法回到主界面。</p><p> 圖6.1 查詢后無法回到主界面</p><p> 解決方法:在信息查詢那個版塊的程序中,把原先用scanf輸入字符改成gets(no),排除由于回車鍵出現(xiàn)的問題
26、。</p><p> 2)問題:“登錄號書名作者。。?!敝g無空格號</p><p> 解決方法:改為printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間",
27、"價格"); 拉寬長度。</p><p><b> 7 課程設(shè)計小結(jié)</b></p><p> 通過一周的課程設(shè)計,第一次我們試著用所學的C語言知識去編制生活中常用的程序。我們是小組選擇編輯圖書信息管理系統(tǒng)程序。由于分工合作,我負責的是查詢和排除模塊。起初對知識掌握的不夠全面,在整個設(shè)計過程中遇到很多問題。比如,編譯出現(xiàn)錯誤,對于格式的掌握還不
28、夠透徹;在分界面運行完后,回不到系統(tǒng)的主界面,出現(xiàn)了死循環(huán);在刪除信息的板塊中,刪除了要保留的;運行時,屏幕顯示的字之間無空格。后來,通過小組互相幫組討論,查閱書籍,改善了程序。首先把原程序中的運用scanf()輸入字符,改為getchar(),排除了接受回車鍵所出現(xiàn)的問題,能夠順利的返回主界面。其次,printf()中字符串控制的長度拉寬。最后還是能如期的完成此次實訓。</p><p> 當然,由于初次接觸圖
29、書管理系統(tǒng)的設(shè)計,程序還是存在缺陷。比如操作起來不夠簡便、連貫,同時也沒考慮到實際問題。如圖書的價格要取大于等于零的數(shù)等。</p><p> 總之,此次的課程設(shè)計還是對我們的專業(yè)很有幫助。既鞏固了我們的C語言知識,讓我們對一部分函數(shù)的功能有了更加深刻的理解,把所學運用到實際,也使我們在系統(tǒng)設(shè)計領(lǐng)域有了新的拓展,開發(fā)我們的思維。</p><p><b> 參考文獻</b&
30、gt;</p><p> [1] 吉順如. 《C程序設(shè)計教程與實驗》. 北京 :清華大學出版社. 2011. 48-103</p><p><b> 附錄 系統(tǒng)源程序</b></p><p> #include<stdio.h> //頭文件</p><p> #inclu
31、de<string.h></p><p> #include<stdlib.h></p><p> #define L 30 //宏定義</p><p> #define Q 200</p><p> struct book //定義一個bo
32、ok類結(jié)構(gòu)體。</p><p><b> {</b></p><p> char no[L];</p><p> char name[L];</p><p> char author[L];</p><p> char fenlei[L];</p><p> c
33、har puttime[L];</p><p> char putfrom[L];</p><p> char price[L];</p><p><b> };</b></p><p> //函數(shù)聲明 //函數(shù)聲明</p><p&
34、gt; void menu();</p><p> int bookluru(struct book*p,int n); </p><p> void bookliulan(struct book*p,int n); </p>
35、<p> void bookchaxun(struct book*p,int n); </p><p> void bookxiugai(struct book*p,int n); </p><p> int bookzhengjia(struct book*p,int n);</p><p> int bookshanch
36、u(struct book*p,int n); </p><p> void bookpaixu(struct book*p,int n); </p><p> void DLsearch(struct book*p,int n); </p><p> vo
37、id AUsearch(struct book*p,int n);</p><p> int bookzairu(struct book*p,int n);</p><p> void goout();</p><p> int bookbaocun(struct book*p,int n); </p><p> void
38、 main() //主函數(shù)</p><p><b> {</b></p><p> char slect,yn;</p><p> struct book record[Q]; //定義book類結(jié)構(gòu)體變量存放圖書信息共200條</p>
39、;<p> int total=0,flag;</p><p> total=bookzairu(record,Q); //從文件讀取圖書信息,不超過200條</p><p><b> do</b></p><p><b> {</b></p><p>
40、; menu(); //顯示菜單</p><p> printf("請服務(wù)項編號:");</p><p> slect=getchar();</p><p> getchar();</p><p> switch(slect)</p><p
41、><b> {</b></p><p> case'0': goout();break;</p><p> case'1': total=bookluru(record,total);break; //函數(shù)調(diào)用</p><p> case'2': bookliulan(recor
42、d,total);break;</p><p> case'3': bookchaxun(record,total);break;</p><p> case'4': bookxiugai(record,total);break;</p><p> case'5': total=bookzhengjia(reco
43、rd,total);break;</p><p> case'6': total=bookshanchu(record,total);break;</p><p> case'7': bookpaixu(record,total);break;</p><p> case'8': flag=bookbaocun(
44、record,total);</p><p> if("flag==1") </p><p> printf("圖書信息保存成功!\n");</p><p><b> else</b></p><p> printf("圖書信息保存失??!\n")
45、;</p><p><b> break;</b></p><p> default:continue;</p><p><b> }</b></p><p> if(slect=='0') break;</p><p> printf("
46、\n還要繼續(xù)選擇嗎?(Y/N)"); //提示是否結(jié)束</p><p><b> do</b></p><p><b> {</b></p><p> yn=getchar();</p><p> getchar();</p><p> if (
47、yn=='Y'||yn=='y')</p><p><b> break;</b></p><p> else if (yn=='N'||yn=='n')</p><p><b> break;</b></p><p><b
48、> else</b></p><p> printf("非法選項!\n還要繼續(xù)選擇嗎?(Y/N)");</p><p><b> }</b></p><p><b> while(1);</b></p><p><b> }</b
49、></p><p> while(yn!='N'&&yn!='n');</p><p><b> }</b></p><p> //圖書管理系統(tǒng)主菜單.</p><p> void menu()</p><p><b> {
50、</b></p><p> system("cls");</p><p> printf("\n\n");</p><p> printf("請選擇服務(wù)項目編號(0--8)\n");</p><p> printf("******************
51、************************************************\n");</p><p> printf("§********************歡迎使用圖書信息管理系統(tǒng)******************§\n");</p><p> printf("§************
52、**************************************************§\n");</p><p> printf("§§ §§\n");</p><p>
53、printf("§§ §§\n");</p><p> printf("§§
54、67;§\n");</p><p> printf("§§ * 1 . 圖書信息錄入. §§\n");</p><p> printf("§§ * 2 .
55、圖書信息瀏覽. §§\n");</p><p> printf("§§ * 3 . 圖書信息查尋. §§\n");</p><p> printf("
56、7;§ * 4 . 圖書信息修改. §§\n");</p><p> printf("§§ * 5 . 圖書信息增加. §§\n");</p
57、><p> printf("§§ * 6 . 圖書信息刪除. §§\n");</p><p> printf("§§ * 7 . 圖書信息排序.
58、 §§\n");</p><p> printf("§§ * 8 . 圖書信息保存. §§\n");</p><p> printf("§§
59、 * 0 . 退出圖書管理系統(tǒng). §§\n");</p><p> printf("§§ §§\n");</p><p> printf
60、("§§ §§\n");</p><p> printf("§§ §
61、67;\n");</p><p> printf("******************************************************************\n";</p><p> printf("\n");</p><p><b> }</b></p&
62、gt;<p> int bookluru(struct book *p,int n)//錄入圖書信息.</p><p><b> {</b></p><p><b> int i=0;</b></p><p><b> int m;</b></p><p>
63、; printf("\n添加前的圖書信息記錄共有%d個:\n",n); //顯示原有的圖書信息</p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","
64、出版時間","價格");</p><p><b> i=0;</b></p><p> while((i<n)&&(strcmp(p->no,"")!=0)) //輸入的登錄號不為空時,輸出圖書信息</p><p><b> {</
65、b></p><p> printf("%9s%9s%9s%9s%9s%9s%9s\n",p->no,p->name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);//信息輸出</p><p><b> i++;</b></p>
66、<p><b> p++;</b></p><p><b> }</b></p><p> printf("\n請輸入要錄入的圖書數(shù)目X(0<X<%d): ",200-n); //設(shè)置圖書信息存儲最大值</p><p> scanf("%d",&a
67、mp;m);</p><p><b> i=0;</b></p><p> while(i<m)</p><p><b> {</b></p><p> printf("\n");</p><p> printf("請輸入第%d本
68、圖書的信息:\n",i+1);</p><p> printf("登錄號: ");</p><p><b> do</b></p><p><b> {</b></p><p> gets(p->no); //輸入登錄號,再輸入其他信息</p
69、><p><b> }</b></p><p> while(strcmp(p->no,"")==0);</p><p> printf("書名為:");</p><p> gets(p->name);</p><p> printf(&q
70、uot;作者名為:");</p><p> gets(p->author);</p><p> printf("分類號為:");</p><p> gets(p->fenlei);</p><p> printf("出版時間為:");</p><p>
71、; gets(p->puttime);</p><p> printf("出版單位為:");</p><p> gets(p->putfrom);</p><p> printf("價格為:");</p><p> gets(p->price);</p><
72、;p><b> p++;</b></p><p><b> i++;</b></p><p><b> }</b></p><p> return m+n;</p><p><b> }</b></p><p>
73、void bookliulan(struct book*p,int n)//圖書信息瀏覽.</p><p><b> {</b></p><p><b> int i=0;</b></p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號&quo
74、t;,"書名","作者名","分類號","出版單位","出版時間","價格");</p><p> while(i<n) //輸出原有圖書信息</p><p><b>
75、 {</b></p><p> printf("%9s%9s%9s%9s%9s%9s%9s\n",p->no,p->name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);</p><p><b> p++;</b></p&g
76、t;<p><b> i++;</b></p><p><b> }</b></p><p><b> }</b></p><p> void bookchaxun(struct book*p,int n)//圖書信息查尋.</p><p><b&g
77、t; {</b></p><p><b> char c;</b></p><p> bookliulan(p ,n);</p><p><b> do</b></p><p><b> {</b></p><p> printf
78、("\n請問按登錄號查詢(D),還是按作者名查詢(A)?"); //選擇查詢方式</p><p> c=getchar();</p><p> getchar();</p><p> if(c=='D'||c=='d')</p><p><b> {</b>&
79、lt;/p><p> DLsearch(p,n);</p><p><b> break;</b></p><p><b> }</b></p><p> else if(c=='A'||c=='a')</p><p><b>
80、 {</b></p><p> AUsearch(p,n);</p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b></p><p><b> {&
81、lt;/b></p><p> printf("\n輸入的為非法字符!\n");</p><p><b> continue;</b></p><p><b> }</b></p><p><b> }</b></p><p
82、> while(c!='D'||c!='d'||c!='A'||c!='a');</p><p><b> }</b></p><p> void DLsearch(struct book*p,int n)//按登錄號查詢.</p><p><b> {&l
83、t;/b></p><p> int i,x=0;</p><p> char DL[L];</p><p> printf("\n請輸入要查詢圖書的登錄號:");</p><p><b> gets(DL);</b></p><p> for(i=0;i<
84、;n;i++)</p><p> if(strcmp(DL,p[i].no)==0) //輸入登錄號,如果在系統(tǒng)中找到則輸出圖書信息</p><p><b> {</b></p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名&
85、quot;,"作者名","分類號","出版單位","出版時間","價格");</p><p> printf("\n%10s%10s%10s%10s%10s%10s%10s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[
86、i].puttime,p[i].price);</p><p><b> x=1;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> if(x==0)</b></p>
87、<p> printf("\n對不起,圖書系統(tǒng)中沒有包含此書的信息!\n");</p><p><b> }</b></p><p> void AUsearch(struct book*p,int n)//按作者名查詢.</p><p><b> {</b></p>
88、<p> int i,x=0;</p><p> char AU[20];</p><p> printf("\n請輸入要查詢圖書的作者姓名:");</p><p><b> gets(AU);</b></p><p> for(i=0;i<n;i++)</p>
89、<p> if(strcmp(AU,p[i].author)==0) //輸入作者姓名,如果在系統(tǒng)中找到則輸出圖書信息</p><p><b> {</b></p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名
90、","分類號","出版單位","出版時間","價格");</p><p> printf("\n%10s%10s%10s%10s%10s%10s%10s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i]
91、.price);</p><p><b> x=1;</b></p><p><b> }</b></p><p><b> if(x==0)</b></p><p> printf("\n對不起,圖書系統(tǒng)中沒有包含此書的信息!\n"); //提示
92、信息</p><p><b> }</b></p><p> void bookxiugai(struct book*p,int n)//圖書信息修改.</p><p><b> {</b></p><p> int i,k=0;</p><p> char no[
93、L];</p><p> bookliulan(p,n);</p><p> printf("\n請輸入要修改圖書的登錄號:");</p><p><b> gets(no);</b></p><p> for(i=0;i<n;i++,p++) </p><
94、p><b> {</b></p><p> if(strcmp(no,p->no)!=0) continue; //輸入的登錄號不匹配,結(jié)束本次循環(huán)</p><p><b> else</b></p><p><b> {</b></p><p>
95、 printf("\n請輸入正確的圖書登錄號:");</p><p> gets(p->no);</p><p> printf("\n請輸入正確的圖書書名:");</p><p> gets(p->name);</p><p> printf("\n請輸入正確的圖書作者
96、名:");</p><p> gets(p->author);</p><p> printf("\n請輸入正確的圖書分類號:");</p><p> gets(p->fenlei);</p><p> printf("\n請輸入正確的圖書出版時間:");</p>
97、;<p> gets(p->puttime);</p><p> printf("\n請輸入正確的圖書出版單位:");</p><p> gets(p->putfrom);</p><p> printf("\n請輸入正確的圖書價格:");</p><p> gets
98、(p->price);</p><p> printf("\n修改圖書圖書信息完成??!");</p><p><b> k=1;</b></p><p><b> }</b></p><p><b> }</b></p><
99、p><b> if(k==0)</b></p><p> printf("\n對不起,圖書系統(tǒng)中沒有包含此書的信息!\n");</p><p><b> }</b></p><p> int bookzhengjia(struct book *p,int n)//圖書信息增加.</p
100、><p><b> {</b></p><p><b> int i=0;</b></p><p><b> char c;</b></p><p> struct book t,*q;</p><p> printf("\n添加前圖書信
101、息的記錄為:\n");</p><p> bookliulan(p ,n);//顯示添加前圖書信息的記錄</p><p><b> do</b></p><p><b> {</b></p><p> printf("請輸入新圖書信息的登錄號:");</p
102、><p> gets(t.no); </p><p> printf("\n請輸入新圖書信息的書名為:");</p><p> gets(t.name);</p><p> printf("\n請輸入新圖書信息的作者名為:");</p><p> gets(t.
103、author);</p><p> printf("\n請輸入新圖書信息的分類號為:");</p><p> gets(t.fenlei);</p><p> printf("\n請輸入新圖書信息的出版時間為:");</p><p> gets(t.puttime);</p>&l
104、t;p> printf("\n請輸入新圖書信息的出版單位為:");</p><p> gets(t.putfrom);</p><p> printf("\n請輸入新圖書信息的價格為:");</p><p> gets(t.price);</p><p> for(i=0;i<n;
105、i++)if(strcmp(t.no,(p+i)->no)==0||strcmp(t.author,(p+i)->author)==0||strcmp(t.fenlei,(p+i)->fenlei)==0)</p><p><b> {</b></p><p> printf("登錄號、作者名和分類號重復,要重新輸入嗎(Y/N)?&
106、quot;);</p><p> c=getchar();</p><p> putchar('\n');</p><p><b> break;</b></p><p><b> }</b></p><p><b> if(i==n)&l
107、t;/b></p><p><b> {</b></p><p> *(p+i)=t; </p><p> printf("\n添加后圖書的信息記錄為:\n"); //顯示添加后圖書的信息記錄</p><p> printf("\n %9s%9s%9s%9s%9s%9s%
108、9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p> for(i=0;i<n+1;i++)</p><p> printf("\n%9s%9s%9s%9s%9
109、s%9s%9s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p><p><b> break;</b></p><p><b> }</b></p><p><b> }
110、</b></p><p> while(c=='y'||c=='Y');</p><p> return n+1;</p><p><b> }</b></p><p> int bookshanchu(struct book *p,int n)//圖書信息刪除.<
111、;/p><p><b> {</b></p><p> int i,x,y=0;</p><p> char c,name[20],no[20];</p><p> printf("\n刪除前圖書的信息記錄為:\n");</p><p> printf("\n
112、%9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格"); //顯示刪除前圖書的信息記錄</p><p> for(i=0;i<n;i++)printf(&quo
113、t;\n%9s%9s%9s%9s%9s%9s%9s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p> printf("\n請輸入要刪除圖書的登陸號:");</p><p
114、><b> gets(no);</b></p><p> for(x=0;x<n;x++)</p><p><b> {</b></p><p> if(strcmp(no,p[x].no)!=0) ////輸入的登錄號不匹配,結(jié)束本次循環(huán)</p><p><b>
115、; continue;</b></p><p><b> if(x<n)</b></p><p><b> {</b></p><p> for(i=x;i<n;i++) //后一個圖書信息對前一個圖書信息覆蓋刪除</p><p><b>
116、 {</b></p><p> strcpy(p[i].no,p[i+1].no);</p><p> strcpy(p[i].author,p[i+1].author);</p><p> strcpy(p[i].name,p[i+1].name);</p><p> strcpy(p[i].fenlei,p[i+1].
117、fenlei);</p><p> strcpy(p[i].price,p[i+1].price);</p><p> strcpy(p[i].putfrom,p[i+1].putfrom);</p><p> strcpy(p[i].puttime,p[i+1].puttime);</p><p><b> }</b
118、></p><p> printf("圖書信息刪除后的記錄:\n");</p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間
119、","價格"); //顯示圖書信息刪除后的記錄</p><p> for(i=0;i<n-1;i++)printf("\n%9s%9s%9s%9s%9s%9s%9s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p&
120、gt;<p><b> y=1;</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\n對不起,圖書系統(tǒng)中沒有包含此書的信息!\n");</p><p> re
121、turn n-y;</p><p><b> }</b></p><p><b> }</b></p><p> //對圖書信息排序.</p><p> void bookpaixu(struct book*p,int n)</p><p><b> {&
122、lt;/b></p><p> int j,i,k;</p><p> char c1,c2;</p><p> struct book temp;</p><p> printf("\n排序前圖書的信息記錄為:\n");</p><p> printf("\n %9s%9
123、s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p> for(i=0;i<n;i++)</p><p> printf("\n%1
124、0s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p> printf("\n按登錄號排序(D),還是按作者名排序(A)?"); /
125、/選擇排序的方式</p><p> c1=getchar();</p><p> getchar();</p><p> if(c1=='d'||c1=='D') //選擇登錄號由小到大排序</p><p><b> {</b></p>
126、<p> for(i=0;i<n-1;i++) </p><p><b> {</b></p><p><b> k=i;</b></p><p> for(j=i+1;j<n;j++)</p><p> if(strcm
127、p(p[k].no,p[j].no)>0) //使用選擇法進行排序</p><p><b> k=j;</b></p><p> if(k!=i) //如果最小熟不熟默認的p[i],再交換,</p><p><b> {</b></p><p> temp=p[k];&l
128、t;/p><p> p[k]=p[i];</p><p> p[i]=temp;</p><p><b> }</b></p><p><b> }</b></p><p> printf("\n排序后圖書的信息記錄為:\n");
129、 //輸出排序后圖書的信息</p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號","出版單位","出版時間","價格");</p><p> f
130、or(i=0;i<n;i++)printf("\n%10s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p><b> }</
131、b></p><p> else if(c1=='a'||c1=='A') //選擇作者名由小到大排序</p><p><b> {</b></p><p> for(i=0;i<n-1;i++)</p><p><b> {</b></
132、p><p><b> k=i;</b></p><p> for(j=i+1;j<n;j++)</p><p> if(strcmp(p[k].author,p[j].author)>0)</p><p><b> k=j;</b></p><p> if(
133、k!=i) //使用選擇法進行排序</p><p><b> {</b></p><p> temp=p[k];</p><p> p[k]=p[i];</p><p> p[i]=temp;</p><p><b> }</b></p>
134、<p><b> }</b></p><p> printf("\n排序后圖書的信息記錄為:\n");</p><p> printf("\n %9s%9s%9s%9s%9s%9s%9s\n","登錄號","書名","作者名","分類號&qu
135、ot;,"出版單位","出版時間","價格"); //輸出排序后圖書的信息</p><p> for(i=0;i<n;i++)</p><p> printf("\n%10s%10s%10s%10s%10s%10s%10s\n",(p+i)->no,(p+i)->name,(
136、p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,p[i].price);</p><p><b> }</b></p><p><b> else</b></p><p> printf("\n您輸入的為非法字符!\n
137、");</p><p><b> }</b></p><p> //圖書信息文件存儲.</p><p> int bookzairu(struct book*p,int n) </p><p><b> {</b></p><p> FILE *fp;
138、 //定義FILE類型文件指針變量</p><p> int i,all=0;</p><p> char bookfile[200]="book.txt";</p><p> fp=fopen("book.txt","r+"); //以只讀方式打開</p&
139、gt;<p> if(fp==NULL)</p><p><b> {</b></p><p> printf("\n***打開%s失?。?!***",bookfile);</p><p><b> return 0;</b></p><p><b>
140、; }</b></p><p> fscanf(fp,"%d\n",&all); //從文件指針指向的文本文件中按指定格式逐個輸入信息到指定變量 </p><p> if(all>200) //讀取記錄總數(shù)</p><p><b> {</b><
141、;/p><p> printf("文件記錄太多,不能讀?。?quot;);</p><p><b> return 0;</b></p><p><b> }</b></p><p> for(i=0;i<all;i++) //圖書信息按指定格式輸入</p>
142、;<p> {fscanf(fp,"%s %s %s %s %s %s %s\n",p[i].no,p[i].name,p[i].author,p[i].fenlei,p[i].putfrom,p[i].puttime,p[i].price);</p><p><b> }</b></p><p> fclose(fp);
143、 //關(guān)閉文件</p><p> return all;</p><p><b> }</b></p><p> //圖書信息文件保存.</p><p> int bookbaocun(struct book*p,int n)</p><p><b> {</b>
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言圖書信息管理系統(tǒng)課程設(shè)計報告
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告—圖書信息管理系統(tǒng)
- c語言課程設(shè)計報告-- 圖書信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計----圖書信息管理系統(tǒng)
- c語言課程設(shè)計-圖書信息管理系統(tǒng)
- c語言課程設(shè)計—圖書信息管理
- c語言課程設(shè)計圖書信息管理系統(tǒng)
- c語言課程設(shè)計圖書信息管理系統(tǒng)
- c語言課程設(shè)計論文-圖書信息管理系統(tǒng)設(shè)計
- c語言課程設(shè)計論文-圖書信息管理系統(tǒng)設(shè)計
- 圖書信息管理系統(tǒng)課程設(shè)計報告--c語言程序設(shè)計
- 圖書信息管理系統(tǒng)-《c語言程序設(shè)計》課程設(shè)計報告
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)
- c++課程設(shè)計報告---圖書信息管理系統(tǒng)設(shè)計
- c++課程設(shè)計——圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設(shè)計報告
- 圖書信息管理系統(tǒng)課程設(shè)計報告
評論
0/150
提交評論