c課程設(shè)計---電影俱樂部_第1頁
已閱讀1頁,還剩19頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  本科生課程論文</b></p><p>  課程名稱 C語言課程設(shè)計 </p><p>  教師姓名 </p><p>  本科生姓名 </p><p>  本科生學(xué)號

2、</p><p>  本科生專業(yè) 計算機(jī)科學(xué)與技術(shù) </p><p>  所在院系 計算機(jī)學(xué)院 </p><p>  類別: </p><p>  日期: 2012.01.15 </p><p><b> 

3、 課程設(shè)計評語</b></p><p>  注:1、無評閱人簽名成績無效;</p><p>  2、必須用鋼筆或圓珠筆批閱,用鉛筆閱卷無效;</p><p>  3、如有平時成績,必須在上面評分表中標(biāo)出,并計算入總成績。</p><p><b>  目 錄</b></p><p>&l

4、t;b>  課程設(shè)計評語2</b></p><p><b>  目 錄3</b></p><p>  1.課程論文題目4</p><p>  2.程序設(shè)計思路4</p><p><b>  3.功能模塊圖5</b></p><p>  4.?dāng)?shù)據(jù)結(jié)構(gòu)

5、設(shè)計5</p><p><b>  5.算法設(shè)計6</b></p><p><b>  6.程序代碼13</b></p><p>  7.程序運行結(jié)果22</p><p>  8.編程中遇到的困難及解決方法25</p><p>  9.總結(jié)心得及良好建議26<

6、;/p><p><b>  10.致謝26</b></p><p><b>  1.課程論文題目</b></p><p><b>  題目:電影俱樂部</b></p><p><b>  題目內(nèi)容:</b></p><p><b

7、>  【要求】</b></p><p>  允許俱樂部成員租用DVD。若想成為會員,首先應(yīng)簽約并且可按月繳納費用。會員一次可租用三個DVD,沒有時間限制。瀏覽所有可租用的DVD,新成員的開戶,會員對其賬戶狀況的查詢以及俱樂部管理者對所有交易情況的查看。</p><p><b>  【提示】</b></p><p><b&

8、gt; ?。?)需要分析</b></p><p>  DVD信息和俱樂部會員信息文件存儲,提供文件的輸入輸出操作;注冊新會員;提供文件的添加操作;實現(xiàn)按月繳納費用;提供文件的修改操作;瀏覽信息應(yīng)提供顯示操作;實現(xiàn)查詢則提供文件的查找操作;另外提供健盤式選擇菜單以實現(xiàn)功能選擇。</p><p><b>  2.程序設(shè)計思路</b></p>&l

9、t;p>  我的設(shè)計思路是運用調(diào)用函數(shù)、指針、文件和一些基本知識對題目進(jìn)行編寫。</p><p>  首先,我把程序分為九個模塊,依次實現(xiàn)題目要求,然后用一個自定義函數(shù)實現(xiàn)總體調(diào)用,設(shè)計中幾乎用到了我所學(xué)的全部知識,對于生疏或不知道的知識,我會上網(wǎng)進(jìn)行查詢,按部就班,穩(wěn)扎穩(wěn)打。</p><p>  在編寫本程序的過程中,首先運用所學(xué)過的知識、借助老師給的指導(dǎo)材料,確定了目標(biāo)程序運行的

10、次序與界面,即本程序首先運行“電影俱樂部管理系統(tǒng)”的菜單界面,其次程序運行“新會員注冊”菜單界面,進(jìn)入之后新會員可以根據(jù)提示依次輸入自己的相關(guān)信息,并進(jìn)行保存,以后如果會員或者管理員想對會員信息進(jìn)行查看或者修改,可以通過第八步的修改功能進(jìn)行相關(guān)的操作。接下來第二步是會員的付費功能,進(jìn)入相關(guān)界面后可依次輸入會員的信息和付費情況,并保存到文件夾以便于查詢。接著進(jìn)入DVD的的出租信息界面,管理員可通過此對DVD進(jìn)行管理,如果已經(jīng)被借則在后面標(biāo)

11、記0,否則標(biāo)記1。這樣已便于會員在進(jìn)行租借時快速的找到自己喜歡的未被借的DVD。下面的DVD的歸還界面原理相同。然后進(jìn)入信息查詢的部分,在這里管理員和會員都可以找到會員的基本信息以及所借DVD的情況,一目了然,十分清楚。如果想對會員的信息進(jìn)行修改就需要進(jìn)如第八步的修改界面,第七步是對會員情況的輸入,進(jìn)行完全部操作后,系統(tǒng)提示exit后就可以推出該系統(tǒng)。使用起來還算比較方便。</p><p><b>  

12、3.功能模塊圖</b></p><p><b>  4.?dāng)?shù)據(jù)結(jié)構(gòu)設(shè)計</b></p><p>  數(shù)據(jù)結(jié)構(gòu)是計算機(jī)存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行或者存儲效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。</p><p>  根據(jù)數(shù)據(jù)元

13、素間關(guān)系的不同特性,通常有下列四類基本的結(jié)構(gòu):</p><p>  ⑴集合結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素間的關(guān)系是“屬于同一個集合”。</p><p> ?、凭€性結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對一的關(guān)系。</p><p>  ⑶樹型結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對多的關(guān)系。</p><p> ?、葓D形結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著多對多的關(guān)

14、系,也稱網(wǎng)狀結(jié)構(gòu)。</p><p>  根據(jù)本題目的要求,我運用的是樹形結(jié)構(gòu),由主菜單選擇模塊,選擇要進(jìn)行的操作引出下面的會員注冊模塊、會員付費模塊、DVD返還租借模塊、信息瀏覽模塊、信息搜索模塊、進(jìn)入模塊、信息修改模塊、退出模塊。</p><p>  在程序設(shè)計中,為了處理方便, 我把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。在C語言中, 數(shù)組

15、屬于構(gòu)造數(shù)據(jù)類型。一個數(shù)組可以分解為多個數(shù)組元素,這些數(shù)組元素可以是基本數(shù)據(jù)類型或是構(gòu)造類型。因此按數(shù)組元素的類型不同,數(shù)組又可分為數(shù)值數(shù)組、字符數(shù)組、指針數(shù)組、結(jié)構(gòu)數(shù)組等各種類別。</p><p><b>  5.算法設(shè)計</b></p><p>  選擇了數(shù)據(jù)結(jié)構(gòu),算法也隨之確定。算法的設(shè)計取決于數(shù)據(jù)(邏輯)結(jié)構(gòu),而算法的實現(xiàn)依賴于采用的存儲結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)實

16、質(zhì)上是它的邏輯結(jié)構(gòu)在計算機(jī)存儲器中的實現(xiàn),為了全面的反映一個數(shù)據(jù)的邏輯結(jié)構(gòu),它在存儲器中的映象包括兩方面內(nèi)容,即數(shù)據(jù)元素之間的信息和數(shù)據(jù)元素之間的關(guān)系。不同數(shù)據(jù)結(jié)構(gòu)有其相應(yīng)的若干運算。數(shù)據(jù)的運算是在數(shù)據(jù)的邏輯結(jié)構(gòu)上定義的操作算法,如檢索、插入、刪除、更新和排序等。下圖是主函數(shù)的算法設(shè)計:</p><p><b>  6.程序代碼</b></p><p>  #defi

17、ne N 100//全局變量</p><p>  #define M 100</p><p>  #include <dos.h>//在dos下運行</p><p>  #include <conio.h>//用getchar()、getch()要包含<conio.h></p><p>  #include

18、 <stdio.h></p><p>  #include <stdlib.h>//定義雜項函數(shù)及內(nèi)存分配函數(shù)</p><p>  void menu();//用戶自定義函數(shù)</p><p>  void Register();//注冊模塊</p><p>  void Payment();//付費模塊</p&g

19、t;<p>  void Reback();//返還模塊</p><p>  void Rent();//租借模塊</p><p>  void Browse();//瀏覽模塊</p><p>  void Search();//搜索模塊</p><p>  void enter();//進(jìn)入模塊</p><

20、p>  struct Dvd//結(jié)構(gòu)類型定義和結(jié)構(gòu)變量說明</p><p><b>  {</b></p><p>  char num[20];//號碼</p><p>  char name[20];//名稱</p><p>  char person[20];//個人</p><p>

21、<b>  int yes;</b></p><p><b>  }Dvd[N];</b></p><p>  struct Member//結(jié)構(gòu)類型定義和結(jié)構(gòu)變量說明</p><p><b>  {</b></p><p>  char name[20];</p>

22、<p>  char sex[20];</p><p><b>  int age;</b></p><p>  char dvd1[20];</p><p>  char dvd2[20];</p><p>  char dvd3[20];</p><p>  int day

23、;</p><p><b>  }Mem[M];</b></p><p>  saveD(int m)</p><p>  {FILE *fp;//聲明fp是指針,用來指向FILE類型的對象。</p><p><b>  int i;</b></p><p>  if((fp

24、=fopen("dvd.txt","wb"))==NULL)//翻開dvd.txt文件,假如文件不存在,則輸出Cannot open file</p><p>  {printf("\nCannot open file\n");</p><p>  return NULL;</p><p><b>

25、;  }</b></p><p>  for(i=0;i<m;i++)</p><p>  if(fwrite(&Dvd[i],sizeof(struct Dvd),1,fp)!=1)//依次向文件指針*fp指向的文件寫入Dvd[i],如果失敗</p><p>  printf("file write error\n")

26、;//打印("file write error\n");然后關(guān)閉文件</p><p>  fclose(fp) ;</p><p><b>  }</b></p><p>  void enterD()//進(jìn)入模塊</p><p>  { int i,n;</p><p>  

27、printf(" how many DVDs ?:");</p><p>  scanf("%d",&n);</p><p>  printf("\n Enter DVD data now\n\n");</p><p>  for (i=0;i<n;i++)</p><p

28、>  {printf("\n intput %dth DVD record.\n ", i+1);</p><p>  scanf("%s %s %s %d",Dvd[i].num, Dvd[i].name, Dvd[i].person, &Dvd[i].yes);}</p><p><b>  saveD(n);</b

29、></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  saveM(int m)</p><p>  {FILE *fp;</p><p><b>  int i;</b></p&g

30、t;<p>  if((fp=fopen("member.txt","wb"))==NULL)//翻開member.txt文件,假如文件不存在,則輸出Cannot open file</p><p>  {printf("\nCannot open file\n");</p><p>  return NULL;&l

31、t;/p><p><b>  }</b></p><p>  for(i=0;i<m;i++)</p><p>  if(fwrite(&Mem[i],sizeof(struct Member),1,fp)!=1)//依次向文件指針*fp指向的文件寫入Mem[i],如果失敗</p><p>  printf(&

32、quot;file write error\n");//打印("file write error\n");然后關(guān)閉文件</p><p>  fclose(fp) ;</p><p><b>  }</b></p><p>  void enterM()</p><p>  { int i,m

33、;</p><p>  printf(" how many Members ?:");</p><p>  scanf("%d",&m);</p><p>  printf("\n Enter Member data now\n\n");</p><p>  for (i=0

34、;i<m;i++)</p><p>  {printf("\n intput %dth Member record.\n ", i+1);</p><p>  scanf("%s %s %d %s %s %s %d",Mem[i].name,Mem[i].sex,&Mem[i].age,Mem[i].dvd1,Mem[i].dvd2,M

35、em[i].dvd3, &Mem[i].day);}</p><p><b>  saveM(m);</b></p><p><b>  menu();</b></p><p><b>  }</b></p><p>  void enter()//用戶選擇進(jìn)入會員信息

36、或DVD信息</p><p><b>  {int i;</b></p><p>  printf("what do you want to enter? 1).Member message 2).DVD message [ ]\b\b");</p><p>  scanf("%d&quo

37、t;,&i);</p><p><b>  switch(i)</b></p><p>  {case 1:enterM();break;</p><p>  case 2:enterD();break;</p><p><b>  menu();</b></p><p&

38、gt;<b>  }</b></p><p><b>  }</b></p><p>  void menu()//主菜單模塊</p><p><b>  {</b></p><p><b>  int n,k;</b></p><p&

39、gt;<b>  do</b></p><p>  {puts("\n\n\t\t*******************主菜單**********************");</p><p>  puts("\t\t|---------------------------------------------|");</p

40、><p>  puts("\t\t|---------------------------------------------|");</p><p>  puts("\t\t|******\t\t1.會員注冊\t\t******|");</p><p>  puts("\t\t|******\t\t2.會員付費\t\t

41、******|");//會員付費</p><p>  puts("\t\t|******\t\t3.DVD返還\t\t******|");//DVD返還</p><p>  puts("\t\t|******\t\t4.DVD租用\t\t******|");//DVD租用</p><p>  puts("\

42、t\t|******\t\t5.信息瀏覽\t\t******|");//信息瀏覽</p><p>  puts("\t\t|******\t\t6.信息搜索\t\t******|");//信息搜索</p><p>  puts("\t\t|******\t\t7.進(jìn)入模塊\t\t******|");//進(jìn)入模塊</p><

43、;p>  puts("\t\t|******\t\t8.信息修改\t\t******|");//信息修改</p><p>  puts("\t\t|******\t\t9.退出\t\t\t******|");//退出</p><p>  puts("\t\t|--------------------------------------

44、-------|");</p><p>  puts("\t\t|---------------------------------------------|");</p><p>  puts("\t\t***********************************************\n\n\n");</p>

45、<p>  printf(" →請選擇你要進(jìn)行的操作:[ ]\b\b");</p><p>  scanf("%d",&n);</p><p>  if(n<1||n>9)</p><p>  {k=1;getchar();}</p><p><b>  els

46、e k=0;</b></p><p>  }while(k==1);</p><p><b>  switch(n)</b></p><p>  {case 1:Register();break;</p><p>  case 2:Payment();break;</p><p>  

47、case 3:Reback();break;</p><p>  case 4:Rent();break;</p><p>  case 5:Browse();break;</p><p>  case 6:Search();break;</p><p>  case 7:enter();break;</p><p>

48、  case 8:modify();break;</p><p>  case 9:exit(0);</p><p><b>  }</b></p><p><b>  }</b></p><p>  void Register()//注冊模塊</p><p><b&g

49、t;  {</b></p><p>  int i,n,m,k;</p><p><b>  FILE*fp;</b></p><p>  n=loadM();</p><p>  printf("How many members are you want to add(0-%d)?:",

50、N-1-n);//添加會員數(shù)量</p><p>  scanf("%d",&m);</p><p><b>  k=m+n;</b></p><p>  if((fp=fopen("member.txt","ab"))==NULL)//翻開member.txt文件,假如文件不存

51、在,則輸出Cannot open file</p><p>  {printf("cannot open file\n");</p><p><b>  }</b></p><p>  for(i=n;i<k;i++)</p><p>  {printf("\n Input %dth

52、member record.\n",i-n+1);</p><p><b>  input(i);</b></p><p>  fwrite(&Mem[i],sizeof(struct Member),1,fp);</p><p>  printf("\n");</p><p>&l

53、t;b>  }</b></p><p>  for(i=n;i<=n+m;i++)//把數(shù)據(jù)寫入文件中,fp指明向那個文件寫</p><p>  fprintf(fp,"%s%s%d%s%s%s%d",Mem[i].name,Mem[i].sex,Mem[i].age,Mem[i].dvd1,Mem[i].dvd2,Mem[i].dvd3,Mem

54、[i].day);</p><p>  fclose(fp);</p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b>  }</b></p><p>  void Payment()//付費模塊</p><p>  {int i,n,k,j;

55、</p><p>  n=loadM();//調(diào)用加載函數(shù) n=load()</p><p>  printf("\nInput today's day");</p><p>  scanf("%d",&k);</p><p>  for(i=0;i<=n;i++)</p&g

56、t;<p>  if(Mem[i].day!=k){printf("it is time for member %d to pay fee!\n",i+1);</p><p>  scanf("%d",&j);</p><p>  if(j==1)printf("member have paid\n");&l

57、t;/p><p>  else printf("member not paid\n");}</p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b>  }</b></p><p>  void Reback()//DVD返還模塊</p>

58、<p><b>  {int i,n;</b></p><p>  printf("Input the number of member");</p><p>  scanf("%d",&n);</p><p>  printf("Input the number of DVD

59、");</p><p>  scanf("%d",&i);</p><p>  if(Mem[n].dvd1==Dvd[i].name){strcpy(Mem[n].dvd1,'0'); Dvd[i].yes=0;}//strcpy復(fù)制字符串覆蓋原內(nèi)容</p><p>  if(Mem[n].dvd2==Dvd[

60、i].name){strcpy(Mem[n].dvd2,'0'); Dvd[i].yes=0;}</p><p>  if(Mem[n].dvd3==Dvd[i].name){strcpy(Mem[n].dvd3,'0'); Dvd[i].yes=0;}</p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p>

61、<p><b>  }</b></p><p>  void Rent()//DVD租借模塊</p><p><b>  {int i,j;</b></p><p>  printf("Input the number of member");</p><p>  

62、scanf("%d",&i);</p><p>  printf("Input the number of DVD what you want to rent!");</p><p>  scanf("%d",&j);</p><p>  if(Mem[i].dvd1!=0||Mem[i]

63、.dvd2!=0||Mem[i].dvd3!=0)</p><p>  printf("can not rent any more!");</p><p>  else if(strcpy(Mem[i].dvd1,'0')){strcpy(Mem[i].dvd1,Dvd[j].name);Dvd[j].yes=1;strcpy(Dvd[j].person

64、,Mem[i].name);}</p><p>  else if(strcpy(Mem[i].dvd2,'0')){strcpy(Mem[i].dvd2,Dvd[j].name);Dvd[j].yes=1;strcpy(Dvd[j].person,Mem[i].name);}</p><p>  else if(strcpy(Mem[i].dvd3,'0'

65、)){strcpy(Mem[i].dvd3,Dvd[j].name);Dvd[j].yes=1;strcpy(Dvd[j].person,Mem[i].name);}</p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b>  }</b></p><p>  void Browse()//瀏

66、覽模塊,輸出所有信息</p><p>  {int i,j,n,x,y,z,k;</p><p>  n=loadM();//調(diào)用加載函數(shù) n=load()</p><p>  printf("\n\t name sex age dvd1 dvd2 dvd3 day\n");</p><p

67、>  for(i=0;i<n;i++)</p><p>  {if((i!=0)&&(i%10==0))</p><p>  {printf("\n\nPass any key to contiune\n");</p><p><b>  getch();</b></p><p

68、><b>  }</b></p><p>  printf_Mone(i);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  printf("\n\tThere are %d record.\n"

69、;,n);</p><p>  printf("\nPass any key to back\n");</p><p><b>  getch();</b></p><p>  printf("\nEnter number\n");</p><p>  scanf("%d

70、",&k);</p><p>  if(k==0)menu();</p><p>  z=loadD();//調(diào)用加載函數(shù) n=load()</p><p>  printf("\n\tnum name person yes\n");</p><p>  for(i=

71、0;i<z;i++)</p><p>  {if((i!=0)&&(i%10==0))</p><p>  {printf("\n\nPass any key to contiune");</p><p><b>  getch();</b></p><p><b> 

72、 }</b></p><p>  printf_Done(i);</p><p>  printf("\n");</p><p><b>  }</b></p><p>  printf("\tThere are %d record.\n",z);</p>

73、<p>  printf("\nPass any key to back");</p><p>  getchar();</p><p>  printf_back(); //一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b>  } </b></p><p>  void Sear

74、ch()//搜索模塊</p><p>  {int i,n,m,k;</p><p>  struct Member s;</p><p>  struct Dvd t;</p><p>  n=loadM();//調(diào)用加載函數(shù) n=load()</p><p>  printf("\n\nEnter mem

75、ber name that you want to search! name:");</p><p>  scanf("%s",s.name);</p><p>  printf("\n\t name sex age dvd1 dvd2 dvd3 day\n");</p>

76、<p>  for(i=0;i<n;i++) </p><p>  if(strcmp(s.name,Mem[i].name)==0)//比較兩字符串</p><p><b>  {</b></p><p>  printf_Mone(i);break;</p><p><b>  }<

77、;/b></p><p>  printf("\nEnter number\n");</p><p>  scanf("%d",&k);</p><p>  if(k==0)menu();</p><p>  m=loadD();</p><p>  printf(

78、"\n\nEnter DVD name that you want to search! name:");</p><p>  scanf("%s",t.name);</p><p>  printf("\n\tnum name person yes\n");//\t水平制表</p>

79、<p>  for(i=0;i<m;i++)</p><p>  if(strcmp(t.name,Dvd[i].name)==0)</p><p><b>  {</b></p><p>  printf_Done(i);break;</p><p><b>  }</b><

80、/p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b>  }</b></p><p>  int modify()//修改信息模塊</p><p>  {int i,n,m,k;</p><p>  struct Member s;</p&g

81、t;<p>  struct Dvd t;</p><p>  n=loadM();</p><p>  printf("\n\nEnter name that you want to search! name:");</p><p>  scanf("%s",s.name);</p><p&

82、gt;  printf("\n\t name sex age dvd1 dvd2 dvd3 day\n");</p><p>  for(i=0;i<n;i++)</p><p>  if(strcmp(s.name,Mem[i].name)==0)</p><p><b>

83、  {</b></p><p>  printf_Mone(i);</p><p>  printf("\n please enter the member massages:\n name sex age dvd1 dvd2 dvd3 day\n");</p><p>  scanf("

84、;%s%s%d%s%s%s%d",s.name,s.sex,s.age,s.dvd1,s.dvd2,s.dvd3,s.day);</p><p>  strcpy(Mem[i].name,s.name);//復(fù)制</p><p>  strcpy(Mem[i].sex,s.sex);</p><p>  strcpy(Mem[i].dvd1,s.dvd1)

85、;</p><p>  strcpy(Mem[i].dvd2,s.dvd2);</p><p>  strcpy(Mem[i].dvd3,s.dvd3); </p><p>  Mem[i].age=s.age;</p><p>  Mem[i].day=s.day;</p><p><b>  }<

86、/b></p><p>  printf("\nEnter number\n");</p><p>  scanf("%d",&k);</p><p>  if(k==0)menu();</p><p>  m=loadD();</p><p>  printf(&

87、quot;\n\nEnter name that you want to search! name:");</p><p>  scanf("%s",t.name);</p><p>  printf("\n\tnum name person yes\n");</p><p>  for

88、(i=0;i<m;i++)</p><p>  if(strcmp(t.name,Dvd[i].name)==0)</p><p><b>  {</b></p><p>  printf_Done(i);</p><p>  printf("please enter the dvd massages:n

89、um name person yes\n");</p><p>  scanf("%s%s%s%d",t.num,t.name,t.person,t.yes);</p><p>  strcpy(Dvd[i].num,t.num);</p><p>  strcpy(Dvd[i].name,t.name);<

90、;/p><p>  strcpy(Dvd[i].person,t.person);</p><p>  Dvd[i].yes=t.yes;</p><p><b>  }</b></p><p>  printf_back();//一個任務(wù)結(jié)束時的選擇瀏覽還是返回</p><p><b> 

91、 }</b></p><p>  input(int i)</p><p>  {printf("name");</p><p>  scanf("%s",&Mem[i].name);</p><p>  printf("sex");</p><

92、;p>  scanf("%s",&Mem[i].sex);</p><p>  printf("age");</p><p>  scanf("%d",&Mem[i].age);</p><p>  printf("dvd1");</p><p&

93、gt;  scanf("%s",&Mem[i].dvd1);</p><p>  printf("dvd2");</p><p>  scanf("%s",&Mem[i].dvd2);</p><p>  printf("dvd3");</p><p&

94、gt;  scanf("%s",&Mem[i].dvd3);</p><p>  printf("day");</p><p>  scanf("%d",&Mem[i].day);</p><p><b>  }</b></p><p><

95、b>  loadM()</b></p><p><b>  {FILE*fp;</b></p><p><b>  int i;</b></p><p>  if((fp=fopen("member.txt","rb"))==NULL)</p><

96、;p>  {printf("\nCan not open file\n");</p><p>  return NULL;</p><p><b>  }</b></p><p>  for(i=0;!feof(fp);i++)</p><p>  fread(&Mem[i],sizeo

97、f(struct Member),1,fp);</p><p>  fclose(fp);</p><p>  return(i-1);</p><p><b>  }</b></p><p>  int loadD()</p><p><b>  {FILE*fp;</b>

98、;</p><p><b>  int i;</b></p><p>  if((fp=fopen("dvd.txt","rb"))==NULL)</p><p>  {printf("\nCan not open file\n");</p><p>  ret

99、urn NULL;</p><p><b>  }</b></p><p>  for(i=0;!feof(fp);i++)</p><p>  fread(&Dvd[i],sizeof(struct Dvd),1,fp);</p><p>  fclose(fp);</p><p>  

100、return(i-1);</p><p><b>  } </b></p><p>  printf_Mone(int i)</p><p>  {printf("%11s%5s %2d%10s%10s%10s %5d",Mem[i].name,Mem[i].sex,Mem[i].age,Mem[i].dvd1,Me

101、m[i].dvd2,Mem[i].dvd3,Mem[i].day);</p><p><b>  }</b></p><p>  printf_Done(int i)</p><p>  {printf("%10s%10s%10s%5d",Dvd[i].num,Dvd[i].name,Dvd[i].person,Dvd[i]

102、.yes);</p><p><b>  }</b></p><p>  printf_back()</p><p><b>  {int k,w;</b></p><p>  printf("\n\n\tSuccessful.\n\n");</p><p&g

103、t;  printf("What do you want to do?\n\n\t1).Browse all now\t2).Back:[ ]\b\b");</p><p>  scanf("%d",&w);</p><p>  if(w==1)Browse();</p><p>  else menu();</

104、p><p><b>  }</b></p><p>  void main()</p><p><b>  {</b></p><p><b>  menu();</b></p><p><b>  }</b></p>&

105、lt;p><b>  7.程序運行結(jié)果</b></p><p>  一、首先輸入注冊會員編號1,9號可退出該程序</p><p>  二、選擇需要注冊的會員數(shù)量,并輸入個人信息</p><p><b>  注冊成功</b></p><p>  三、選擇2返回到主菜單,選擇2進(jìn)入付費模塊,輸入日

106、期判斷是否付費</p><p>  四、第三和第四為DVD返還和租借模塊,可以查看租用情況</p><p>  五、選擇主菜單5號可查詢會員信息并顯示記錄條數(shù),如圖</p><p>  六、第七是信息的輸入,管理員可以用此功能對會員的信息進(jìn)行管理,可選擇會員管理和DVD管理。</p><p>  七、選擇主菜單8號可修改會員信息和租借情況信息

107、。</p><p>  8.編程中遇到的困難及解決方法</p><p>  我在編程中遇到的最大困難就是找不到問題出來哪里,有時因為一個分號的問題延誤很長時間。編程需要很大耐心,在編程之前要做好充分的思想方準(zhǔn)備,面對錯誤要冷靜思考,細(xì)心找出問題所在。有時也會遇到技術(shù)性問題形,對于知識掌握不牢,無法自如的運用,面對一些問題束手無策,這時,我會到課本里去尋找相關(guān)知識,認(rèn)真研究,問題最終被我攻克

108、,在編成功之后的喜悅是異常高漲的。</p><p>  還有在使用\t時,常常把握不好它所占的字長,導(dǎo)致我要反復(fù)調(diào)試,不過結(jié)果也是好的,我最終成功做出了想要的效果。</p><p>  “上得來終覺淺,要知此事要躬行。”我深刻理解了這句話的含義,面對如此繁多的知識點,想要掌握其精華,必須認(rèn)認(rèn)真真的上機(jī)實踐,當(dāng)我做完所有程序時,我感覺到了我的水平提高了很大一截。</p><

109、;p>  不急跬步無以至千里,細(xì)節(jié)確定成敗,山外有山眼人外有人,我深刻的理解了這些的含義。</p><p>  業(yè)精于勤。要善于積累,勤于總結(jié)。遇到問題時,無論多忙,都應(yīng)該記下來,這樣才能不斷積累經(jīng)驗,快速提高編程水平。</p><p>  比爾蓋茨反復(fù)說過一句話:“人類的IT時代才剛剛開始”,只要有恒心、有耐心,我們最終都能成功!</p><p>  9.總

110、結(jié)心得及良好建議</p><p>  在這段時間里我對編程有了一定的認(rèn)識,也掌握了了一些編程的的基礎(chǔ)知識。懂得了做一個程序員,英語很重要,有很多的技術(shù)資料都只有英文版,英語不好技術(shù)之路很難走遠(yuǎn)。 許多事情,想起來容易,做起來難,我們要有心理準(zhǔn)備,不要過于樂觀,但也不要過于悲觀,任何問題都是有辦法解決的,只要時間和毅力。學(xué)會利用身邊的資源,臉皮要厚,敢于去結(jié)識身邊的學(xué)長、老師,主動的人往往能夠獲得更多的機(jī)

111、會。學(xué)會總結(jié),以后遇到同樣的問題可以回頭查看。程序仍然存在不合理的地方,例如程序某些部分輸入錯誤會導(dǎo)致程序中止或轉(zhuǎn)向其他功能模塊,即程序建議用戶注意提示,進(jìn)行合理的準(zhǔn)確的輸入,這樣更有利于管理工作。由于能力有限,程序很多地方有不足之處,比如:在會員的交費模塊里存在一些問題,不能實現(xiàn)按月繳納費用,所以還需要進(jìn)一步的改進(jìn),還有第一步和第七步的部分地方有重復(fù),導(dǎo)致程序有點繁瑣,不是很簡練,以及在查找的模塊里只能根據(jù)姓名進(jìn)行查找,不能根據(jù)其他信

112、息進(jìn)行查詢。通過這次實習(xí),使我的感受頗深,以前學(xué)到的東西也有了用武之地,是真真正正的有用,而且又通過老師學(xué)到了許多新的有用的東西,也使我認(rèn)識到其重要性,并且產(chǎn)生了很大的學(xué)習(xí)的興趣和學(xué)好它的決心</p><p><b>  10.致謝</b></p><p>  感謝學(xué)校為我們安排了這次上機(jī)實踐課,讓我們有機(jī)會學(xué)習(xí)編程,這使我把我所學(xué)的知識掌握的更加牢固,讓我學(xué)習(xí)得到了

溫馨提示

  • 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

提交評論