精選文檔圖書管理程序+課程設(shè)計(jì)報(bào)告(C語(yǔ)言)_第1頁(yè)
精選文檔圖書管理程序+課程設(shè)計(jì)報(bào)告(C語(yǔ)言)_第2頁(yè)
精選文檔圖書管理程序+課程設(shè)計(jì)報(bào)告(C語(yǔ)言)_第3頁(yè)
精選文檔圖書管理程序+課程設(shè)計(jì)報(bào)告(C語(yǔ)言)_第4頁(yè)
精選文檔圖書管理程序+課程設(shè)計(jì)報(bào)告(C語(yǔ)言)_第5頁(yè)
已閱讀5頁(yè),還剩53頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《高級(jí)語(yǔ)言課程設(shè)計(jì)》圖書登記管理程序圖書登記管理程序題目: 班級(jí): 軟件5班學(xué)生學(xué)號(hào): 201031000504學(xué)生姓名: ***指導(dǎo)老師:***提交時(shí)間: ***成績(jī): 評(píng)分項(xiàng)目得分功能完整性(30分)界面美觀性(10分)設(shè)計(jì)合理性(10分)創(chuàng)新性(10分)答辯表現(xiàn)(40分)評(píng)語(yǔ):華南農(nóng)業(yè)大學(xué)信息學(xué)院圖書登記管理程序分析1系統(tǒng)分析1.1問題描述圖書登記管理程序能夠幫助圖書管理員切實(shí)高效的登記管理圖書信息,管理員將全部圖書信息存儲(chǔ)在系統(tǒng)中,系統(tǒng)能夠提示明顯信息,從而管理員能對(duì)新增,丟失,修改,借閱的圖書信息和借書用戶信息做必要的登記,并且該系統(tǒng)設(shè)有密碼,能夠一定程度上阻止無關(guān)人員操作系統(tǒng)。1.2系統(tǒng)功能分析系統(tǒng)主要分成兩大功能,圖書管理和用戶管理。在圖書管理方面,分為增加新圖書,刪除圖書,修改圖書信息,查詢圖書信息,統(tǒng)計(jì)圖書信息,借閱圖書,歸還圖書等七大功能。在查詢圖書信息功能上,又細(xì)分為按ISBN號(hào),作者,名稱,出版社,出版日期,圖書類別查詢。在統(tǒng)計(jì)圖書信息功能上,又細(xì)分為按ISBN號(hào)范圍,出版日期范圍,價(jià)格范圍查詢。在用戶管理方面,分為查詢用戶信息,修改用戶信息,增加用戶,刪除用戶,修改圖書管理密碼等五大功能。1.3開發(fā)平臺(tái)及工具介紹本系統(tǒng)主要利用C語(yǔ)言的基本知識(shí),使用MicrosoftVisualC++軟件來編寫程序代碼,該軟件適合初學(xué)者使用,能夠幫助程序員快速查找出錯(cuò)誤,給出明確提示,從而更加高效的開發(fā)出圖書登記管理系統(tǒng)。2系統(tǒng)設(shè)計(jì)2.1系統(tǒng)總體結(jié)構(gòu)設(shè)計(jì)系統(tǒng)程序中圖書信息,用戶信息,密碼信息都是以結(jié)構(gòu)體的形式表示,并且每一個(gè)結(jié)構(gòu)體都分別嵌套在三個(gè)鏈表中,從而能夠?qū)崿F(xiàn)信息的增減功能。2.2系統(tǒng)各個(gè)功能模塊及功能模塊之間關(guān)系設(shè)計(jì)首先系統(tǒng)功能模塊分別有創(chuàng)造圖書信息、用戶信息、密碼信息模塊。讀取圖書信息、用戶信息、密碼信息模塊。保存圖書信息、用戶信息、密碼信息模塊。輸入圖書信息、用戶信息、密碼信息模塊。增加圖書信息、用戶信息模塊。刪除圖書信息、用戶信息模塊。修改圖書信息、用戶信息、圖書管理密碼模塊。查詢圖書信息、用戶信息模塊。統(tǒng)計(jì)圖書信息模塊。借閱圖書模塊,歸還圖書模塊。輸出圖書信息、用戶信息模塊。各個(gè)模塊之間相互存在相互調(diào)用的關(guān)系,大模塊調(diào)用小模塊,層層調(diào)用。2.3數(shù)據(jù)存儲(chǔ)的設(shè)計(jì)(文件等)圖書信息,用戶信息,密碼信息分別存儲(chǔ)在三個(gè)文件上。實(shí)現(xiàn)信息從文件寫入鏈表,信息從鏈表存儲(chǔ)在文件中。2.4界面設(shè)計(jì)程序的各項(xiàng)功能在程序運(yùn)行時(shí),以菜單的方式執(zhí)行。各個(gè)菜單中都有明確的提示,使管理員輕松的使用本系統(tǒng)。在主菜單中選擇所需功能,再在各二級(jí)菜單中選擇,以此類推,直至選到所需要的功能。當(dāng)不需要當(dāng)前菜單時(shí),還可以返回上一級(jí)菜單,重新進(jìn)行選擇,并且系統(tǒng)設(shè)置清除界面功能,避免已經(jīng)沒有的信息界面仍然出現(xiàn)。。3系統(tǒng)實(shí)現(xiàn)模塊的流程圖如下:Y退出系統(tǒng)C輸入密碼進(jìn)入圖書登記程序系統(tǒng)A判斷是否存在存儲(chǔ)密碼,圖書,用戶信息的文件B創(chuàng)造存儲(chǔ)信息的文件Y退出系統(tǒng)C輸入密碼進(jìn)入圖書登記程序系統(tǒng)A判斷是否存在存儲(chǔ)密碼,圖書,用戶信息的文件B創(chuàng)造存儲(chǔ)信息的文件NYND選擇操作內(nèi)容管理圖書信息管理用戶信息D選擇操作內(nèi)容管理圖書信息管理用戶信息E輸入管理圖書內(nèi)容E輸入管理圖書內(nèi)容F輸入管理用戶內(nèi)容判斷輸入內(nèi)容1判斷輸入內(nèi)容2判斷輸入內(nèi)容1判斷輸入內(nèi)容1判斷輸入內(nèi)容2判斷輸入內(nèi)容1增加圖書修改圖書統(tǒng)計(jì)圖書歸還圖書借閱圖書查詢圖書刪除圖書增加圖書修改圖書統(tǒng)計(jì)圖書歸還圖書借閱圖書查詢圖書刪除圖書按圖書類別按ISBN號(hào)查詢圖書按作者按名稱按圖書類別按ISBN號(hào)查詢圖書按作者按名稱按出版社按出版日期統(tǒng)計(jì)圖書按出版日期按ISBN號(hào)判斷輸入內(nèi)容2查詢用戶信息修改用戶信息增加用戶化刪除用戶修改密碼按價(jià)格按出版日期按ISBN號(hào)判斷輸入內(nèi)容2查詢用戶信息修改用戶信息增加用戶化刪除用戶修改密碼按價(jià)格部分關(guān)鍵程序代碼如下:A: headss=readFiless(headss); if(!headss) { createFiless(); headss=readFiless(headss); } head=readFile(head); if(!head) { createFile(); head=readFile(head); } heads=readFiles(heads); if(!heads) { createFiles(); heads=readFiles(heads); }B:voidcreateFile()/*創(chuàng)造圖書信息函數(shù)*/{ bookdata; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存儲(chǔ)圖書信息的文件未找到!\n"); exit(0); } printf("請(qǐng)輸入圖書信息,當(dāng)輸入足夠圖書時(shí),以ISBN號(hào)為0結(jié)束!\n"); readNode(&data); while(strcmp(data.ISBN,"0")!=0) { fwrite(&data,sizebook,1,fp); readNode(&data); } fclose(fp);}voidcreateFiles()/*創(chuàng)造用戶信息函數(shù)*/{ peopledatas; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存儲(chǔ)用戶信息的文件未找到!\n"); exit(0); } printf("請(qǐng)輸入用戶信息,當(dāng)注冊(cè)足夠用戶時(shí),以用戶號(hào)碼為0結(jié)束!\n"); readNodes(&datas); while(datas.num) { fwrite(&datas,sizepeople,1,fps); readNodes(&datas); } fclose(fps);}voidcreateFiless()/*創(chuàng)造密碼函數(shù)*/{ accessdatass; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存儲(chǔ)密碼信息的文件未找到!\n"); exit(0); } readNodess(&datass); fwrite(&datass,sizeaccess,1,fpss); fclose(fpss);}C:intenter(structnodess*headss)/*進(jìn)入系統(tǒng)函數(shù)*/{ structnodess*q=headss; charcodes[80]; createprints(); scanf("%s",&codes); if(strcmp(q->datass.code,codes)==0) return1; else { printf("輸入密碼錯(cuò)誤,系統(tǒng)已退出!\n"); return0; }}D: switch(choice) { case1:heads=readFiles(heads); head=bookmenu(head,heads); break; case2:heads=readFiles(heads); heads=peoplemenu(heads,head,headss); break; case0:break; default:printf("輸入錯(cuò)誤,請(qǐng)?jiān)佥斎胍槐?\n"); }E: switch(choice) { case1:printf("請(qǐng)輸入你要增加圖書的信息!\n"); readNode(&data); head=InsertOrder(head,data); break; case2:printf("請(qǐng)輸入你要?jiǎng)h除圖書的ISBN號(hào)!\n"); scanf("%s",&ISBNS); head=Delete(head,ISBNS); break; case3:printf("請(qǐng)輸入你要修改圖書的ISBN號(hào)!\n"); scanf("%s",&ISBNS); head=correct(head,ISBNS); break; case4:searchManage(head); break; case5:statist(head); break; case6:printf("請(qǐng)輸入你要借閱圖書的ISBN號(hào)!\n"); scanf("%s",&ISBNS); heads=readFiles(heads); head=borrowbook(head,ISBNS,heads); break; case7:printf("請(qǐng)輸入你要?dú)w還圖書的ISBN號(hào)!\n"); scanf("%s",&ISBNS); heads=readFiles(heads); head=returnbook(head,ISBNS,heads); break; case0:system("cls"); break; default:printf("輸入錯(cuò)誤,請(qǐng)?jiān)佥斎胍槐?\n"); break; }:F: switch(choice) { case1:printf("請(qǐng)輸入你要查詢用戶的號(hào)碼!\n"); scanf("%lf",&nums); searchManages(heads,nums,head); break; case2:printf("請(qǐng)輸入你要修改用戶的號(hào)碼!\n"); scanf("%lf",&nums); heads=corrects(heads,nums); break; case3:printf("請(qǐng)輸入你要增加用戶的號(hào)碼!\n"); readNodes(&datas); heads=InsertOrders(heads,datas); printf("增加用戶成功!\n"); break; case4:printf("請(qǐng)輸入你要?jiǎng)h除用戶的號(hào)碼!\n"); scanf("%lf",&nums); heads=Deletes(heads,nums); break; case5:headss=correctss(headss); break; case0:system("cls"); break; default:printf("輸入錯(cuò)誤,請(qǐng)?jiān)佥斎胍槐?\n"); break; }4系統(tǒng)測(cè)試4.1模塊測(cè)試(兩數(shù)值空格代表回車)增加圖書:輸入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100619.550,預(yù)期輸出增加圖書成功!刪去圖書:978-7-89486-953-2,預(yù)期輸出刪除圖書成功!修改圖書信息:輸入978-7-89486-953-3978-7-89486-953-3Cyuyanchengxushejizhulihuarenminyoudianchubanshe2009093230,預(yù)期輸出修改成功!查詢圖書信息:按ISBN號(hào)查詢:978-7-89486-953-5預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-5║║書名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║價(jià)格:20║║圖書類型:自然科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!按作者查詢:weitian,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-5║║書名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║價(jià)格:20║║圖書類型:自然科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!按名稱查詢:輸入duxueyi,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-2║║書名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║價(jià)格:30║║圖書類型:綜合性圖書║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!按出版社查詢:輸入gaodengjiaoyuchubanshe,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-4║║書名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║價(jià)格:17║║圖書類型:馬列毛思想║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!按出版日期查詢:輸入200909,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-3║║書名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║價(jià)格:32║║圖書類型:社會(huì)科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!按圖書類別查詢:輸入1,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-4║║書名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║價(jià)格:17║║圖書類型:馬列毛思想║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!統(tǒng)計(jì)圖書信息:按ISBN號(hào)統(tǒng)計(jì):輸入978-7-89486-953-2978-7-89486-953-4,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-2║║書名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║價(jià)格:30║║圖書類型:綜合性圖書║║圖書狀態(tài):0║╚══════════════════════════════════╝╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-3║║書名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║價(jià)格:32║║圖書類型:社會(huì)科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-4║║書名:makesizhuyigailun║║作者:chenchen║║出版社:gaodengjiaoyuchubanshe║║出版日期:201006║║價(jià)格:17║║圖書類型:馬列毛思想║║圖書狀態(tài):0║╚══════════════════════════════════╝共有3本!按出版日期統(tǒng)計(jì):輸入200801201001,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-1║║書名:shitingshuo║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║價(jià)格:30║║圖書類型:綜合性圖書║║圖書狀態(tài):0║╚══════════════════════════════════╝╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-2║║書名:duxueyi║║作者:liuxizhen║║出版社:qinghuadaxuechubanshe║║出版日期:200807║║價(jià)格:30║║圖書類型:綜合性圖書║║圖書狀態(tài):0║╚══════════════════════════════════╝╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-3║║書名:Cyuyan║║作者:zhulihua║║出版社:renminyoudianchubanshe║║出版日期:200909║║價(jià)格:32║║圖書類型:社會(huì)科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝共有3本!按價(jià)格統(tǒng)計(jì):輸入1820,預(yù)期輸出為:╔══════════════════════════════════╗║滿足您查找條件的圖書信息為:║╠══════════════════════════════════╣║ISBN編號(hào):978-7-89486-953-5║║書名:ITjishu║║作者:weitian║║出版社:ribenchubanshe║║出版日期:201104║║價(jià)格:20║║圖書類型:自然科學(xué)║║圖書狀態(tài):0║╚══════════════════════════════════╝共有1本!借閱圖書:輸入978-7-89486-953-1201031000504,預(yù)期輸出為:借書成功!歸還圖書:輸入978-7-89486-953-1201031000504,預(yù)期輸出為:還3書成功!查詢用戶信息:輸入201031000505,預(yù)期輸出為:用戶號(hào)碼:2010310005505,已借圖書數(shù):0修改用戶信息:輸入2010310005042010310005060000,預(yù)期輸出為:修改成功!增加用戶:輸入201031000507,預(yù)期輸出為:增加用戶成功!刪除用戶:輸入201031000504,預(yù)期輸出為:刪除用戶成功!修改圖書管理密碼:輸入123321,預(yù)期輸出修改密碼成功!4.2系統(tǒng)測(cè)試輸入12311,進(jìn)入增加圖書界面。輸入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100619.550。再輸入3來修改圖書信息,輸入978-7-89486-953-7zhongguojindaishigangyaowangyanggaodengjiaoyuchubanshe20100629.550。在輸入4查詢圖書,輸入1978-7-89486-953-7,此時(shí)輸出此圖書信息框。按0返回上一級(jí)菜單,再來輸入6來借閱圖書,輸入978-7-89486-953-7201031000504,則提示借書成功。再到用戶菜單中查詢用戶信息,輸入用戶號(hào)碼201031000504,則輸出此用戶借閱圖書信息。然后再到圖書管理菜單中歸還圖書,輸入978-7-89486-953-7201031000504,則提示還書成功。然后再次查詢用戶信息時(shí),發(fā)現(xiàn)此用戶已經(jīng)沒有借閱此圖書了。再來在用戶管理菜單中輸入3增加用戶,輸入201031000501,則提示增加用戶成功,可以查詢用戶信息和借閱圖書,若輸入4刪除用戶,輸入201031000501,則此用戶已經(jīng)被刪除,不能再進(jìn)行借閱圖書能操作。5系統(tǒng)運(yùn)行界面6總結(jié)此系統(tǒng)能夠較為接近現(xiàn)實(shí)圖書登記管理系統(tǒng),做到基本功能齊全,并且界面美觀,同時(shí)添加了許多創(chuàng)新性的功能,能夠切實(shí)高效的幫助圖書管理員做好圖書登記管理工作。但是此系統(tǒng)也有一些不足的方面,部分圖書信息沒有更好的表達(dá)出來,輸入信息也較為繁瑣等。在程序設(shè)計(jì)過程中,由于涉及到眾多的函數(shù)和程序,容易忽略一些細(xì)微的字符,導(dǎo)致運(yùn)算時(shí)功能出錯(cuò),并且此類錯(cuò)誤不易查找,系統(tǒng)檢測(cè)不出,只有靠平時(shí)對(duì)C語(yǔ)言基本知識(shí)的牢固掌握和經(jīng)驗(yàn)才能做出準(zhǔn)確的判斷。在此次編寫程序中,使我更加深刻的了解C語(yǔ)言中的許多知識(shí),回顧上學(xué)期老師重點(diǎn)講過的知識(shí)點(diǎn)。附錄:源碼#include<stdio.h>#include<stdlib.h>#include<string.h>structbook/*建立圖書結(jié)構(gòu)體類型*/{ charname[80],author[80],bookconcern[80],ISBN[80]; intday,status,type; doubleprice; structbook*next;};typedefstructbookbook;intsizebook=sizeof(book);structnode{ bookdata; structnode*next;};intsize=sizeof(structnode);structpeople/*建立用戶結(jié)構(gòu)體類型*/{ doublenum; charISBN1[80],ISBN2[80],ISBN3[80]; intcount;};typedefstructpeoplepeople;intsizepeople=sizeof(people);structnodes{ peopledatas; structnodes*next;};intsizes=sizeof(structnodes);structaccess/*建立密碼結(jié)構(gòu)體類型*/{ charcode[80];};typedefstructaccessaccess;intsizeaccess=sizeof(access);structnodess{ accessdatass; structnodess*next;};intsizess=sizeof(structnodess);voidreadNode(book*pdata)/*輸入圖書信息函數(shù)*/{ printf("***************************\n"); printf("ISBN號(hào):"); scanf("%s",&pdata->ISBN); if(strcmp(pdata->ISBN,"0")==0) return; printf("名稱:"); scanf("%s",&pdata->name); printf("作者:"); scanf("%s",&pdata->author); printf("出版社:"); scanf("%s",&pdata->bookconcern); printf("出版日期:"); scanf("%d",&pdata->day); printf("價(jià)格:"); scanf("%lf",&pdata->price); printf("請(qǐng)輸入對(duì)應(yīng)數(shù)字,馬列毛思想=1,哲學(xué)=2,社會(huì)科學(xué)=3,自然科學(xué)=4,綜合性圖書=5\n"); printf("類型:"); scanf("%d",&pdata->type); printf("沒有借出的圖書輸入0,借出的輸出1.\n"); printf("狀態(tài):"); scanf("%d",&pdata->status);}voidreadNodes(people*pdatas)/*輸入用戶信息函數(shù)*/{ printf("請(qǐng)輸入用戶號(hào)碼:"); scanf("%lf",&pdatas->num); pdatas->count=0; strcpy(pdatas->ISBN1,"0"); strcpy(pdatas->ISBN2,"0"); strcpy(pdatas->ISBN3,"0");}voidreadNodes2(people*pdatas)/*更改用戶信息函數(shù)*/{ printf("用戶號(hào)碼:"); scanf("%lf",&pdatas->num); printf("所借圖書數(shù):"); scanf("%d",&pdatas->count); printf("所借圖書ISBN碼,沒有借的請(qǐng)輸入0:"); scanf("%s%s%s",&pdatas->ISBN1,&pdatas->ISBN2,&pdatas->ISBN3); printf("\n");}voidreadNodess(access*pdatass)/*輸入密碼函數(shù)*/{ printf("請(qǐng)輸入管理員密碼:"); scanf("%s",&pdatass->code); printf("\n");}voidsaveFile(structnode*head)/*保存圖書信息函數(shù)*/{ structnode*p=head; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存儲(chǔ)圖書的文件未找到!\n"); exit(0); } if(head==NULL) { printf("\n文件沒有圖書信息!\n"); return; } while(p) { fwrite(&p->data,sizebook,1,fp); p=p->next; } fclose(fp);}voidsaveFiles(structnodes*heads)/*保存用戶信息函數(shù)*/{ structnodes*p=heads; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存儲(chǔ)用戶信息的文件未找到!\n"); exit(0); } if(heads==NULL) { printf("\n文件沒有用戶信息!\n"); return; } while(p) { fwrite(&p->datas,sizepeople,1,fps); p=p->next; } fclose(fps);}voidsaveFiless(structnodess*headss)/*保存密碼函數(shù)*/{ structnodess*p=headss; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存儲(chǔ)密碼的文件未找到!\n"); exit(0); } if(headss==NULL) { printf("\n文件沒有密碼信息!\n"); return; } fwrite(&p->datass,sizeaccess,1,fpss); fclose(fpss);}structnode*InsertOrder(structnode*head,bookdata)/*插入圖書信息函數(shù)*/{ structnode*p,*p1,*p2; p2=head; p=(structnode*)malloc(size); p->data=data; p->next=NULL; if(head==NULL) { head=p; returnhead; } while(p2&&strcmp(p->data.ISBN,p2->data.ISBN)>0) { p1=p2; p2=p2->next; } if(head==p2) head=p; else p1->next=p; p->next=p2; returnhead;}structnodes*InsertOrders(structnodes*heads,peopledatas)/*插入用戶信息函數(shù)*/{ structnodes*p,*p1,*p2; p2=heads; p=(structnodes*)malloc(sizes); p->datas=datas; p->next=NULL; if(heads==NULL) { heads=p; returnheads; } while(p2&&p->datas.num>p2->datas.num) { p1=p2; p2=p2->next; } if(heads==p2) heads=p; else p1->next=p; p->next=p2; saveFiles(heads); returnheads;}structnode*Delete(structnode*head,charISBNS[30])/*刪除圖書信息函數(shù)*/{ structnode*p=head,*q=NULL; if(head==NULL) { printf("\nNORecords!\n"); returnhead; } while(p&&strcmp(p->data.ISBN,ISBNS)!=0) { q=p; p=p->next; } if(p) { if(q) q->next=p->next; else head=head->next; free(p); printf("刪除圖書成功!\n"); } else printf("圖書不存在!\n"); returnhead;}structnodes*Deletes(structnodes*heads,doublenum)/*刪除用戶信息函數(shù)*/{ structnodes*p=heads,*q=NULL; if(heads==NULL) { printf("\n沒有記錄!\n"); returnheads; } while(p&&p->datas.num!=num) { q=p; p=p->next; } if(p) { if(q) q->next=p->next; else heads=heads->next; free(p); printf("刪除用戶成功!\n"); saveFiles(heads); } else printf("用戶不存在!\n"); returnheads;}structnode*correct(structnode*head,charISBNS[30])/*更改圖書信息函數(shù)*/{ structnode*p=head; bookdata; while(p) { if(strcmp(p->data.ISBN,ISBNS)==0) { readNode(&data); p->data=data; printf("修改成功!\n"); returnhead; } p=p->next; } printf("圖書不存在!\n"); returnhead;}structnodess*correctss(structnodess*headss)/*更改密碼函數(shù)*/{ structnodess*p=headss; accessdatass; charcodess[80]; printf("請(qǐng)輸入原密碼:"); scanf("%s",&codess); if(strcmp(p->datass.code,codess)==0) { readNodess(&datass); p->datass=datass; printf("修改密碼成功!\n"); } else printf("輸入密碼錯(cuò)誤,修改密碼失敗!\n"); returnheadss;}voidcreateprint(){ printf("\n"); printf("****\n"); printf("****\n"); printf("**◎◎**\n"); printf("**請(qǐng)輸入要求信息**\n"); printf("*~~~~~~~~~~~~~~~~*\n"); printf("*()()()()()()()()*\n"); printf("###############\n");}voidcreateFile()/*創(chuàng)造圖書信息函數(shù)*/{ bookdata; FILE*fp; if((fp=fopen("book.dat","wb"))==NULL) { printf("存儲(chǔ)圖書信息的文件未找到!\n"); exit(0); } printf("請(qǐng)輸入圖書信息,當(dāng)輸入足夠圖書時(shí),以ISBN號(hào)為0結(jié)束!\n"); readNode(&data); while(strcmp(data.ISBN,"0")!=0) { fwrite(&data,sizebook,1,fp); readNode(&data); } fclose(fp);}voidcreateFiles()/*創(chuàng)造用戶信息函數(shù)*/{ peopledatas; FILE*fps; if((fps=fopen("people.dat","wb"))==NULL) { printf("存儲(chǔ)用戶信息的文件未找到!\n"); exit(0); } printf("請(qǐng)輸入用戶信息,當(dāng)注冊(cè)足夠用戶時(shí),以用戶號(hào)碼為0結(jié)束!\n"); readNodes(&datas); while(datas.num) { fwrite(&datas,sizepeople,1,fps); readNodes(&datas); } fclose(fps);}voidcreateFiless()/*創(chuàng)造密碼函數(shù)*/{ accessdatass; FILE*fpss; if((fpss=fopen("access.dat","wb"))==NULL) { printf("存儲(chǔ)密碼信息的文件未找到!\n"); exit(0); } readNodess(&datass); fwrite(&datass,sizeaccess,1,fpss); fclose(fpss);}structnode*readFile(structnode*head)/*讀取圖書信息函數(shù)*/{ bookdata; FILE*fp; head=NULL; if((fp=fopen("book.dat","rb"))==NULL) { createprint(); printf("存儲(chǔ)圖書信息的文件未找到!\n"); return0; } fread(&data,sizebook,1,fp); while(!feof(fp)) { head=InsertOrder(head,data); fread(&data,sizebook,1,fp); } fclose(fp); returnhead;}structnodes*readFiles(structnodes*heads)/*讀取用戶信息函數(shù)*/{ peopledatas; FILE*fps; heads=NULL; if((fps=fopen("people.dat","rb"))==NULL) { createprint(); printf("存儲(chǔ)用戶信息的文件未找到!\n"); return0; } fread(&datas,sizepeople,1,fps); while(!feof(fps)) { heads=InsertOrders(heads,datas); fread(&datas,sizepeople,1,fps); } fclose(fps); returnheads;}structnodess*readFiless(structnodess*headss)/*讀取密碼函數(shù)*/{ structnodess*p; accessdatass; FILE*fpss; headss=NULL; if((fpss=fopen("access.dat","rb"))==NULL) { createprint(); printf("存儲(chǔ)密碼信息的文件未找到!\n"); return0; } p=(structnodess*)malloc(sizess); fread(&datass,sizeaccess,1,fpss); p->datass=datass; p->next=NULL; headss=p; fclose(fpss); returnheadss;}voidmenusearch(){ printf("\n"); printf("◎◎歡迎使用圖書登記管理程序◎◎\n"); printf("\n"); printf("┏━━━━━┓\n"); printf("┃查詢菜單┃\n"); printf("┗━━━━━┛\n"); printf("╔════════════════════════════════════╗\n"); printf("║!!!!!!!!!#********選擇1則按ISBN號(hào)查詢********#!!!!!!!!!║\n"); printf("║!!!!!!!!#********選擇2則按作者查詢**********#!!!!!!!!║\n"); printf("║!!!!!!!#********選擇3則按名稱查詢**********#!!!!!!!║\n"); printf("║!!!!!!#********選擇4則按出版社查詢********#!!!!!!║\n"); printf("║!!!!!#********選擇5則按出版日期查詢******#!!!!!║\n"); printf("║!!!!#********選擇6則按圖書類別查詢******#!!!!║\n"); printf("║!!!#********選擇0則返回上一級(jí)菜單******#!!!║\n"); printf("╚════════════════════════════════════╝\n");}voidprint(structnode*p)/*輸出圖書信息函數(shù)*/{ structnode*q=p; chars[80]; switch(q->data.type) { case1:strcpy(s,"馬列毛思想"); break; case2:strcpy(s,"哲學(xué)"); break; case3:strcpy(s,"社會(huì)科學(xué)"); break; case4:strcpy(s,"自然科學(xué)"); break; case5:strcpy(s,"綜合性圖書"); break; } printf("╔══════════════════════════════════╗\n"); printf("║滿足您查找條件的圖書信息為:║\n"); printf("╠══════════════════════════════════╣\n"); printf("║ISBN編號(hào):%-59s║\n",q->data.ISBN); printf("║書名:%-63s║\n",q->); printf("║作者:%-63s║\n",q->data.author); printf("║出版社:%-61s║\n",q->data.bookconcern); printf("║出版日期:%-59d║\n",q->data.day);printf("║價(jià)格:%-63.lf║\n",q->data.price); printf("║圖書類型:%-59s║\n",s); printf("║圖書狀態(tài):%-59d║\n",q->data.status); printf("╚══════════════════════════════════╝\n"); printf("\n");}voidsearch_book_by_ISBN(structnode*p)/*按ISBN號(hào)查詢圖書信息函數(shù)*/{ structnode*q=p; charISBNs[80]; intk=1; printf("輸入要查詢圖書的ISBN號(hào)!\n"); scanf("%s",&ISBNs); while(q) { if(strcmp(q->data.ISBN,ISBNs)==0) { print(q); k=0; } q=q->next; } if(k) printf("圖書未找到!\n");}voidsearch_book_by_author(structnode*p)/*按作者查詢圖書信息函數(shù)*/{ structnode*q=p; charauthors[80]; intk=1,count=0; printf("輸入要查詢圖書的作者!\n"); scanf("%s",&authors); while(q) { if(strcmp(q->data.author,authors)==0) { print(q); k=0; count++; } q=q->next; } if(k) printf("圖書未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_name(structnode*p)/*按書名查詢圖書信息函數(shù)*/{ structnode*q=p; charnames[80]; intk=1,count=0; printf("輸入要查詢圖書的名稱!\n"); scanf("%s",&names); while(q) { if(strstr(q->,names)) { print(q); k=0; count++; } q=q->next; } if(k) printf("圖書未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_bookconcern(structnode*p)/*按出版社查詢圖書信息函數(shù)*/{ structnode*q=p; charbookconcerns[80]; intk=1,count=0; printf("輸入要查詢圖書的出版社!\n"); scanf("%s",&bookconcerns); while(q) { if(strcmp(q->data.bookconcern,bookconcerns)==0) { print(q); k=0; count++; } q=q->next; } if(k) printf("圖書未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_day(structnode*p)/*按出版日期查詢圖書信息函數(shù)*/{ structnode*q=p; intdays; intk=1,count=0; printf("輸入要查詢圖書的出版日期!\n"); scanf("%d",&days); while(q) { if(q->data.day==days) { print(q); k=0; count++; } q=q->next; } if(k) printf("圖書未找到!\n"); else printf("共有%d本!\n",count);}voidsearch_book_by_type(structnode*p)/*按類型查詢圖書信息函數(shù)*/{ structnode*q=p; inttypes; intk=1,count=0; printf("馬列毛思想=1,哲學(xué)=2,社會(huì)科學(xué)=3,自然科學(xué)=4,綜合性圖書=5\n"); printf("輸入要查詢圖書的類型!\n"); scanf("%d",&types); while(q) { if(q->data.type==types) { print(q); k=0; count++; } q=q->next; } if

溫馨提示

  • 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論