版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 圖書館信息管理系統(tǒng)</b></p><p><b> 摘 要</b></p><p> 在現代化的圖書館中,圖書信息管理是一項必備的工作。相比于傳統(tǒng)的人力操作行為,使用現代化的管理工具例如專業(yè)的圖書館圖書管理軟件,能夠減少人力資源的損耗,加快工作的流程,縮短工作時間。在圖書館管理當中,人工統(tǒng)計的速度慢,且容易出
2、現差錯。本信息管理系統(tǒng)的自動化加速了統(tǒng)計工作,提高管理效率。在本程序中,運用了文件來進行儲存,并有增加和修改已有信息的功能,本程序實現了所有題目要求設計的設計要求。</p><p> 關鍵詞:文件,修改,儲存,添加,高效率</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 總體設計1</b></p><p><b> 詳細
4、設計1</b></p><p><b> 4.1主函數2</b></p><p> 4.2各功能模塊設計5</p><p> 4.3 公共函數6</p><p> 5.運行結果(附帶抓圖)7</p><p><b> 6.總結10</b>&l
5、t;/p><p> 附錄A 源碼14</p><p><b> 參考文獻29</b></p><p><b> 1 題目要求</b></p><p><b> 1.1 要求</b></p><p> 圖書信息包括:登錄號、書名、作者名、分
6、類號、出版單位、出版時間、價格等。試設計一圖書館的圖書信息管理系統(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> 本程序將用到文件系統(tǒng),date.txt文件內容作儲存的載體。本程序運行后首先將圖書信息以文件系統(tǒng)讀取并保存到程序的結構體數組當中,然后提供文件輸入、修改、添加、查詢、瀏覽的操作;另外還提供鍵盤式選擇菜單實現功能選擇。</p><p><
8、;b> 總體設計</b></p><p> 根據上面的分析,可以將這個系統(tǒng)分為如下五大模塊:enter圖書信息輸入模塊、modify圖書信息修改模塊、add圖書信息添加模塊、browse圖書信息瀏覽模塊、search圖書信息搜索模塊。而各個模塊之間由menu菜單模塊來做連接,最后由main主函數領導。</p><p><b> 4 詳細設計</b&
9、gt;</p><p><b> 主函數</b></p><p><b> 【數據結構】</b></p><p> 原始數據有圖書信息的圖書序號、書名、作者名、價格、出版單位、出版時間、分類號。所以定義一個全局結構體數組book用于保存原始數據。然后定義全局變量n保存圖書的數目。在結構體定義中,除了價格使用浮點型變量
10、來定義之外,其他的都是用字符型變量來定義。所有的信息均以數組保存。</p><p><b> 【數據結構代碼】</b></p><p> struct book</p><p><b> {</b></p><p> char num[10];//序號 </p><p&g
11、t; char name[20];//書名 </p><p> char writter[20];//作者名 </p><p> float price;//價格 </p><p> char indate[15];//出版單位 </p><p> char out[15];//出版時間 </p><p>
12、 char outdate[15];//分類號 </p><p><b> }equ[N];</b></p><p> 函數通過調用load()讀取文件數據,然后用全局變量n來保存文件返回的書本的數量,然后menu()顯示主菜單。</p><p><b> 【程序】</b></p><p>
13、 int main()// --------------主函數 </p><p> { void menu();//聲明menu函數</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 ()讀取文件數據</p><p> load()函數從data.txt文件讀取數據,將數據保存到程序全局變量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> 向用戶顯示菜單,讓用戶選項進入相應模塊可視化操作。</p><p><b> 【程序】</b></p><p> void menu()// 菜單函數 </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保存用戶輸入的選擇序號</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.關于程序作者\n");</p><p> puts("\t\t\t\t7.退出\n&quo
23、t;);</p><p> puts("************************************************************\n");</p><p> printf("選擇數字(1-7):[ ]\b\b");</p><p> scanf("%d",&n)
24、;</p><p> if(n<1||n>7)// 校檢用戶輸入序號</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) //多分支選擇語句</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> 各功能模塊設計</b></p><p><b> 圖書信息的錄入</b></p><p> 此模塊用于用戶輸入圖書的相關信息,包括序號、書名、作者名、價格、出版單位、出版時間、分類號。</p><p><b
28、> 【程序】</b></p><p> void enter()// 數據的輸入 </p><p> { int i,n;</p><p> void save(int i); //聲明save保存函數</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("現在輸入第%d個數據\n\n",i+1);</p><p> printf("輸入序號\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("輸入圖書價格\n");</p><p> scanf("%f",&equ[i].price);</p><p> printf("輸入出版單位\n");</p><p> scanf("%s",equ[i].
33、indate);</p><p> printf("輸入出版時間\n");</p><p> scanf("%s",equ[i].out);</p><p> printf("輸入分類號\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)//如果不能寫入就報錯</p><p> printf("file write error~");</p><p> fclose(fp);</p><p> printf_back();//返回菜單選項</p><p><b> }</b><
37、/p><p> 對儲存的信息進行修改</p><p> 讓用戶輸入要修改的信息選項,如作者名,輸入新的數據將原值替代掉,即完成了修改。</p><p><b> 【程序】</b></p><p> void modify() //modify 修改數據用的 </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); //聲明一個修改的子函數,到時候會調用。</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("記住你要改的序號,任意鍵繼續(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輸入你要修改的序號:");</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、存在,請重新輸入");</p><p> }while(k==-1);</p><p> printf_one(k);</p><p> w1=modify_data(k,n); //跳轉到 修改的子函數- 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);// 調用保存函數保存</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) // 修改數據的----- 子函數 </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("請選擇要修改的類型=>\n\n 1).序號 2).書名 3).作者名 4).價格 \n\n5).出版單位 6).出版時間 7).分類號\n");<
48、;/p><p> printf("輸入編號:"); </p><p> scanf("%d",&c);</p><p> if(c>7||c<1)</p><p> {puts("\n選擇錯誤喲,重新輸入~\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("新的序號:");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("新的價格:");scanf("%f",&equ[i].price);break; </p><p> case 5: printf("
52、;新的出版單位:");scanf("%s",equ[i].indate);break; </p><p> case 6: printf("新的出版時間:");scanf("%s",equ[i].out);break;</p><p> case 7: printf("新的分類號:");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> 在原有信息的基礎上添加新的信息,打開文件后,把指針移到數據的末尾處然后寫入新的數據。</p><p><b> 【程序】</b></p><p> void add() //--------------添加書本函數 </p><p&
56、gt;<b> { </b></p><p> void printf_back();</p><p> int load();</p><p> void input(int i); //聲明輸入函數</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本書的數據\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> 圖書信息數據的瀏覽&
61、lt;/b></p><p> 主要通過調用printf_one()函數完成,然后輸出到屏幕。</p><p><b> 【程序】</b></p><p> void browse()//---------- 瀏覽函數 </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個記錄****************\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> 主要根據輸入要查詢的信息來和文件中的數據對照,如果相等,則輸出,顯示查找到的數據。否則顯示查找不到。</p><p>
66、<b> 【程序】</b></p><p> void search() //-----搜索總函數 </p><p><b> {</b></p><p><b> int n,w1;</b></p><p> void num_search(); //聲明
67、序號查找函數</p><p> void writter_search(); //聲明 作者名查找函數</p><p> void name_search(); //聲明 書名查找函數</p><p> void price_search(); //聲明 價格查找函數</p><p> void indate_search();
68、 //聲明 出版時間查找函數</p><p> void out_search(); //聲明 出版單位查找函數</p><p> void outdate_search(); //聲明 分類號查找函數</p><p><b> do</b></p><p><b> {</b><
69、;/p><p> printf("*************************搜索圖書信息選擇項*******************\n");</p><p> printf("\t\t\t 1.序號\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.價格\n"); </p><p> printf
71、("\t\t\t 5.出版單位\n");</p><p> printf("\t\t\t 6.出版時間\n");</p><p> printf("\t\t\t 7.分類號\n");</p><p>
72、 printf("\t\t\t 8.退出\n");</p><p> printf("************************************************************\n");</p><p> printf("請輸入號碼[ ]\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本程序作者:楊成 班級:193092-12 學號:20091001488 謝謝支持~\n\n\n ****************按任意鍵返回~*************");</p><p> getchar();</p>
78、<p> getchar(); </p><p> menu(); </p><p><b> }</b></p><p><b> 4.3 公共函數</b></p><p> 4.3.1 printf_one()用來顯示文件中的數據。</p><p>
79、;<b> 【程序】</b></p><p> void printf_one(int i)//-----------下面這句是用作瀏覽時輸出的 </p><p> { printf("*************************第%d本書信息*****************\n",i+1);</p><
80、;p> printf("序號:%s",equ[i].num);</p><p> printf(" 書名:%s",equ[i].name);</p><p> printf(" 作者名:%s",equ[i].writter);</p><p> printf(" 價格:%
81、f\n\n",equ[i].price);</p><p> printf("出版單位:%s",equ[i].indate);</p><p> printf(" 出版時間:%s",equ[i].out);</p><p> printf(" 分類號:%s\n\n",equ[
82、i].outdate);</p><p> printf("******************************************************\n\n");</p><p><b> } </b></p><p> 4.3.2 save()函數用來保存數據。</p><
83、;p><b> 【程序】</b></p><p> void save(int n) //文件保存函數,用來保存數據進一個2進制文本文件 </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()函數用來操作成功吼返回菜單時顯示。</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).瀏覽操作后全部數據\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選擇錯誤噢~請再次選擇 !\n\n");</p><p><b> }</b></p><p>
89、printf_back();}}</p><p> 5 運行結果(附帶抓圖)</p><p> 程序運行主界面如下;</p><p> 選擇錄入后運行結果;</p><p> 選擇3圖書信息-添加運行后:</p><p><b> 添加成功后:</b></p><
90、p> 選擇瀏覽后的運行結果:</p><p> 選擇查詢后運行結果:主界面</p><p><b> 成功搜索后界面:</b></p><p> 最后,選擇6關于程序作者:</p><p><b> 6 總結</b></p><p> 通過這次圖書管理系
91、統(tǒng)C程序設計,不但使我我掌握了模塊化設計方法,還加深了對結構體和文件這兩種數據結構的使用,同時掌握了文件的輸入輸出,數據的搜索等功能的設計與實現。除此之外,我能夠深入的理解結構化程序設計思想,熟練地了運用結構化程序設計方法,提高了運用C語言進行程序設計的能力。</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];//序號 &
93、lt;/p><p> char name[20];//書名 </p><p> char writter[20];//作者名 </p><p> float price;//價格 </p><p> char indate[15];//出版單位 </p><p> char out[15];//出版時間 <
94、/p><p> char outdate[15];//分類號 </p><p><b> }equ[N];</b></p><p> //********************************以下是搜索函數***************************** </p><p> void num_se
95、arch()//搜索---序號 </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("請輸入序號\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("對不起,該序號不存在,將返回重新搜索\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("請輸入作者名\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("對不起,該序號不存在,將返回重新搜
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("請輸入書名\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("對不起,該序號不存在,將返回重新搜索\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("請輸入出版單位\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("對不起,該序號不存在,將返回重新搜索\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()//出版時間---搜索 </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("請輸入出版時間\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("對不起,該序號不存在,將返回重新搜索\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、()//分類號----搜索 </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("請輸入分類號\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("對不起,該序號不存在,將返回重新搜索\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()//價格 -----搜索 </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("請輸入設備價格\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("對不起,該序號不存在,將返回重新搜索\
126、n\n");break;</p><p> default:printf("\n");}</p><p> getchar();</p><p> search();}</p><p> //***********************************搜索函數到此結束**************
127、********* </p><p> int modify_data(int i,int n) // 修改數據的-----子函數 </p><p> {void printf_one(int i);</p><p><b> int c,w1;</b></p><p><b> do</b&
128、gt;</p><p> {puts("請選擇要修改的類型=>\n\n 1).序號 2).書名 3).作者名 4).價格 \n\n5).出版單位 6).出版時間 7).分類號\n");</p><p> printf("輸入編號:"); </p><p> scanf("%d&q
129、uot;,&c);</p><p> if(c>7||c<1)</p><p> {puts("\n選擇錯誤喲,重新輸入~\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("新的序號:");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("新的價格:");scanf("%f",&equ[i].price);break; </p><p> case 5: printf("新的出版單位:");scanf("%s",equ[i].indate);break; </p><p> case 6
133、: printf("新的出版時間:");scanf("%s",equ[i].out);break;</p><p> case 7: printf("新的分類號:");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()// --------------主函數在這 </p><p> { void menu();</p><p><b> menu();</b></p><p><b> return
138、0;</b></p><p> system("pause");}</p><p> void menu()// 菜單函數 </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.關于程序作者\n");</p><p> puts("\t\t\t\t7.退出\n");</p><p> puts("******************************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計-圖書信息管理系統(tǒng)
- c語言課程設計—圖書信息管理
- 圖書信息管理系統(tǒng)——c語言課程設計報告
- c語言圖書信息管理系統(tǒng)課程設計報告
- c語言課程設計報告—圖書信息管理系統(tǒng)
- c語言課程設計圖書信息管理系統(tǒng)
- c語言課程設計報告—圖書信息管理系統(tǒng)
- c語言課程設計圖書信息管理系統(tǒng)
- c語言課程設計報告—圖書信息管理系統(tǒng)
- c語言課程設計論文-圖書信息管理系統(tǒng)設計
- c語言課程設計論文-圖書信息管理系統(tǒng)設計
- c語言課程設計報告-- 圖書信息管理系統(tǒng)設計
- c++課程設計——圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設計報告--c語言程序設計
- 圖書信息管理系統(tǒng)-《c語言程序設計》課程設計報告
- c++課程設計報告---圖書信息管理系統(tǒng)
- 課程設計--圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng)課程設計
- c++課程設計報告---圖書信息管理系統(tǒng)
- 圖書信息管理系統(tǒng) 課程設計
評論
0/150
提交評論