




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、寧 波 工 程 學(xué) 院2013 2014 學(xué)年第 二 學(xué)期電信學(xué)院C語言課程設(shè)計(jì)報(bào)告題 目: 圖書信息管理系統(tǒng)設(shè)計(jì) 班 級: 計(jì)科13-2 姓 名: 傅天一 學(xué) 號:指導(dǎo)教師: 洪立 2014 年 6 月目錄目錄21、系統(tǒng)功能和結(jié)構(gòu)31.1系統(tǒng)設(shè)計(jì)目的31.2系統(tǒng)功能分析31.3系統(tǒng)結(jié)構(gòu)分析32、核心技術(shù)介紹33、函數(shù)功能介紹34、設(shè)計(jì)體會及總結(jié)4參考文獻(xiàn):4附錄一:51、 系統(tǒng)功能和結(jié)構(gòu)1.1系統(tǒng)設(shè)計(jì)目的為了滿足圖書管理的要求,通過計(jì)算機(jī)技術(shù)給圖書管理人員和讀者借、還書帶來便利。使用c語言編寫了圖書管理系統(tǒng)。本系統(tǒng)主要實(shí)現(xiàn)圖書信息管理的功能,通過此系統(tǒng)可對圖書館庫存
2、圖書信息進(jìn)行管理和維護(hù)操作。實(shí)現(xiàn)了圖書館內(nèi)管理的一般功能,包括查詢、借書、還書、添加、刪除、修改圖書信息等。所設(shè)計(jì)的系統(tǒng)以菜單方式工作,為用戶提供清晰的使用提示,依據(jù)用戶的選擇來進(jìn)行各種處理,并且在此過程中能夠盡可能的兼容用戶使用過程中可能出現(xiàn)的異常情況。圖書信息包括編號、書名、作者、出版社、出版日期、價(jià)格、在庫狀態(tài)等。圖書信息的錄入和顯示要求有一定的規(guī)范格式,錄入的圖書信息用文件形式保存,并可以對其進(jìn)行瀏覽、查詢、修改、刪除等基本操作。整個(gè)程序?qū)崿F(xiàn)鏈表操作,對圖書信息的操作逐個(gè)地進(jìn)行,一個(gè)圖書信息的更改不應(yīng)影響其他的圖書記錄。這種系統(tǒng)設(shè)計(jì)的人很多,也有很多種系統(tǒng)。總的感覺他們做的界面不夠人性
3、化,不夠美觀。所以我在功能完善的前提下要做到界面更加美觀和人性化。整個(gè)系統(tǒng)制造的而過程中,涉及了較多C語言知識點(diǎn),對于不同的數(shù)據(jù)類型、程序控制結(jié)構(gòu)、數(shù)據(jù)結(jié)構(gòu)作以分析和總結(jié),并結(jié)合這個(gè)課題進(jìn)行綜合的應(yīng)用,在一定程度上做到了對所學(xué)知識融會貫通。進(jìn)一步加深、鞏固了所學(xué)的專業(yè)的基本理論知識,培養(yǎng)了綜合分析問題、解決問題的能力。在設(shè)計(jì)程序時(shí),實(shí)現(xiàn)了程序的模塊化、結(jié)構(gòu)化。在主函數(shù)中調(diào)用各種子函數(shù),操作界面簡單,易操作。1.2系統(tǒng)功能分析(系統(tǒng)提供主界面,各種功能操作以獨(dú)立的函數(shù)為基礎(chǔ),運(yùn)用對鏈表操作的技術(shù)來實(shí)現(xiàn)通訊錄的管理,同時(shí)對操作結(jié)果在計(jì)算機(jī)中做永久保存。) 整個(gè)系統(tǒng)可以分為信息錄入、信息瀏覽、信息查
4、詢、信息排序、信息刪除和信息修改的功能。系統(tǒng)提供主界面,各種功能操作以獨(dú)立的函數(shù)為基礎(chǔ),運(yùn)用對鏈表操作的技術(shù)來實(shí)現(xiàn)圖書信息的管理,同時(shí)對操作結(jié)果在計(jì)算機(jī)中做永久保存。開始菜單頁面輸入數(shù)字編號選項(xiàng)進(jìn)入選擇子頁面結(jié)束1.3系統(tǒng)結(jié)構(gòu)分析程序總體結(jié)構(gòu)圖 選擇0程序?qū)哟螆D 開始選擇數(shù)字編號 0 1 2 3 4 圖書信息修改圖書信息查詢圖書信息瀏覽圖書信息錄入退出圖書管理系統(tǒng)圖書信息排序圖書信息保存圖書信息刪除圖書信息增加 5 6 7 8 程序流程圖開始 圖書信息錄入 0 1圖書信息瀏覽 0 2圖書信息查詢 0 3圖書信息修改 0 4圖書信息增加 0 5圖書信息刪除 0 6圖書信息排序 0 7圖書信息保存
5、 0 8 退出圖書管理系統(tǒng) 2、 核心技術(shù)介紹簡單選擇排序技術(shù):基本思想:每一趟在后面n-i 個(gè)待排記錄中選取排序碼最小的記錄作為有序序列中的第i 個(gè)記錄。排序過程: 首先通過n-1次關(guān)鍵字比較,從n個(gè)記錄中找出關(guān)鍵字最小的記錄,將它與第一個(gè)記錄交換。 再通過n-2次比較,從剩余的n-1個(gè)記錄中找出關(guān)鍵字次小的記錄,將它與第二個(gè)記錄交換。 重復(fù)上述操作,共進(jìn)行n-1趟排序后,排序結(jié)束實(shí)現(xiàn)代碼為:void bookpaixu(struct book*p,int n)int j,i,k;char c1;struct book temp;printf("n排序前圖書的信息記錄為:n&quo
6、t;);printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");for(i=0;i<n;i+)printf("n%10s%10s%10s%10s%10s%10s%10sn",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->
7、;putfrom,(p+i)->puttime,pi.price);printf("n按登錄號排序(D),還是按作者名排序(A)?"); /選擇排序的方式c1=getchar();getchar();if(c1='d'|c1='D') /選擇登錄號由小到大排序for(i=0;i<n-1;i+) k=i;for(j=i+1;j<n;j+)if(strcmp(pk.no,pj.no)>0) /使用選擇法進(jìn)行排序k=j;if(k!=i) /如果最小熟不熟默認(rèn)的pi,再交換,temp=pk;pk=pi;pi=temp;prin
8、tf("n排序后圖書的信息記錄為:n"); /輸出排序后圖書的信息printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");for(i=0;i<n;i+)printf("n%10s%10s%10s%10s%10s%10s%10sn",(p+i)->no,(p+i)->name,(p+i
9、)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,pi.price);else if(c1='a'|c1='A') /選擇作者名由小到大排序for(i=0;i<n-1;i+)k=i;for(j=i+1;j<n;j+)if(strcmp(pk.author,pj.author)>0)k=j;if(k!=i) /使用選擇法進(jìn)行排序temp=pk;pk=pi;pi=temp;printf("n排序后圖書的信息記錄為:n");printf("
10、n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格"); /輸出排序后圖書的信息for(i=0;i<n;i+)printf("n%10s%10s%10s%10s%10s%10s%10sn",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putf
11、rom,(p+i)->puttime,pi.price);elseprintf("n您輸入的為非法字符!n");3、 函數(shù)功能介紹stdlib.h是包含文件stdlib 頭文件即standard library標(biāo)準(zhǔn)庫頭文件。stdlib 頭文件里包含了C、C+語言的最常用的系統(tǒng)函數(shù)。該文件包含了的C語言標(biāo)準(zhǔn)庫函數(shù)的定義。stdlib.h里面定義了五種類型、一些宏和通用工具函數(shù)。 類型例如size_t、wchar_t、div_t、ldiv_t和lldiv_t; 宏例如EXIT_FAILURE、EXIT_SUCCESS、RAND_MAX和MB_CUR_MAX等等; 常用的
12、函數(shù)如malloc()、calloc()、realloc()、free()、system()、atoi()、atol()、rand()、srand()、exit()等等。 系統(tǒng)使用的主要函數(shù) void menu();int bookluru(struct book*p,int n); (錄入圖書信息) void bookliulan(struct book*p,int n); (圖書信息瀏覽) void bookchaxun(struct book*p,int n);(圖書信息查詢)void bookxiugai(struct book*p,int n); (圖書信息修改) int bookz
13、engjia(struct book*p,int n); (圖書信息增加)int bookshanchu(struct book*p,int n); (圖書信息刪除) void bookpaixu(struct book*p,int n); (圖書信息排序) void DLsearch(struct book*p,int n); (按登入號查詢)void AUsearch(struct book*p,int n); (按作者名查詢)int bookzairu(struct book*p,int n); (圖書信息文件儲存 )void goout(); (退出程序) int bookbaocun
14、(struct book*p,int n); (圖書信息保存) void main() 系統(tǒng)使用的主要數(shù)據(jù)結(jié)構(gòu) struct book /定義一個(gè)book類結(jié)構(gòu)體。 char noL;char nameL;char authorL;char fenleiL;char puttimeL;char putfromL;char priceL;4、 設(shè)計(jì)體會及總結(jié)這次課程設(shè)計(jì)讓我掌握了許多的有用知識。首先通過不斷地學(xué)習(xí)和鍛煉更加熟練地掌握應(yīng)用軟件Microsoft Visual C+ 6.0 了。設(shè)計(jì)正確及合適的程序?qū)τ谖覀兂鯇W(xué)者來說是很大的難題,出現(xiàn)一丁點(diǎn)兒錯(cuò)誤就得非很大的努力去修改,正式者一步步一
15、點(diǎn)點(diǎn)的努力讓我對C語言游樂更深的認(rèn)識。同時(shí)我掌握了解決問題的方法,這無論是對以后的學(xué)習(xí)、生活都有無比重要的價(jià)值通過兩周的課程設(shè)計(jì),第一次我試著用所學(xué)的C語言知識去編制生活中常用的程序。我們是小組選擇編輯圖書信息管理系統(tǒng)程序。由于分工合作,我負(fù)責(zé)的是查詢和排除模塊。起初對知識掌握的不夠全面,在整個(gè)設(shè)計(jì)過程中遇到很多問題。比如,編譯出現(xiàn)錯(cuò)誤,對于格式的掌握還不夠透徹;在分界面運(yùn)行完后,回不到系統(tǒng)的主界面,出現(xiàn)了死循環(huán);在刪除信息的板塊中,刪除了要保留的;運(yùn)行時(shí),屏幕顯示的字之間無空格。后來,通過小組互相幫組討論,查閱書籍,改善了程序。首先把原程序中的運(yùn)用scanf()輸入字符,改為getchar(
16、),排除了接受回車鍵所出現(xiàn)的問題,能夠順利的返回主界面。其次,printf()中字符串控制的長度拉寬。最后還是能如期的完成此次實(shí)訓(xùn)。當(dāng)然,由于初次接觸圖書管理系統(tǒng)的設(shè)計(jì),程序還是存在缺陷。比如操作起來不夠簡便、連貫,同時(shí)也沒考慮到實(shí)際問題。如圖書的價(jià)格要取大于等于零的數(shù)等。總之,此次的課程設(shè)計(jì)還是對我們的專業(yè)很有幫助。既鞏固了我們的C語言知識,讓我們對一部分函數(shù)的功能有了更加深刻的理解,把所學(xué)運(yùn)用到實(shí)際,也使我們在系統(tǒng)設(shè)計(jì)領(lǐng)域有了新的拓展,開發(fā)我們的思維。參考文獻(xiàn):1 黃明等編著C語言課程設(shè)計(jì)北京:電子工業(yè)出版社 2 郭翠英編著C語言課程設(shè)計(jì)案例精編北京:中國水利水電出版社 3 寧正元數(shù)據(jù)結(jié)構(gòu)
17、(c語言)南京:東南大學(xué)出版社。2000年6月第1版 4 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版 5 譚浩強(qiáng)編著C程序設(shè)計(jì)題解與上機(jī)指導(dǎo)(第3版) 北京:清華大學(xué)出版社 6 譚浩強(qiáng)編著C程序設(shè)計(jì)(第3版) 北京:清華大學(xué)出版社 7 洪國勝 等編著 C+ Builder程序設(shè)計(jì)輕松上手北京:清華大學(xué)出版社 8 寧正元數(shù)據(jù)結(jié)構(gòu)(c語言) 南京:東南大學(xué)出版社。2000年6月第1版 9 嚴(yán)蔚敏等 數(shù)據(jù)結(jié)構(gòu)(c語言版) 北京:清華大學(xué)出版社,1997年4月第1版。10 明日科技編著Visual C+程序開發(fā)范例寶典北京:人民郵電出版社。 11 胡學(xué)鋼等數(shù)據(jù)結(jié)構(gòu)算法設(shè)
18、計(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版。附錄一:系統(tǒng)使用方法:一開始運(yùn)行程序時(shí),就會出現(xiàn)一個(gè)讓你選擇的界面,1.圖書信息錄入;2圖書信息瀏覽;3圖書信息查詢;4圖書信息修改;5圖書信息增加;6圖書信息刪除;7圖書信息排序;8圖書信息保存;0退出圖書管理系統(tǒng);當(dāng)你輸入1時(shí)(首次錄入圖書信息時(shí)),界面就會輸出“添加前的圖書信息記錄有0個(gè): 請輸入要錄入的圖書書目x(0<x<200):”,接著你就按要求輸入你要錄
19、入的圖書的信息就可以了。當(dāng)你輸入2時(shí),就會在出現(xiàn)一個(gè)你錄入的圖書信息,你可以繼續(xù)選擇繼續(xù)或不,當(dāng)選擇繼續(xù)時(shí)頁面會跳轉(zhuǎn)到3圖書信息查詢界面此時(shí)會提示你請按登陸號查詢還是按作者名查詢?你可以按照提示進(jìn)行查詢操作。當(dāng)你輸入4時(shí),界面會提示你輸入要修改的圖書登陸號。接下來按照提示信息一步步修改圖書信息。當(dāng)你輸入5時(shí),界面會提示你添加圖書信息按提示添加完后會顯示添加前的圖書信息記錄和添加后的圖書信息記錄。當(dāng)輸入6時(shí),界面會提示輸入刪除圖書的登陸號,刪除后會顯示圖書刪除后的記錄。當(dāng)輸入7時(shí),界面會提示按登陸號排序或按作者名排序,排序后會顯示排序后俄圖書信息記錄。當(dāng)輸入8時(shí),界面會提示“圖書信息保存成功!”
20、當(dāng)輸入0時(shí),將會退出圖書管理系統(tǒng)。Ps:操作每一步結(jié)束都回提示是否繼續(xù)操作(Y/N)。源代碼:#include<stdio.h> /頭文件#include<string.h>#include<stdlib.h>#define L 30 /宏定義#define Q 200struct book /定義一個(gè)book類結(jié)構(gòu)體。char noL;char nameL;char authorL;char fenleiL;char puttimeL;char putfromL;char priceL;/函數(shù)聲明 /函數(shù)聲明void menu();int bookluru
21、(struct book*p,int n); void bookliulan(struct book*p,int n); void bookchaxun(struct book*p,int n); void bookxiugai(struct book*p,int n); int bookzhengjia(struct book*p,int n);int bookshanchu(struct book*p,int n); void bookpaixu(struct book*p,int n); void DLsearch(struct book*p,int n); void AUsearch(
22、struct book*p,int n);int bookzairu(struct book*p,int n);void goout();int bookbaocun(struct book*p,int n); void main() /主函數(shù)char slect,yn;struct book recordQ; /定義book類結(jié)構(gòu)體變量存放圖書信息共200條int total=0,flag;total=bookzairu(record,Q); /從文件讀取圖書信息,不超過200條domenu(); /顯示菜單printf("請服務(wù)項(xiàng)編號:");slect=getchar(
23、);getchar();switch(slect) case'0': goout();break;case'1': total=bookluru(record,total);break; /函數(shù)調(diào)用case'2': bookliulan(record,total);break;case'3': bookchaxun(record,total);break;case'4': bookxiugai(record,total);break;case'5': total=bookzhengjia(recor
24、d,total);break;case'6': total=bookshanchu(record,total);break;case'7': bookpaixu(record,total);break;case'8': flag=bookbaocun(record,total);if("flag=1") printf("圖書信息保存成功!n");elseprintf("圖書信息保存失??!n");break;default:continue;if(slect='0') br
25、eak;printf("n還要繼續(xù)選擇嗎?(Y/N)"); /提示是否結(jié)束doyn=getchar();getchar();if (yn='Y'|yn='y')break;else if (yn='N'|yn='n')break;else printf("非法選項(xiàng)!n還要繼續(xù)選擇嗎?(Y/N)");while(1);while(yn!='N'&&yn!='n');/圖書管理系統(tǒng)主菜單.void menu()system("cls&qu
26、ot;);system("color 1e"); printf("nn"); printf("請選擇服務(wù)項(xiàng)目編號(0-8)n"); printf("*n"); printf("§*歡迎使用圖書信息管理系統(tǒng)*§n"); printf("§*§n"); printf("§§ §§n"); printf("§§ §§n");
27、 printf("§§ §§n"); printf("§§ * 1 . 圖書信息錄入. §§n"); printf("§§ * 2 . 圖書信息瀏覽. §§n"); printf("§§ * 3 . 圖書信息查尋. §§n"); printf("§§ * 4 . 圖書信息修改. §§n"); pri
28、ntf("§§ * 5 . 圖書信息增加. §§n"); printf("§§ * 6 . 圖書信息刪除. §§n"); printf("§§ * 7 . 圖書信息排序. §§n"); printf("§§ * 8 . 圖書信息保存. §§n"); printf("§§ * 0 . 退出圖書管理系統(tǒng). §§n
29、"); printf("§§ §§n"); printf("§§ §§n"); printf("§§ §§n"); printf("*n"); printf("n");int bookluru(struct book *p,int n)/錄入圖書信息.int i=0;int m;printf("n添加前的圖書信息記錄共有%d個(gè):n",n); /顯示
30、原有的圖書信息printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");i=0;while(i<n)&&(strcmp(p->no,"")!=0) /輸入的登錄號不為空時(shí),輸出圖書信息printf("%9s%9s%9s%9s%9s%9s%9sn",p->no,p->
31、;name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);/信息輸出i+;p+;printf("n請輸入要錄入的圖書數(shù)目X(0<X<%d): ",200-n); /設(shè)置圖書信息存儲最大值scanf("%d",&m);i=0;while(i<m)printf("n");printf("請輸入第%d本圖書的信息:n",i+1);printf("登錄號: ");do gets(p->
32、no); /輸入登錄號,再輸入其他信息while(strcmp(p->no,"")=0);printf("書名為:"); gets(p->name); printf("作者名為:"); gets(p->author); printf("分類號為:"); gets(p->fenlei); printf("出版時(shí)間為:"); gets(p->puttime); printf("出版單位為:"); gets(p->putfrom); printf
33、("價(jià)格為:"); gets(p->price);p+;i+;return m+n;void bookliulan(struct book*p,int n)/圖書信息瀏覽.int i=0;printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");while(i<n) /輸出原有圖書信息printf("
34、%9s%9s%9s%9s%9s%9s%9sn",p->no,p->name,p->author,p->fenlei,p->puttime,p->putfrom,p->price);p+;i+;void bookchaxun(struct book*p,int n)/圖書信息查尋.char c;bookliulan(p ,n);doprintf("n請問按登錄號查詢(D),還是按作者名查詢(A)?"); /選擇查詢方式c=getchar();getchar();if(c='D'|c='d')D
35、Lsearch(p,n);break;else if(c='A'|c='a')AUsearch(p,n);break;elseprintf("n輸入的為非法字符!n");continue;while(c!='D'|c!='d'|c!='A'|c!='a');void DLsearch(struct book*p,int n)/按登錄號查詢.int i,x=0;char DLL;printf("n請輸入要查詢圖書的登錄號:");gets(DL);for(i=0;
36、i<n;i+)if(strcmp(DL,pi.no)=0) /輸入登錄號,如果在系統(tǒng)中找到則輸出圖書信息printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");printf("n%10s%10s%10s%10s%10s%10s%10sn",pi.no,,pi.author,pi.fenlei,pi.p
37、utfrom,pi.puttime,pi.price);x=1;break;if(x=0)printf("n對不起,圖書系統(tǒng)中沒有包含此書的信息!n");void AUsearch(struct book*p,int n)/按作者名查詢.int i,x=0;char AU20;printf("n請輸入要查詢圖書的作者姓名:");gets(AU);for(i=0;i<n;i+) if(strcmp(AU,pi.author)=0) /輸入作者姓名,如果在系統(tǒng)中找到則輸出圖書信息 printf("n %9s%9s%9s%9s%9s%9s%9s
38、n","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");printf("n%10s%10s%10s%10s%10s%10s%10sn",pi.no,,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);x=1;if(x=0)printf("n對不起,圖書系統(tǒng)中沒有包含此書的信息!n"); /提示信息void
39、 bookxiugai(struct book*p,int n)/圖書信息修改.int i,k=0;char noL;bookliulan(p,n);printf("n請輸入要修改圖書的登錄號:");gets(no);for(i=0;i<n;i+,p+) if(strcmp(no,p->no)!=0) continue; /輸入的登錄號不匹配,結(jié)束本次循環(huán)elseprintf("n請輸入正確的圖書登錄號:");gets(p->no);printf("n請輸入正確的圖書書名:"); gets(p->name);
40、printf("n請輸入正確的圖書作者名:"); gets(p->author); printf("n請輸入正確的圖書分類號:"); gets(p->fenlei); printf("n請輸入正確的圖書出版時(shí)間:"); gets(p->puttime); printf("n請輸入正確的圖書出版單位:"); gets(p->putfrom); printf("n請輸入正確的圖書價(jià)格:"); gets(p->price);printf("n修改圖書圖書信息完成
41、!");k=1;if(k=0)printf("n對不起,圖書系統(tǒng)中沒有包含此書的信息!n");int bookzhengjia(struct book *p,int n)/圖書信息增加.int i=0;char c;struct book t;printf("n添加前圖書信息的記錄為:n"); bookliulan(p ,n);/顯示添加前圖書信息的記錄doprintf("請輸入新圖書信息的登錄號:");gets(t.no); printf("n請輸入新圖書信息的書名為:"); gets();
42、 printf("n請輸入新圖書信息的作者名為:"); gets(t.author); printf("n請輸入新圖書信息的分類號為:"); gets(t.fenlei); printf("n請輸入新圖書信息的出版時(shí)間為:"); gets(t.puttime); printf("n請輸入新圖書信息的出版單位為:"); gets(t.putfrom); printf("n請輸入新圖書信息的價(jià)格為:"); gets(t.price);for(i=0;i<n;i+)if(strcmp(t.no,
43、(p+i)->no)=0|strcmp(t.author,(p+i)->author)=0|strcmp(t.fenlei,(p+i)->fenlei)=0)printf("登錄號、作者名和分類號重復(fù),要重新輸入嗎(Y/N)?");c=getchar();putchar('n');break;if(i=n)*(p+i)=t; printf("n添加后圖書的信息記錄為:n"); /顯示添加后圖書的信息記錄printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號",
44、"書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");for(i=0;i<n+1;i+)printf("n%9s%9s%9s%9s%9s%9s%9sn",pi.no,,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);break;while(c='y'|c='Y');return n+1;int bookshanchu(struct
45、 book *p,int n)/圖書信息刪除.int i,x,y=0;char no20;printf("n刪除前圖書的信息記錄為:n");printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格"); /顯示刪除前圖書的信息記錄for(i=0;i<n;i+)printf("n%9s%9s%9s%9s%9s%9
46、s%9sn",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,pi.price);printf("n請輸入要?jiǎng)h除圖書的登陸號:");gets(no);for(x=0;x<n;x+)if(strcmp(no,px.no)!=0) /輸入的登錄號不匹配,結(jié)束本次循環(huán)continue;if(x<n)for(i=x;i<n;i+) /后一個(gè)圖書信息對前一個(gè)圖書信息覆蓋刪除 strcpy(pi.no,pi+1.
47、no); strcpy(pi.author,pi+1.author); strcpy(,pi+1.name); strcpy(pi.fenlei,pi+1.fenlei); strcpy(pi.price,pi+1.price); strcpy(pi.putfrom,pi+1.putfrom); strcpy(pi.puttime,pi+1.puttime);printf("圖書信息刪除后的記錄:n");printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名",&quo
48、t;作者名","分類號","出版單位","出版時(shí)間","價(jià)格"); /顯示圖書信息刪除后的記錄for(i=0;i<n-1;i+)printf("n%9s%9s%9s%9s%9s%9s%9sn",pi.no,,pi.author,pi.fenlei,pi.putfrom,pi.puttime,pi.price);y=1;elseprintf("n對不起,圖書系統(tǒng)中沒有包含此書的信息!n");return n-y; return 0;/對圖書信息排序
49、.void bookpaixu(struct book*p,int n)int j,i,k;char c1;struct book temp;printf("n排序前圖書的信息記錄為:n");printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");for(i=0;i<n;i+)printf("n%10s%
50、10s%10s%10s%10s%10s%10sn",(p+i)->no,(p+i)->name,(p+i)->author,(p+i)->fenlei,(p+i)->putfrom,(p+i)->puttime,pi.price);printf("n按登錄號排序(D),還是按作者名排序(A)?"); /選擇排序的方式c1=getchar();getchar();if(c1='d'|c1='D') /選擇登錄號由小到大排序for(i=0;i<n-1;i+) k=i;for(j=i+1;j<
51、;n;j+)if(strcmp(pk.no,pj.no)>0) /使用選擇法進(jìn)行排序k=j;if(k!=i) /如果最小熟不熟默認(rèn)的pi,再交換,temp=pk;pk=pi;pi=temp;printf("n排序后圖書的信息記錄為:n"); /輸出排序后圖書的信息printf("n %9s%9s%9s%9s%9s%9s%9sn","登錄號","書名","作者名","分類號","出版單位","出版時(shí)間","價(jià)格");for(i=0;i<n;i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 化妝品經(jīng)銷商合同
- 數(shù)據(jù)分析與決策支持實(shí)戰(zhàn)指南
- 裝修階段雨季施工方案
- 基礎(chǔ)鋼模板施工方案
- 全玻自由門施工方案
- 扶溝聚氨酯地坪施工方案
- TCSHB 0022-2024 全自動(dòng)真空焊接爐過程質(zhì)量管理規(guī)范
- 上海2025各區(qū)初三議論文閱讀題選
- 景點(diǎn)礦山修復(fù)工程施工方案
- 新中式巖板背景墻施工方案
- 西師大版六年級數(shù)學(xué)下冊全冊知識點(diǎn)匯總
- 江西2023年分宜九銀村鎮(zhèn)銀行社會招聘上岸提分題庫3套【500題帶答案含詳解】
- 2023年知識產(chǎn)權(quán)保護(hù)公需課試題答案
- 《公司管理人員招聘問題研究16000字(論文)》
- JJG 370-2019在線振動(dòng)管液體密度計(jì)
- GB/T 8162-2018結(jié)構(gòu)用無縫鋼管
- GB/T 36018-2018吹氧金屬軟管
- GB/T 22095-2008鑄鐵平板
- GB/T 1839-2008鋼產(chǎn)品鍍鋅層質(zhì)量試驗(yàn)方法
- 邊坡穩(wěn)定性計(jì)算書
- 教教技術(shù)cccp四種教練能力與技巧課件
評論
0/150
提交評論