




下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實用文檔C+隹序設計課程設計說明書題目圖書信息管理系統學號姓名指導教師日期內蒙古科技大學課程設計任務書課程名稱面向對象程序設計 A課程設計設計題目圖書信息管理系統指導教師時間一、教學要求1 .鞏固和加深學生對 C語言課程的基本知識的理解和掌握2 .掌握C語言編程和程序調試的基本技能3 .利用C語言進行基本的軟件設計4 .掌握書寫程序設計說明文檔的能力5 .提高運用C語言解決實際問題的能力二、設計資料及參數每個學生在教師提供的課程設計題目中任意選擇一題,獨立完成,題目選定后不可更換。圖書信息管理系統圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖書信息管理系統,
2、使之能提供以下功能:圖書信息錄入功能(圖書信息用文件保存)一一輸入圖書信息瀏覽功能一一輸出查詢或排序功能:(至少兩種種查詢方式)-算法按書名查詢按作者名查詢圖書信息的刪除與修改圖書的借出與歸還三、設計要求及成果1 .分析課程設計題目的功能需求(可選用數組或鏈表實現,可多人(最多 3人)協作完成一個題目)2 .寫出詳細設計說明(至少包括功能實現分析和模塊流程圖)3 .編寫程序代碼,調試程序使其能正確運行(代碼書寫要規范,標示符要見名知意,要有必要的注釋,每人至少3個函數,每人至少 200行代碼,不包括注釋和花括號)4 .設計完成的軟件要便于操作和使用5 .設計完成后提交課程設計報告(請嚴格按照模
3、板進行排版)四、進度安排第一天選擇課程設計題目,分析課題的要求第二天 編程第三天編程及調試第四天寫課程設計報告第五天提交課程設計報告(打印稿及電子稿)五、評分標準1 .根據平時上機考勤、表現和進度,教師將每天點名和檢查2 .根據課程設計完成情況,必須有可運行的軟件。3 .根據課程設計報告的質量,如有雷同,則所有雷同的所有人均判為不及格。六、建議參考資料1 .C語言程序設計,譚浩強,清華大學出版社2 .C語言程序設計課程設計,劉振安,機械工業出版社目錄內蒙古科技大學課程設計任務書 I第1章需求分析1第2章總體設計1第3章類的設計22.1 date 類的設計(第一個類) 22.2 book 類的設
4、計(第二個類) 32.3 library類的設計 (第三個類) 4第4章詳細設計54.1 工程視圖 54.2 類圖視圖54.3 主程序流程圖74.4 主要算法的流程圖 8第5章測試11第6章總結16附錄:程序彳弋碼17第1章需求分析用C+世計一個圖書信息管理系統圖書信息管理系統圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖 書信息管理系統,使之能提供以下功能:圖書信息錄入功能(圖書信息用文件保存)一一輸入圖書信息瀏覽功能一一輸出查詢或排序功能:(至少兩種種查詢方式)-算法按書名查詢按作者名查詢圖書信息的刪除與修改圖書的借出與歸還第2章總體設計1 .用結構框圖
5、表示各個功能之間的關系。系統功能I I I I I I I添加 瀏覽事查詢嚼 修改一 借出 歸還*I |書名查詢作者查詢圖2.12 .將框圖中系統的各個功能用文字詳細的描述。圖書信息管理系統功能:圖書信息添加功能:向圖書信息管理系統內添加圖書信息,圖書信息包括圖書登錄 名、圖書書名、圖書作者名、圖書類別、圖書出版單位、圖書出版時間、圖書價格、圖 書數量等信息。圖書信息瀏覽功能:將圖書管理系統的圖書全部顯示出來。圖書信息查詢功能:分為兩個功能。第一個為書名查詢功能,通過輸入要查詢圖書書名來對圖書信息庫進行搜索查詢,如果有該書則顯示該書的信息,如果沒有該書則顯示“沒有找到該書”。第二個為作者查詢,
6、通過輸入要查詢圖書作則名來對圖書信息庫進行搜索查詢,如果有該書則顯示該書的信息,如果沒有該書則顯示“沒有找到該書”。圖書信息刪除功能:通過輸入的圖書登錄號對圖書信息庫的該書進行刪除操作,該 書的信息將會在圖書信息庫中刪除,以后無法找到。圖書信息修改功能:通過輸入圖書登錄號來查找該書,如果圖書信息庫中有該書, 則通過輸入圖書的每一項信息來修改圖書的信息,如果圖書信息庫中沒有該書則顯示“沒 有該圖書信息”。圖書借出功能:通過輸入圖書登錄號來查找該書,如果圖書信息庫中沒有該書,則 顯示“沒有該書”,如果有該書則顯示“借閱成功”,并且該書的數量減1,如果該書的 數量為0,則顯示“該書全部借出”,借閱不
7、成功。圖書歸還功能:通過輸入圖書登錄號來查找該書,如果圖書信息庫中沒有該書,則 顯示“沒有該書”,如果有該書則顯示“歸還成功”,如果該書的數量為圖書信息庫中原 始數量,則顯示“該書沒有借出”。退出圖書信息管理系統功能:退出圖書信息管理系統程序。第3章類的設計3.1 date類的設計(第一個類)1 .畫出類圖2 .對類的函數成員的說明date(int y=2000,int m=1)說明:輸入參數時間年和參數時間月。構造函數,對時間進行構造,方便數據的錄入將用戶輸入的數據進行錄入并賦值給類的數據成員date()說明:析構函數,對構造函數申請的內存空間進行釋放。void set(int y=2000
8、,int m=1)說明:輸入數據時間年和數據時間月。成員函數,對時間年月的輸入進行賦值。int gety()說明:返回數據時間年。int get()說明:返回數據時間月。3 .2 book類的設計(第二個類)1 .畫出類圖表3.2bookchar id20char bookname20char author20char classnum20char publisher20 double price int num int num1date timebook()book()void set()void printout。friend class library。2 .對類的函數成員的說明book
9、(char *i="100000",char *b="noname",char *a="noname",char*c="noname",char *p="noname",double money=0.0,int y=2000,int m=1,int number=0):date(y,m)說明:輸入參數登錄名,書名,作者名,類別,出版單位,出版時間,價格,數 量。構造函數,對登錄名等圖書信息進行構造,方便數據的錄入。將用戶輸入的數據進行錄入并賦值給類的數據成員。book()說明:析構函數,對構造函
10、數申請的內存空間進行釋放。void set(char *i="100000”,char *b="noname”,char *a="noname”,char *c="noname”,char *p="noname”,double money=0.0,int y=2000,int m=1,int number=0)說明:輸入數據登錄名,書名,作者名,類別,出版單位,出版時間,價格,數 量。成員函數,對圖書信息登錄名,書名,作者名,類別,出版單位,出版時間,價 格,數量進行賦值。void printout。說明:對圖書信息數據登錄名,書名,作者名,類
11、別,出版單位,出版時間,價 格,數量進行輸出。成員函數,對圖書信息進行輸出的函數。friend class library說明:將類library 聲明為類book的友元類。3 .3 library 類的設計(第三個類)1 .畫出類圖表3.3librarybook *book1library。library()int idSeek()void NameSeek()void Author()void judge()void judge1()void delee1()2 .對類的函數成員的說明library()說明:申請分配動態內存空間,申請 book1N數組。構造函數,中請分配動態內存空間。li
12、brary()說明:動態內存分配空間的撤銷,將 book1N占有的空間撤銷。析構函數,動態內存分配空間的撤銷。int idSeek(char *i)說明:查找函數,將形參傳給該函數并對圖書信息庫進行查詢,如果查到返回數組 的序號值,沒有查到則顯示“沒有該書”。成員函數,對傳遞的形參值進行查詢。void NameSeek()說明:書名查找函數,輸入待查詢值,通過與圖書信息庫進行對比,如果有該書則 輸出圖書信息,否則顯示“沒有該書”。成員函數,輸入書名進行查詢。void AuthorSeek()說明:作者名查找函數,輸入待查詢值,通過與圖書信息庫進行對比,如果有該書則輸出圖書信息,否則顯示“沒有該
13、書”;void judge(int a)說明:判斷圖書借閱是否成功函數,通過形參傳入借閱圖書的數組序號值,如果該 書的庫存數量大于0,則能夠借閱,并顯示“該書借閱成功”,否則顯示“該 書已經全部借出”。成員函數,判斷借閱的圖書是否借閱成功。void judge1(int a)說明:判斷圖書歸還是否成功函數,通過形參傳入歸還圖書的數組序號值,如果該 書的庫存量小于該書信息錄入時的庫存量,則顯示該書歸還成功,否則顯示“該書沒有借出”。void delete1(int a)說明:圖書信息刪除函數,確定刪除圖書的數組序號值,并將數組序號值+1的值賦值給數組序號值來進行刪除的操作。成員函數,對給定的圖書
14、信息進行刪除。第4章詳細設計4.1工程視圖營工作區(LibaryManagementSysteml(: 1 工程 -1 Lib aryM an a gementSystem 1 files-_i Source Files 固 libary.qpp 出 majn.cpj) Headep Files j libary.h _ Resource Files4.2類圖視圖圖4.1- ® ceshi dasses+ * " book+ date國七libary+ 2J Gimbals圖 4.2.1一撤 ceshi classes由 T book bookfhar *f =1 &quo
15、t;book printoutQ setfch3r *i = *'13 author& bookname 前 classnum 為id8/ num 力 numl 融 price 號/ publisher & time-date date(int y - 2M date(), Oetmfl gety(| seipnty - 20 U, / month4 «. JQ 0 .圖 4.2.2“ time-飛 date.date(iint y = 201 令一前印 getmQ getyfl setfinty = 20必 / month/ year引飛libar/ Aut
16、horSeekQ .deletedint a) idSeekfchar 節 judgefint a judgelfint a) libaryO libaryO NameSeekQ/ bookl- Globals mainQ V stuf圖 主程序流程圖錄入數據輸入功能圖4.34.4主要算法的流程圖1.添加算法圖 4.4.12.查找算法(1)書名查詢圖 4.4.2-1(2)作者查詢作者查找工輸入作者圖 4.4.2-23.瀏覽功能結束圖 4.4.34.刪除功能圖 4.4.45.修改功能6.借出功能7.歸還功能圖 4.4.5圖 4.4.6實用文檔圖 4.4.7第5章測試5.1信息錄入
17、實用文檔5.3添加功能"H 入陳習 ft59DebugC ppLexe"ltxl界 京 L凡用:=>:2-u. 期小順里具上日<v眄程王工=2期:日信M二平.:名暨二編:,名蟄 J號:舟社:螫輸號:哥社二 人件登3$價該宣登.出價該暮 入入入入入人入<<Jn入入入入入人入/再該圖5.15.2功能界面圖圖圖圖圖WW 信 一息出還瞟 _,s=g日日歌1234567®請輸入選擇二圖5.2實用文檔m 期ZN一口<¥號:俞社:蓊輸委者朱續登南善價該屋人人入人人入人人否lqww圖5.35.4瀏覽功能-Im 期/N=:而.二名34w<
18、;號:俞社=竄輸 南擊價該索 八人入人人人人人否5.5查找功能圖5.4圖書名查找實用文檔5.6刪除功能開始查詢ill開始查詢20搜號二名:單時; 人善者量圖00凡矍: 尋二平:小備451者 作支界 書豳世遙出年京00匕0JJ- 2翳牖想要的查詢方式一4 占-4請選撥你想要的查詢方式一 刷人搜尋的書名:平凡隹界登錄號:00001各平凡世界作簟:好畬量露;北京出版社出版時間:2目的年1月價蔣二招j-p "圖 .2作者查找圖 5.5.2實用文檔5.8借出功能i界 萌世遙輯 出年 怎i麗凡":= 二平:小言站普者自寸 411m .出出JA量;25.7
19、修改功能圖5.6圖 5.7.1號工仍舊。21編程請直 名:王生r§!京看曙海出版社 時間:20照年1月:24LM圣.P者量靦程王具 二編;工昌242 號:名;單時;15S號:30001C*+編程語言 者名:孫武、別:工具書北京出版社20001 月圖 5.7.21001實用文檔5.9歸還功能5.10退出系統12345670圖 5.8.2圖 5.8.1弓:00001圖 5.9.1歸還成圖 5.9.2圖書管理系統圖圖圖圖圖圖圖ton 息添瀏查品 信息息息息息出還彈請輸入選擇二D退出系統?Press any key to continue圖 5.10第6章總結總結:老師很早就把題目公布了,很
20、早就做 C+勺課程設計了,時間非常的充足。總共 算起來大概花了 20多天的時間進行構思和編寫代碼,在編寫代碼的過程中曾經遇到過各種各 樣的問題,例如:C+班主函數如何定義對象并且使輸入的數據怎樣通過類中的函數進行增刪 改查等一系列的操作。還有就是如何將輸入的數據寫入到文件中,在一開始都覺得有些難, 不知道如何下手,自己在圖書館里借了又關這方面的書進行閱讀,在網上搜索相關的程序代 碼進行閱讀,并且去理解消化,模仿著寫出自己的程序代碼,在問題沒有解決之前是各種苦 惱,心情是各種煩躁,但是當問題解決了之后心情是非常的愉悅,經過自己的不斷努力去尋 找解決的辦法并且最終解決了問題。特別有成就感,雖然這個
21、過程是痛苦的,但成功的愉悅 是多么的快樂。在整個課程設計的過程中還是很感謝身邊的一群同學,當遇到困難時,他們給予幫助, 給予靈感,才讓這次課程設計能夠順利的完成。也很感謝老師課堂的教育,大學課堂里老師 的教就是為了不教,老師教給我們的是基礎知識,是以后向更深領域學習的基礎,是墊腳石。 老師教給我們的是一種態度一種學習方法,讓我們以后能夠自主的去學習。當一個人去完成 一項課程設計時,里面會遇到各種各樣的事情,老師在課堂上講解的一些情況我們會遇到, 只要我們上課聽講了,就能解決,但是一些老師沒有提及的問題就要靠我們自己去解決。我 們該如何去解決呢?有很多種途徑,去圖書館查找相關的資料,在網上進行搜
22、索,都會找到 相關的資料,這時我們就得運用老師教給我們的方法去理解并且消化。最先開始可能只是進 行模仿,模仿多了之后才會有我們自己的創造。所以學習都是這樣的一個過程,在大學里的 學習是人生很重要的一門課。感謝所有教授我知識和方法的老師,謝謝你們的辛勤的勞動。附錄:程序代碼#include<iostream.h>#include<stdio.h>#include<stdlib.h>#include<string.h>#define N 10#define FNAMELEN 40char stufFNAMELEN;class datepublic:i
23、nt year;int month;public:date(int y=2000,int m=1)year=y;month=m;date()void set(int y=200,int m=1)year=y;month=m;int gety()return year;int getm()return month;class book:public dateprivate:char id20;char bookname20;char author20;char classnum20;char publisher30;double price;int num;int num1;date time;
24、public: book(char *i="100000",char *b="noname",char *a="noname",char*p="noname",double money=0.0,int y=2000,int m=1,int number=0):time(y,m) strcpy(id,i);strcpy(bookname,b);strcpy(author,a);strcpy(classnum,c);strcpy(publisher,p);price=money;num=number;num1=numb
25、er;book()void set(char *i="100000",char *b="noname",char *a="noname",char*p="noname",double money=0.0,int y=2000,int m=1,int number=0) date:set(y,m);strcpy(id,i);strcpy(bookname,b);strcpy(author,a);strcpy(classnum,c);strcpy(publisher,p);price=money;num=number;
26、num1=number;void printout。cout<<"登錄號:"<<id<<endl;cout<<" 書名:"<<bookname<<endl;cout<<"作者名:"<<author<<endl;cout<<"類另1J: "<<classnum<<endl;cout<<"出版單位:"<<publisher<&l
27、t;endl;cout<<"出版時間:"<<time.gety()<<" 年"<<time.getm()<<" 月"<<endl;cout<<"價格:"<<price<<endl;cout<<"數量:"<<num<<endl;friend class libary;;class libary*c="noname",char*c=&qu
28、ot;noname",charpublic:book*book1;public:libary()book1=new bookN;libary()delete 口bookl;int idSeek(char *i)int j,flag=1;for(j=0;j<N;j+)if(strcmp(book1j.id,i)=0)flag=0;return j;if(flag)cout<<"沒有該書!”;return flag;void NameSeek()char i20;cout<”輸入搜尋的書名:"cin>>i;int j,flag=1;
29、for(j=0;j<N;j+)if(strcmp(book1j.bookname,i)=0)flag=0;book1j.printout();if(flag)cout<<"沒有該書!"getchar();void AuthorSeek()char i20;cout<<"輸入搜尋圖書作者名:"cin>>i;int j,flag=1;for(j=0;j<N;j+)if(strcmp(book1j.author,i)=0)flag=0;book1j.printout();if(flag)cout<<&
30、quot;沒有該書!”;getchar();void judge(int a)if(book1a.num > 0)cout<<"該書借I閱成功!"book1a.num-;elsecout<<"該書已全部借出!";void judge1(int a)if(book1a.num<book1a.num1)cout<<"該書歸還成功!"book1a.num+;elsecout<<"該書沒有借出!"void delete1(int a) book1a.set(boo
31、k1a+1.id,book1a+1.bookname,book1a+1.author,book1a+1.classnum, book1a+1.publisher,book1a+1.price,book1a+1.year,book1a+1.month,book1a+1.num);strcpy(book1a.id,book1a+1.id);strcpy(book1a.bookname,book1a+1.bookname);strcpy(book1a.author,book1a+1.author);strcpy(book1a.classnum,book1a+1.classnum);strcpy(bo
32、ok1a.publisher,book1a+1.publisher);book1a.price=book1a+1.price;book1a.year=book1a+1.year;book1a.month=book1a+1.month;book1a.num=book1a+1.num;;void main()char id20;char bookname20;char author20;char classnum20;char publisher30;char c;double price;int num,year,month,n,m,j,i=0;libary l1;FILE *fp;char c
33、n;system("cls");cout<<"請輸入圖書信息庫名:"cin>>stuf;if(fp=fopen(stuf,"廣)尸NULL)cout<<"該文件"<<stuf<<"不存在,你想要新建一個嗎?(Y/N)"cin>>cn;if(cn='Y' | cn='y')fp=fopen(stuf,"w");docout<<"輸入登錄號:"cin>
34、;>id;cout<<"輸入書名:"cin>>bookname;cout<<”輸入作者名:"cin>>author;cout<<"輸入書類別:"cin>>classnum;cout<<"輸入出版社名:"cin>>publisher;cout<<"輸入彳格:"cin>>price;cout<<"輸入該書數量:"cin>>num;cout&l
35、t;<"輸入該書出版日期:"cin>>year>>month;l1.book1i.set(id,bookname,author,classnum,publisher,price,year,month,num);i+;n=i;m=i;fprintf(fp,"%st%st%st%st%st%6.2ft%dt%dt%dn",id,bookname,author,classnum,publis her,price,year,month,num);cout<<" 是否繼續輸入(Y/N):"cin>
36、>c;while(c='y' | c='Y');cout<<endl; fclose(fp); int a;do*system("cls");cout<<"nnnnnttttcout<<"tt*cout<<"ttt1cout<<"ttt2cout<<"ttt3cout<<"ttt4cout<<"ttt5cout<<"ttt6cout<<&q
37、uot;ttt7cout<<"ttt0 圖書管理系統ttttn"*n"圖書信息添加n"圖書信息瀏覽n"圖書信息查詢n"圖書信息刪除n"圖書信息修改n”;圖書借出n"圖書歸還n"退出影碟信息系統n"cout<<"tt*n"cout<<"tt請輸入選擇:"fflush(stdin);cin>>a;switch(a)system("cls");fp=fopen(stuf,"w"
38、;);docout<<"輸入登錄號:"cin>>id;cout<<"輸入書名:"cin>>bookname;cout<<”輸入作者名:"cin>>author;cout<<"輸入書類別:"cin>>classnum;cout<<"輸入出版社名:"cin>>publisher;cout<<"輸入彳格:"cin>>price;cout<<
39、;"輸入該書數量:"cin>>num;cout<<"輸入該書出版日期cin>>year>>month;l1.book1m.set(id,bookname,author,classnum,publisher,price,year,month,num);m+;fprintf(fp,"%st%st%st%st%st%6.2ft%dt%dt%dn",id,bookname,author,classnum,publis her,price,year,month,num);cout<<"
40、是否繼續輸入(Y/N):"cin>>c;while(c='y' | c='Y');getchar();break;case 2:system("cls");for(j=0;j<m;j+)l1.book1j.printout(); cout<<endl;fflush(stdin);getchar();break;case 3:int a;system("cls");cout<<"tt*"<<endl;cout<<"ttc
41、out<<"ttt1開始查詢"<<endl;-按圖書名搜索"<<endl;cout<<"ttt2按作者名搜索"<<endl;cout<<"ttt0退出"<<endl;cout<<"tt*"<<endl;cout<<"tt請選擇你想要的查詢方式:"cin>>a;switch(a)case 1:l1.NameSeek(); break;case 2:l1.AuthorSeek();break;case 0:r
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- DB32/T 3892-2020法人和其他組織公共信用信息服務規范
- DB32/T 3841-2020水利工程建筑信息模型設計規范
- DB32/T 3761.1-2020新型冠狀病毒肺炎疫情防控技術規范第1部分:醫療機構
- DB32/T 3678-2019電梯統一應急救援標識
- DB32/T 3567-2019內河船舶大氣污染物排放清單編制技術指南
- DB31/T 949.2-2016文化旅游空間服務質量要求第2部分:文化創意產業園區
- DB31/T 939-2015冶金渣混凝土空心隔墻板應用技術規程
- DB31/T 680.2-2012城市公共用水定額及其計算方法第2部分:單位內部生活
- DB31/T 214-2023節能產品評審方法和程序
- DB31/T 1342-2021乘用車單位產品能源消耗限額
- 液化石油氣汽車槽車安全管理規定
- 預防野生菌中毒主題班會集合6篇
- esd術患者的護理查房
- 安全管理應急預案之應急預案編制格式和要求
- 國家開放大學期末機考人文英語1
- 鉆孔壓水試驗記錄表
- 環保餐具的設計
- 結核菌素(PPD、EC)皮膚試驗報告單
- 電工學(第六版)中職PPT完整全套教學課件
- 產業命題賽道命題解決對策參考模板
- 砼塔施工方案
評論
0/150
提交評論