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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、<p><b>  圖書信息管理系統</b></p><p><b>  設計目的:</b></p><p>  為了鍛煉計算機專業學生的編程能力,特別組織了這次軟件實習,編程是一種抽象思維,必須要通過動手才能培養其能力,我們軟件實習的主要目的是要求學生對所學的語言熟練的掌握,并可以精通一門自己喜歡的編程語言,并且能把現實的問題抽象成程

2、序,用程序語言表現出來。</p><p>  1.能根據實際問題的具體情況,結合面向對象的基本理論和基本技巧,正確分析問題,并能設計出解決問題的有效算法與程序。</p><p>  2.提高程序設計和調試能力。學生通過上機實習,驗證自己設計的算法和程序的正確性。學會有效利用基本調試方法,迅速找出程序代碼中的錯誤并且修改,進一步提高程序設計水平。</p><p>&l

3、t;b>  設計要求:</b></p><p>  圖書信息包括:登錄號、書名、作者名、分類號、出版單位、出版時間、價格等。試設計一圖書信息管理系統,使之能提供以下功能:</p><p>  系統以菜單方式工作?</p><p>  圖書信息錄入功能(圖書信息用文件保存)--輸入?</p><p>  圖書信息瀏覽功能--輸

4、出?</p><p>  查詢和排序功能:(至少一種查詢方式)--算法?</p><p><b>  按書名查詢</b></p><p><b>  按作者名查詢</b></p><p>  圖書信息的刪除與修改(可選項)</p><p><b>  流程圖:<

5、;/b></p><p><b>  四、模塊分析:</b></p><p> ?。?)main()函數模塊</p><p>  主函數定義了一個database類的對象book2,通過這個對象調用bookdata(),主函數代碼很少,只是一個菜單首頁。</p><p>  int main()</p>

6、;<p>  { database book2; </p><p>  cout<<endl<<endl<<"\t\t\t圖 書 信 息 管 理 系 統";</p><p>  cout<<endl<<endl;</p><p>  book2

7、.bookdata();</p><p>  return 0;}</p><p> ?。?)添加圖書信息模塊</p><p>  void addbook(int n,char *bn,char *an,char *ty,char *pub,char *ti,char *pr) //增加圖書</p><p>  {

8、 num=n; </p><p>  strcpy(bname,bn); //把輸入的內容復制給bname</p><p>  strcpy(aname,an);</p><p>  strcpy(type,ty);</p><p>  strcpy(publish,pub);</p><

9、;p>  strcpy(time,ti);</p><p>  strcpy(price,pr);}</p><p>  用戶通過鍵盤輸入圖書基本信息(圖書編號,書名,作者名,圖書類型,出版日期,出版單位,圖書價格)</p><p> ?。?)顯示圖書文件中所有圖書信息</p><p>  void show() <

10、/p><p>  {cout<<setw(10)<<num<<setw(9)<<bname<<setw(9)<<aname<<setw(8)<<type<<setw(6)<<publish<<setw(20)<<time<<setw(9)<<price

11、<<setw(5)<<endl;}</p><p>  void show()</p><p>  { for (int i=0;i<=top;i++)</p><p>  book1[i].show();</p><p><b>  }</b></p><p> 

12、?。?)查詢圖書信息模塊</p><p>  book *find(int id) //查找圖書</p><p>  {for (int i=0;i<=top;i++)</p><p>  if (book1[i].getnum()==id)</p><p>  {return &book1[i];}</

13、p><p><b>  }</b></p><p>  五、程序的源代碼(含注釋):</p><p>  #include"iostream"</p><p>  #include "iomanip"</p><p>  #include "strin

14、g"</p><p>  #include "fstream" /*輸入/輸出文件流類*/</p><p>  using namespace std;</p><p>  const int max=5; /*數組5,圖書添加五本*/</p><p&

15、gt;  class book</p><p><b>  {</b></p><p><b>  private:</b></p><p>  int num; //圖書編號</p><p>  char bname[20]; //書名</p>&l

16、t;p>  char aname[20]; //作者名 </p><p>  char type[20]; //圖書類型</p><p>  char publish[20]; //出版單位</p><p>  char time[20]; //出版時間</p><p>  char pr

17、ice[20];//價格 </p><p><b>  public:</b></p><p>  void query(int m){};</p><p>  int getnum()</p><p>  { return num;}</p><p>  char getbname()&l

18、t;/p><p>  { return bname[20];}</p><p>  char getaname()</p><p>  { return aname[20];}</p><p>  char gettype()</p><p>  { return type[20];}</p><

19、p>  char getpublish()</p><p>  { return publish[20]; }</p><p>  char gettime()</p><p>  { return time[20];} </p><p>  char getprice()</p><p>  {retur

20、n price[20];} </p><p>  void addbook(int n,char *bn,char *an,char *ty,char *pub,char *ti,char *pr) //增加圖書</p><p><b>  {</b></p><p>  num=n; </p>

21、<p>  strcpy(bname,bn); //把輸入的內容復制給bname,相當于復制</p><p>  strcpy(aname,an);</p><p>  strcpy(type,ty);</p><p>  strcpy(publish,pub);</p><p>  strcpy(time,ti

22、);</p><p>  strcpy(price,pr);</p><p><b>  }</b></p><p>  void show() //輸出圖書</p><p><b>  {</b></p><p>  cout<<setw(10)&

23、lt;<num<<setw(9)<<bname<<setw(9)<<aname<<setw(8)<<type<<setw(6)<<publish<<setw(20)<<time<<setw(9)<<price<<setw(5)<<endl;</p>

24、<p>  } </p><p><b>  };</b></p><p>  class database</p><p><b>  {</b></p><p><b>  private:</b></p><p>

25、;  int top; //圖書記錄指針</p><p>  book book1[max]; //圖書記錄</p><p><b>  public:</b></p><p>  database() //構造函數,將book.

26、dat讀到book1[]中</p><p><b>  { </b></p><p><b>  book b;</b></p><p>  top=-1; //數組首地址是從[0]開始的</p><p>  fstream file("book.dat&

27、quot;,ios::in);</p><p><b>  while (1)</b></p><p><b>  {</b></p><p>  file.read((char *)&b,sizeof(b));</p><p>  if (!file) break;</p>

28、<p>  top++; </p><p>  book1[top]=b;</p><p><b>  }</b></p><p>  file.close();</p><p><b>  } </b></p><p>  int add

29、book(int n,char *an,char *bn,char *ty,char *pub,char *ti,char *pr) </p><p><b>  {</b></p><p><b>  top++;</b></p><p>  book1[top].addbook(n,an,bn,ty,

30、pub,ti,pr); </p><p>  return 1; //返回到while,文件里增加一本書</p><p><b>  return 0;</b></p><p><b>  }</b></p><p>  void bookdata();

31、 //圖書庫</p><p>  void show()</p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++)</p><p>  book1[i].show();</p><p><b>  }</b>

32、</p><p>  ~database() //析構函數,將book1[]寫到book.dat文件中</p><p><b>  {</b></p><p>  fstream file("book.dat",ios::out);</p><p>  for (

33、int i=0;i<=top;i++)</p><p>  file.write((char *)&book1[i],sizeof(book1[i]));</p><p>  file.close();</p><p><b>  }</b></p><p><b>  };</b>&

34、lt;/p><p>  void database::bookdata() //bookdata 函數實現部分</p><p><b>  {</b></p><p>  char choice;</p><p><b>  int id;</b></p&g

35、t;<p>  char bbname[40];</p><p>  char baname[40];</p><p>  char btype[20];</p><p>  char bpublish[40];</p><p>  char btime[40];</p><p>  char bpric

36、e[40];</p><p>  while (choice!='4')</p><p><b>  { </b></p><p>  cout<<"-----------------------------------------------------------------------------

37、---\n";</p><p>  cout<<endl;</p><p>  cout<<"\t\t\t圖 書 信 息 管 理 系 統\n\n";</p><p>  cout<<"\t\t\t 1 新 增 圖 書\n\n";</p>&

38、lt;p>  cout<<"\t\t\t 2 顯 示 圖 書\n\n";</p><p>  cout<<"\t\t\t 3 查 找 圖 書\n\n";</p><p>  cout<<"\t\t\t 4 返 回 主 界 面 \n\n";<

39、/p><p>  cout<<endl;</p><p>  cout<<"--------------------------------------------------------------------------------\n";</p><p>  cout<<" 請 繼 續 選 擇(1,

40、2,3,4):";</p><p>  cin>>choice; </p><p>  switch (choice)</p><p><b>  {</b></p><p><b>  case 1:</b></p><p>  cout<<

41、;"請輸入圖書信息(圖書編號、書名、作者、類型、出版單位、出版時間、價格)"<<endl;</p><p>  cin>>id>>bbname>>baname>>btype>>bpublish>>btime>>bprice;</p><p>  addbook(id,bbn

42、ame,baname,btype,bpublish,btime,bprice);</p><p>  cout<<"--------------------------------------------------------------------------------"<<endl;</p><p>  cout<<"

43、;圖書信息已存入系統文件中"<<endl;</p><p>  cout<<"--------------------------------------------------------------------------------"<<endl;</p><p><b>  break;</b>

44、;</p><p><b>  case 2:</b></p><p>  cout<<setw(15)<<"圖書編號"<<setw(7)<<"書名"<<setw(10)<<"作者名"<<setw(7)<<&quo

45、t;類型"<<setw(10)<<"出版單位"<<setw(12)<<"出版時間"<<setw(10)<<"價格"<<endl;</p><p><b>  show();</b></p><p><b&g

46、t;  break;</b></p><p><b>  case 3:</b></p><p>  cout << "輸入圖書編號:"; </p><p>  cin >> id; </p><p>  void book::query (int id)<

47、;/p><p><b>  {</b></p><p>  for (int i=0;i<=top;i++) </p><p><b>  {</b></p><p>  if (book[i].getnum()==id ) </p><p>  book[i].show

48、(); break;</p><p><b>  else </b></p><p>  return NULL; </p><p><b>  } </b></p><p>  if (id==NULL) </p><p><b>  { </b&

49、gt;</p><p>  cout << " 該讀者不存在 "<<endl; </p><p><b>  break; </b></p><p><b>  }</b></p><p><b>  }</b></p>

50、;<p><b>  case 4:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b><

51、;/p><p>  //main() 函數的實現,程序的主界面的引導</p><p>  void main()</p><p><b>  { </b></p><p><b>  int n;</b></p><p>  char choice;</p>

52、<p>  database book2;</p><p>  while(choice!='2')</p><p><b>  { </b></p><p>  cout<<endl<<endl<<"\t\t\t圖 書 信 息 管 理 系 統&quo

53、t;;</p><p>  cout<<endl<<endl;</p><p>  cout<<" \t\t\t 1 進 入 系 統\n\n \t\t\t 2 退 出"<<endl;</p><p>  cout<<" 您 好, 請

54、選 擇(1或2):";</p><p>  cin>>choice;</p><p>  switch(choice)</p><p><b>  {</b></p><p>  case '1': </p><p

55、>  book2.bookdata();</p><p><b>  break; </b></p><p><b>  case '2':</b></p><p>  cout<<"\n\n\t\t\t謝 謝 使 用!\n\n";</p><

56、p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  五.總結:</b></p>

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論