版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 本科生課程論文封面</b></p><p> 課程名稱 C語言課程設(shè)計(jì) </p><p> 教師姓名 </p><p> 本科生姓名 </p><p> 本科生學(xué)號(hào)
2、 </p><p> 本科生專業(yè) 資源勘查工程(油氣方向)</p><p> 所在院系 資源學(xué)院 </p><p> 類別: </p><p> 日期: 2012年01月05日 </p><p><b> 課程設(shè)計(jì)評(píng)
3、語</b></p><p> 注:1、無評(píng)閱人簽名成績(jī)無效;</p><p> 2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;</p><p> 3、如有平時(shí)成績(jī),必須在上面評(píng)分表中標(biāo)出,并計(jì)算入總成績(jī)。</p><p><b> 目 錄</b></p><p> 課程設(shè)計(jì)評(píng)語
4、………………………………………………2</p><p> 目 錄………………………………………………………..3</p><p> 1.課程論文題目…………………………………………..4</p><p> 2.程序設(shè)計(jì)思路…………………………………………..4</p><p> 3.功能模塊圖……………………………………………...5
5、</p><p> 4.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計(jì)……………………………………………7</p><p> 5.算法設(shè)計(jì)…………………………………………………7</p><p> 6.程序代碼…………………………………………………9.</p><p> 7.程序運(yùn)行結(jié)果……………………………………………26</p><p>
6、 8.編程中遇到的困難及解決方法………………………….27</p><p> 9.總結(jié)心得及良好建議…………………………………….28</p><p> 10.致謝………………………………………………………28</p><p><b> 課程論文題目</b></p><p><b> 【要求】</
7、b></p><p> 圖書管理信息包括:圖書名稱、圖書編號(hào)、單價(jià)、作者、存在狀態(tài)、借書人姓名、性別、學(xué)號(hào)等,試設(shè)計(jì)一圖書管理系統(tǒng),使之能提供以下功能:</p><p> 新圖書基本信息的輸入。</p><p> 圖書基本信息的查詢。</p><p> 對(duì)撤銷圖書信息的刪除。</p><p><b&
8、gt; 辦理借書手續(xù)。</b></p><p><b> 辦理還書手續(xù)。</b></p><p><b> 【提示】</b></p><p> 建立圖書管理信息結(jié)構(gòu)體,結(jié)構(gòu)體成員包括圖書名稱、圖書編號(hào)、單價(jià)、作者、存在狀態(tài)、借書人姓名、性別、學(xué)號(hào)。存在狀態(tài)設(shè)為整型,可用不同數(shù)字代表借還狀態(tài)。借書和還書手
9、續(xù)要注意結(jié)構(gòu)體的成員變量存在狀態(tài)的值。</p><p><b> 程序設(shè)計(jì)思路</b></p><p> 整個(gè)系統(tǒng)制造的而過程中,涉及了較多C語言知識(shí)點(diǎn),對(duì)于不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作以分析和總結(jié),并結(jié)合這個(gè)課題進(jìn)行綜合的應(yīng)用,在一定程度上做到了對(duì)所學(xué)知識(shí)融會(huì)貫通。進(jìn)一步加深、鞏固了所學(xué)的專業(yè)的基本理論知識(shí),培養(yǎng)了綜合分析問題、解決問題的能力。在設(shè)計(jì)
10、程序時(shí),實(shí)現(xiàn)了程序的模塊化、結(jié)構(gòu)化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面簡(jiǎn)單,易操作。 </p><p><b> 功能模塊圖</b></p><p><b> 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)</b></p><p> 當(dāng)運(yùn)行此程序時(shí),首先進(jìn)入系統(tǒng)主界面,然后可以選擇1.進(jìn)入系統(tǒng),2.退出系統(tǒng)。選擇1后進(jìn)入系統(tǒng),然后顯示功能菜單按數(shù)字鍵
11、選擇所需服務(wù)。功能菜單中,1錄入所有書籍信息,2進(jìn)入圖書管理系統(tǒng),3進(jìn)入圖書查詢系統(tǒng),4進(jìn)入圖書借還系統(tǒng),5保存所有圖書信息,6顯示菜單,7返回上級(jí)菜單。 當(dāng)出現(xiàn)"請(qǐng)選擇"時(shí),需要輸入選項(xiàng)前的數(shù)字,輸完之后按回車(下同)。首次運(yùn)行系統(tǒng)需要先選擇1錄入庫(kù)存書籍信息,然后再選擇其他操作。當(dāng)選擇2時(shí)會(huì)進(jìn)入圖書管理系統(tǒng),在這里可以選擇添加、修改信息等操作,需要注意的是每次執(zhí)行完添加、修改等操作后需要手動(dòng)選擇保存圖書信息的操作
12、,不然磁盤文件信息不會(huì)改變(下同)。返回上級(jí)菜單進(jìn)入圖書查詢系統(tǒng)、圖書借還系統(tǒng)的操作和管理系統(tǒng)的差不多,用戶可自己嘗試使用,所有信息最后均以磁盤文件方式保存,而且格式固定,在輸入和輸出均按這種格式,用戶在使用時(shí)必須要按這種格式輸入,否則會(huì)出現(xiàn)文件信息錯(cuò)誤。</p><p><b> 算法設(shè)計(jì)</b></p><p> (1)、整個(gè)系統(tǒng)除了主函數(shù)外,另外還有各種功能
13、子函數(shù),利用無限次循環(huán)語句while()和選擇語句swithch()實(shí)現(xiàn)各個(gè)子函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來調(diào)用相應(yīng)的函數(shù),以實(shí)現(xiàn)相應(yīng)的功能。主要實(shí)現(xiàn)了圖書的錄入、存儲(chǔ)、查詢、添加、刪除、修改、借書、還書等功能。</p><p> (2)、Cbook();這是一個(gè)指針函數(shù),它主要實(shí)現(xiàn)了鏈表的創(chuàng)建,并且在創(chuàng)建過程中從文件讀取信息到鏈表中,以用于后面其他函數(shù)的操作。它返回的時(shí)一個(gè)單向鏈表的頭。其他函數(shù)調(diào)用時(shí)只
14、需調(diào)用它返回的頭即可。</p><p> (3)、mainmenu();、menu1();、glmenu();、cxmenu();、jhmenu();這五個(gè)函數(shù)時(shí)整個(gè)圖書管理系統(tǒng)的全部菜單函數(shù),mainmenu();為系統(tǒng)主界面,進(jìn)入時(shí)可選擇進(jìn)入程序和退出程序。menu1();為進(jìn)入程序時(shí)顯示的功能菜單,在此菜單可以選擇錄入、保存圖書信息,也可選擇進(jìn)入其他子系統(tǒng)。glmenu();此菜單為進(jìn)入圖書管理系統(tǒng)的菜單
15、,在此可以選擇添加、刪除、修改圖書等操作。cxmenu();為查詢系統(tǒng)的菜單,在此可以選擇按書名、編號(hào)、作者等方式進(jìn)行查詢圖書。jhmenu();為借書還書的子菜單,在此可以選擇借書還書操作。操作完成后按提示信息進(jìn)行文件的保存操作。</p><p> (4)、print();這個(gè)函數(shù)為鏈表的輸出函數(shù),把鏈表的頭傳給函數(shù)后,可輸出整個(gè)鏈表的所有信息。、</p><p> (5)、hold
16、();這個(gè)函數(shù)為保存信息到文件的函數(shù),使用時(shí)將鏈表的頭傳給函數(shù),函數(shù)可將整個(gè)鏈表的所有信息存入到磁盤文件中。并覆蓋掉源文件,以便以后調(diào)用。 </p><p> (6) 、holdcx();這個(gè)函數(shù)為保存查詢信息到文件的函數(shù),使用時(shí)將查詢到的節(jié)點(diǎn)指針傳給函數(shù),函數(shù)會(huì)將該節(jié)點(diǎn)所有信息保存到文件中去,文件寫入是以追加方式寫入,以便用戶查看。</p><p> (7)、findnumber
17、();findboookname();findauthor();這三個(gè)函數(shù)為查詢圖書信息函數(shù),findnumber();按編號(hào)查詢、findboookname();按書名查詢、findauthor();按作者查詢。查詢到信息后返回信息所在節(jié)點(diǎn),查詢不到則返回空指針。</p><p> (8)、add();sortnumber();delbook();revamp();這四個(gè)函數(shù)為功能函數(shù),add();添加一本圖
18、書信息、sortnumber();將圖書按編號(hào)排序、delbook();刪除一本圖書信息、revamp();修改一本圖書信息。調(diào)用時(shí)將鏈表頭指針傳遞給函數(shù),函數(shù)返回經(jīng)過功能操作后的頭指針。</p><p> (9)、borrowbook();returnbook();這兩個(gè)函數(shù)是借書還書的函數(shù),borrowbook();借書returnbook();還書。在借還后系統(tǒng)會(huì)修改圖書的在庫(kù)信息。調(diào)用時(shí)將鏈表頭指針傳遞
19、給函數(shù),函數(shù)返回經(jīng)過功能操作后的頭指針。并會(huì)出提示信息讓用戶返回菜單保存信息。</p><p><b> 程序代碼</b></p><p> # include <stdio.h></p><p> # include <stdlib.h></p><p> # include <s
20、tring.h></p><p> typedef struct link</p><p><b> {</b></p><p> char number[100];//編號(hào)</p><p> char bookname[100];//書名</p><p> char author
21、[100];//作者</p><p> char publish[100];//出版社</p><p> char time[100];//出版時(shí)間</p><p> float price;//價(jià)格</p><p> char status[100];//在庫(kù)狀態(tài) </p><p> struct link
22、 *next; </p><p><b> }link;</b></p><p><b> //函數(shù)聲明 </b></p><p> link *Cbook();</p><p> void mainmenu();</p><
23、;p> void menu1();</p><p> void glmenu();</p><p> void cxmenu();</p><p> void jhmenu();</p><p> void print(link *head);</p><p> void hold(link *he
24、ad);</p><p> void holdcx(link *t);</p><p> link *findnumber(link *head);</p><p> link *findboookname(link *head);</p><p> link *findauthor(link *head);</p>&
25、lt;p> link *add(link *head);</p><p> link *sortnumber(link *head);</p><p> link *delbook(link *head);</p><p> link *revamp(link *head);</p><p> link *borrowbook
26、(link *head);</p><p> link *returnbook(link *head);</p><p><b> //主函數(shù) </b></p><p><b> main()</b></p><p><b> {</b></p><
27、p> int a,b,c,d,e;</p><p> link *h,*t;</p><p> L:system("cls");//L為一個(gè)標(biāo)志位,用于從子函數(shù)返回主界面 </p><p> mainmenu();</p><p> while(1)//主程序循環(huán)運(yùn)行 </p><p&g
28、t;<b> {</b></p><p> scanf("%d",&a);</p><p><b> switch(a)</b></p><p><b> {</b></p><p> case 1://進(jìn)入主系統(tǒng) </p>
29、<p><b> {</b></p><p> B: system("cls");//B為一個(gè)標(biāo)志位,用于從子函數(shù)返回主功能界面 </p><p><b> menu1();</b></p><p><b> while(1)</b></p><
30、;p><b> {</b></p><p> scanf("%d",&b);</p><p> switch(b) </p><p><b> {</b></p><p> case 1://圖書信息的錄入 </p><p>&l
31、t;b> {</b></p><p> h=Cbook();</p><p><b> }break;</b></p><p> case 2://進(jìn)入圖書管理的子系統(tǒng) </p><p><b> {</b></p><p> system(&q
32、uot;cls");</p><p><b> glmenu();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> scanf("%d",&c);</p>
33、;<p><b> switch(c)</b></p><p><b> {</b></p><p> case 1://顯示所有圖書信息</p><p><b> {</b></p><p><b> print(h);</b>&
34、lt;/p><p><b> }break;</b></p><p> case 2://添加一本圖書信息 </p><p><b> {</b></p><p><b> h=add(h);</b></p><p> h=sortnumber(h
35、);</p><p><b> print(h);</b></p><p><b> }break;</b></p><p> case 3://修改一本書的信息 </p><p><b> {</b></p><p> revamp(h);&
36、lt;/p><p><b> }</b></p><p><b> break;</b></p><p> case 4://刪除一本圖書信息 </p><p><b> {</b></p><p> h=delbook(h);</p>
37、<p><b> print(h);</b></p><p><b> }break;</b></p><p> case 5://保存圖書信息 </p><p><b> {</b></p><p><b> hold(h); </b&
38、gt;</p><p><b> }break;</b></p><p><b> case 6:</b></p><p><b> {</b></p><p> goto B; </p><p><b> }break
39、;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }break;</b></p><p> case 3://進(jìn)入圖書查詢的子系統(tǒng)</p><p><b>
40、{</b></p><p> system("cls");</p><p><b> cxmenu();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p&
41、gt; scanf("%d",&d);</p><p><b> switch(d)</b></p><p><b> {</b></p><p> case 1://顯示所有圖書信息 </p><p><b> {</b></p&g
42、t;<p><b> print(h);</b></p><p><b> }break;</b></p><p> case 2://按編號(hào)查詢圖書 </p><p><b> {</b></p><p> t=findnumber(h);</p
43、><p> if(t==NULL)</p><p> printf("沒有要查詢的圖書!??!");</p><p> if(t!=NULL)</p><p><b> {</b></p><p> printf("查詢的圖書為:");</p>
44、;<p> printf("\n");</p><p> printf("\n**************************************************\n");</p><p> printf("\n編號(hào)\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n&quo
45、t;); </p><p> printf("\n");</p><p> printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time);</p><p> printf("\t\t%
46、.2f",t->price);</p><p> printf("\t\t%s",t->status);</p><p> printf("\n");</p><p><b> }</b></p><p><b> }break;</b
47、></p><p> case 3://按書名查詢圖書 </p><p> { </p><p> t=findboookname(h);</p><p> if(t==NULL)</p><p> printf("沒有要查詢的圖書?。?!");
48、</p><p> if(t!=NULL)</p><p><b> {</b></p><p> printf("查詢的圖書為:");</p><p> printf("\n");</p><p> printf("\n********
49、******************************************\n");</p><p> printf("\n編號(hào)\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n"); </p><p> printf("\n");</p><p> printf(&q
50、uot;%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t->time);</p><p> printf("\t\t%.2f",t->price);</p><p> printf("\t\t%s",t->statu
51、s);</p><p> printf("\n");</p><p><b> }</b></p><p><b> }break;</b></p><p> case 4://按作者查詢圖書 </p><p><b> {</b
52、></p><p> t=findauthor(h);</p><p> if(t==NULL)</p><p> printf("沒有要查詢的圖書!??!");</p><p> if(t!=NULL)</p><p><b> {</b></p>
53、<p> printf("查詢的圖書為:");</p><p> printf("\n");</p><p> printf("\n**************************************************\n");</p><p> printf("
54、\n編號(hào)\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n"); </p><p> printf("\n");</p><p> printf("%s\t%s\t%s\t%s\t%s",t->number,t->bookname,t->author,t->publish,t-&g
55、t;time);</p><p> printf("\t\t%.2f",t->price);</p><p> printf("\t\t%s",t->status);</p><p> printf("\n");</p><p><b> }</b
56、></p><p><b> }</b></p><p><b> break;</b></p><p> case 5://保存查詢信息 </p><p><b> {</b></p><p> holdcx(t);</
57、p><p><b> }break;</b></p><p> case 6://返回上級(jí)菜單 </p><p><b> {</b></p><p><b> goto B;</b></p><p><b> }break;</b
58、></p><p><b> }</b></p><p><b> }</b></p><p><b> }break;</b></p><p> case 4://圖書借還系統(tǒng) </p><p><b> {</b>
59、;</p><p> system("cls");</p><p><b> jhmenu();</b></p><p><b> while(1)</b></p><p><b> {</b></p><p> scanf
60、("%d",&e);</p><p><b> switch(e)</b></p><p><b> {</b></p><p> case 1://借書 </p><p><b> {</b></p><p> b
61、orrowbook(h);</p><p><b> }break;</b></p><p> case 2://還書 </p><p><b> {</b></p><p> returnbook(h); </p><p><b> }break;<
62、;/b></p><p> case 3://返回上級(jí)菜單 </p><p><b> {</b></p><p><b> goto B;</b></p><p><b> }break;</b></p><p><b> }
63、</b></p><p><b> } </b></p><p><b> }break;</b></p><p> case 5:// 保存圖書信息到文件 </p><p><b> {</b></p><p><b>
64、 hold(h); </b></p><p><b> }break;</b></p><p> case 6://顯示主功能菜單 </p><p><b> {</b></p><p> system("cls");</p>
65、<p><b> menu1();</b></p><p><b> }break;</b></p><p> case 7://返回系統(tǒng)主界面 </p><p><b> {</b></p><p><b> goto L; </b>
66、</p><p><b> }break;</b></p><p><b> }</b></p><p><b> }</b></p><p><b> }break;</b></p><p> case 0://退出系
67、統(tǒng) </p><p><b> {</b></p><p> printf("\t\t\t感謝使用,再見?。?!");</p><p><b> exit(0);</b></p><p><b> }</b></p><p>&
68、lt;b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> //鏈表的創(chuàng)建和信息的錄入 </p><p> link *Cbook()</p><p><b> {</b&
69、gt;</p><p><b> int n=0;</b></p><p> link *p,*q,*head;</p><p><b> FILE *fp;</b></p><p> fp=fopen("圖書信息.txt","r+");</p&
70、gt;<p> if(fp==NULL)</p><p> printf("沒有找到文件,請(qǐng)檢查……");</p><p> p=(link *)malloc(sizeof(link));</p><p> if(p==NULL)</p><p> printf("申請(qǐng)內(nèi)存出錯(cuò)!??!\n&
71、quot;);</p><p> fscanf(fp,"%s%s%s%s%s",p->number,p->bookname,p->author,p->publish,p->time);</p><p> fscanf(fp,"%f",&p->price);</p><p> f
72、scanf(fp,"%s",p->status);</p><p> while(feof(fp)==0)</p><p><b> {</b></p><p><b> n++;</b></p><p><b> if(n==1)</b>&l
73、t;/p><p><b> {</b></p><p> head=p; </p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p>&
74、lt;p><b> q=p;</b></p><p> p=(link *)malloc(sizeof(link));</p><p> if(p==NULL)</p><p> printf("申請(qǐng)內(nèi)存出錯(cuò)!??!\n");</p><p> fscanf(fp,"%s%s%
75、s%s%s",p->number,p->bookname,p->author,p->publish,p->time);</p><p> fscanf(fp,"%f",&p->price);</p><p> fscanf(fp,"%s",p->status);</p>&
76、lt;p> q->next=p;</p><p><b> }</b></p><p><b> }</b></p><p> p->next=NULL;</p><p> fclose(fp);</p><p> printf("信息
77、已錄入?。?!");</p><p> return head;</p><p><b> }</b></p><p><b> //系統(tǒng)主界面 </b></p><p> void mainmenu()</p><p><b> {</b&
78、gt;</p><p> printf("\n**************************************************\n");</p><p> printf("\n** 歡迎使用圖書管理系統(tǒng) **\n");</p><p> printf(&
79、quot;\n** 1.進(jìn)入系統(tǒng)");</p><p> printf("\t0.退出系統(tǒng) **\n");</p><p> printf("\n**************************************************\n");</p><p&
80、gt; printf("\n 請(qǐng)選擇");</p><p><b> }</b></p><p><b> //功能菜單 </b></p><p> void menu1()</p><p><b> {</b></p><
81、p> printf("\n**************************************************\n");</p><p> printf("\n** 1.錄入所有書籍信息 **\n");</p><p> printf("\n**
82、 2.進(jìn)入圖書管理系統(tǒng) **\n");</p><p> printf("\n** 3.進(jìn)入圖書查詢系統(tǒng) **\n");</p><p> printf("\n** 4.進(jìn)入圖書借還系統(tǒng) **\n"
83、);</p><p> printf("\n** 5.保存所有圖書信息 **\n");</p><p> printf("\n** 6.顯示菜單 **\n");</p><p> printf(&quo
84、t;\n** 7.返回上級(jí)菜單 **\n");</p><p> printf("\n**************************************************\n"); </p><p> printf("\n請(qǐng)選擇");</p>
85、<p><b> }</b></p><p><b> //管理系統(tǒng)菜單 </b></p><p> void glmenu()</p><p><b> {</b></p><p> printf("\n********************
86、******************************\n");</p><p> printf("\n** 1.顯示所有圖書信息 **\n");</p><p> printf("\n** 2.添加一本圖書信息 **\n");
87、</p><p> printf("\n** 3.修改一本圖書信息 **\n");</p><p> printf("\n** 4.刪除一本圖書信息 **\n");</p><p> printf("\n**
88、 5.保存所有圖書信息 **\n");</p><p> printf("\n** 6.返回上級(jí)菜單 **\n");</p><p> printf("\n****************************************
89、**********\n");</p><p> printf("\n請(qǐng)選擇");</p><p><b> }</b></p><p><b> //查詢系統(tǒng)菜單 </b></p><p> void cxmenu()</p><p>
90、<b> {</b></p><p> printf("\n**************************************************\n");</p><p> printf("\n** 1.顯示所有圖書信息 **\n");</p>
91、<p> printf("\n** 2.按編號(hào)查詢圖書 **\n");</p><p> printf("\n** 3.按書名查詢圖書 **\n");</p><p> printf("\n**
92、 4.按作者查詢圖書 **\n");</p><p> printf("\n** 5.保存所查詢圖書的信息 **\n");</p><p> printf("\n** 6.返回上級(jí)菜單 **\n"
93、;);</p><p> printf("\n**************************************************\n");</p><p> printf("\n請(qǐng)選擇");</p><p><b> }</b></p><p><b&
94、gt; //借還系統(tǒng)菜單</b></p><p> void jhmenu()</p><p><b> {</b></p><p> printf("\n**************************************************\n");</p><p>
95、; printf("\n** 1.借書 **\n");</p><p> printf("\n** 2.還書 **\n");</p><p> printf("\n**
96、 3.返回上級(jí)菜單 **\n");</p><p> printf("\n**************************************************\n");</p><p> printf("\n請(qǐng)選擇");</p><p><b&g
97、t; } </b></p><p><b> //輸出鏈表函數(shù) </b></p><p> void print(link *head)</p><p> { </p><p><b> link *p;</b></p><
98、;p><b> p=head;</b></p><p> if(p==NULL)</p><p><b> {</b></p><p> printf("文件中沒有圖書信息\n");</p><p><b> }</b></p>
99、<p><b> else{</b></p><p> printf("\n");</p><p> printf("\n**************************************************\n");</p><p> printf("\n編號(hào)
100、\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n"); </p><p> while(p!=NULL)</p><p><b> {</b></p><p> printf("\n");</p><p> printf("%s\t%s\
101、t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time);</p><p> printf("\t\t%.2f",p->price);</p><p> printf("\t\t%s",p->status);</p&g
102、t;<p> printf("\n");</p><p> p=p->next;</p><p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p
103、> //保存信息到文件子函數(shù)</p><p> void hold(link *head)</p><p><b> {</b></p><p><b> link *p;</b></p><p><b> FILE *fp;</b></p>&
104、lt;p> fp=fopen("圖書信息.txt","w+");</p><p> if(fp==NULL)</p><p><b> {</b></p><p> printf("文件操作出錯(cuò)?。。?quot;);</p><p><b> e
105、xit(1);</b></p><p><b> }</b></p><p><b> p=head;</b></p><p> for(;p!=NULL;p=p->next)</p><p> { fprintf(fp,"\n");</p&
106、gt;<p> fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time);</p><p> fprintf(fp,"\t\t%.2f",p->price);</p><p> fpri
107、ntf(fp,"\t\t%s",p->status);</p><p> } </p><p> fclose(fp);</p><p> printf("信息已保存。");</p><p><b> }</b></p>&
108、lt;p> //子函數(shù)保存查詢的信息到文件 </p><p> void holdcx(link *t)</p><p><b> {</b></p><p> link *p=NULL;</p><p><b> FILE *fp;</b></p><p>
109、 fp=fopen("查詢.txt","a+");</p><p><b> p=t;</b></p><p> fprintf(fp,"查詢到的信息為:\n");</p><p> fprintf(fp,"\n");</p><p>
110、; fprintf(fp,"\n**************************************************\n");</p><p> fprintf(fp,"\n編號(hào)\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n");</p><p> fprintf(fp,"\n&qu
111、ot;);</p><p> fprintf(fp,"%s\t%s\t%s\t%s\t%s",p->number,p->bookname,p->author,p->publish,p->time);</p><p> fprintf(fp,"\t\t%.2f",p->price);</p><
112、;p> fprintf(fp,"\t\t%s",p->status);</p><p> fprintf(fp,"\n");</p><p> fclose(fp);</p><p> printf("信息已保存!!!");</p><p><b>
113、}</b></p><p> //子函數(shù)按編號(hào)查詢</p><p> link *findnumber(link *head)</p><p><b> {</b></p><p> char key[100];</p><p> link *h,*t1=NULL;</
114、p><p> printf("請(qǐng)輸入圖書的編號(hào):");</p><p> getchar();</p><p> gets(key);</p><p> for(h=head;h!=NULL;h=h->next)</p><p><b> {</b></p&g
115、t;<p> if(strcmp(key,h->number)==0)</p><p><b> {</b></p><p><b> t1=h;</b></p><p><b> break;</b></p><p><b> }<
116、;/b></p><p><b> }</b></p><p> return t1;</p><p> } </p><p> //子函數(shù)按書名查詢</p><p> link *findboookname(li
117、nk *head)</p><p><b> {</b></p><p> char key[100];</p><p> link *h,*t2=NULL;</p><p> printf("請(qǐng)輸入圖書的書名:");</p><p> getchar();</
118、p><p> gets(key);</p><p> for(h=head;h!=NULL;h=h->next)</p><p><b> {</b></p><p> if(strcmp(key,h->bookname)==0)</p><p><b> {</
119、b></p><p><b> t2=h;</b></p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p><p> return t2;
120、</p><p><b> }</b></p><p> //子函數(shù)按作者查詢</p><p> link *findauthor(link *head)</p><p><b> {</b></p><p> char key[100];</p>&
121、lt;p> link *h,*t3=NULL;</p><p> printf("請(qǐng)輸入作者姓名:");</p><p> getchar();</p><p> gets(key);</p><p> for(h=head;h!=NULL;h=h->next)</p><p>
122、;<b> {</b></p><p> if(strcmp(key,h->author)==0)</p><p><b> {</b></p><p><b> t3=h;</b></p><p><b> break;</b></
123、p><p><b> }</b></p><p><b> }</b></p><p> return t3;</p><p><b> }</b></p><p> //添加一本圖書信息 </p&
124、gt;<p> link *add(link *head)</p><p><b> {</b></p><p> link *h,*h1;</p><p><b> h1=head;</b></p><p> h=(link *)malloc(sizeof(link));&
125、lt;/p><p> if(h==NULL)</p><p><b> {</b></p><p> printf("申請(qǐng)內(nèi)存出錯(cuò)?。。?quot;);</p><p><b> exit(1);</b></p><p><b> }</b&g
126、t;</p><p> printf("請(qǐng)輸入添加圖書的信息");</p><p> printf("\n");</p><p> printf("\n**************************************************\n");</p><p>
127、; printf("\n編號(hào)\t\t書名\t\t作者\(yùn)t\t出版社\t\t出版時(shí)間\t\t價(jià)格\t\t狀態(tài)\n");</p><p> scanf("%s%s%s%s%s",h->number,h->bookname,h->author,h->publish,h->time);</p><p> scanf(&qu
128、ot;%f",&h->price);</p><p> scanf("%s",h->status);</p><p> h->next=h1;</p><p><b> return h;</b></p><p><b> }</b>&
129、lt;/p><p> //將鏈表按編號(hào)排序</p><p> link *sortnumber(link *head)</p><p><b> {</b></p><p> link *p,*q,*temp;</p><p> temp=(link *)malloc(sizeof(link
130、));</p><p> if(temp==NULL)</p><p><b> {</b></p><p> printf("申請(qǐng)內(nèi)存出錯(cuò)?。?!");</p><p><b> exit(1);</b></p><p><b> }&
131、lt;/b></p><p> for(p=head;p!=NULL;p=p->next)</p><p><b> {</b></p><p> for(q=p->next;q!=NULL;q=q->next)</p><p><b> {</b></p>
132、;<p> if(strcmp(p->number,q->number)>0)</p><p><b> {</b></p><p> strcpy(temp->number,p->number);</p><p> strcpy(temp->bookname,p->booknam
133、e);</p><p> strcpy(temp->author,p->author);</p><p> strcpy(temp->publish,p->publish);</p><p> strcpy(temp->time,p->time);</p><p> temp->price=p
134、->price;</p><p> strcpy(temp->status,p->status); </p><p> strcpy(p->number,q->number);</p><p> strcpy(p->bookname,q->bookname);</p><p> str
135、cpy(p->author,q->author);</p><p> strcpy(p->publish,q->publish);</p><p> strcpy(p->time,q->time);</p><p> p->price=q->price;</p><p> strcpy(
136、p->status,temp->status); </p><p> strcpy(q->number,temp->number);</p><p> strcpy(q->bookname,temp->bookname);</p><p> strcpy(q->author,temp->author);</
137、p><p> strcpy(q->publish,temp->publish);</p><p> strcpy(q->time,temp->time);</p><p> q->price=temp->price;</p><p> strcpy(q->status,temp->statu
138、s);</p><p><b> } </b></p><p><b> }</b></p><p><b> }</b></p><p> return head;</p><p><b> } </b></p&
139、gt;<p> //刪除一本圖書信息 </p><p> link *delbook(link *head)</p><p><b> {</b></p><p><b> int k=0;</b></p><p> char str[10];</p><
140、p> link *h,*t,*p;</p><p> h=t=p=head;</p><p> printf("請(qǐng)輸入要?jiǎng)h除圖書的書名:");</p><p> getchar();</p><p> gets(str);</p><p> for(;p!=NULL;p=p->
141、;next)</p><p><b> {</b></p><p><b> k++;</b></p><p><b> if(k>2)</b></p><p><b> {</b></p><p> t=t->
142、;next; </p><p><b> }</b></p><p> if((strcmp(p->bookname,str)==0)&&(k==1))</p><p><b> {</b></p><p> h=p-
143、>next;</p><p><b> }</b></p><p> else if(strcmp(p->bookname,str)==0&&k>1)</p><p><b> { </b></p><p> t->next=p->next;&l
144、t;/p><p><b> }</b></p><p> else if(strcmp(p->bookname,str)==0&&p->next==NULL)</p><p><b> {</b></p><p><b> t=NULL;</b>
145、;</p><p><b> }</b></p><p><b> }</b></p><p><b> return h;</b></p><p><b> }</b></p><p> //修改一本書信息(除書名外)
146、</p><p> link *revamp(link *head)</p><p><b> {</b></p><p> link *h,*t;</p><p><b> h=head;</b></p><p> t=findboookname(h);</
147、p><p> if(t==NULL)</p><p> printf("沒有找到……");</p><p><b> else</b></p><p><b> {</b></p><p> printf("修改前圖書信息為:")
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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語言課程設(shè)計(jì)報(bào)告~圖書管理系統(tǒng)
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c語言圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 圖書管理系統(tǒng)-c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)--圖書管理
- 小型圖書管理系統(tǒng)c語言課程設(shè)計(jì)報(bào)告
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)--圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)(圖書管理系統(tǒng))
- c語言課程設(shè)計(jì)-圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)---圖書管理系統(tǒng)
- c課程設(shè)計(jì)報(bào)告-- 圖書管理系統(tǒng)
- c語言課程設(shè)計(jì)---某高校圖書管理系統(tǒng)
- 圖書管理信息課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告-圖書管理系統(tǒng)
- c#圖書管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- c課程設(shè)計(jì)---圖書管理系統(tǒng)課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--小型圖書管理系統(tǒng)
- 圖書信息管理系統(tǒng)——c語言課程設(shè)計(jì)報(bào)告
- c語言圖書信息管理系統(tǒng)課程設(shè)計(jì)報(bào)告
評(píng)論
0/150
提交評(píng)論