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

下載本文檔

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

文檔簡介

1、<p>  本科生課程設(shè)計(jì)說明書</p><p>  題 目:c++語言課程設(shè)計(jì)</p><p><b>  ——影像管理系統(tǒng)</b></p><p><b>  學(xué)生姓名: </b></p><p><b>  學(xué) 號(hào): </b></p>

2、<p>  專 業(yè):計(jì)算機(jī)科學(xué)與技術(shù)</p><p>  班 級(jí):計(jì)算機(jī)三班</p><p><b>  指導(dǎo)教師:</b></p><p><b>  課程設(shè)計(jì)任務(wù)書</b></p><p>  影像信息管理系統(tǒng)目錄</p><p>  內(nèi)蒙古科技大學(xué)

3、課程設(shè)計(jì)任務(wù)書I</p><p>  第一章 需求分析3</p><p><b>  1.1引言3</b></p><p>  1.2任務(wù)概述3</p><p>  1.3數(shù)據(jù)描述3</p><p>  1.4功能需求3</p><p>  1.5性

4、能需求3</p><p>  1.6運(yùn)行需求4</p><p>  1.7任務(wù)計(jì)劃4</p><p>  第二章概要設(shè)計(jì)5</p><p>  2.1總體設(shè)計(jì)5</p><p>  2.2數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))5</p><p>  2.3接口設(shè)計(jì) //函數(shù)聲明

5、5</p><p>  2.4運(yùn)行界面設(shè)計(jì)5</p><p>  第三章詳細(xì)設(shè)計(jì)7</p><p>  3.1輸入模塊設(shè)計(jì)7</p><p>  3.2輸出模塊設(shè)計(jì)7</p><p>  3.3查找模塊設(shè)計(jì)7</p><p>  3.4排序模塊設(shè)計(jì)7</p>

6、<p>  3.5保存及讀取模塊設(shè)計(jì)7</p><p>  第四章測試分析8</p><p>  4.1測試程序執(zhí)行情況8</p><p>  4.2出現(xiàn)的問題和解決的方法8</p><p>  第五章用戶手冊(可選)9</p><p>  5.1使用說明9</p>

7、<p>  5.2運(yùn)行說明9</p><p>  第六章課程設(shè)計(jì)總結(jié)10</p><p>  附錄:程序代碼11</p><p><b>  參考文獻(xiàn)12</b></p><p><b>  致謝13</b></p><p><b>  第一

8、章 需求分析</b></p><p><b>  引言</b></p><p>  c++語言具有高級(jí)語言的強(qiáng)大功能,卻又有很多直接操作計(jì)算機(jī)硬件的功能(這些都是匯編語言的功能),因此,c++語言通常又被稱為中級(jí)語言。學(xué)習(xí)和掌握c++語言,既可以增進(jìn)對(duì)于計(jì)算機(jī)底層工作機(jī)制的了解,又為進(jìn)一步學(xué)習(xí)其他高級(jí)語言打下了堅(jiān)實(shí)的基礎(chǔ)。</p><

9、p>  為了方便對(duì)影像進(jìn)行管理,用c++程序?qū)崿F(xiàn)這一想法。</p><p><b>  任務(wù)概述</b></p><p><b>  影像信息管理系統(tǒng)</b></p><p>  影像信息包括:碟片名稱,演員,類型,可否借閱等。試設(shè)計(jì)一碟片信息管理系統(tǒng),使之能提供以下功能:</p><p> 

10、 碟片信息錄入功能(碟片信息用文件保存)--輸入</p><p>  碟片信息瀏覽功能--輸出</p><p>  查詢或排序功能:(至少兩種種查詢方式)--算法</p><p>  ●按名稱查詢 ●按演員名查詢</p><p><b>  碟片的借出與歸還</b></p><p><

11、;b>  數(shù)據(jù)描述</b></p><p><b>  class cd</b></p><p><b>  { </b></p><p>  friend class MoiveSystem;</p><p><b>  private:</b></p

12、><p>  char film_name[10]; </p><p>  char actor [10];</p><p>  char type[10];</p><p><b>  int n; </b></p><p><b>  };</b></p>&

13、lt;p>  class MoiveSystem</p><p><b>  {</b></p><p><b>  public:</b></p><p>  MoiveSystem();</p><p><b>  public:</b></p><

14、;p>  void add(void);</p><p>  int check_name(void);</p><p>  int check_actor(void);</p><p>  int rent(void) ;</p><p>  void retur_n(void) ;</p><p><b

15、>  private:</b></p><p>  cd CD[1000];</p><p>  int cd_number; </p><p><b>  };</b></p><p>  MoiveSystem::MoiveSystem()</p><p><b>

16、  {</b></p><p>  cd_number = 1;</p><p>  } 定義結(jié)構(gòu)體類型,該類型包括四個(gè)成員:依次為碟片的名稱,演員,類型,可否借閱。</p><p><b>  功能需求</b></p><p><b>  實(shí)現(xiàn):按名稱查詢</b></p>

17、;<p><b>  按演員名查詢</b></p><p><b>  增加碟片</b></p><p><b>  借閱碟片</b></p><p><b>  歸還碟片</b></p><p><b>  性能需求</b&

18、gt;</p><p>  要求反應(yīng)時(shí)間快,對(duì)碟片的信息了解較全面。(時(shí)間特性)</p><p><b>  運(yùn)行需求</b></p><p>  屏幕格式:有菜單和工具欄以方便操作</p><p>  各數(shù)據(jù)信息可以在屏幕直接修改</p><p>  各數(shù)據(jù)結(jié)果可在屏幕顯示</p>

19、<p>  硬件環(huán)境:普通計(jì)算機(jī)</p><p>  編譯環(huán)境:vc++++6.0</p><p><b>  任務(wù)計(jì)劃</b></p><p>  設(shè)計(jì)c++程序,實(shí)現(xiàn)影像管理的各項(xiàng)功能。</p><p>  碟片查詢:兩種查詢方式分別為按名稱查詢,按演員查詢,其中如果按要求找到對(duì)應(yīng)的碟片,則輸出該書目的所

20、有信息。</p><p>  碟片增加:可輸入碟片信息。</p><p>  碟片借閱:可按名稱查詢到碟片并借閱。</p><p>  碟片歸還:可按名稱查詢到碟片并歸還。</p><p><b>  概要設(shè)計(jì)</b></p><p><b>  總體設(shè)計(jì)</b></p

21、><p>  總體設(shè)計(jì)目標(biāo):使用者可以利用本系統(tǒng)進(jìn)行對(duì)影像借閱的各項(xiàng)運(yùn)算操作,根據(jù)用戶的需求自動(dòng)的進(jìn)行添加碟片,借閱碟片,歸還碟片。查找所要的碟片,查閱碟片的詳細(xì)資料,查閱演員的詳細(xì)資料。最后清晰完整的結(jié)果于屏幕中。大大方便使用者對(duì)碟片借閱的操作,不僅節(jié)省時(shí)間,而且提高準(zhǔn)確性,可以達(dá)到事半功倍的效果。</p><p>  總體設(shè)計(jì)策略:本系統(tǒng)采用的是自頂向下、層次化的模塊結(jié)構(gòu)。</p&g

22、t;<p><b>  結(jié)構(gòu)圖:</b></p><p>  數(shù)據(jù)類型設(shè)計(jì)(或數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì))</p><p><b>  class cd</b></p><p><b>  { </b></p><p>  friend class MoiveSystem;&l

23、t;/p><p><b>  private:</b></p><p>  char film_name[10]; </p><p>  char actor [10];</p><p>  char type[10];</p><p><b>  int n; </b><

24、;/p><p><b>  };</b></p><p><b>  接口設(shè)計(jì) </b></p><p><b>  運(yùn)行界面設(shè)計(jì)</b></p><p><b>  詳細(xì)設(shè)計(jì)</b></p><p><b>  輸入模塊設(shè)計(jì)

25、</b></p><p>  void MoiveSystem::add(void)</p><p><b>  { </b></p><p><b>  FILE *a; </b></p><p><b>  char s;</b></p><

26、p><b>  s='y';</b></p><p>  system("cls");</p><p>  while (s=='y')</p><p><b>  {</b></p><p>  system("cls"

27、);</p><p>  cout << "請(qǐng)輸入碟片名稱:\n"; </p><p>  scanf("%s",CD[cd_number].film_name); getchar();</p><p>  cout << "請(qǐng)輸入演員名字:\n";</p><p

28、>  scanf("%s",CD[cd_number].actor);getchar();</p><p>  cout << "請(qǐng)輸入碟片類型:\n"; </p><p>  scanf("%s",CD[cd_number].type);getchar();</p><p>  cout

29、 << "請(qǐng)輸入碟片狀態(tài):\n";</p><p>  scanf("%d",&CD[cd_number].n);</p><p>  getchar();</p><p>  a = fopen("cd.txt","a");</p><p&g

30、t;  fprintf(a,"%s %s %s %d \n",CD[cd_number].film_name,CD[cd_number].actor,CD[cd_number].type,CD[cd_number].n);</p><p>  fclose(a);</p><p>  cd_number++;</p><p>  cout <

31、;< "是否繼續(xù)添加?(Y/N)\n";</p><p><b>  cin >> s;</b></p><p>  fclose(a);</p><p>  system("cls");</p><p><b>  }</b></p&

32、gt;<p><b>  }</b></p><p>  查詢(名稱)模塊設(shè)計(jì)</p><p>  int MoiveSystem::check_name(void)</p><p><b>  { </b></p><p><b>  int i;</b><

33、;/p><p><b>  FILE *a;</b></p><p>  char cd_name[10]; </p><p>  system("cls");</p><p>  a=fopen("cd.txt","r");</p><p&g

34、t;  while(!feof(a))</p><p><b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);i

35、f(!feof(a)) cd_number++;</p><p><b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p>  cin >> cd_name;</p><p>  getchar();</p><

36、;p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b></p><p>  if((strcmp(CD[i].film_name, cd_name))==0)</p><p><b>  { </b></p><p>  if(

37、CD[i].n==1)</p><p><b>  { </b></p><p>  cout << "可借閱\n"; </p><p>  fclose(a);</p><p>  return 1; </p><p><b>  } </b>

38、;</p><p>  if(CD[i].n==0)</p><p><b>  { </b></p><p>  cout << "已借出\n"; </p><p>  fclose(a); </p><p>  return 1; </p><

39、;p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b>&l

40、t;/p><p>  if((strcmp(CD[i].film_name, cd_name))!=0)</p><p><b>  {</b></p><p>  cout << "無此片\n"; </p><p>  fclose(a); </p><p>  r

41、eturn 1; </p><p><b>  }</b></p><p><b>  }</b></p><p>  fclose(a);</p><p><b>  return 0;</b></p><p><b>  }</

42、b></p><p>  查詢(演員)模塊設(shè)計(jì)</p><p>  int MoiveSystem::check_actor(void)</p><p><b>  { </b></p><p><b>  int i;</b></p><p><b>  F

43、ILE *a;</b></p><p>  char actor[10]; </p><p>  system("cls");</p><p>  a=fopen("cd.txt","r");</p><p>  while(!feof(a))</p>&

44、lt;p><b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number++;</p&g

45、t;<p><b>  } </b></p><p>  cout << "請(qǐng)輸入演員名字:\n"; </p><p>  cin >> actor;</p><p>  getchar();</p><p>  for(i = 0; i < cd_numb

46、er; i++) </p><p><b>  { </b></p><p>  if((strcmp(CD[i].actor, actor))==0) </p><p><b>  { </b></p><p>  if(CD[i].n==1)</p><p><b&

47、gt;  { </b></p><p>  cout << "可借閱\n"; </p><p>  fclose(a);</p><p>  return 1; </p><p><b>  } </b></p><p>  if(CD[i].n==0)

48、</p><p><b>  { </b></p><p>  cout << "已借出\n"; </p><p>  fclose(a); </p><p>  return 1; </p><p><b>  } </b></p>

49、;<p><b>  }</b></p><p><b>  }</b></p><p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b></p><p>  if((strcmp(CD[i].

50、actor, actor))!=0) </p><p><b>  {</b></p><p>  cout << "無此片\n"; </p><p>  fclose(a); </p><p>  return 1; </p><p><b>  }

51、</b></p><p><b>  }</b></p><p>  fclose(a);</p><p>  return 0; </p><p><b>  }</b></p><p><b>  3.4借閱模塊設(shè)計(jì)</b></

52、p><p>  int MoiveSystem::rent(void) </p><p><b>  { </b></p><p><b>  int i;</b></p><p>  int j,f=0;</p><p>  char cd_name[10]; </p

53、><p><b>  FILE *a; </b></p><p><b>  int k=0; </b></p><p>  char choice; </p><p>  choice='a';</p><p>  system("cls")

54、;</p><p>  while(choice!='b')</p><p><b>  {</b></p><p>  a = fopen("cd.txt","r"); </p><p>  while(!feof(a))</p><p>

55、<b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number++;</p><

56、p><b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p>  cin >> cd_name;</p><p>  getchar();</p><p><b>  k++;</b></p>

57、;<p>  for (j = 0; j < cd_number; j++) </p><p><b>  { </b></p><p>  if((strcmp(CD[j].film_name, cd_name))==0)</p><p><b>  { </b></p><p&g

58、t;  CD[j].n=0; </p><p><b>  f=1;</b></p><p><b>  } </b></p><p><b>  } </b></p><p><b>  if (f==0)</b></p><p&g

59、t;  cout << "不存在此片!\n";</p><p>  cout << "A: 再借一張\n"; </p><p>  cout << "B: 退出\n"; </p><p>  fclose(a); </p><p>  scanf(

60、"%c",&choice); </p><p>  getchar();</p><p>  } return 0;</p><p><b>  }</b></p><p><b>  3.5歸還模塊設(shè)計(jì)</b></p><p>  void M

61、oiveSystem::retur_n(void) </p><p><b>  { </b></p><p><b>  int i;</b></p><p><b>  int j;</b></p><p>  char cd_name[10]; </p>

62、<p><b>  FILE *a; </b></p><p><b>  int k=0; </b></p><p>  char choice; </p><p>  choice='a';</p><p>  system("cls");<

63、/p><p>  while(choice!='b')</p><p><b>  {</b></p><p>  a = fopen("cd.txt","r"); </p><p>  while(!feof(a))</p><p><b

64、>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number++;</p><p>

65、<b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p>  cin >> cd_name;</p><p>  getchar();</p><p><b>  k++;</b></p>&l

66、t;p>  for (j = 0; j < cd_number; j++) </p><p><b>  { </b></p><p>  if((strcmp(CD[j].film_name, cd_name))==0)</p><p><b>  { </b></p><p>  C

67、D[j].n=1; </p><p><b>  } </b></p><p><b>  else</b></p><p>  cout << "不存在此片!\n";</p><p><b>  } </b></p>&l

68、t;p>  fclose(a); </p><p>  cout << "A: 再還一張\n"; </p><p>  cout << "B: 退出\n"; </p><p>  cin >> choice;</p><p>  getchar();</p

69、><p><b>  } </b></p><p><b>  }</b></p><p><b>  測試分析</b></p><p><b>  測試程序執(zhí)行情況</b></p><p><b>  課程設(shè)計(jì)總結(jié)<

70、/b></p><p>  一門課程設(shè)計(jì)是一種對(duì)語言內(nèi)容的提煉和使用,當(dāng)確定所要設(shè)計(jì)的內(nèi)容是,要從其所要實(shí)現(xiàn)的功能上下手,所確立的課題要擁有的功能是從一個(gè)用戶的角度所來考慮的,用戶是不知道其源程序,同時(shí)不知道任何內(nèi)部細(xì)節(jié),對(duì)于用戶或者所該軟件的使用者來說,你所要呈現(xiàn)的是一個(gè)清楚明了的界面,而他們可以從這個(gè)界面上得到他們所要實(shí)現(xiàn)的東西這是開發(fā)一個(gè)軟件里應(yīng)具有的思維程序,如同一個(gè)源程序的算法一樣,這樣一個(gè)算法的

71、建立會(huì)讓你有理有章,先要做些什么,然后下一步是什么,這也是從一個(gè)解決問題的理論高度上所出發(fā)的,每一問題的解決理所當(dāng)然有一個(gè)如何解決的思路呈現(xiàn),下面就具體用這個(gè)</p><p>  程序的設(shè)計(jì)過程來說明。</p><p>  當(dāng)確立要設(shè)計(jì)一個(gè)影像管理系統(tǒng)的c++語言程序時(shí),所呈現(xiàn)的第一個(gè)問題是什么:當(dāng)你對(duì)所謂的影像管理流程一無所知時(shí),你應(yīng)當(dāng)做的第一步是什么,對(duì)了,就是首先去了解它——了解它的

72、作用,它的流程,它的功能。這是一個(gè)必須要經(jīng)歷的階段,只有當(dāng)你熟練掌握你所要求的東西的細(xì)節(jié)之后,你的圍繞才能展開,你所做的后續(xù)工作一切的核心都將圍繞它,當(dāng)你要一個(gè)個(gè)實(shí)現(xiàn)它的功能是時(shí),你的思路里要求孕育著它,這就是你做這個(gè)軟件的前提,當(dāng)我了解一個(gè)影像管理系統(tǒng)的功能時(shí),了解他所要求的細(xì)節(jié)時(shí),一切就更加順理成章。我知道了一個(gè)影像管理系統(tǒng)要求有影像信息的錄入,影像信息的修改,影像信息的刪除,影像的排序,影像信息的瀏覽,影像信息的查詢當(dāng)然還有后續(xù)的

73、一些功能,這首先必須得建立在基礎(chǔ)的功能之上,然后達(dá)到進(jìn)一步的實(shí)現(xiàn)。然后就是組裝這些功能,實(shí)現(xiàn)一個(gè)算法的流程。顯而易見主函數(shù)就起到一個(gè)選擇的作用,使用switch語句來選擇相應(yīng)的功能,當(dāng)然也可以附加一個(gè)menu的子函數(shù),用主函數(shù)對(duì)他的調(diào)用,再通過它來實(shí)現(xiàn)選擇的作用。而主函數(shù)中的printf語句就可以呈現(xiàn)給用戶一個(gè)明確的界面信息,告訴用戶如何選擇,如何實(shí)現(xiàn)相應(yīng)的功能。</p><p>  當(dāng)然這一切都只是個(gè)框架,并不

74、具備具體的內(nèi)容,要達(dá)到具體的內(nèi)容不是讓讓其成為一個(gè)空架子,所以對(duì)于相應(yīng)子函數(shù)的逐個(gè)設(shè)計(jì)是整個(gè)重心!而每一個(gè)子函數(shù)的實(shí)現(xiàn)都是一個(gè)對(duì)于細(xì)節(jié)相當(dāng)程度上的把握問題,需要一遍又一遍的提煉。最終才能做得更好。往往所學(xué)習(xí)的知識(shí)內(nèi)容,即你所擁有的知識(shí)儲(chǔ)備,難以實(shí)現(xiàn)所有的要求,利用資源,而且是合理的吸收資源,反而成為一個(gè)相當(dāng)比重的能力,對(duì)于新知識(shí)的吸收和把握才能更好的體現(xiàn)你所具備的能力,從我所設(shè)計(jì)這個(gè)程序的過程上講,當(dāng)具體著手做的時(shí)候,所具備的知識(shí)是不足

75、以實(shí)現(xiàn)的,學(xué)習(xí)鏈表的相應(yīng)使用,學(xué)習(xí)文件的相應(yīng)功能上的應(yīng)用都是一個(gè)必須所經(jīng)過的過程。這其中有許多可以借鑒的子函數(shù),它們所具備的功能加以改進(jìn)就可以實(shí)現(xiàn)自己程序的功能,例如建立動(dòng)態(tài)鏈表的函數(shù),節(jié)點(diǎn)插入的insert函數(shù),以及最基本的一些函數(shù)如排序的靈活運(yùn)用都是一個(gè)利用資源的能力,要做的是理解這些程序,然后才能靈活的運(yùn)用這些東西,通過這些東西的理解也是對(duì)c++語言具體相應(yīng)規(guī)則的更加深刻的了解!同時(shí)還有僅靠課本上的內(nèi)容不足以使程序達(dá)到一定的程度,

76、因此借用一些完善程序的某些內(nèi)容可以使自己的程序更加趨于完善!</p><p>  這一切的過程說起來也許可以條分縷析,但是真正做的時(shí)候要求的東西更多,需要更加的定下心來,面對(duì)一串串代碼,運(yùn)算符,以及標(biāo)點(diǎn)符號(hào)一個(gè)也許很不顯眼的問題就足以讓你頭昏腦脹,要理清思路,要關(guān)注每一點(diǎn)。整體上的把握,例如不要忽視了函數(shù)的聲明,以至于無法運(yùn)行,嘗試著多一些調(diào)試,每一次改動(dòng)都要考慮到方方面面,要整體上把握你的程序,這樣才能減少不知

77、所以的錯(cuò)誤,當(dāng)錯(cuò)誤出現(xiàn)的時(shí)候,你可以準(zhǔn)確的把握錯(cuò)誤所出現(xiàn)的地方,這種能力的實(shí)現(xiàn)就是要求足夠的細(xì)心,要求你對(duì)程序整體上的把握足夠的熟練,當(dāng)用三天的時(shí)間就針對(duì)一個(gè)鏈表排序來改變不同種做法的時(shí)候,也許你覺得這一切都足夠的不可思議,然而實(shí)際上遠(yuǎn)遠(yuǎn)不是如此,你可以從這個(gè)過程中旁敲側(cè)擊的理解許多容易忽略的東西,熟練不是說出來的,熟練是做出來的!特別對(duì)于計(jì)算機(jī)專業(yè)的來說,對(duì)于軟件的開發(fā)來說,一切的錯(cuò)誤不可避免,一切都趨于正常為此你所建立的信心是足夠強(qiáng)

78、大的!一切其實(shí)只是個(gè)開始,我們還都只是個(gè)門外漢,當(dāng)你知道的越多,你能感受到什么,是的,你會(huì)明白你是無知的,往往你所擁有的知識(shí)只不過是鳳毛麟角,當(dāng)你逐漸明白或者說感受到這些東西的話你就不會(huì)沾沾自喜,你需要更加去學(xué)習(xí)去鉆研,如果你</p><p>  一次課程設(shè)計(jì)并不是最重要的,重要的是什么?是你通過自主的學(xué)習(xí)理解到如何去面對(duì)你生活或者學(xué)習(xí)上的問題,一個(gè)解決問題處理問題的方案,一個(gè)身在問題之中,然后你能夠如何不被它攪

79、得不知所措,能夠把握住自己的思路,一步一步走下去,時(shí)間只是個(gè)過程,過程中會(huì)有好多東西值得去做!</p><p>  課程設(shè)計(jì)并不是結(jié)束了,它只是暫告了一個(gè)段落,如果真正能夠從中得到什么,我想就是需要做的東西更多,需要做的事情更多!面對(duì)挑戰(zhàn)面對(duì)知識(shí)的接踵而至總以一種孜孜不倦的態(tài)度,永遠(yuǎn)需求!</p><p><b>  附錄:程序代碼</b></p>&l

80、t;p>  #include <iostream></p><p>  #include <string></p><p>  #include <cstdlib></p><p>  using namespace std;</p><p><b>  class cd</b>

81、</p><p><b>  { </b></p><p>  friend class MoiveSystem;</p><p><b>  private:</b></p><p>  char film_name[10]; </p><p>  char actor [

82、10];</p><p>  char type[10];</p><p><b>  int n; </b></p><p><b>  };</b></p><p>  class MoiveSystem</p><p><b>  {</b>&l

83、t;/p><p><b>  public:</b></p><p>  MoiveSystem();</p><p><b>  public:</b></p><p>  void add(void);</p><p>  int check_name(void);</

84、p><p>  int check_actor(void);</p><p>  int rent(void) ;</p><p>  void retur_n(void) ;</p><p><b>  private:</b></p><p>  cd CD[1000];</p>&

85、lt;p>  int cd_number; </p><p><b>  };</b></p><p>  MoiveSystem::MoiveSystem()</p><p><b>  {</b></p><p>  cd_number = 1;</p><p>&

86、lt;b>  }</b></p><p>  void MoiveSystem::add(void)</p><p><b>  { </b></p><p><b>  FILE *a; </b></p><p><b>  char s;</b></

87、p><p><b>  s='y';</b></p><p>  system("cls");</p><p>  while (s=='y')</p><p><b>  {</b></p><p>  system(&quo

88、t;cls");</p><p>  cout << "請(qǐng)輸入碟片名稱:\n"; </p><p>  scanf("%s",CD[cd_number].film_name); getchar();</p><p>  cout << "請(qǐng)輸入演員名字:\n";</p

89、><p>  scanf("%s",CD[cd_number].actor);getchar();</p><p>  cout << "請(qǐng)輸入碟片類型:\n"; </p><p>  scanf("%s",CD[cd_number].type);getchar();</p><

90、p>  cout << "請(qǐng)輸入碟片狀態(tài):\n";</p><p>  scanf("%d",&CD[cd_number].n);</p><p>  getchar();</p><p>  a = fopen("cd.txt","a");</p&g

91、t;<p>  fprintf(a,"%s %s %s %d \n",CD[cd_number].film_name,CD[cd_number].actor,CD[cd_number].type,CD[cd_number].n);</p><p>  fclose(a);</p><p>  cd_number++;</p><p>

92、;  cout << "是否繼續(xù)添加?(Y/N)\n";</p><p><b>  cin >> s;</b></p><p>  fclose(a);</p><p>  system("cls");</p><p><b>  }</b

93、></p><p><b>  }</b></p><p>  int MoiveSystem::check_name(void)</p><p><b>  { </b></p><p><b>  int i;</b></p><p><

94、b>  FILE *a;</b></p><p>  char cd_name[10]; </p><p>  system("cls");</p><p>  a=fopen("cd.txt","r");</p><p>  while(!feof(a))<

95、;/p><p><b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number+

96、+;</p><p><b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p>  cin >> cd_name;</p><p>  getchar();</p><p>  for(i = 0; i &

97、lt; cd_number; i++) </p><p><b>  { </b></p><p>  if((strcmp(CD[i].film_name, cd_name))==0)</p><p><b>  { </b></p><p>  if(CD[i].n==1)</p>

98、<p><b>  { </b></p><p>  cout << "可借閱\n"; </p><p>  fclose(a);</p><p>  return 1; </p><p><b>  } </b></p><p>

99、  if(CD[i].n==0)</p><p><b>  { </b></p><p>  cout << "已借出\n"; </p><p>  fclose(a); </p><p>  return 1; </p><p><b>  } <

100、;/b></p><p><b>  }</b></p><p><b>  }</b></p><p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b></p><p>  i

101、f((strcmp(CD[i].film_name, cd_name))!=0)</p><p><b>  {</b></p><p>  cout << "無此片\n"; </p><p>  fclose(a); </p><p>  return 1; </p>&

102、lt;p><b>  }</b></p><p><b>  }</b></p><p>  fclose(a);</p><p><b>  return 0;</b></p><p><b>  }</b></p><p

103、>  int MoiveSystem::check_actor(void)</p><p><b>  { </b></p><p><b>  int i;</b></p><p><b>  FILE *a;</b></p><p>  char actor[10];

104、 </p><p>  system("cls");</p><p>  a=fopen("cd.txt","r");</p><p>  while(!feof(a))</p><p><b>  { </b></p><p>  f

105、scanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number++;</p><p><b>  } </b></p><p&g

106、t;  cout << "請(qǐng)輸入演員名字:\n"; </p><p>  cin >> actor;</p><p>  getchar();</p><p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b>&l

107、t;/p><p>  if((strcmp(CD[i].actor, actor))==0) </p><p><b>  { </b></p><p>  if(CD[i].n==1)</p><p><b>  { </b></p><p>  cout << &

108、quot;可借閱\n"; </p><p>  fclose(a);</p><p>  return 1; </p><p><b>  } </b></p><p>  if(CD[i].n==0)</p><p><b>  { </b></p>

109、<p>  cout << "已借出\n"; </p><p>  fclose(a); </p><p>  return 1; </p><p><b>  } </b></p><p><b>  }</b></p><p&g

110、t;<b>  }</b></p><p>  for(i = 0; i < cd_number; i++) </p><p><b>  { </b></p><p>  if((strcmp(CD[i].actor, actor))!=0) </p><p><b>  {&l

111、t;/b></p><p>  cout << "無此片\n"; </p><p>  fclose(a); </p><p>  return 1; </p><p><b>  }</b></p><p><b>  }</b>&

112、lt;/p><p>  fclose(a);</p><p>  return 0; </p><p><b>  }</b></p><p>  int MoiveSystem::rent(void) </p><p><b>  { </b></p>&l

113、t;p><b>  int i;</b></p><p>  int j,f=0;</p><p>  char cd_name[10]; </p><p><b>  FILE *a; </b></p><p><b>  int k=0; </b></p>

114、<p>  char choice; </p><p>  choice='a';</p><p>  system("cls");</p><p>  while(choice!='b')</p><p><b>  {</b></p>&

115、lt;p>  a = fopen("cd.txt","r"); </p><p>  while(!feof(a))</p><p><b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_nam

116、e,&CD[cd_number].actor,&CD[cd_number].type,&CD[cd_number].n);if(!feof(a)) cd_number++;</p><p><b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p&

117、gt;  cin >> cd_name;</p><p>  getchar();</p><p><b>  k++;</b></p><p>  for (j = 0; j < cd_number; j++) </p><p><b>  { </b></p>&

118、lt;p>  if((strcmp(CD[j].film_name, cd_name))==0)</p><p><b>  { </b></p><p>  CD[j].n=0; </p><p><b>  f=1;</b></p><p><b>  } </b>

119、</p><p><b>  } </b></p><p><b>  if (f==0)</b></p><p>  cout << "不存在此片!\n";</p><p>  cout << "A: 再借一張\n"; </p&

120、gt;<p>  cout << "B: 退出\n"; </p><p>  fclose(a); </p><p>  scanf("%c",&choice); </p><p>  getchar();</p><p>  } return 0;</p>

121、;<p><b>  }</b></p><p>  void MoiveSystem::retur_n(void) </p><p><b>  { </b></p><p><b>  int i;</b></p><p><b>  int j

122、;</b></p><p>  char cd_name[10]; </p><p><b>  FILE *a; </b></p><p><b>  int k=0; </b></p><p>  char choice; </p><p>  choice=

123、'a';</p><p>  system("cls");</p><p>  while(choice!='b')</p><p><b>  {</b></p><p>  a = fopen("cd.txt","r"); &

124、lt;/p><p>  while(!feof(a))</p><p><b>  { </b></p><p>  fscanf(a,"%s %s %s %d",&CD[cd_number].film_name,&CD[cd_number].actor,&CD[cd_number].type,&

125、CD[cd_number].n);if(!feof(a)) cd_number++;</p><p><b>  } </b></p><p>  cout << "請(qǐng)輸入碟片名:\n"; </p><p>  cin >> cd_name;</p><p>  getchar

126、();</p><p><b>  k++;</b></p><p>  for (j = 0; j < cd_number; j++) </p><p><b>  { </b></p><p>  if((strcmp(CD[j].film_name, cd_name))==0)</

127、p><p><b>  { </b></p><p>  CD[j].n=1; </p><p><b>  } </b></p><p><b>  else</b></p><p>  cout << "不存在此片!\n&q

128、uot;;</p><p><b>  } </b></p><p>  fclose(a); </p><p>  cout << "A: 再還一張\n"; </p><p>  cout << "B: 退出\n"; </p><p&g

129、t;  cin >> choice;</p><p>  getchar();</p><p><b>  } </b></p><p><b>  }</b></p><p>  int main (void) </p><p><b>  {<

130、;/b></p><p>  MoiveSystem *app = new MoiveSystem();</p><p>  char choice;</p><p>  while (choice!='f')</p><p><b>  {</b></p><p>  co

131、ut << " 歡迎進(jìn)入影片信息管理系統(tǒng)\n";</p><p>  cout << " 請(qǐng)輸入你的選擇\n"; </p><p>  cout << " A: 增加影片\n"; </p>&l

132、t;p>  cout << " B: 影片查詢 (按名稱\n"; </p><p>  cout << " C: 影片查詢 (按演員)\n"; </p><p>  cout << " D: 碟片借

133、出\n"; </p><p>  cout << " E: 碟片歸還\n"; </p><p>  cout << " F: 退出程序\n"; </p><p>  cin >> choice;</

134、p><p>  switch(choice) </p><p><b>  { </b></p><p>  case 'a': </p><p><b>  { </b></p><p>  app->add();</p><p&g

135、t;<b>  break; </b></p><p><b>  } </b></p><p>  case 'b': </p><p><b>  { </b></p><p>  app->check_name();</p><p

136、><b>  break; </b></p><p><b>  } </b></p><p>  case 'c': </p><p><b>  { </b></p><p>  app->check_actor();</p>&l

137、t;p><b>  break; </b></p><p><b>  } </b></p><p>  case 'd': </p><p><b>  { </b></p><p>  app->rent();</p><p&

138、gt;<b>  break; </b></p><p><b>  } </b></p><p><b>  case'e': </b></p><p><b>  { </b></p><p>  app->retur_n();&

139、lt;/p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  case'f': </b></p><p><b>  { </b></p><p>  dele

140、te app;</p><p><b>  exit(0);</b></p><p><b>  break;</b></p><p><b>  } </b></p><p><b>  }</b></p><p><b&g

141、t;  }</b></p><p>  delete app;</p><p><b>  return 0;</b></p><p><b>  }</b></p><p><b>  參考文獻(xiàn)</b></p><p>  吳敏 楊國林著.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論