版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 圖書館信息管理系統(tǒng)</b></p><p><b> 摘 要</b></p><p> 在現(xiàn)代化的圖書館中,圖書信息管理是一項(xiàng)必備的工作。相比于傳統(tǒng)的人力操作行為,使用現(xiàn)代化的管理工具例如專業(yè)的圖書館圖書管理軟件,能夠減少人力資源的損耗,加快工作的流程,縮短工作時(shí)間。在圖書館管理當(dāng)中,人工統(tǒng)計(jì)的速度慢,且容易出
2、現(xiàn)差錯(cuò)。本信息管理系統(tǒng)的自動(dòng)化加速了統(tǒng)計(jì)工作,提高管理效率。在本程序中,運(yùn)用了文件來進(jìn)行儲(chǔ)存,并有增加和修改已有信息的功能,本程序?qū)崿F(xiàn)了所有題目要求設(shè)計(jì)的設(shè)計(jì)要求。</p><p> 關(guān)鍵詞:文件,修改,儲(chǔ)存,添加,高效率</p><p><b> 目 錄 </b></p><p><b> 中文摘要Ⅰ</b>
3、</p><p><b> 1 題目要求1</b></p><p> 1.1 要求.1</p><p><b> 2 需求分析1</b></p><p><b> 3 總體設(shè)計(jì)1</b></p><p><b> 詳細(xì)
4、設(shè)計(jì)1</b></p><p><b> 4.1主函數(shù)2</b></p><p> 4.2各功能模塊設(shè)計(jì)5</p><p> 4.3 公共函數(shù)6</p><p> 5.運(yùn)行結(jié)果(附帶抓圖)7</p><p><b> 6.總結(jié)10</b>&l
5、t;/p><p> 附錄A 源碼14</p><p><b> 參考文獻(xiàn)29</b></p><p><b> 1 題目要求</b></p><p><b> 1.1 要求</b></p><p> 圖書信息包括:登錄號(hào)、書名、作者名、分
6、類號(hào)、出版單位、出版時(shí)間、價(jià)格等。試設(shè)計(jì)一圖書館的圖書信息管理系統(tǒng),使之能提供以下功能:</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> 本程序?qū)⒂玫轿募到y(tǒng),date.txt文件內(nèi)容作儲(chǔ)存的載體。本程序運(yùn)行后首先將圖書信息以文件系統(tǒng)讀取并保存到程序的結(jié)構(gòu)體數(shù)組當(dāng)中,然后提供文件輸入、修改、添加、查詢、瀏覽的操作;另外還提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。</p><p><
8、;b> 總體設(shè)計(jì)</b></p><p> 根據(jù)上面的分析,可以將這個(gè)系統(tǒng)分為如下五大模塊:enter圖書信息輸入模塊、modify圖書信息修改模塊、add圖書信息添加模塊、browse圖書信息瀏覽模塊、search圖書信息搜索模塊。而各個(gè)模塊之間由menu菜單模塊來做連接,最后由main主函數(shù)領(lǐng)導(dǎo)。</p><p><b> 4 詳細(xì)設(shè)計(jì)</b&
9、gt;</p><p><b> 主函數(shù)</b></p><p><b> 【數(shù)據(jù)結(jié)構(gòu)】</b></p><p> 原始數(shù)據(jù)有圖書信息的圖書序號(hào)、書名、作者名、價(jià)格、出版單位、出版時(shí)間、分類號(hào)。所以定義一個(gè)全局結(jié)構(gòu)體數(shù)組book用于保存原始數(shù)據(jù)。然后定義全局變量n保存圖書的數(shù)目。在結(jié)構(gòu)體定義中,除了價(jià)格使用浮點(diǎn)型變量
10、來定義之外,其他的都是用字符型變量來定義。所有的信息均以數(shù)組保存。</p><p><b> 【數(shù)據(jù)結(jié)構(gòu)代碼】</b></p><p> struct book</p><p><b> {</b></p><p> char num[10];//序號(hào) </p><p&g
11、t; char name[20];//書名 </p><p> char writter[20];//作者名 </p><p> float price;//價(jià)格 </p><p> char indate[15];//出版單位 </p><p> char out[15];//出版時(shí)間 </p><p>
12、 char outdate[15];//分類號(hào) </p><p><b> }equ[N];</b></p><p> 函數(shù)通過調(diào)用load()讀取文件數(shù)據(jù),然后用全局變量n來保存文件返回的書本的數(shù)量,然后menu()顯示主菜單。</p><p><b> 【程序】</b></p><p>
13、 int main()// --------------主函數(shù) </p><p> { void menu();//聲明menu函數(shù)</p><p><b> menu(); </b></p><p><b> return 0;</b></p><p> system("p
14、ause"); //系統(tǒng)暫停</p><p><b> }</b></p><p> 4.1.1 load ()讀取文件數(shù)據(jù)</p><p> load()函數(shù)從data.txt文件讀取數(shù)據(jù),將數(shù)據(jù)保存到程序全局變量n中。</p><p><b> 【程序】</b></
15、p><p> int load()//************************讀取文件后返回n </p><p><b> {</b></p><p><b> FILE *fp;</b></p><p><b> int i;</b></p><
16、;p> if((fp=fopen("data.txt","rb"))==NULL) //用只讀方式打開data.txt文件</p><p><b> {</b></p><p> printf("找不到文件\n");</p><p><b> }</b&g
17、t;</p><p> for(i=0;!feof(fp);i++){</p><p> fread(&equ[i],sizeof(struct book),1,fp);}</p><p> fclose(fp);</p><p> return (i-1);</p><p><b> }&
18、lt;/b></p><p> 4.1.2 menu()顯示主菜單</p><p> 向用戶顯示菜單,讓用戶選項(xiàng)進(jìn)入相應(yīng)模塊可視化操作。</p><p><b> 【程序】</b></p><p> void menu()// 菜單函數(shù) </p><p> { void
19、 load(); </p><p> void enter();</p><p> void modify();</p><p> void add();</p><p> void browse();</p><p> void search();</p><p> void a
20、uthor();</p><p> int n,w1; //定義整型變量n保存用戶輸入的選擇序號(hào)</p><p><b> do</b></p><p><b> {</b></p><p> puts("******************圖書管理系統(tǒng)-菜單**********
21、*************\n");</p><p> puts("\t\t\t\t1.圖書信息-錄入\n");</p><p> puts("\t\t\t\t2.圖書信息-修改\n");</p><p> puts("\t\t\t\t3.圖書信息-添加\n");</p>&l
22、t;p> puts("\t\t\t\t4.圖書信息-瀏覽\n");</p><p> puts("\t\t\t\t5.圖書信息-查詢\n");</p><p> puts("\t\t\t\t6.關(guān)于程序作者\(yùn)n");</p><p> puts("\t\t\t\t7.退出\n&quo
23、t;);</p><p> puts("************************************************************\n");</p><p> printf("選擇數(shù)字(1-7):[ ]\b\b");</p><p> scanf("%d",&n)
24、;</p><p> if(n<1||n>7)// 校檢用戶輸入序號(hào)</p><p> { w1=1;getchar();}</p><p> else w1=0;</p><p><b> }</b></p><p> while(w1==1);</p>&
25、lt;p> switch(n) //多分支選擇語(yǔ)句</p><p> { case 1:enter();break;// 信息錄入 </p><p> case 2:modify();break;// 信息修改 </p><p> case 3:add();break;//添加 </p><p> case 4:
26、browse();break;//瀏覽 </p><p> case 5:search();break;//查詢 </p><p> case 6:author();break;// 作者信息 </p><p> case 7:exit(0);</p><p><b> }</b></p><
27、p><b> }</b></p><p><b> 各功能模塊設(shè)計(jì)</b></p><p><b> 圖書信息的錄入</b></p><p> 此模塊用于用戶輸入圖書的相關(guān)信息,包括序號(hào)、書名、作者名、價(jià)格、出版單位、出版時(shí)間、分類號(hào)。</p><p><b
28、> 【程序】</b></p><p> void enter()// 數(shù)據(jù)的輸入 </p><p> { int i,n;</p><p> void save(int i); //聲明save保存函數(shù)</p><p><b> FILE *fp;</b></p>
29、<p> fp=fopen("data.txt","rb");</p><p> printf("添加多少本圖書呢?: 本\b\b");</p><p> scanf("%d",&n);</p><p> printf("\n\n");&l
30、t;/p><p> for(i=0;i<n;i++)</p><p> { printf("現(xiàn)在輸入第%d個(gè)數(shù)據(jù)\n\n",i+1);</p><p> printf("輸入序號(hào)\n");</p><p> scanf("%s",equ[i].n
31、um);</p><p> printf("輸入書名\n");</p><p> scanf("%s",equ[i].name);</p><p> printf("輸入作者名\n");</p><p> scanf("%s",equ[i].writter
32、);</p><p> printf("輸入圖書價(jià)格\n");</p><p> scanf("%f",&equ[i].price);</p><p> printf("輸入出版單位\n");</p><p> scanf("%s",equ[i].
33、indate);</p><p> printf("輸入出版時(shí)間\n");</p><p> scanf("%s",equ[i].out);</p><p> printf("輸入分類號(hào)\n");</p><p> scanf("%s",equ[i].ou
34、tdate); </p><p><b> }</b></p><p> if ((fp=fopen("data.txt","wb"))==NULL)//以只寫方式打開data.txt文件</p><p> { prin
35、tf("cannot open file~");</p><p><b> return;</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> if(fwrite(&equ[i],sizeof(
36、struct book),1,fp)!=1)//如果不能寫入就報(bào)錯(cuò)</p><p> printf("file write error~");</p><p> fclose(fp);</p><p> printf_back();//返回菜單選項(xiàng)</p><p><b> }</b><
37、/p><p> 對(duì)儲(chǔ)存的信息進(jìn)行修改</p><p> 讓用戶輸入要修改的信息選項(xiàng),如作者名,輸入新的數(shù)據(jù)將原值替代掉,即完成了修改。</p><p><b> 【程序】</b></p><p> void modify() //modify 修改數(shù)據(jù)用的 </p><p>
38、{ struct book e;</p><p> int i,n,w0=1,w1,w2=0,k;</p><p> void printf_one(int i);</p><p> int modify_data(int i,int j); //聲明一個(gè)修改的子函數(shù),到時(shí)候會(huì)調(diào)用。</p><p> void menu
39、();</p><p> void save(int n);</p><p> int load(); </p><p><b> n=load();</b></p><p><b> do{</b></p><p><b> k=-1;</b>
40、;</p><p> for(i=0;i<n;i++)</p><p> {if((i!=0)&&(i%10==0))</p><p> { printf("記住你要改的序號(hào),任意鍵繼續(xù)..\n");</p><p> getchar();</p><p> p
41、uts("\n\n");</p><p><b> }</b></p><p> printf_one(i);}</p><p><b> do</b></p><p> {printf("\n輸入你要修改的序號(hào):");</p><
42、p> scanf("%s",e.num);</p><p> for(i=0;i<n;i++)</p><p> if(strcmp(e.num,equ[i].num)==0)</p><p> {k=i;e=equ[i];}</p><p> if(k==-1) printf("\n\n不
43、存在,請(qǐng)重新輸入");</p><p> }while(k==-1);</p><p> printf_one(k);</p><p> w1=modify_data(k,n); //跳轉(zhuǎn)到 修改的子函數(shù)- modify_data()</p><p> if(w1==1) // W1=1表示修改成功</p>
44、<p> {printf("\n恭喜~還想再次修改嗎?\n\n1).是\t2).返回并保存\t[ ]\b\b");</p><p> scanf("%d",&w0);</p><p><b> w2=1;}</b></p><p> else{w0=0;if(w2==1)eq
45、u[k]=e;}</p><p> if(w0!=1&&w2==1)</p><p> save(n);// 調(diào)用保存函數(shù)保存</p><p><b> }</b></p><p> while(w0==1);</p><p><b> menu();&l
46、t;/b></p><p><b> } </b></p><p> int modify_data(int i,int n) // 修改數(shù)據(jù)的----- 子函數(shù) </p><p><b> {</b></p><p> void printf_one(int i);</p
47、><p><b> int c,w1;</b></p><p><b> do{</b></p><p> puts("請(qǐng)選擇要修改的類型=>\n\n 1).序號(hào) 2).書名 3).作者名 4).價(jià)格 \n\n5).出版單位 6).出版時(shí)間 7).分類號(hào)\n");<
48、;/p><p> printf("輸入編號(hào):"); </p><p> scanf("%d",&c);</p><p> if(c>7||c<1)</p><p> {puts("\n選擇錯(cuò)誤喲,重新輸入~\n\n");</p><p>
49、; getchar();}</p><p><b> }</b></p><p> while(c>7||c<1); </p><p><b> do{</b></p><p><b> switch(c)</b></p><p>
50、 { case 1: printf("新的序號(hào):");scanf("%s",equ[i].num);break;</p><p> case 2: printf("新的書名:");scanf("%s",equ[i].name);break;</p><p> case 3: printf(&q
51、uot;新的作者名:");scanf("%s",equ[i].writter);break; </p><p> case 4: printf("新的價(jià)格:");scanf("%f",&equ[i].price);break; </p><p> case 5: printf("
52、;新的出版單位:");scanf("%s",equ[i].indate);break; </p><p> case 6: printf("新的出版時(shí)間:");scanf("%s",equ[i].out);break;</p><p> case 7: printf("新的分類號(hào):");sc
53、anf("%s",equ[i].outdate);break;</p><p><b> }</b></p><p> printf_one(i);</p><p> printf("確定?\n\n\t1).確定 2).不,重新修改 3).退出(不保存) [ ]\b\b");</p&g
54、t;<p> scanf("%d",&w1);</p><p><b> }</b></p><p> while(w1==2);</p><p> return(w1);</p><p><b> }</b></p><p&g
55、t;<b> 圖書信息的添加</b></p><p> 在原有信息的基礎(chǔ)上添加新的信息,打開文件后,把指針移到數(shù)據(jù)的末尾處然后寫入新的數(shù)據(jù)。</p><p><b> 【程序】</b></p><p> void add() //--------------添加書本函數(shù) </p><p&
56、gt;<b> { </b></p><p> void printf_back();</p><p> int load();</p><p> void input(int i); //聲明輸入函數(shù)</p><p> int i,n,m,k;</p><p><b>
57、; FILE *fp;</b></p><p><b> n=load();</b></p><p> printf("你想添加多少本書呢?(0-%d)?: 本\b\b",N-1-n);</p><p> scanf("%d",&m);</p><p>
58、;<b> k=m+n;</b></p><p> for(i=0;i<m;i++)</p><p><b> {</b></p><p> printf("\n輸入第%d本書的數(shù)據(jù)\n\n",i+1);</p><p> input(i);}</p>
59、<p> if((fp=fopen("data.txt","ab"))==NULL) //以追加方式打開文件</p><p> {printf("找不到文件\n");}</p><p> fseek(fp,0,2);</p><p> for(i=0;i<m;i++)</
60、p><p> fwrite(&equ[i],sizeof(struct book),1,fp);</p><p> fclose(fp); </p><p> printf_back();</p><p><b> }</b></p><p><b> 圖書信息數(shù)據(jù)的瀏覽&
61、lt;/b></p><p> 主要通過調(diào)用printf_one()函數(shù)完成,然后輸出到屏幕。</p><p><b> 【程序】</b></p><p> void browse()//---------- 瀏覽函數(shù) </p><p> { void printf_back();</p&g
62、t;<p> void printf_one(int i);</p><p> void menu();</p><p> int load();</p><p><b> int i,n;</b></p><p><b> n=load();</b></p>
63、<p> for(i=0;i<n;i++)</p><p><b> {</b></p><p> if(i%10==0)</p><p> puts("\n\n");</p><p> printf_one(i);</p><p><b>
64、 }</b></p><p> printf("\n\t *******************有%d個(gè)記錄****************\n\n",n);</p><p> printf("任意鍵繼續(xù)~\n");</p><p> getchar();getchar();<
65、;/p><p><b> menu(); </b></p><p><b> }</b></p><p> 4.2.5 圖書信息的查詢</p><p> 主要根據(jù)輸入要查詢的信息來和文件中的數(shù)據(jù)對(duì)照,如果相等,則輸出,顯示查找到的數(shù)據(jù)。否則顯示查找不到。</p><p>
66、<b> 【程序】</b></p><p> void search() //-----搜索總函數(shù) </p><p><b> {</b></p><p><b> int n,w1;</b></p><p> void num_search(); //聲明
67、序號(hào)查找函數(shù)</p><p> void writter_search(); //聲明 作者名查找函數(shù)</p><p> void name_search(); //聲明 書名查找函數(shù)</p><p> void price_search(); //聲明 價(jià)格查找函數(shù)</p><p> void indate_search();
68、 //聲明 出版時(shí)間查找函數(shù)</p><p> void out_search(); //聲明 出版單位查找函數(shù)</p><p> void outdate_search(); //聲明 分類號(hào)查找函數(shù)</p><p><b> do</b></p><p><b> {</b><
69、;/p><p> printf("*************************搜索圖書信息選擇項(xiàng)*******************\n");</p><p> printf("\t\t\t 1.序號(hào)\n");</p><p> printf("\t\t\t
70、 2.書名\n");</p><p> printf("\t\t\t 3.作者名\n");</p><p> printf("\t\t\t 4.價(jià)格\n"); </p><p> printf
71、("\t\t\t 5.出版單位\n");</p><p> printf("\t\t\t 6.出版時(shí)間\n");</p><p> printf("\t\t\t 7.分類號(hào)\n");</p><p>
72、 printf("\t\t\t 8.退出\n");</p><p> printf("************************************************************\n");</p><p> printf("請(qǐng)輸入號(hào)碼[ ]\b\b");</p
73、><p> scanf("%d",&n);</p><p> if(n<1||n>8)</p><p><b> {w1=1;</b></p><p> getchar();</p><p><b> }</b></p>
74、;<p> else w1=0;</p><p><b> }</b></p><p> while(w1==1);</p><p><b> switch(n)</b></p><p> { case 1:num_search();break;</p>&
75、lt;p> case 2:name_search();break;</p><p> case 3:writter_search();break;</p><p> case 4:price_search();break;</p><p> case 5:indate_search();break;</p><p> case
76、 6:out_search();break;</p><p> case 7:outdate_search();break;</p><p> case 8:menu();</p><p><b> }}</b></p><p> 4.2.6 顯示本程序作者。</p><p> voi
77、d author()//程序作者信息 </p><p> { printf(" \n本程序作者:楊成 班級(jí):193092-12 學(xué)號(hào):20091001488 謝謝支持~\n\n\n ****************按任意鍵返回~*************");</p><p> getchar();</p>
78、<p> getchar(); </p><p> menu(); </p><p><b> }</b></p><p><b> 4.3 公共函數(shù)</b></p><p> 4.3.1 printf_one()用來顯示文件中的數(shù)據(jù)。</p><p>
79、;<b> 【程序】</b></p><p> void printf_one(int i)//-----------下面這句是用作瀏覽時(shí)輸出的 </p><p> { printf("*************************第%d本書信息*****************\n",i+1);</p><
80、;p> printf("序號(hào):%s",equ[i].num);</p><p> printf(" 書名:%s",equ[i].name);</p><p> printf(" 作者名:%s",equ[i].writter);</p><p> printf(" 價(jià)格:%
81、f\n\n",equ[i].price);</p><p> printf("出版單位:%s",equ[i].indate);</p><p> printf(" 出版時(shí)間:%s",equ[i].out);</p><p> printf(" 分類號(hào):%s\n\n",equ[
82、i].outdate);</p><p> printf("******************************************************\n\n");</p><p><b> } </b></p><p> 4.3.2 save()函數(shù)用來保存數(shù)據(jù)。</p><
83、;p><b> 【程序】</b></p><p> void save(int n) //文件保存函數(shù),用來保存數(shù)據(jù)進(jìn)一個(gè)2進(jìn)制文本文件 </p><p> { int i;</p><p><b> FILE *fp;</b></p><p> if ((fp=fopen(
84、"data.txt","wb"))==NULL){printf("cannot open file~");return ;}</p><p> for(i=0;i<n;i++)</p><p> if(fwrite(&equ[i],sizeof(struct book),1,fp)!=1)</p>
85、<p> printf("file write error~");</p><p> fclose(fp);</p><p><b> }</b></p><p> 4.3.3 printf_back()函數(shù)用來操作成功吼返回菜單時(shí)顯示。</p><p><b> 【程序
86、】</b></p><p> void printf_back() </p><p> { void menu();</p><p> void browse();</p><p><b> int w;</b></p><p> printf("\n\
87、n\n\n");</p><p> printf("接下來您想作甚?\n\n1).瀏覽操作后全部數(shù)據(jù)\t\t2).返回主菜單: [ ]\b\b");</p><p> scanf("%d",&w);</p><p><b> switch(w)</b></p>&l
88、t;p> { case 1:browse();break;</p><p> case 2:menu();break; </p><p> default:printf("\n選擇錯(cuò)誤噢~請(qǐng)?jiān)俅芜x擇 !\n\n");</p><p><b> }</b></p><p>
89、printf_back();}}</p><p> 5 運(yùn)行結(jié)果(附帶抓圖)</p><p> 程序運(yùn)行主界面如下;</p><p> 選擇錄入后運(yùn)行結(jié)果;</p><p> 選擇3圖書信息-添加運(yùn)行后:</p><p><b> 添加成功后:</b></p><
90、p> 選擇瀏覽后的運(yùn)行結(jié)果:</p><p> 選擇查詢后運(yùn)行結(jié)果:主界面</p><p><b> 成功搜索后界面:</b></p><p> 最后,選擇6關(guān)于程序作者:</p><p><b> 6 總結(jié)</b></p><p> 通過這次圖書管理系
91、統(tǒng)C程序設(shè)計(jì),不但使我我掌握了模塊化設(shè)計(jì)方法,還加深了對(duì)結(jié)構(gòu)體和文件這兩種數(shù)據(jù)結(jié)構(gòu)的使用,同時(shí)掌握了文件的輸入輸出,數(shù)據(jù)的搜索等功能的設(shè)計(jì)與實(shí)現(xiàn)。除此之外,我能夠深入的理解結(jié)構(gòu)化程序設(shè)計(jì)思想,熟練地了運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)方法,提高了運(yùn)用C語(yǔ)言進(jìn)行程序設(shè)計(jì)的能力。</p><p><b> 附錄 A 源碼</b></p><p> #include <stdi
92、o.h></p><p> #include <string.h></p><p> #include <stdlib.h></p><p> #define N 100</p><p> struct book</p><p> { char num[10];//序號(hào) &
93、lt;/p><p> char name[20];//書名 </p><p> char writter[20];//作者名 </p><p> float price;//價(jià)格 </p><p> char indate[15];//出版單位 </p><p> char out[15];//出版時(shí)間 <
94、/p><p> char outdate[15];//分類號(hào) </p><p><b> }equ[N];</b></p><p> //********************************以下是搜索函數(shù)***************************** </p><p> void num_se
95、arch()//搜索---序號(hào) </p><p> { void printf_back_search();</p><p> int i,n,c=0;</p><p> int load();</p><p> char a[15];</p><p> void printf_one(int i);&l
96、t;/p><p> void printf_back();</p><p> void search();</p><p><b> n=load();</b></p><p> printf("請(qǐng)輸入序號(hào)\n");</p><p> scanf("%s&quo
97、t;,a);</p><p> for(i=0;i<n;i++)</p><p> { if(strcmp(equ[i].num,a)==0)</p><p><b> { c=1;</b></p><p> printf_one(i);</p><p> printf_bac
98、k_search(); }</p><p><b> } </b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p> default:printf("\n"); }</p><
99、p> getchar();</p><p> search();}</p><p> void writter_search()//作者名-搜索 </p><p> { int i,n,c=0;</p><p> char a[20];</p><p> void printf_back_sear
100、ch();</p><p> void printf_one(int i);</p><p> void printf_back();</p><p> void search();</p><p> int load();</p><p><b> n=load();</b></
101、p><p> printf("請(qǐng)輸入作者名\n");</p><p> scanf("%s",a);</p><p> for(i=0;i<n;i++)</p><p> { if(strcmp(equ[i].writter,a)==0)</p><p><b
102、> { c=1;</b></p><p> printf_one(i);</p><p> printf_back_search(); }</p><p><b> }</b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜
103、索\n\n");break;</p><p> default:printf("\n"); }</p><p> getchar(); </p><p> search();}</p><p> void name_search()//搜索-----書名 </p><p> {
104、 int load();</p><p> void printf_back_search();</p><p> void printf_one( int i);</p><p> void printf_back();</p><p> void search();</p><p> int i,n,
105、c=0;</p><p> char a[20];</p><p><b> n=load();</b></p><p> printf("請(qǐng)輸入書名\n");</p><p> scanf("%s",a);</p><p> for(i=0;i&
106、lt;n;i++)</p><p> {if(strcmp(equ[i].name,a)==0)</p><p><b> { c=1;</b></p><p> printf_one(i);</p><p> printf_back_search();</p><p><b&g
107、t; }</b></p><p><b> }</b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p> default:printf("\n");</p><p&g
108、t;<b> }</b></p><p> getchar(); </p><p> search();}</p><p> void out_search()//出版單位--------------搜索 </p><p> {int load();</p><p> void pri
109、ntf_back_search();</p><p> void printf_one(int i);</p><p> int i,c=0,n;</p><p> char a[15];</p><p> void search();</p><p> void printf_back();</p&g
110、t;<p><b> n=load();</b></p><p> printf("請(qǐng)輸入出版單位\n");</p><p> scanf("%s",a);</p><p> for(i=0;i<n;i++)</p><p> {if(strcmp(e
111、qu[i].indate,a)==0)</p><p><b> { c=1;</b></p><p> printf_one(i);</p><p> printf_back_search();</p><p><b> }</b></p><p><b&g
112、t; }</b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p> default:printf("\n");</p><p><b> }</b></p><p&g
113、t; getchar(); </p><p> search();}</p><p> void indate_search()//出版時(shí)間---搜索 </p><p> {int i,n,c=0;</p><p> char a[20];</p><p> void printf_back_sear
114、ch();</p><p> void printf_one(int i);</p><p> void printf_back();</p><p> void search();</p><p> int load();</p><p><b> n=load();</b></
115、p><p> printf("請(qǐng)輸入出版時(shí)間\n");</p><p> scanf("%s",a);</p><p> for(i=0;i<n;i++)</p><p> { if(strcmp(equ[i].out,a)==0)</p><p><b&g
116、t; {c=1;</b></p><p> printf_one(i);</p><p> printf_back_search(); }</p><p><b> }</b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n
117、");break;</p><p> default:printf("\n");</p><p><b> }</b></p><p> getchar(); </p><p> search();}</p><p> void outdate_search
118、()//分類號(hào)----搜索 </p><p> { int i,n,c=0;</p><p> char a[15];</p><p> void printf_back_search();</p><p> void printf_one(int i);</p><p> void printf_ba
119、ck();</p><p> void search();</p><p> int load();</p><p><b> n=load();</b></p><p> printf("請(qǐng)輸入分類號(hào)\n");</p><p> scanf("%s&quo
120、t;,a);</p><p> for(i=0;i<n;i++)</p><p> {if(strcmp(equ[i].outdate,a)==0)</p><p><b> {c=1;</b></p><p> printf_one(i);</p><p> printf_bac
121、k_search();</p><p><b> }}</b></p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\n\n");break;</p><p> default:printf("\n");</p><p>&
122、lt;b> }</b></p><p> getchar(); </p><p> search();}</p><p> void price_search()//價(jià)格 -----搜索 </p><p> {int i,n,c=0;</p><p><b> float a;&
123、lt;/b></p><p> void printf_back_search();</p><p> void printf_one(int i);</p><p> void printf_back();</p><p> void search();</p><p> int load();<
124、;/p><p><b> n=load();</b></p><p> printf("請(qǐng)輸入設(shè)備價(jià)格\n");</p><p> scanf("%f",&a);</p><p> for(i=0;i<n;i++)</p><p> {i
125、f(equ[i].price==a)</p><p><b> {c=1;</b></p><p> printf_one(i);</p><p> printf_back_search();}}</p><p> switch(c){case 0:printf("對(duì)不起,該序號(hào)不存在,將返回重新搜索\
126、n\n");break;</p><p> default:printf("\n");}</p><p> getchar();</p><p> search();}</p><p> //***********************************搜索函數(shù)到此結(jié)束**************
127、********* </p><p> int modify_data(int i,int n) // 修改數(shù)據(jù)的-----子函數(shù) </p><p> {void printf_one(int i);</p><p><b> int c,w1;</b></p><p><b> do</b&
128、gt;</p><p> {puts("請(qǐng)選擇要修改的類型=>\n\n 1).序號(hào) 2).書名 3).作者名 4).價(jià)格 \n\n5).出版單位 6).出版時(shí)間 7).分類號(hào)\n");</p><p> printf("輸入編號(hào):"); </p><p> scanf("%d&q
129、uot;,&c);</p><p> if(c>7||c<1)</p><p> {puts("\n選擇錯(cuò)誤喲,重新輸入~\n\n");</p><p> getchar();}}</p><p> while(c>7||c<1);//------------------------
130、---注意 C的取值 </p><p><b> do{</b></p><p><b> switch(c)</b></p><p> { case 1: printf("新的序號(hào):");scanf("%s",equ[i].num);break;</p&g
131、t;<p> case 2: printf("新的書名:");scanf("%s",equ[i].name);break;</p><p> case 3: printf("新的作者名:");scanf("%s",equ[i].writter);break; </p><p> ca
132、se 4: printf("新的價(jià)格:");scanf("%f",&equ[i].price);break; </p><p> case 5: printf("新的出版單位:");scanf("%s",equ[i].indate);break; </p><p> case 6
133、: printf("新的出版時(shí)間:");scanf("%s",equ[i].out);break;</p><p> case 7: printf("新的分類號(hào):");scanf("%s",equ[i].outdate);break;</p><p><b> }</b></
134、p><p> printf_one(i);</p><p> printf("確定?\n\n\t1).確定 2).不,重新修改 3).退出(不保存) [ ]\b\b");</p><p> scanf("%d",&w1);}</p><p> while(w1==2);</p&
135、gt;<p> return(w1);}</p><p> int load()//************************讀取文件后返回n </p><p> { FILE *fp;</p><p><b> int i;</b></p><p> if((fp=fopen(&qu
136、ot;data.txt","rb"))==NULL)</p><p> {printf("找不到文件\n");}</p><p> for(i=0;!feof(fp);i++){fread(&equ[i],sizeof(struct book),1,fp);}</p><p> fclose(fp);&
137、lt;/p><p> return (i-1);}</p><p> int main()// --------------主函數(shù)在這 </p><p> { void menu();</p><p><b> menu();</b></p><p><b> return
138、0;</b></p><p> system("pause");}</p><p> void menu()// 菜單函數(shù) </p><p> { void losd();</p><p> void enter();</p><p> void modify();&
139、lt;/p><p> void add();</p><p> void browse();</p><p> void search();</p><p> void order();</p><p><b> int n,w1;</b></p><p><b
140、> do</b></p><p><b> {</b></p><p> puts("**********************圖書管理系統(tǒng)-菜單***************************\n");</p><p> puts("\t\t\t\t1.圖書信息-錄入\n&quo
141、t;);</p><p> puts("\t\t\t\t2.圖書信息-修改\n");</p><p> puts("\t\t\t\t3.圖書信息-添加\n");</p><p> puts("\t\t\t\t4.圖書信息-瀏覽\n");</p><p> puts("
142、;\t\t\t\t5.圖書信息-查詢\n");</p><p> puts("\t\t\t\t6.關(guān)于程序作者\(yùn)n");</p><p> puts("\t\t\t\t7.退出\n");</p><p> puts("******************************************
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- c語(yǔ)言課程設(shè)計(jì)-圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)—圖書信息管理
- 圖書信息管理系統(tǒng)——c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告—圖書信息管理系統(tǒng)
- c語(yǔ)言課程設(shè)計(jì)論文-圖書信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)論文-圖書信息管理系統(tǒng)設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)報(bào)告-- 圖書信息管理系統(tǒng)設(shè)計(jì)
- c++課程設(shè)計(jì)——圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告--c語(yǔ)言程序設(shè)計(jì)
- 圖書信息管理系統(tǒng)-《c語(yǔ)言程序設(shè)計(jì)》課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告---圖書信息管理系統(tǒng)
- 課程設(shè)計(jì)--圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告---圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng) 課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論