版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告課設課題:課程設計一一圖書治理系統(tǒng)學院:電子信息學院專業(yè):網絡工程姓名:班級學號:BX1213指導教師:張艷報告日期:一、需求分析系統(tǒng)開發(fā)背景和意義圖書治理作為計算機應用的一個分支,有著手工治理無法比較的優(yōu)點,如檢索迅速、查找方便、可靠性高、存儲量大、保密性好、壽命長、本錢低等.這些優(yōu)點能夠極大地提升圖書治理的效率.因此,開發(fā)一套能夠為用戶提供充足的信息和快捷的查詢手段的圖書治理系統(tǒng),將是非常必要的,也是十分及時的.圖書治理系統(tǒng)需要滿足來自圖書館工作人員、普通用戶和借閱者三方面人員的需求.圖書館工作人員對圖書借閱者的借閱及還書要求進行操作,同時還可通過圖書編號等查詢相應的借閱情況;
2、普通用戶的需求是查詢圖書館所存的圖書的相關情況;圖書借閱者的需求是查看自己的相關信息及查詢自己的借閱情況.設計題目與要求【問題描述】設計一個計算機治理系統(tǒng)完成圖書治理根本業(yè)務.【根本要求】1每種書的登記內容包括書號、書名、著作者、現(xiàn)存量和庫存量;2對書號建立索引表線性表以提升查找效率;3系統(tǒng)主要功能如下:* 采編入庫:新購一種書,確定書號后,登記到圖書帳目表中,如果表中已有,那么只將庫存量增加;* 借閱:如果一種書的現(xiàn)存量大于0,那么借出一本,登記借閱者的書證號和歸還期限,改變現(xiàn)存量;* 歸還:注銷對借閱者的登記,改變該書的現(xiàn)存量.二、總體結構設計有八個模塊1圖書初始化輸入圖書的一些信息,編號
3、、作者、書名、數(shù)量,使有一定的庫存.2新書入庫新書采編入庫,輸入編號后如果有次數(shù)只需輸入數(shù)量,沒有那么繼續(xù)輸入書名、作者、數(shù)量.3添加讀者信息讀者信息初始化,輸入讀書證號和姓名,只有輸入書證號和姓名才能進行借書還書4借書模塊讀者輸入讀書證號,證號存在輸入要借的圖書編號,不能借同一本書,如果借書數(shù)量以到達最大也不能借書.5還書模塊歸還已借的圖書,要先輸入讀者書證號,書證號存在繼續(xù)輸入要還的圖書編號,圖書編號存在并且借來此書,歸還成功.6查詢圖書信息7查詢讀者信息可查詢讀者姓名書證號,借了幾本書,都是什么書和還書日期,還可以借幾本書.8退出退出讀書治理系統(tǒng)并保存讀者和圖書信息.輸入讀者信借書二、各
4、子模塊設計初始化圖書信息進入系統(tǒng)后首先進行圖書初始化,輸入圖書的信息圖3-1初始化圖書信息流程圖系統(tǒng)主界面初始化之后,進入系統(tǒng),顯示功能列表,可選擇任意系統(tǒng),但在借書之前先要輸入讀者信息.執(zhí)行所選功能圖3-2系統(tǒng)主界面流程圖米編入庫選擇采編入庫的功能后,先輸入圖書編號判斷是否存在,假設存在,那么在原有記錄上加上添加的圖書數(shù)量;假設不存在,那么參加新的記錄.在原有的紀錄上向系統(tǒng)中參加新圖3-3采編入庫流程圖輸入讀者信息選擇讀者登記后,輸入讀者編號跟姓名.圖3-4輸入讀者信息流程圖借閱圖書選擇借閱圖書功能后,輸入讀者證號,判斷該讀者是否存在,假設存在那么輸入借閱圖書的編號,判斷該圖書編號是否存在,
5、假設存在,那么判斷讀者借閱的圖書數(shù)量是否滿了和是否借閱了相同的書籍,判斷成功后,那么輸入歸還該圖書的日期,該圖書現(xiàn)有量減一,借閱成功;假設讀者不存在那么返回判斷讀者是輸出次讀者編號輸入要借的圖判斷圖書編輸出此圖書編號看是否還有此是輸出此書已借看讀者的借是否輸出借書數(shù)目已看讀者是否,是否輸出同一讀者不輸入歸還圖書的讀者結束成圖3-5借閱圖書流程圖歸還圖書實現(xiàn)歸還圖書功能時,首先輸入讀者編號,并判斷是否存在,假設不存在就按任意鍵返回,;假設存在輸入歸還的圖書編號并判斷是否存在,假設歸圖書的現(xiàn)有量加一.最后按任意鍵返回判斷讀者編是判斷圖書編號U是此圖書編號和還r出讀者還書:/否輸出讀者編號不輸出此冬
6、書編號還圖書編號不存在,那么返回.存在后,將讀者借閱該圖書的信息清空,該圖3-6歸還圖書流程圖查詢圖書信息查詢圖書信息時,輸入圖書的編號,判斷是否存在.不存在那么返回;存在那么輸出圖書的編號,書名,作者,現(xiàn)有量,跟庫存量.判斷圖書信輸出此圖書編號輸出圖書信息:編圖3-7查詢圖書信息流程圖查詢讀者信息查詢讀者信息時,首先判斷讀者的編號是否存在,不存在就按任意鍵返回.假設存在,那么輸出讀者的證號,姓名,和借閱的圖書編碼及其還書日期.判斷讀者信輸出此讀者編號輸出讀者書證號、姓圖3-8查詢讀者信息流程圖四、程序設計調試情況分析在整個課程設計中,我們遇到了許多的問題.有些問題吧,我們在苦思冥想的時候,忽
7、然我們的編譯器顯示出了正確的結果,當我們欣喜假設狂的在運行下一次的時候又會出現(xiàn)相同的問題,在借閱的過程中,在一個讀者借閱了兩本書以上的時候,上一本書的歸還日期上還有下一本書上的編號,最后一本書輸出的才是正確的結果.下列圖是借閱了兩本書的截圖:圖4-1看到這里我們也知道是第一本書的還書日期的地址空間跟第二本書的編號連接在了一起導致輸出的時候一直到第二本書編號的的字符串后面的'/0'結束.最后發(fā)現(xiàn)是我們在定義還書日期這個字符串的時候開辟的空間太小.我們把charlimit_date8;改為charlimit_date10就好了.五、測試結果歡送界面程序運行顯示“歡送使用圖書治理系統(tǒng)
8、,按任意鍵進入到主菜單如圖5-1所示.圖5-1歡送界面初始化圖書信息在沒有文件的時候會進入到初始化界面,需要輸入一本圖書的相關信息,如圖5-2所示.圖5-2初始化圖書信息系統(tǒng)主界面接著進入的系統(tǒng)的主菜單,如圖5-3所示.圖5-3系統(tǒng)主界面米編入庫實現(xiàn)采編入庫功能根據(jù)系統(tǒng)提示輸入信息.如圖5-4o如果該圖書已存在,那么直接輸入圖書的數(shù)量如圖5-5所示.圖5-4米編入庫書不存在圖5-5米編入庫書已存在輸入讀者信息根據(jù)要求輸入讀者信息,如圖5-6所示.圖5-6輸入讀者信息借閱圖書根據(jù)要求先輸入讀者證號,在輸入借閱的圖書編號如圖5-7所示.如果讀者已經借閱了一本書之后不能借閱同一本圖書如圖5-8所示.
9、圖5-7借閱圖書圖5-8同一個讀者不能借閱同一本圖書歸還圖書歸還圖書的要求按著圖5-9輸入即可.圖5-9歸還圖書查詢圖書信息圖5-10是沒有借閱之前的圖書的相關信息,圖5-11是讀者借閱了圖書之后的信息,只改變了現(xiàn)有量.圖5-10借閱登記后查詢讀者信息查詢讀者的信息時,會輸出相關借閱的圖書編號以及還書日期如圖5-12,5-13所示.圖5-12查詢讀者信息一圖5-13查詢讀者信息二保存文件,退出在系統(tǒng)的主菜單后,按0'功能保存并退出系統(tǒng).圖5-14文件保存六、總結個人覺得課程設計是培養(yǎng)學生綜合運用所學知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐水平的重要環(huán)節(jié),是對學生實際工作水平的具體
10、練習和考察過程.在生活中可以說得是無處不在.因此作為新世紀的大學來說能夠分析,并解決程序中出現(xiàn)的問題是十分重要的.課程設計就能體現(xiàn)到這一方面.能夠將你所學到的理論跟實際結合在一起.通過本次課程設計感慨良多.從課堂上聽到的到課后應用到的根本就不是一回事.課堂上,老師在上面說,自己在下面聽,到也能聽懂.可是到了應用上,自己倒也是知道要用到哪方面的內容,但是偏偏不知道從何處下手;好不容易寫好的一小段代碼,還要跟其他功能不相沖突,這又需要我們自己去想方法去兼容好他們.通過本次課程設計試我懂得理論要跟實踐相結合.正所謂“臺上十分鐘,臺下十年功,別人在臺上表演了十分鐘,你覺得很容易,可那里知道別人在下面做
11、的努力呢.同樣的,我們在課堂上聽老師講確實覺得是那么回事,但是真正做下去,也只有自己知道是何種滋味.理論始終是理論,不能都熟練應用自己所學到的知識,到頭來也是一場空.在這次的課程設計過程中,我們也遇到了不能解決的難題,比方說在讀者查詢的時候,第二個讀者始終會覆蓋第一個讀者的數(shù)據(jù).我們始終沒有搞明白問題的所在,只知道不是在輸出讀者信息的問題,應該是添加讀者過程中指針始終指在第一個地址,沒有移動.我們根據(jù)查詢圖書的函數(shù)重新編寫了一次還是同樣問題.一直到辯論前一天晚上還沒有解決,之后只能放棄.還有在最開始的時候我們的程序功能并沒有清屏功能,整個界面看起來并不是那么整潔.于是我用用getch();sy
12、stem("cls);來進行清屏,最后會出先一個小問題,在我們查詢了一些資料后,又再次根底上加上了gotoend;這個函數(shù)來加以完善.這次課程設計,我們也遇到了很多問題,比方說,我們再輸入第二個讀者的信息后會覆蓋第一個讀者的信息,想了半天沒有弄懂是哪里錯了,最后才看出來我們定義的結構體指針沒有移動,導致我們輸入的讀者信息一直存放在同一個地址中.也有些不懂需要在網上查詢的代碼,組員之間相互配合,不懂就詢問其他同學或者查詢資料亦或者自己去弄懂問題的根結,團結協(xié)作的精神在這次課程設計中表現(xiàn)的淋漓盡致.我們不僅將以前的知識復習一遍;同時也弄懂了一些平常自己似懂非懂的;最后同學之間的友誼也慢慢
13、變的深厚起來小組分工:孫澤銘:采編入庫、查詢圖書信息、查詢讀者信息黃響:添加讀者、借閱圖書、歸還圖書七、參考文獻1嚴蔚敏吳偉民編著?數(shù)據(jù)結構?清華大學出版社,20002黃國瑜葉乃菁編著?數(shù)據(jù)結構?清華大學出版社,20013胡學鋼編著?數(shù)據(jù)結構算法設計指導?清華大學出版社,19994王士元編著?數(shù)據(jù)結構與數(shù)據(jù)庫系統(tǒng)?南開大學出版社,20005李強根主編?數(shù)據(jù)結構C+苗述?中國水利水電出版社,20016楊正宏編著出版社,20027胡學鋼編著出版社,19998殷人昆徐孝凱編著出版社,20029李春葆編著出版社,200110咨訊教育小組編著出版社,2002#include<>#includ
14、e<>#include<>#include<>#defineMax4?數(shù)據(jù)結構?中國鐵道?數(shù)據(jù)結構算法設計指導?數(shù)據(jù)結構習題解析?數(shù)據(jù)結構習題與解析?數(shù)據(jù)結構數(shù)據(jù)結構版?八、附錄源代碼清華大學清華大學清華大學中國鐵道typedefstructbookcharbook_num10;charbook_name20;charbook_writer10;intbook_xy;intbook_kc;intn;structbook*next;BK;typedefstructborrow(charborrow_book_num10;charlimit_date10;BO;
15、charreader_num10;charreader_name10;intright;intm;BOborrowMax;structreader*next;RD;BK*h_book;RD*h_reader;intn=0;intm=0;voidLogin();intMenu();voidInit();voidMenu_select();voidInsert_New_Book();voidadd_reader();voidPrint_reader();voidPrint_book();voidBorrow_Book();voidReturn_Book();voidSave();voidSave_
16、Book();voidSave_Reader();voidLoad();voidLoad_Reader();voidLoad_Book();voidLogin()system("cls");printf("nnntt*n");printf("nnntt*歡送使用圖書治理系統(tǒng)*n");printf("nnntt*n");printf("nnntt按任意鍵進入系統(tǒng).");getch();system("cls");intMenu()/*主菜單*/intdm;);printf(&q
17、uot;nttprintf("圖書治理系統(tǒng)主菜單n");n"printf("*t1米編入庫n");printf("*t2-登記讀者n");printf("*t3-借閱登記n");printf("*t4-還書治理n");printf("*t5-查詢圖書信息n");printf("*t6-查詢讀者信息n");printf("*t0-printf("退出系統(tǒng)n");printf("請選擇相應的代碼:")
18、;for(;)(scanf("%d",&dm);n包括編號.書名.數(shù)量.n");p0=(BK*)malloc(sizeof(BK);h_book=p0;printf"n請輸入圖書信息:n"printf("圖書編號:");/*scanf("%s",p0->book_num);printf("圖書名稱:");/*scanf("%s",p0->book_name);printf("圖書作者:");/*scanf("%s&q
19、uot;,p0->book_writer);printf("圖書數(shù)量:");/*scanf("%d",&p0->book_kc);p0->book_xy=p0->book_kc;/*/p0->next=NULL;p0->n=+n;printf("n圖書信息初始化完畢getch();輸入圖書編號唯一*/輸入圖書名稱*/輸入圖書作者*/輸入圖書數(shù)量*/開始時圖書現(xiàn)有量和庫存量相等!按任意鍵繼續(xù)下一步操作.n"system("cls");voidInsert_New_Book(
20、)/*新書入庫*/p=p1=h_book;printf("n新書入庫模塊n");printf"n請輸入新書信息.n包括書號.書名.數(shù)量.n"p0=(BK*)malloc(sizeof(BK);printf("圖書編號:");scanf("%s,p0->book_num);while(strcmp(p0->book_num,p1->book_num)!=0&&p1->next!=NULL)p1=p1->next;if(strcmp(p0->book_num,p1->bo
21、ok_num)=0)/*此處分兩種情況,假設圖書編號存在,那么直接進庫,只須輸入書的數(shù)量*/printf"n此編號圖書已存在!直接入庫!n"printf("圖書數(shù)量:");scanf("%d",&p0->book_kc);p1->book_kc+=p0->book_kc;p1->book_xy+=p0->book_kc;)else/*假設不存在,那么需要輸入其他的信息,然后在進行插入操作*/printf("圖書名稱:");scanf("%s,p0->book_n
22、ame);printf("圖書作者:");scanf("%s",p0->book_writer);printf("圖書數(shù)量:");scanf("%d",&p0->book_kc);n");getch();system("cls");voidadd_reader()/*添加讀者*/(RD*p0;inti;printf("n讀者初始化開始,請輸入讀者信息.n包括書證號.姓名.n");p0=(RD*)malloc(sizeof(RD);/*申請新結點存
23、儲空間*/h_reader=p0;printf("n請輸入讀者的信息:n");printf("讀者書證號:");scanf("%s,p0->reader_num);printf("讀者姓名:");scanf("%s",p0->reader_name);p0->right=0;for(i=0;i<Max;i+)所借圖書直接步操作.n");strcpy(p0->borrowi.borrow_book_num,"0");/*置為(即沒有借書)*/str
24、cpy(p0->borrowi.limit_date,"0");p0->next=NULL;p0->m=+m;printf("n讀者信息初始化完畢!按任意鍵繼續(xù)下getch();system("cls");voidBorrow_Book()/*借書模塊*/BK*p0;RD*p1;charbo_num10,rea_num10,lim_date8;inti;p0=h_book;p1=h_reader;printf("n借書模塊.n");printf("n請輸入借書的讀者書證號:");scan
25、f("%s",rea_num);while(p1->next!=NULL&&strcmp(rea_num,p1->reader_num)!=0)p1=p1->next;if(p1->next=NULL&&strcmp(rea_num,p1->reader_num)!=0)printf("n此讀者編號不存在!按任意鍵返回.n");gotoEND;printf("n請輸入你要借的書的編號:");scanf("%s,bo_num);while(strcmp(bo_num
26、,p0->book_num)!=0&&p0->next!=NULL)p0=p0->next;if(p0->next=NULL&&strcmp(bo_num,p0->book_num)!=0)printf("n此圖書編號不存在!按任意鍵返回.n");gotoEND;)elseif(p0->book_xy<=0)(printf("n抱歉,此書已借完!請等待新書的到來!n按任意鍵返回.");gotoEND;)elseif(p1->right>Max|p1->right=
27、Max)(printf("n不好意思,借書數(shù)目已滿!不能借書!n按任意鍵返回.");gotoEND;(for(i=0;i<Max;i+)(if(strcmp(p1->borrowi.borrow_book_num,bo_num)=0)(printf("n抱歉!同一個讀者不能同借兩本相同的書!n按任意鍵返回.");gotoEND;elseif(strcmp(p1->borrowi.borrow_book_num,"0")=0)(printf("n請輸入你要歸還圖書的日期:");scanf("
28、;%s",lim_date);strcpy(p1->borrowp1->right-1.limit_date,lim_date);p0->book_xy-;printf("n讀者編號$借書完畢!按任意鍵繼續(xù)下步操作.",p1->reader_num);gotoEND;elseprintf("n請輸入你要歸還圖書的日期:");scanf("%s",lim_date);strcpy(p1->borrowp1->right+.borrow_book_num,bo_num);strcpy(p1-&
29、gt;borrowp1->right-1.limit_date,lim_date);p0->book_xy-;p0->book_kc-;printf("n讀者編號S昔書完畢!按任意鍵繼續(xù)下步操作.",p1->reader_num);gotoEND;END:getch();system("cls");voidReturn_Book()/*還書模塊*/BK*p;RD*q;inti,j,find=0;charreturn_book_num10,return_reader_num10;p=h_book;q=h_reader;printf(
30、"n還書模塊.n");printf("n請輸入要還書的讀者編號:");scanf("%s",return_reader_num);while(q->next!=NULL&&strcmp(return_reader_num,q->reader_num)!=0)q=q->next;if(q->next=NULL&&strcmp(return_reader_num,q->reader_num)!=0)find=2;printf("n此讀者編號不存在!按任意鍵返回.n&q
31、uot;);gotoend;printf("n請輸入讀者還書的編號:");scanf("%s",return_book_num);while(p->next!=NULL&&strcmp(return_book_num,p->book_num)!=0)p=p->next;if(p->next=NULL&&strcmp(return_book_num,p->book_num)!=0)(find=2;printf("n錯誤!此圖書編號不存在!按任意鍵返回.n");gotoend;
32、for(i=0;i<Max;i+)if(strcmp(return_book_num,q->borrowi.borrow_book_num)=0)/*如果此讀者借了此書*/(find=1;for(j=i;j<Max-1;j+)strcpy(q->borrowj.borrow_book_num,q->borrowj+1.borrow_book_num);strcpy(q->borrowj.limit_date,q->borrowj+1.limit_date);strcpy(q->borrowMax-1.borrow_book_num,"0
33、");strcpy(q->borrowMax-1.limit_date,"0");p->book_xy+;q->right-;printf"n編號$的讀者還書完畢!按任意鍵繼續(xù)下步操作.",return_reader_num);gotoend;if(find=0)printf"n錯誤!此讀者未借此書!按任意鍵返回.n"end:getch();system("cls");voidPrint_book()/*查詢圖書信息*/(BK*p;inti;chare10;p=h_book;printf
34、("輸入查詢的圖書編號:");scanf("%s",e);for(i=0;i<n;i+)(if(strcmp(p->book_num,e)=0)(printf("n圖書信息如下:nn");printf"圖書編號t圖書名稱t圖書作者t現(xiàn)有t庫存n"printf("%stt%stt%stt%dt%dn",p->book_num,p->book_name,p->book_writer,p->book_xy,p->book_kc);break;elsep=p-&
35、gt;next;printf("n圖書信息打印完畢!按任意鍵繼續(xù)下一步操作.");getch();system("cls");voidPrint_reader()/*查詢讀者信息*/RD*p;inti,j;chare10;p=h_reader;printf("輸入查詢的讀者編號:");scanf("%s",e);for(j=0;j<m;j+)if(strcmp(p->reader_num,e)=0)printf("n讀者信息如下:nn");printf("讀者書證號t讀者姓
36、名n");printf("%stt%s",p->reader_num,p->reader_name);for(i=0;i<Max;i+)printf("n");printf("圖書編號",i+1);printf("t還書日期",i+1);printf("n");printf("t%s",p->borrowi.borrow_book_num);printf("tt%s",p->borrowi.limit_date);p
37、rintf("n");break;elsep=p->next;printf("n讀者信息打印完畢!按任意鍵繼續(xù)下一步操作.");getch();system("cls");voidSave()/*保存信息*/(Save_Reader();Save_Book();)voidSave_Reader()/*保存讀者信息*/(FILE*fp_reader;RD*p,*p0;p=h_reader;if(fp_reader=fopen("","wb")=NULL)/*創(chuàng)立文件,進行保存*/(printf("n文件保存失??!n請重新啟動本系統(tǒng)n");exit(0);while(p!=NULL)(if(fwrite(p,sizeof(RD),1,fp_reader)!=1)/*將鏈表中的信息寫入文件中*/printf("n寫入文件失??!n請重新啟動本系統(tǒng)!n");p0=p;p=p->next;free(p0);/*釋放所有結點*/h_reader=NULL;fclose(fp_reader);/*關閉
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能醫(yī)療設備研發(fā)與市場推廣合同3篇
- 2024生豬養(yǎng)殖基地與銷售商合作框架協(xié)議3篇
- 泡沫混凝土成套設備行業(yè)深度研究報告
- 2025年cfg樁基施工安全生產標準化建設合同3篇
- 2025年度寵物寵物醫(yī)院投資合作協(xié)議范本大全3篇
- 2025年度水利工程承包經營權有償轉讓合同書4篇
- 中國車用滅火器項目投資可行性研究報告
- 功能型飲料行業(yè)市場發(fā)展現(xiàn)狀及前景趨勢與投資分析研究報告
- 2025年度個人信用保證合同模板4篇
- 2025年度個人住宅衛(wèi)生間防水改造合同范本8篇
- 2025年急診科護理工作計劃
- 高中家長會 高二寒假線上家長會課件
- 違規(guī)行為與處罰管理制度
- 個人教師述職報告錦集10篇
- 四川省等八省2025年普通高中學業(yè)水平選擇性考試適應性演練歷史試題(含答案)
- 《內部培訓師培訓》課件
- 《雷達原理》課件-3.3.3教學課件:相控陣雷達
- 西方史學史課件3教學
- 2024年中國醫(yī)藥研發(fā)藍皮書
- 紅色中國風蛇年年會邀請函
- 廣東省佛山市 2023-2024學年五年級(上)期末數(shù)學試卷
評論
0/150
提交評論