版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課程設(shè)計】c語言課程設(shè)計
- c課程設(shè)計
- c課程設(shè)計
- c++課程設(shè)計報告--電影院自動售票機(jī)
- c課程設(shè)計報告
- c語言課程設(shè)計
- c課程設(shè)計報告
- c語言課程設(shè)計
- c語言課程設(shè)計
- c語言課程設(shè)計課程報
- c課程設(shè)計---圖書管理系統(tǒng)課程設(shè)計
- c語言課程設(shè)計題目
- c語言課程設(shè)計報告
- c語言課程設(shè)計報告
- c語言課程設(shè)計--迷宮
- c語言課程設(shè)計 (2)
- c語言課程設(shè)計范例
- c語言課程設(shè)計報告
- c++課程設(shè)計報告
- c語言程序課程設(shè)計
評論
0/150
提交評論