2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩87頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、<p>  數(shù)據(jù)結(jié)構(gòu)課程設(shè)計報告</p><p><b>  題目:圖書管理</b></p><p>  學(xué) 院 計算機(jī)學(xué)院 </p><p>  專 業(yè) 軟件工程 </p><p>  年級班別 2010級 4 班 </p>&l

2、t;p>  學(xué) 號 </p><p>  學(xué)生姓名 </p><p>  指導(dǎo)教師 </p><p>  成 績 ____________________</p><p><b>  2012

3、年6月</b></p><p>  設(shè)計任務(wù)【Design Tasks】</p><p>  1.1、圖書管理系統(tǒng)中圖書管理模塊包括圖書類型定義:書號、現(xiàn)存量、總存量,出版時間為整型,定價為浮點(diǎn)型,書名、著者名為字符型,借閱指針、預(yù)約指針為讀者類型;讀者類型定義:證號為整型、姓名為字符型,另外借閱類型和預(yù)約類型組合成其中的共用體類型。B樹(2-3樹)類型定義:關(guān)鍵字個數(shù)和關(guān)鍵字

4、數(shù)組為整型、另外還有指向雙親的指針、指向子樹的指針、記錄單元指針;B樹查找結(jié)果類型定義: 節(jié)點(diǎn)指針、關(guān)鍵字序號和查找標(biāo)志變量為整型。</p><p>  1.2、演示程序以用戶和計算機(jī)的對話方式進(jìn)行,在計算機(jī)終端上顯示“提示信息”之后,由用戶在鍵盤上輸入演示程序中規(guī)定的運(yùn)算命令,相應(yīng)的輸入數(shù)據(jù)和運(yùn)算結(jié)果顯示在后面。該演示系統(tǒng),沒有使用文件,全部數(shù)據(jù)放在內(nèi)存存放。四項基本業(yè)務(wù)都以書號為關(guān)鍵字進(jìn)行的,采用了B樹(2-

5、3樹)對書號建立索引,以提高效率。</p><p>  2、設(shè)計思路【Design Ideas】</p><p><b>  2.1、設(shè)計框圖</b></p><p><b>  2.2、結(jié)構(gòu)體設(shè)計</b></p><p>  /*------------------- 四、所需結(jié)構(gòu)體和類-----

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>  //個人信息結(jié)構(gòu)體</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、 //借閱信息結(jié)構(gòu)體</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;//標(biāo)志是否被預(yù)約 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];//手機(jī)號碼</p><p>  char* PassWord;</p><p>  struct Borrow{</p><p>  int yuyue;//存放預(yù)約的書號,最多一本</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; //關(guān)鍵字向量</p><p>  struct B_Node *child; //子樹指針向量</p><p>  B_Record rec; //記錄指針向量</p><p>  }bNode,*Bode;//書目結(jié)點(diǎn)向量類型</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; //讀者結(jié)點(diǎn)向量類

23、型</p><p>  typedef struct B_Node{</p><p>  int BookNum; //結(jié)點(diǎn)中書目個數(shù),即結(jié)點(diǎn)的大小</p><p>  int level;</p><p>  struct B_Node *pa; //指向雙親結(jié)點(diǎn)</p><p>  struct B_Node *l

24、Bro, *rBro;</p><p>  struct bNode node[m+1];//除child外,其它0號單元未用</p><p>  }B_Node,*Book; //書樹結(jié)點(diǎn)和書樹的類型</p><p>  typedef struct R_Node{</p><p>  int ReaderNum; //結(jié)點(diǎn)中讀者個數(shù),即結(jié)

25、點(diǎn)的大小</p><p>  int level;</p><p>  struct R_Node *pa; //指向雙親結(jié)點(diǎn)</p><p>  struct R_Node *lBro, *rBro;</p><p>  struct rNode node[m+1]; //除child外,0號單元未用</p><p>

26、;  }R_Node,*Reader; //讀者樹結(jié)點(diǎn)和讀者樹的類型</p><p>  typedef struct{</p><p>  B_Node *pb; //指向找到的結(jié)點(diǎn)</p><p>  int i; //1..m,在結(jié)點(diǎn)中的關(guān)鍵字序號</p><p>  int tag; // 1:查找成功,O:查找失敗</p>

27、;<p>  }B_Result; //書樹的查找結(jié)果類型</p><p>  typedef struct{</p><p>  R_Node *pr; //指向找到的結(jié)點(diǎn)</p><p>  int i; //1..m,在結(jié)點(diǎn)中的關(guān)鍵字序號</p><p>  int tag; // 1:查找成功,O:查找失敗</p&

28、gt;<p>  }R_Result; //讀者樹的查找結(jié)果類型</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ù)結(jié)果狀態(tài)代碼</p><p>  typedef int KeyType; //設(shè)關(guān)鍵字域為整型</p><p>  typedef string elemtype;</p><

31、p><b>  2.4、設(shè)計模塊</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>  **主關(guān)鍵字是圖書編號,是唯一的</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èi)不存在該書!\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;//當(dāng)前借閱信息</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>  /*導(dǎo)入密碼文件,讀取密碼和賬號*/</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>  四、部分測試結(jié)果【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、當(dāng)前借閱界面</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樹凹進(jìn)顯示所有書</p><p><b>  4.12、刪去書</b><

117、;/p><p><b>  4.13、添加新書</b></p><p><b>  4.13、退出系統(tǒng)</b></p><p>  5、總結(jié)【summary】</p><p>  5.1、通過這次課程設(shè)計,我系統(tǒng)的復(fù)習(xí)了C語言,把大一所學(xué)的C語言基本上重新掌握了一遍。</p><p&

118、gt;  5.2、圖書管理系統(tǒng)涉及的知識很多,我必須不斷地查找相關(guān)文獻(xiàn),提高我的知識視野,同時也提高了我的實踐能力</p><p>  5.3、本課程設(shè)計難點(diǎn)在以2-3B樹的現(xiàn)實,我通過建立兩個圖書庫將2-3B樹和單鏈表相結(jié)合,從而簡化了程序設(shè)計。</p><p>  5.4、我最大的收獲就是鍛煉了我的實際操作能力。讓我在不斷遇到問題時,不斷的去尋找解決問題的答案,從而使自己不斷想出goo

119、d ideas,不斷完善自己的系統(tǒng)功能和優(yōu)化界面。</p><p>  5、參考文獻(xiàn)【reference documents】</p><p>  【1】數(shù)據(jù)結(jié)構(gòu)[專著]:C語言版/嚴(yán)蔚敏, 吳偉民編著.—北京:清華大學(xué)出版社,2007</p><p>  【2】C語言程序設(shè)計[專著]/譚浩強(qiáng)著.—2版.—北京:清華大學(xué)出版社,2008</p><

120、;p>  【3】C++ Primer Plus(第五版)中文版[中譯文]/(美)Stephen Prata著;孫建春,韋強(qiáng)譯.—北京:人民郵電出版社,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ù),只負(fù)責(zé)打開文件,及調(diào)用主菜單、初始化</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> //包含內(nèi)存分配函數(shù)的函數(shù)聲明;還定義常量和表現(xiàn)由堆例程使用的類型</p><p>  #include <stdio.h> //標(biāo)準(zhǔn)輸入輸出頭文件</p><p>  #include <conio.h> //定義了通過控制臺進(jìn)行數(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ù)結(jié)果狀態(tài)代碼</p><p>  typedef int KeyType; //設(shè)關(guān)鍵字域為整型</p><p>  typedef string elemt

134、ype;</p><p>  /*------------------- 四、所需結(jié)構(gòu)體和類-------------------*/</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>  //個人信息結(jié)構(gòu)體</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>  //借閱信息結(jié)構(gòu)體</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)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論