版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p> 數(shù)據(jù)結構課程設計報告</p><p><b> 題目:圖書管理</b></p><p> 學 院 計算機學院 </p><p> 專 業(yè) 軟件工程 </p><p> 年級班別 2010級 4 班 </p>&l
2、t;p> 學 號 </p><p> 學生姓名 </p><p> 指導教師 </p><p> 成 績 ____________________</p><p><b> 2012
3、年6月</b></p><p> 設計任務【Design Tasks】</p><p> 1.1、圖書管理系統(tǒng)中圖書管理模塊包括圖書類型定義:書號、現(xiàn)存量、總存量,出版時間為整型,定價為浮點型,書名、著者名為字符型,借閱指針、預約指針為讀者類型;讀者類型定義:證號為整型、姓名為字符型,另外借閱類型和預約類型組合成其中的共用體類型。B樹(2-3樹)類型定義:關鍵字個數(shù)和關鍵字
4、數(shù)組為整型、另外還有指向雙親的指針、指向子樹的指針、記錄單元指針;B樹查找結果類型定義: 節(jié)點指針、關鍵字序號和查找標志變量為整型。</p><p> 1.2、演示程序以用戶和計算機的對話方式進行,在計算機終端上顯示“提示信息”之后,由用戶在鍵盤上輸入演示程序中規(guī)定的運算命令,相應的輸入數(shù)據(jù)和運算結果顯示在后面。該演示系統(tǒng),沒有使用文件,全部數(shù)據(jù)放在內存存放。四項基本業(yè)務都以書號為關鍵字進行的,采用了B樹(2-
5、3樹)對書號建立索引,以提高效率。</p><p> 2、設計思路【Design Ideas】</p><p><b> 2.1、設計框圖</b></p><p><b> 2.2、結構體設計</b></p><p> /*------------------- 四、所需結構體和類-----
6、--------------*/</p><p><b> //登陸類</b></p><p> class Login</p><p><b> {</b></p><p><b> public:</b></p><p><b>
7、 Login();</b></p><p> void amend( const string st1,const string st2);</p><p> bool IsLogin(string &str1, string &str2);</p><p> string UserName;</p><p>
8、; string UserID;</p><p> string PassWord;</p><p> int ErrorNum;</p><p><b> };</b></p><p><b> //個人信息結構體</b></p><p> typedef s
9、truct Information</p><p><b> {</b></p><p> string ID;</p><p> string Name;</p><p> string Academy;</p><p> string Major;</p><p&
10、gt; string Education;</p><p> string State;</p><p> int number;//超期數(shù)目</p><p> inttotal;//已借數(shù)目</p><p><b> }Inof;</b></p><p><b>
11、 //借閱信息結構體</b></p><p> typedef struct InofBook</p><p><b> {</b></p><p> //string Check_Data;</p><p> //string Return_Data;</p><p> i
12、nt C_Year;</p><p> int C_Month;</p><p> int C_Day;</p><p> int R_Year;</p><p> int R_Month;</p><p> int R_Day;</p><p> int Book_Number;&
13、lt;/p><p> string Book_Name;</p><p> string Book_Writer;</p><p> struct InofBook *next;</p><p> }InofBook;</p><p><b> //圖書信息類</b></p>
14、<p> typedef struct{</p><p> KeyType index; //書號</p><p> char B_name[1][20];//書名,可以為中文</p><p> char B_writer[1][20];//著者,可以中文</p><p> int stack;//現(xiàn)存量</p>
15、;<p> int total;//總庫存量</p><p> int tag;//標志是否被預約 1 是 0 否</p><p> }B_Record,*b_Record; //書目記錄類型</p><p><b> //圖書類</b></p><p> struct book</p>
16、;<p><b> {</b></p><p><b> public:</b></p><p><b> Book();</b></p><p> elemtype Book_Name;</p><p> elemtype Book_Writer;&l
17、t;/p><p> int Book_Number;</p><p> int Extant_Num ;//該書現(xiàn)存量</p><p> int Gross_Num ;//該書總量</p><p> struct book *next;</p><p><b> };</b></p
18、><p> typedef struct book *book_Record;</p><p> typedef struct book Book_Record;</p><p> typedef struct R_Record{</p><p> KeyType card; //卡號</p><p> char
19、 R_name[1][20];//姓名</p><p> char tel[11];//手機號碼</p><p> char* PassWord;</p><p> struct Borrow{</p><p> int yuyue;//存放預約的書號,最多一本</p><p> struct bNode *
20、R_book[N/4];//借閱書指針</p><p> char* term[N/4];//歸還期限</p><p> int b_num;//已經(jīng)借閱書的數(shù)量</p><p> }bor;//借閱記錄類型</p><p> }R_Record,*r_Record; //讀者記錄類型</p><p> ty
21、pedef struct bNode{ </p><p> KeyType index; //關鍵字向量</p><p> struct B_Node *child; //子樹指針向量</p><p> B_Record rec; //記錄指針向量</p><p> }bNode,*Bode;//書目結點向量類型</p>
22、<p> typedef struct rNode{</p><p> KeyType card; //卡號向量</p><p> struct R_Node *child; //子樹指針向量</p><p> R_Record rec; //記錄指針向量</p><p> }rNode,*Rode; //讀者結點向量類
23、型</p><p> typedef struct B_Node{</p><p> int BookNum; //結點中書目個數(shù),即結點的大小</p><p> int level;</p><p> struct B_Node *pa; //指向雙親結點</p><p> struct B_Node *l
24、Bro, *rBro;</p><p> struct bNode node[m+1];//除child外,其它0號單元未用</p><p> }B_Node,*Book; //書樹結點和書樹的類型</p><p> typedef struct R_Node{</p><p> int ReaderNum; //結點中讀者個數(shù),即結
25、點的大小</p><p> int level;</p><p> struct R_Node *pa; //指向雙親結點</p><p> struct R_Node *lBro, *rBro;</p><p> struct rNode node[m+1]; //除child外,0號單元未用</p><p>
26、; }R_Node,*Reader; //讀者樹結點和讀者樹的類型</p><p> typedef struct{</p><p> B_Node *pb; //指向找到的結點</p><p> int i; //1..m,在結點中的關鍵字序號</p><p> int tag; // 1:查找成功,O:查找失敗</p>
27、;<p> }B_Result; //書樹的查找結果類型</p><p> typedef struct{</p><p> R_Node *pr; //指向找到的結點</p><p> int i; //1..m,在結點中的關鍵字序號</p><p> int tag; // 1:查找成功,O:查找失敗</p&
28、gt;<p> }R_Result; //讀者樹的查找結果類型</p><p> 2.3、宏定義和常量</p><p> #define TRUE 1</p><p> #define FALSE 0</p><p> #define OK 1</p><p> #define ERROR 0
29、</p><p> #define EQ(a,b) ((a)==(b))</p><p> #define LT(a,b) ((a)<(b))</p><p> #define HT(a,b) ((a)>(b)</p><p> #define m 3 //2-3樹的階</p><p> #def
30、ine N 20 // 每種書最大庫存20本、讀者最多每人借 20/4 = 5 本</p><p> typedef int Status; //函數(shù)的類型,其值是函數(shù)結果狀態(tài)代碼</p><p> typedef int KeyType; //設關鍵字域為整型</p><p> typedef string elemtype;</p><
31、p><b> 2.4、設計模塊</b></p><p><b> 主程序模塊</b></p><p><b> ↓</b></p><p> 圖 書 管 理 模 塊</p><p> ↓ ↓</p><p>
32、圖書管理模塊 我的圖書館管理模塊</p><p> 三、部分代碼分析【Code Analysis】</p><p> 3.1、圖書管理模塊選擇</p><p> switch(i){</p><p> case 1: //添加圖書</p><p> A_Add_Book( head );</p&
33、gt;<p> save_printf(1,"\n\t\t書庫現(xiàn)狀態(tài)如下: \n");</p><p> if(BK->BookNum != NULL)</p><p> Traverse_BK(BK,BK->level);</p><p><b> else</b></p>
34、<p> save_printf(1,"\n書庫為空");</p><p> fprintf(fp,"\n\n");</p><p> printf("\n\n");</p><p><b> break;</b></p><p> cas
35、e 2: //查找圖書</p><p> A_Search_Book();</p><p><b> break;</b></p><p> case 3: //刪除圖書</p><p> A_Delete_Book( head );</p><p> save_printf(1
36、,"\n\t\t書庫現(xiàn)狀態(tài)如下: \n");</p><p> if(BK->BookNum != NULL)</p><p> Traverse_BK(BK,BK->level);</p><p><b> else</b></p><p> save_printf(1,&qu
37、ot;\n書庫為空");</p><p> fprintf(fp,"\n\n");</p><p> printf("\n\n");</p><p><b> break;</b></p><p> case 4: //查看全部圖書</p>&l
38、t;p> Search_All_Book();</p><p><b> break;</b></p><p> case 5://我的圖書館</p><p> Mylibrary( head );</p><p><b> break;</b></p><p&
39、gt; case 0: //返回系統(tǒng)登錄界面</p><p> fprintf(fp,"\n\t\t\t☆\tAdmin_menu-->menu \t☆\n\n");</p><p><b> exit(1);</b></p><p><b> break;</b></p>
40、<p><b> default:</b></p><p> save_printf(1,"\n\t您的操作有誤,請重新選擇(0→7): ");</p><p><b> break;</b></p><p><b> }</b></p><
41、;p> 3.2.1、添加圖書</p><p> /*----------------------------- A_Add_Book ------------------------------*/</p><p> void Load( book_Record q );</p><p> void A_Add_Book( book_Rec
42、ord head ){//添加圖書</p><p> char s[2];</p><p><b> int i;</b></p><p><b> int j;</b></p><p> book_Recordq;</p><p> q = new Book_R
43、ecord;</p><p> B_Record r;</p><p> Init_Brec(r);</p><p><b> do{</b></p><p> book_Record p=head;</p><p> save_printf(1,"\n\t書號: "
44、;);</p><p> save_gets(s);</p><p> r.index = atoi(s);</p><p> if(r.index <= NULL || r.index >9999999) </p><p> save_printf(1,"\n\t輸入有誤,請重新輸入(1→9999999)!\n
45、");</p><p><b> /*</b></p><p> **主關鍵字是圖書編號,是唯一的</p><p> **輸入相同編號,重新輸入</p><p><b> */</b></p><p> while( p != NULL )</p&g
46、t;<p><b> {</b></p><p> if( p->Book_Number == r.index )</p><p><b> {</b></p><p> r.index = NULL;</p><p> cout<<"\t該編號已
47、存在!"<<endl;</p><p><b> }</b></p><p> p = p->next;</p><p><b> }</b></p><p> }while(r.index<=NULL || r.index > 9999999);&l
48、t;/p><p> save_printf(1,"\n\t書名: ");</p><p><b> do{</b></p><p> save_gets(r.B_name[0]);</p><p> j = strlen(r.B_name[0]);</p><p> i
49、f(j <= 0 || j > 20)</p><p> save_printf(1,"\n\t您輸入的書名有誤,請重新輸入(1→20字符): ");</p><p> }while(j <= 0 || j > 20);</p><p> save_printf(1,"\n\t著者: ");&
50、lt;/p><p><b> do{</b></p><p> save_gets(r.B_writer[0]);</p><p> j = strlen(r.B_writer[0]);</p><p> if(j <= 0 || j > 20)</p><p> save_pr
51、intf(1,"\n\t您輸入的著者有誤,請重新輸入(1→20字符): ");</p><p> }while(j <= 0 || j > 20);</p><p> save_printf(1,"\n\t存入數(shù)量: ");</p><p><b> do{</b></p>
52、;<p> save_gets(s);</p><p> r.stack = r.total = atoi(s);</p><p> if(r.total <= NULL || r.total > N ) save_printf(1,"\n\t輸入有誤,請重新輸入(1→20)!: ");</p><p> }w
53、hile(r.total <= NULL || r.total > N);</p><p> i = Add_Book(BK,r);</p><p><b> if(i)</b></p><p><b> {</b></p><p><b> /*讀取信息*/</
54、b></p><p> q->Book_Number = r.index;</p><p> q->Book_Name = r.B_name[0];</p><p> q->Book_Writer = r.B_writer[0];</p><p> q->Extant_Num = r.stack;<
55、/p><p> q->Gross_Num = r.total;</p><p> Load(q);//將新書添加到圖書庫中</p><p> q->next = head;</p><p><b> head = q;</b></p><p> Load_Book( head )
56、;//更新“l(fā)ibrarydata.txt”圖書信息</p><p> save_printf(1,"\n\t添加成功!\n");</p><p><b> }</b></p><p><b> else </b></p><p><b> {</b>
57、;</p><p> save_printf(1,"\n\t添加失敗!該書書庫容量不足!\n");</p><p><b> }</b></p><p><b> }</b></p><p> 3.2.2、刪除圖書</p><p> /*----
58、------------------------- A_Delete_Book ------------------------------*/</p><p> book_Record Dell( int index );</p><p> void load_book( book_Record h);</p><p> void A_Delet
59、e_Book( book_Record head ){//刪除圖書</p><p> char s[2];</p><p><b> int i;</b></p><p> int index;</p><p> //book_Record x;</p><p> //x = new
60、 Book_Record;</p><p><b> do{</b></p><p> save_printf(1,"\n\t請輸入您要刪除的書的書號: ");</p><p> book_Record p= head;</p><p> save_gets(s);</p>
61、<p> index = atoi(s);</p><p> if(index <= 0 || index > 9999999) save_printf(1,"\n\t輸入有誤,請重新輸入(1→9999999)!\n書號: ");</p><p> /*處理圖書不出在的情況*/</p><p> while( p
62、!= NULL )</p><p><b> {</b></p><p> if( p->Book_Number == index )</p><p><b> break;</b></p><p> p = p->next;</p><p><b&
63、gt; }</b></p><p> if(p==NULL)</p><p><b> {</b></p><p><b> index=0;</b></p><p> cout<<"無此書!"<<endl;</p>&
64、lt;p><b> }</b></p><p> }while(index <= 0 || index > 9999999);</p><p> i = Delete_Book(BK,index);</p><p><b> if(i)</b></p><p><b&
65、gt; {</b></p><p> //x->Book_Number = index;</p><p> head = Dell(index);//刪除圖書</p><p> load_book( head );//更新圖書庫圖書信息</p><p> Load_Book( head );//更新圖書庫圖書信息
66、</p><p> save_printf(1,"\n\t刪除成功!\n");</p><p><b> }</b></p><p> else save_printf(1,"\n\t刪除失敗,館內不存在該書!\n");</p><p><b> }</b&
67、gt;</p><p> 3.2、我的圖書館管理模塊選擇</p><p><b> switch(n)</b></p><p><b> {</b></p><p> case 1: Information();break;//輸出個人信息、狀態(tài)</p><p>
68、 case 2: Amend( login );break;//修改密碼</p><p> case 3: Checkdata();break;//當前借閱信息</p><p> case 4: Recall();break;//催還信息</p><p> case 5:Check_out(head);break;//借書</p>&l
69、t;p> case 6: Return_book( head );break;//還書</p><p> case 7: Find_Book(head);break;//查找</p><p> case 0: Admin_menu();break;//還回首頁</p><p><b> //</b></p>
70、<p> default: printf("\t\t\t\t輸入信息錯誤,請重新輸入!\n"); break;</p><p><b> }</b></p><p> 3.2.1、修改密碼</p><p> /*采用 * 字符輸入密碼*/</p><p> while ( (c=g
71、etch()) != 13 )</p><p><b> {</b></p><p> if (c!='\b' && c!='\t' && count<20)</p><p><b> {</b></p><p> pas
72、s[count++] = c;</p><p> putchar('*');</p><p><b> }</b></p><p> if ( c == '\b' && count>0)</p><p><b> {</b></p&
73、gt;<p> printf("\b \b"); </p><p><b> count--; </b></p><p><b> }</b></p><p><b> }</b></p><p> pass[count] =
74、39;\0';</p><p> password = pass;</p><p> cout<<endl;</p><p> /*導入密碼文件,讀取密碼和賬號*/</p><p> char *file= "password";</p><p> ofstream f
75、out;</p><p> fout.open( file, ios::out );</p><p> if( !fout.is_open() )</p><p><b> {</b></p><p> cerr<<file<<" 修改失敗!"<<endl;
76、</p><p><b> exit(1);</b></p><p><b> }</b></p><p> fout<<username<<setw(20)<<password<<setw(20)<<login.UserName;//修改后,重新寫會密碼文
77、件</p><p> fout.close();</p><p> login.amend( username, password);</p><p><b> 3.2.2、借書</b></p><p> /**************************借書*************************
78、*******/</p><p> void Library_card( book_Record p );</p><p> void Load_Book( book_Record head );</p><p> void Check_out( book_Record head )</p><p><b> {</b
79、></p><p> system("cls");</p><p> system("color f9");</p><p> save_printf("\n\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p> save_pri
80、ntf( "\t ※ ※\n");</p><p> save_printf( "\t ※****************借**書********界**面*************** ※\n");</p><p> save_pri
81、ntf( "\t ※ ※\n");</p><p> save_printf( "\t ※ ※\n");</p><p> save
82、_printf( "\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p> Traverse_Book(BK);</p><p><b> int st;</b></p><p> int sum,i=0;</p><p> book_Record p
83、;</p><p> int st1[3],st2[3];</p><p><b> int st3;</b></p><p> elemtype st4,st5;</p><p> ifstream fin;</p><p> cout<<"\n\n請輸入要借書
84、的數(shù)目: ";</p><p><b> cin>>sum;</b></p><p> while( i<sum )</p><p><b> {</b></p><p> int flag = 0;</p><p> int f = 0
85、;</p><p> printf("請輸入要借第 %d 本書的編號:", i+1 );</p><p><b> cin>>st;</b></p><p> cout<<endl;</p><p><b> p = head;</b></p
86、><p><b> /*</b></p><p><b> **查找借閱的書</b></p><p><b> */</b></p><p> while( p!=NULL )</p><p><b> {</b></p
87、><p> if( p->Book_Number == st )</p><p><b> {</b></p><p> if( p->Extant_Num != 0 )</p><p><b> {</b></p><p> fin.open( "
88、;librarydata.txt", ios::in );</p><p> if( fin.is_open() )</p><p><b> {</b></p><p> while( fin>>st1[0] && fin>>st1[1] && fin>>st
89、1[2] </p><p> && fin>>st2[0] && fin>>st2[1] && fin>>st2[2] </p><p> && fin>>st3 && fin>>st4 && fin>>st5 )<
90、;/p><p><b> {</b></p><p> if( st3 == st )</p><p><b> {</b></p><p><b> f = 1;</b></p><p><b> flag = 1;</b>
91、;</p><p> cout<<"你已經(jīng)借了這本書了!"<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p><b> }</b></p>&l
92、t;p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> cout<<"打開文件失敗!"<<endl;</p><p><b> }&l
93、t;/b></p><p> ///////////////////////////////////////////////////////</p><p> if( f == 0 )</p><p><b> {</b></p><p> p->Extant_Num--;</p>&l
94、t;p><b> flag = 1;</b></p><p> //添加到個人圖書庫中</p><p> Library_card( p );</p><p><b> }</b></p><p> fin.close();</p><p><b>
95、 }</b></p><p><b> break;</b></p><p><b> }</b></p><p> p = p->next ;</p><p><b> }</b></p><p> if( flag ==
96、 0 )</p><p><b> {</b></p><p> if( p != NULL )</p><p> cout<<"該書已被借完!"<<endl;</p><p><b> else</b></p><p>
97、 cout<<" 圖書館無此書!"<<endl;</p><p><b> }</b></p><p><b> i++;</b></p><p><b> }</b></p><p><b> //更新圖書庫信息&
98、lt;/b></p><p> Load_Book( head );</p><p> system("pause");</p><p><b> }</b></p><p><b> 3.2.2、還書</b></p><p> /****
99、**********************還書********************************/</p><p> void Return_Book( book_Record p );</p><p> void Return_book( book_Record head )</p><p><b> {</b><
100、/p><p> system("cls");</p><p> system("color f9");</p><p> save_printf("\n\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p> save_printf( &q
101、uot;\t ※ ※\n");</p><p> save_printf( "\t ※****************還**書********界**面*************** ※\n");</p><p> save_printf( &q
102、uot;\t ※ ※\n");</p><p> save_printf( "\t ※ ※\n");</p><p> save_printf(
103、 "\t ※※※※※※※※※※※※※※※※※※※※※※※※※※※※\n");</p><p><b> int st;</b></p><p> int sum,i=0;</p><p> book_Record p;</p><p> cout<<"\n\n請輸入
104、要還書的數(shù)目: ";</p><p><b> cin>>sum;</b></p><p> while( i<sum )</p><p><b> {</b></p><p> int flag = 0;</p><p> printf
105、("請輸入要還的第 %d 本書的編號:", i+1 );</p><p><b> cin>>st;</b></p><p> cout<<endl;</p><p><b> p = head;</b></p><p> while( p!=NU
106、LL )</p><p><b> {</b></p><p> if( p->Book_Number == st )</p><p><b> {</b></p><p> if( p->Extant_Num <= p->Gross_Num )</p>
107、<p><b> {</b></p><p> p->Extant_Num++;</p><p> Return_Book( p );//刪除該書,更新個人圖書庫</p><p><b> flag = 1;</b></p><p> //cout<<&qu
108、ot;\n編號"<<setw(20)<<"書名"<<setw(20)<<"作者"<<endl;</p><p> //cout<<p->Book_Number<<setw(20)<<p->Book_Name<<setw(15)<<
109、p->Book_Writer<<endl;</p><p> cout<<"\n編號: "<<p->Book_Number<<endl;</p><p> cout<<"\n書名: "<<p->Book_Name<<endl;</p>
110、<p> cout<<"\n作者: "<<p->Book_Writer<<endl;</p><p><b> break;</b></p><p><b> }</b></p><p><b> else</b>&l
111、t;/p><p> cout<<"您沒有借這本書!"<<endl;</p><p><b> flag = 1;</b></p><p><b> }</b></p><p> p = p->next ;</p><p>
112、<b> }</b></p><p> if( flag == 0 )</p><p><b> {</b></p><p> cout<<" 圖書館無此書!輸入編號錯誤!"<<endl;//這行輸不出</p><p><b> }&l
113、t;/b></p><p><b> i++;</b></p><p><b> }</b></p><p><b> //圖書館信息更新</b></p><p> Load_Book( head );</p><p> system(&
114、quot;pause");</p><p><b> }</b></p><p> 四、部分測試結果【test result】</p><p><b> 4.0、主界面</b></p><p><b> 4.1、系統(tǒng)界面</b></p><
115、p><b> 4.2、登陸界面</b></p><p> 4.3、個人用戶界面</p><p> 4.4、修改密碼界面</p><p> 4.5、個人信息界面</p><p> 4.6、當前借閱界面</p><p><b> 4.7、借書界面</b><
116、/p><p><b> 4.8、還書界面</b></p><p><b> 4.9、查找書</b></p><p> 4.10、顯示所有書</p><p> 4.11、2-3樹凹進顯示所有書</p><p><b> 4.12、刪去書</b><
117、;/p><p><b> 4.13、添加新書</b></p><p><b> 4.13、退出系統(tǒng)</b></p><p> 5、總結【summary】</p><p> 5.1、通過這次課程設計,我系統(tǒng)的復習了C語言,把大一所學的C語言基本上重新掌握了一遍。</p><p&
118、gt; 5.2、圖書管理系統(tǒng)涉及的知識很多,我必須不斷地查找相關文獻,提高我的知識視野,同時也提高了我的實踐能力</p><p> 5.3、本課程設計難點在以2-3B樹的現(xiàn)實,我通過建立兩個圖書庫將2-3B樹和單鏈表相結合,從而簡化了程序設計。</p><p> 5.4、我最大的收獲就是鍛煉了我的實際操作能力。讓我在不斷遇到問題時,不斷的去尋找解決問題的答案,從而使自己不斷想出goo
119、d ideas,不斷完善自己的系統(tǒng)功能和優(yōu)化界面。</p><p> 5、參考文獻【reference documents】</p><p> 【1】數(shù)據(jù)結構[專著]:C語言版/嚴蔚敏, 吳偉民編著.—北京:清華大學出版社,2007</p><p> 【2】C語言程序設計[專著]/譚浩強著.—2版.—北京:清華大學出版社,2008</p><
120、;p> 【3】C++ Primer Plus(第五版)中文版[中譯文]/(美)Stephen Prata著;孫建春,韋強譯.—北京:人民郵電出版社,2005</p><p> 7、源代碼【source code】</p><p> ////////////////////////////////////////////////////////////main.cpp/////
121、///////////////////////////////////////////////////////////////</p><p> #include"head.h"</p><p> void Admin_menu();</p><p> int main(){//主函數(shù),只負責打開文件,及調用主菜單、初始化</p>
122、;<p> system("cls");</p><p> if((fp = fopen("log.txt","w+"))==NULL){</p><p> save_printf(1,"\n\t\n打開文件時發(fā)生錯誤!系統(tǒng)將自動退出!");</p><p> _s
123、leep(1000);save_printf("\t\t\t★");</p><p> _sleep(1000);save_printf("\t★");</p><p> _sleep(1000);save_printf("\t★");</p><p><b> exit(1);</b
124、></p><p><b> }</b></p><p> fprintf(fp,"\n\t\t\t☆\tmain-->menu \t☆\n\n");</p><p> Init_Book(BK);</p><p> Init_Reader(Rr);</p><
125、;p> Admin_menu();</p><p><b> return 0;</b></p><p><b> }</b></p><p> ////////////////////////////////////////////////////////////////////head.h////////
126、////////////////////////////////////////////////</p><p> /*------------------- 一、包含的頭文件---------------------*/</p><p> #include<fstream></p><p> #include<cstdlib><
127、/p><p> #include <ctime></p><p> #include<vector></p><p> #include<iomanip></p><p> #include<malloc.h></p><p> #include <conio
128、.h></p><p> #include <malloc.h> //包含內存分配函數(shù)的函數(shù)聲明;還定義常量和表現(xiàn)由堆例程使用的類型</p><p> #include <stdio.h> //標準輸入輸出頭文件</p><p> #include <conio.h> //定義了通過控制臺進行數(shù)據(jù)輸入和數(shù)據(jù)輸出的函數(shù)&
129、lt;/p><p> #include <stdlib.h> //定義了五種類型、一些宏和通用工具函數(shù).包含了C、C++語言的最常用的系統(tǒng)函數(shù)</p><p> #include <string> </p><p> #include <time.h> //時間和日期處理函數(shù)</p><p> #inc
130、lude <windows.h></p><p> #include <iostream></p><p> using namespace std; //使用命名空間std</p><p> /*------------------- 二、所需函數(shù)-------------------*/</p><p>
131、void Admin_menu();</p><p> /*------------------- 三、宏定義和常量-------------------*/</p><p> #define TRUE 1</p><p> #define FALSE 0</p><p> #define OK 1</p><p&
132、gt; #define ERROR 0</p><p> #define EQ(a,b) ((a)==(b))</p><p> #define LT(a,b) ((a)<(b))</p><p> #define HT(a,b) ((a)>(b)</p><p> #define m 3 //2-3樹的階</p&
133、gt;<p> #define N 20 // 每種書最大庫存20本、讀者最多每人借 20/4 = 5 本</p><p> typedef int Status; //函數(shù)的類型,其值是函數(shù)結果狀態(tài)代碼</p><p> typedef int KeyType; //設關鍵字域為整型</p><p> typedef string elemt
134、ype;</p><p> /*------------------- 四、所需結構體和類-------------------*/</p><p><b> //登陸類</b></p><p> class Login</p><p><b> {</b></p><p
135、><b> public:</b></p><p><b> Login();</b></p><p> void amend( const string st1,const string st2);</p><p> bool IsLogin(string &str1, string &st
136、r2);</p><p> string UserName;</p><p> string UserID;</p><p> string PassWord;</p><p> int ErrorNum;</p><p><b> };</b></p><p>
137、;<b> //個人信息結構體</b></p><p> typedef struct Information</p><p><b> {</b></p><p> string ID;</p><p> string Name;</p><p> string
138、 Academy;</p><p> string Major;</p><p> string Education;</p><p> string State;</p><p> int number;//超期數(shù)目</p><p> inttotal;//已借數(shù)目</p><
139、p><b> }Inof;</b></p><p><b> //借閱信息結構體</b></p><p> typedef struct InofBook</p><p><b> {</b></p><p> //string Check_Data;</
140、p><p> //string Return_Data;</p><p> int C_Year;</p><p> int C_Month;</p><p> int C_Day;</p><p> int R_Year;</p><p> int R_Month;</p>
141、<p> int R_Day;</p><p> int Book_Number;</p><p> string Book_Name;</p><p> string Book_Writer;</p><p> struct InofBook *next;</p><p> }InofBoo
142、k;</p><p><b> //圖書信息類</b></p><p> typedef struct{</p><p> KeyType index; //書號</p><p> char B_name[1][20];//書名,可以為中文</p><p> char B_writer[
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)結構課程設計--圖書管理
- 數(shù)據(jù)結構課程設計--圖書管理系統(tǒng)
- 《數(shù)據(jù)結構》課程設計---圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計---圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計-圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計報告——圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計報告圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計報告--學院圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計——圖書管理信息系統(tǒng)
- 數(shù)據(jù)結構課程設計圖書管理系統(tǒng)實驗報告
- 數(shù)據(jù)結構課程設計報告---- 圖書管理系統(tǒng)的設計與實現(xiàn)
- 數(shù)據(jù)結構-圖書管理系統(tǒng)
- 圖書管理系統(tǒng)(含源代碼)c語言_數(shù)據(jù)結構課程設計報告
- 數(shù)據(jù)結構課程設計--圖書借閱管理系統(tǒng)
- 數(shù)據(jù)結構課程設計----用c++語言實現(xiàn)圖書管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--圖書館管理系統(tǒng)
- 數(shù)據(jù)結構課程設計--小型圖書購銷管理系統(tǒng)
評論
0/150
提交評論