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

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  本科生課程論文</b></p><p>  課程名稱(chēng) C語(yǔ)言課程設(shè)計(jì) </p><p>  教師姓名 </p><p>  本科生姓名 </p><p>  本科生學(xué)號(hào)

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

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

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

5、設(shè)計(jì)5</p><p><b>  5.算法設(shè)計(jì)6</b></p><p><b>  6.程序代碼13</b></p><p>  7.程序運(yùn)行結(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>  題目:電影俱樂(lè)部</b></p><p><b>  題目?jī)?nèi)容:</b></p><p><b

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

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

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

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

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

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

13、素間關(guān)系的不同特性,通常有下列四類(lèi)基本的結(jié)構(gòu):</p><p> ?、偶辖Y(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素間的關(guān)系是“屬于同一個(gè)集合”。</p><p>  ⑵線性結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對(duì)一的關(guān)系。</p><p> ?、菢?shù)型結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著一對(duì)多的關(guān)系。</p><p> ?、葓D形結(jié)構(gòu)。該結(jié)構(gòu)的數(shù)據(jù)元素之間存在著多對(duì)多的關(guān)

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

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

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

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

18、 <stdio.h></p><p>  #include <stdlib.h>//定義雜項(xiàng)函數(shù)及內(nèi)存分配函數(shù)</p><p>  void menu();//用戶(hù)自定義函數(shù)</p><p>  void Register();//注冊(cè)模塊</p><p>  void Payment();//付費(fèi)模塊</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)類(lèi)型定義和結(jié)構(gòu)變量說(shuō)明</p><p><b>  {</b></p><p>  char num[20];//號(hào)碼</p><p>  char name[20];//名稱(chēng)</p><p>  char person[20];//個(gè)人</p><p>

21、<b>  int yes;</b></p><p><b>  }Dvd[N];</b></p><p>  struct Member//結(jié)構(gòu)類(lèi)型定義和結(jié)構(gòu)變量說(shuō)明</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是指針,用來(lái)指向FILE類(lèi)型的對(duì)象。</p><p><b>  int i;</b></p><p>  if((fp

24、=fopen("dvd.txt","wb"))==NULL)//翻開(kāi)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指向的文件寫(xiě)入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)//翻開(kāi)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指向的文件寫(xiě)入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()//用戶(hù)選擇進(jìn)入會(huì)員信息

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.會(huì)員注冊(cè)\t\t******|");</p><p>  puts("\t\t|******\t\t2.會(huì)員付費(fèi)\t\t

41、******|");//會(huì)員付費(fèi)</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(" →請(qǐng)選擇你要進(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()//注冊(cè)模塊</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);//添加會(huì)員數(shù)量</p><p>  scanf("%d",&m);</p><p><b>  k=m+n;</b></p><p>  if((fp=fopen("member.txt","ab"))==NULL)//翻開(kāi)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ù)寫(xiě)入文件中,fp指明向那個(gè)文件寫(xiě)</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</p><p><b>  }</b></p><p>  void Payment()//付費(fèi)模塊</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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(); //一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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();//一個(gè)任務(wù)結(jié)束時(shí)的選擇瀏覽還是返回</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.程序運(yùn)行結(jié)果</b></p><p>  一、首先輸入注冊(cè)會(huì)員編號(hào)1,9號(hào)可退出該程序</p><p>  二、選擇需要注冊(cè)的會(huì)員數(shù)量,并輸入個(gè)人信息</p><p><b>  注冊(cè)成功</b></p><p>  三、選擇2返回到主菜單,選擇2進(jìn)入付費(fèi)模塊,輸入日

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

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

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

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

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

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

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

溫馨提示

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

評(píng)論

0/150

提交評(píng)論