




已閱讀5頁(yè),還剩20頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
合肥學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系課程設(shè)計(jì)報(bào)告20102011學(xué)年第二學(xué)期課程 C語(yǔ)言課程設(shè)計(jì)課程設(shè)計(jì)名稱圖書管理系統(tǒng)學(xué)生姓名學(xué)號(hào)專業(yè)班級(jí) 指導(dǎo)教師 2011年6月一、需求分析為了滿足圖書管理的要求,通過(guò)計(jì)算機(jī)技術(shù)給圖書管理人員和讀者借、還書帶來(lái)便利。使用c語(yǔ)言編寫了圖書管理系統(tǒng)。本系統(tǒng)主要實(shí)現(xiàn)圖書信息管理的功能,通過(guò)此系統(tǒng)可對(duì)圖書館庫(kù)存圖書信息進(jìn)行管理和維護(hù)操作。實(shí)現(xiàn)了圖書館內(nèi)管理的一般功能,包括查詢、借書、還書、添加、刪除、修改圖書信息等。所設(shè)計(jì)的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來(lái)進(jìn)行各種處理,并且在此過(guò)程中能夠盡可能的兼容用戶使用過(guò)程中可能出現(xiàn)的異常情況。圖書信息包括編號(hào)、書名、作者、出版社、出版日期、價(jià)格、在庫(kù)狀態(tài)等。圖書信息的錄入和顯示要求有一定的規(guī)范格式,錄入的圖書信息用文件形式保存,并可以對(duì)其進(jìn)行瀏覽、查詢、修改、刪除等基本操作。整個(gè)程序?qū)崿F(xiàn)鏈表操作,對(duì)圖書信息的操作逐個(gè)地進(jìn)行,一個(gè)圖書信息的更改不應(yīng)影響其他的圖書記錄。二、算法設(shè)計(jì):1設(shè)計(jì)思想:整個(gè)系統(tǒng)制造的而過(guò)程中,涉及了較多C語(yǔ)言知識(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)了綜合分析問(wèn)題、解決問(wèn)題的能力。在設(shè)計(jì)程序時(shí),實(shí)現(xiàn)了程序的模塊化、結(jié)構(gòu)化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面簡(jiǎn)單,易操作。 2,設(shè)計(jì)表示:(1)、整個(gè)系統(tǒng)除了主函數(shù)外,另外還有各種功能子函數(shù),利用無(wú)限次循環(huán)語(yǔ)句while()和選擇語(yǔ)句swithch()實(shí)現(xiàn)各個(gè)子函數(shù)的調(diào)用,系統(tǒng)根據(jù)輸入的數(shù)字選項(xiàng)來(lái)調(diào)用相應(yīng)的函數(shù),以實(shí)現(xiàn)相應(yīng)的功能。主要實(shí)現(xiàn)了圖書的錄入、存儲(chǔ)、查詢、添加、刪除、修改、借書、還書等功能。(2)、Cbook();這是一個(gè)指針函數(shù),它主要實(shí)現(xiàn)了鏈表的創(chuàng)建,并且在創(chuàng)建過(guò)程中從文件讀取信息到鏈表中,以用于后面其他函數(shù)的操作。它返回的時(shí)一個(gè)單向鏈表的頭。其他函數(shù)調(diào)用時(shí)只需調(diào)用它返回的頭即可。(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)的菜單,在此可以選擇添加、刪除、修改圖書等操作。cxmenu();為查詢系統(tǒng)的菜單,在此可以選擇按書名、編號(hào)、作者等方式進(jìn)行查詢圖書。jhmenu();為借書還書的子菜單,在此可以選擇借書還書操作。操作完成后按提示信息進(jìn)行文件的保存操作。(4)、print();這個(gè)函數(shù)為鏈表的輸出函數(shù),把鏈表的頭傳給函數(shù)后,可輸出整個(gè)鏈表的所有信息。、(5)、hold();這個(gè)函數(shù)為保存信息到文件的函數(shù),使用時(shí)將鏈表的頭傳給函數(shù),函數(shù)可將整個(gè)鏈表的所有信息存入到磁盤文件中。并覆蓋掉源文件,以便以后調(diào)用。 (6) 、holdcx();這個(gè)函數(shù)為保存查詢信息到文件的函數(shù),使用時(shí)將查詢到的節(jié)點(diǎn)指針傳給函數(shù),函數(shù)會(huì)將該節(jié)點(diǎn)所有信息保存到文件中去,文件寫入是以追加方式寫入,以便用戶查看。(7)、findnumber();findboookname();findauthor();這三個(gè)函數(shù)為查詢圖書信息函數(shù),findnumber();按編號(hào)查詢、findboookname();按書名查詢、findauthor();按作者查詢。查詢到信息后返回信息所在節(jié)點(diǎn),查詢不到則返回空指針。(8)、add();sortnumber();delbook();revamp();這四個(gè)函數(shù)為功能函數(shù),add();添加一本圖書信息、sortnumber();將圖書按編號(hào)排序、delbook();刪除一本圖書信息、revamp();修改一本圖書信息。調(diào)用時(shí)將鏈表頭指針傳遞給函數(shù),函數(shù)返回經(jīng)過(guò)功能操作后的頭指針。(9)、borrowbook();returnbook();這兩個(gè)函數(shù)是借書還書的函數(shù),borrowbook();借書returnbook();還書。在借還后系統(tǒng)會(huì)修改圖書的在庫(kù)信息。調(diào)用時(shí)將鏈表頭指針傳遞給函數(shù),函數(shù)返回經(jīng)過(guò)功能操作后的頭指針。并會(huì)出提示信息讓用戶返回菜單保存信息。3實(shí)現(xiàn)注釋:這個(gè)實(shí)用的小型圖書管理程序程序以鏈表操作完成,并實(shí)現(xiàn)文件信息的錄入和保存等功能,所有信息以磁盤文件方式保存,方便用戶使用。實(shí)現(xiàn)了圖書管理的基本功能,包括了圖書的錄入、存儲(chǔ)、查詢、添加、刪除、修改、借書、還書等功能。查詢時(shí)可按書名、編號(hào)、作者等方式查詢,找到后輸出這本書的所有信息。在添加圖書信息后,還增加了鏈表排序操作,并輸出整個(gè)鏈表,方便用戶檢查信息。可查詢圖書的在庫(kù)狀態(tài),方便用戶進(jìn)行借書、還書操作。在借書還書成功后圖書的在庫(kù)狀態(tài)改變,并有提示信息讓用戶保存信息。系統(tǒng)中主要的數(shù)據(jù)結(jié)構(gòu)就是圖書的信息,包含編號(hào)、書名、作者、出版社、出版時(shí)間、價(jià)格、在庫(kù)狀態(tài)等,在處理過(guò)程中各項(xiàng)可以作為一本圖書的不同屬性來(lái)進(jìn)行處理。4結(jié)構(gòu)體系設(shè)計(jì):圖書管理系統(tǒng)主界面流程圖錄入所有書籍信 息進(jìn)入圖書管理系 統(tǒng)顯示菜 單進(jìn)入圖書查詢系 統(tǒng)進(jìn)入圖書借還系 統(tǒng)保存所有圖書信 息返回上級(jí)菜 單圖書管理系統(tǒng)主界面開(kāi)始圖書管理系統(tǒng)流程圖顯示所有圖書信息添加一本圖書信息修改一本圖書信息刪除一本圖書信息保存所有圖書信息圖書管理系統(tǒng)主界面返回上級(jí)菜單圖書查詢系統(tǒng)主界面流程圖顯示所有圖書信息按編號(hào)查詢圖書按書名查詢圖書按作者查詢圖書保存所查詢圖書的信息返回上級(jí)菜 單圖書查詢系統(tǒng)主界面圖書借還系統(tǒng)主界面流程圖借書還書返回上級(jí)菜單圖書借還系統(tǒng)5設(shè)計(jì)過(guò)程中的想法與程序中的不足:作為學(xué)期末的一項(xiàng)課程,主要靠編出來(lái)的系統(tǒng)來(lái)考察我們所掌握的基本理論知識(shí)及實(shí)際解決問(wèn)題的能力,通過(guò)這次c語(yǔ)言課程設(shè)計(jì),很大程度上鍛煉了我們寫程序的動(dòng)手能力和自主思考能力。利用所學(xué)知識(shí),開(kāi)發(fā)小型實(shí)用的應(yīng)用系統(tǒng),掌握運(yùn)用C語(yǔ)言編寫調(diào)試應(yīng)用系統(tǒng)程序,對(duì)于我們獨(dú)立開(kāi)發(fā)應(yīng)用系統(tǒng)并進(jìn)行數(shù)據(jù)處理的綜合能力是一個(gè)很大的提高??偟膩?lái)說(shuō)這個(gè)程序大致實(shí)現(xiàn)了題目的要求,但是這套程序仍然存在著很多的問(wèn)題與不足。比如,沒(méi)有對(duì)界面進(jìn)行操作,只是實(shí)現(xiàn)了簡(jiǎn)單的功能,程序?qū)懙挠悬c(diǎn)繁瑣,不是那么井然有序,條理清晰,程序注釋也不是很完善,對(duì)信息處理功能還有些不足之處,提示信息不明確,對(duì)于數(shù)據(jù)的錯(cuò)誤輸入處理不是很完善等等。這個(gè)系統(tǒng)主要是我自己編寫的,同時(shí)也得到了老師和同學(xué)的一些幫助。我在做系統(tǒng)的過(guò)程中也遇到了很多問(wèn)題,有的是知識(shí)不足,有的是考慮不夠周全,。事實(shí)證明,只靠自己的知識(shí)面還是很窄,獨(dú)立處理問(wèn)題能力不是很強(qiáng),以后還要加強(qiáng)對(duì)c語(yǔ)言的學(xué)習(xí)。 我認(rèn)為對(duì)于C語(yǔ)言編寫的程序來(lái)說(shuō),使用方法大致都是一樣的,所以如果要改進(jìn)的話,就是要改進(jìn)一些算法,盡量把界面編寫清楚,提示信息全面,方便易用。三、用戶手冊(cè):下面,我大致介紹一下我的系統(tǒng)的主要功能和注意事項(xiàng):當(dāng)運(yùn)行此程序時(shí),首先進(jìn)入系統(tǒng)主界面,然后可以選擇1.進(jìn)入系統(tǒng),2.退出系統(tǒng)。選擇1后進(jìn)入系統(tǒng),然后顯示功能菜單按數(shù)字鍵選擇所需服務(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)選擇保存圖書信息的操作,不然磁盤文件信息不會(huì)改變(下同)。返回上級(jí)菜單進(jìn)入圖書查詢系統(tǒng)、圖書借還系統(tǒng)的操作和管理系統(tǒng)的差不多,用戶可自己嘗試使用,所有信息最后均以磁盤文件方式保存,而且格式固定,在輸入和輸出均按這種格式,用戶在使用時(shí)必須要按這種格式輸入,否則會(huì)出現(xiàn)文件信息錯(cuò)誤。四、調(diào)試與測(cè)試:上機(jī)操作(截圖)系統(tǒng)主界面(選擇數(shù)字進(jìn)入,退出系統(tǒng))選擇1進(jìn)入系統(tǒng),然后出現(xiàn)功能菜單;選擇3進(jìn)入查詢系統(tǒng),然后出現(xiàn)功能菜單;選擇2輸入圖書編號(hào),顯示查詢到圖書;五、小節(jié):在這一個(gè)星期的實(shí)踐中,通過(guò)編寫這個(gè)圖書管理系統(tǒng),我體會(huì)到了c語(yǔ)言學(xué)習(xí)的實(shí)用性。將理論和實(shí)踐結(jié)合在一起,用先進(jìn)的計(jì)算機(jī)工具方便人們的生活。C語(yǔ)言程序的編寫首先要從大局考慮,把自己編寫整個(gè)程序的思想都寫在草稿上,這樣有助于自己編寫程序,在編寫時(shí)要完善注釋,方便其他人理解程序。編寫的程序從理論上來(lái)說(shuō)并沒(méi)有錯(cuò),但以上機(jī)就問(wèn)題不斷。甚至有些課本上的知識(shí)照搬不變,也不能得到正確的結(jié)果。有時(shí)一個(gè)程序改了一遍又一遍,但就是不能成功,編程顯得枯燥乏味,看似簡(jiǎn)單的程序題,在調(diào)試時(shí)卻屢屢出錯(cuò)。經(jīng)反復(fù)的修改后,結(jié)果正確了,這時(shí)所有的乏味都顯得那么無(wú)力,一切都是值得的。我認(rèn)為,開(kāi)發(fā)一套系統(tǒng),最重要的是細(xì)心,并且思考要全面,結(jié)合實(shí)際,充分考慮到客戶的需求和現(xiàn)實(shí)意義。不管什么系統(tǒng),只用運(yùn)用到實(shí)際應(yīng)用中,才具有先現(xiàn)實(shí)意義。 所以c語(yǔ)言程序的實(shí)用性很強(qiáng),我們以后還要更加努力認(rèn)真地學(xué)習(xí)編程語(yǔ)言。參考文獻(xiàn):1 黃明等編著C語(yǔ)言課程設(shè)計(jì)北京:電子工業(yè)出版社2 郭翠英編著C語(yǔ)言課程設(shè)計(jì)案例精編北京:中國(guó)水利水電出版社3 寧正元數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言) 南京:東南大學(xué)出版社。2000年6月第1版4 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版) 北京:清華大學(xué)出版社,1997年4月第1版5 譚浩強(qiáng)編著C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第3版) 北京:清華大學(xué)出版社6 譚浩強(qiáng)編著C程序設(shè)計(jì)(第3版) 北京:清華大學(xué)出版社7 洪國(guó)勝 等編著 C+ Builder程序設(shè)計(jì)輕松上手北京:清華大學(xué)出版社8 寧正元數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言) 南京:東南大學(xué)出版社。2000年6月第1版9 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語(yǔ)言版) 北京:清華大學(xué)出版社,1997年4月第1版。10 明日科技 編著Visual C+程序開(kāi)發(fā)范例寶典北京:人民郵電出版社。11 胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)北京:清華大學(xué)出版社,1999年 第1版。12 劉大有數(shù)據(jù)結(jié)構(gòu)(面向21世紀(jì)課程教材) 北京:高等教育出版社。2001年6月第1版。13 胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)計(jì)指導(dǎo)北京:清華大學(xué)出版社,1999年 第1版。附錄: 源程序代碼# include # include # include typedef struct linkchar number100;/編號(hào)char bookname100;/書名char author100;/作者char publish100;/出版社char time100;/出版時(shí)間float price;/價(jià)格char status100;/在庫(kù)狀態(tài) struct link *next;link;/函數(shù)聲明 link *Cbook();void mainmenu();void menu1();void glmenu();void cxmenu();void jhmenu();void print(link *head);void hold(link *head);void holdcx(link *t);link *findnumber(link *head);link *findboookname(link *head);link *findauthor(link *head);link *add(link *head);link *sortnumber(link *head);link *delbook(link *head);link *revamp(link *head);link *borrowbook(link *head); link *returnbook(link *head); /主函數(shù) main()int a,b,c,d,e;link *h,*t;L:system(cls);/L為一個(gè)標(biāo)志位,用于從子函數(shù)返回主界面 mainmenu();while(1)/主程序循環(huán)運(yùn)行 scanf(%d,&a);switch(a)case 1:/進(jìn)入主系統(tǒng) B: system(cls);/B為一個(gè)標(biāo)志位,用于從子函數(shù)返回主功能界面 menu1(); while(1) scanf(%d,&b); switch(b) case 1:/圖書信息的錄入 h=Cbook(); break; case 2:/進(jìn)入圖書管理的子系統(tǒng) system(cls); glmenu(); while(1) scanf(%d,&c); switch(c) case 1:/顯示所有圖書信息 print(h); break; case 2:/添加一本圖書信息 h=add(h); h=sortnumber(h); print(h); break; case 3:/修改一本書的信息 revamp(h); break; case 4:/刪除一本圖書信息 h=delbook(h); print(h); break; case 5:/保存圖書信息 hold(h); break; case 6: goto B; break; break; case 3:/進(jìn)入圖書查詢的子系統(tǒng) system(cls); cxmenu(); while(1) scanf(%d,&d); switch(d) case 1:/顯示所有圖書信息 print(h); break; case 2:/按編號(hào)查詢圖書 t=findnumber(h); if(t=NULL) printf(沒(méi)有要查詢的圖書!); if(t!=NULL) printf(查詢的圖書為:); printf(n); printf(n*n); printf(n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n); printf(n); printf(%st%st%st%st%s,t-number,t-bookname,t-author,t-publish,t-time); printf(tt%.2f,t-price); printf(tt%s,t-status);printf(n); break; case 3:/按書名查詢圖書 t=findboookname(h); if(t=NULL) printf(沒(méi)有要查詢的圖書!); if(t!=NULL) printf(查詢的圖書為:); printf(n); printf(n*n); printf(n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n); printf(n); printf(%st%st%st%st%s,t-number,t-bookname,t-author,t-publish,t-time); printf(tt%.2f,t-price); printf(tt%s,t-status); printf(n); break; case 4:/按作者查詢圖書 t=findauthor(h); if(t=NULL) printf(沒(méi)有要查詢的圖書!); if(t!=NULL) printf(查詢的圖書為:); printf(n); printf(n*n); printf(n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n); printf(n); printf(%st%st%st%st%s,t-number,t-bookname,t-author,t-publish,t-time); printf(tt%.2f,t-price); printf(tt%s,t-status);printf(n); break; case 5:/保存查詢信息 holdcx(t); break; case 6:/返回上級(jí)菜單 goto B; break; break; case 4:/圖書借還系統(tǒng) system(cls);jhmenu();while(1)scanf(%d,&e);switch(e)case 1:/借書 borrowbook(h);break;case 2:/還書 returnbook(h); break;case 3:/返回上級(jí)菜單 goto B;break; break; case 5:/ 保存圖書信息到文件 hold(h); break; case 6:/顯示主功能菜單 system(cls); menu1(); break; case 7:/返回系統(tǒng)主界面 goto L; break; break;case 0:/退出系統(tǒng) printf(ttt感謝使用,再見(jiàn)!);exit(0);/鏈表的創(chuàng)建和信息的錄入 link *Cbook()int n=0;link *p,*q,*head;FILE *fp;fp=fopen(圖書信息.txt,r+);if(fp=NULL)printf(沒(méi)有找到文件,請(qǐng)檢查);p=(link *)malloc(sizeof(link);if(p=NULL)printf(申請(qǐng)內(nèi)存出錯(cuò)!n);fscanf(fp,%s%s%s%s%s,p-number,p-bookname,p-author,p-publish,p-time);fscanf(fp,%f,&p-price);fscanf(fp,%s,p-status);while(feof(fp)=0)n+;if(n=1)head=p;elseq=p;p=(link *)malloc(sizeof(link);if(p=NULL)printf(申請(qǐng)內(nèi)存出錯(cuò)!n);fscanf(fp,%s%s%s%s%s,p-number,p-bookname,p-author,p-publish,p-time);fscanf(fp,%f,&p-price);fscanf(fp,%s,p-status);q-next=p;p-next=NULL;fclose(fp);printf(信息已錄入!);return head;/系統(tǒng)主界面 void mainmenu()printf(n*n);printf(n* 歡迎使用圖書管理系統(tǒng) *n);printf(n* 1.進(jìn)入系統(tǒng));printf(t0.退出系統(tǒng) *n);printf(n*n);printf(n 請(qǐng)選擇);/功能菜單 void menu1()printf(n*n);printf(n* 1.錄入所有書籍信息 *n);printf(n* 2.進(jìn)入圖書管理系統(tǒng) *n);printf(n* 3.進(jìn)入圖書查詢系統(tǒng) *n);printf(n* 4.進(jìn)入圖書借還系統(tǒng) *n);printf(n* 5.保存所有圖書信息 *n);printf(n* 6.顯示菜單 *n);printf(n* 7.返回上級(jí)菜單 *n);printf(n*n);printf(n請(qǐng)選擇);/管理系統(tǒng)菜單 void glmenu() printf(n*n); printf(n* 1.顯示所有圖書信息 *n); printf(n* 2.添加一本圖書信息 *n); printf(n* 3.修改一本圖書信息 *n); printf(n* 4.刪除一本圖書信息 *n); printf(n* 5.保存所有圖書信息 *n); printf(n* 6.返回上級(jí)菜單 *n); printf(n*n); printf(n請(qǐng)選擇);/查詢系統(tǒng)菜單 void cxmenu() printf(n*n); printf(n* 1.顯示所有圖書信息 *n); printf(n* 2.按編號(hào)查詢圖書 *n); printf(n* 3.按書名查詢圖書 *n); printf(n* 4.按作者查詢圖書 *n); printf(n* 5.保存所查詢圖書的信息 *n); printf(n* 6.返回上級(jí)菜單 *n); printf(n*n); printf(n請(qǐng)選擇);/借還系統(tǒng)菜單void jhmenu()printf(n*n);printf(n* 1.借書 *n);printf(n* 2.還書 *n);printf(n* 3.返回上級(jí)菜單 *n);printf(n*n);printf(n請(qǐng)選擇); /輸出鏈表函數(shù) void print(link *head)link *p;p=head;if(p=NULL)printf(文件中沒(méi)有圖書信息n);elseprintf(n);printf(n*n);printf(n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n); while(p!=NULL) printf(n);printf(%st%st%st%st%s,p-number,p-bookname,p-author,p-publish,p-time);printf(tt%.2f,p-price);printf(tt%s,p-status);printf(n);p=p-next;/保存信息到文件子函數(shù)void hold(link *head)link *p;FILE *fp;fp=fopen(圖書信息.txt,w+);if(fp=NULL)printf(文件操作出錯(cuò)!);exit(1);p=head;for(;p!=NULL;p=p-next) fprintf(fp,n);fprintf(fp,%st%st%st%st%s,p-number,p-bookname,p-author,p-publish,p-time);fprintf(fp,tt%.2f,p-price);fprintf(fp,tt%s,p-status);fclose(fp);printf(信息已保存。);/子函數(shù)保存查詢的信息到文件 void holdcx(link *t)link *p=NULL;FILE *fp;fp=fopen(查詢.txt,a+);p=t;fprintf(fp,查詢到的信息為:n);fprintf(fp,n);fprintf(fp,n*n);fprintf(fp,n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n);fprintf(fp,n);fprintf(fp,%st%st%st%st%s,p-number,p-bookname,p-author,p-publish,p-time);fprintf(fp,tt%.2f,p-price);fprintf(fp,tt%s,p-status);fprintf(fp,n);fclose(fp);printf(信息已保存!);/子函數(shù)按編號(hào)查詢link *findnumber(link *head)char key100;link *h,*t1=NULL;printf(請(qǐng)輸入圖書的編號(hào):);getchar();gets(key);for(h=head;h!=NULL;h=h-next) if(strcmp(key,h-number)=0) t1=h; break; return t1; /子函數(shù)按書名查詢link *findboookname(link *head)char key100;link *h,*t2=NULL;printf(請(qǐng)輸入圖書的書名:);getchar();gets(key);for(h=head;h!=NULL;h=h-next) if(strcmp(key,h-bookname)=0) t2=h; break; return t2;/子函數(shù)按作者查詢link *findauthor(link *head)char key100;link *h,*t3=NULL;printf(請(qǐng)輸入作者姓名:);getchar();gets(key);for(h=head;h!=NULL;h=h-next) if(strcmp(key,h-author)=0) t3=h; break; return t3;/添加一本圖書信息 link *add(link *head)link *h,*h1;h1=head;h=(link *)malloc(sizeof(link);if(h=NULL)printf(申請(qǐng)內(nèi)存出錯(cuò)!);exit(1);printf(請(qǐng)輸入添加圖書的信息);printf(n);printf(n*n);printf(n編號(hào)tt書名tt作者tt出版社tt出版時(shí)間tt價(jià)格tt狀態(tài)n);scanf(%s%s%s%s%s,h-number,h-bookname,h-author,h-publish,h-time);scanf(%f,&h-price);scanf(%s,h-status); h-next=h1; return h;/將鏈表按編號(hào)排序link *sortnumber(link *head)link *p,*q,*temp; temp=(link *)malloc(sizeof(link); if(temp=NULL) printf(申請(qǐng)內(nèi)存出錯(cuò)!); exit(1); for(p=head;p!=NULL;p=p-next) for(q=p-next;q!=NULL;q=q-next)if(strcmp(p-number,q-number)0) strcpy(temp-number,p-number); strcpy(temp-bookname,p-bookname); strcpy(temp-author,p-author); strcpy(temp-publish,p-publish); strcpy(temp-time,p-time); temp-price=p-price; strcpy(temp-status,p-status); strcpy(p-number,q-number); strcpy(p-bookname,q-bookname); strcpy(p-author,q-author); strcpy(p-publish,q-publish); strcpy(p-time,q-time); p-price=q-price; strcpy(p-status,temp-status); strcpy(q-number,temp-number); strcpy(q-bookname,temp-bookname); strcpy(q-author,temp-author); strcpy(q-publish,temp-publish); strcpy(q-time,temp-time); q-price=temp-price; strcpy(q-status,temp-status); return head; /刪除一本圖書信息 link *delbook(link *head)int k=0;char str10;link *h,*t,*p;h=t=p=head;printf(請(qǐng)輸入要?jiǎng)h除圖書的書名:);getchar();gets(str);for(;p!=NULL;p=p-next)k+; if(k2) t=t-next; if(strcmp(p-bookname,str)=0)&(k=1) h=p-next; else if(strcmp(p-bookname,str)=0&k1) t-next=p-next; else if(strcmp(p-bookname,str)=0&p-next=NULL) t=NULL; return h;/修改一本書信息(除書名外) link *revamp(link *head)link *h,*t;h=head;t=findboookname(h);if(t=NULL)printf(沒(méi)有找到);else printf(修改前圖書信息為:); printf(n); printf(n*n); printf(n編號(hào)tt書名tt作者tt出版
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 江蘇省南通市2024-2025學(xué)年高一上學(xué)期11月期中英語(yǔ)試題(解析版)
- 海洋量子科技應(yīng)用可能
- 2025年四川九州電子科技股份有限公司招聘IT等崗位考試筆試試題(含答案)
- 2025年寧夏中衛(wèi)市屬國(guó)有企業(yè)財(cái)務(wù)總監(jiān)(總會(huì)計(jì)師)選聘考試筆試試題(含答案)
- 2025年巴戟天行業(yè)深度調(diào)查及發(fā)展前景研究報(bào)告
- 車輛抵押擔(dān)保合同書模板
- 采砂船運(yùn)輸與海洋環(huán)境保護(hù)責(zé)任書
- 財(cái)稅返還合同原件
- 車輛掛靠汽車維修與保險(xiǎn)理賠服務(wù)合同
- 地保巡查方案
- 輸變電工程多維立體參考價(jià)(2025年版)
- 冷卻塔維修施工方案設(shè)計(jì)
- 2025年重癥醫(yī)學(xué)科護(hù)理信息化建設(shè)計(jì)劃
- 遼寧省大連市金州區(qū)-普蘭店區(qū)2024-2025學(xué)年六年級(jí)上期末數(shù)學(xué)試題
- 綜采工作面液壓支架安裝回撤工職業(yè)技能理論考試題庫(kù)150題(含答案)
- 場(chǎng)地平整項(xiàng)目承包合同范本
- 河南省歷年中考語(yǔ)文現(xiàn)代文閱讀之非連續(xù)性文本閱讀5篇(截至2024年)
- 麥秸稈環(huán)保板材項(xiàng)目可行性研究報(bào)告
- 《中醫(yī)養(yǎng)生學(xué)》課件-八段錦
- 山東某智慧農(nóng)場(chǎng)項(xiàng)目可行性研究報(bào)告
- 交通運(yùn)輸安全生產(chǎn)知識(shí)培訓(xùn)
評(píng)論
0/150
提交評(píng)論