版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課程設(shè)計(jì)】c語(yǔ)言課程設(shè)計(jì)
- c課程設(shè)計(jì)
- c課程設(shè)計(jì)
- c++課程設(shè)計(jì)報(bào)告--電影院自動(dòng)售票機(jī)
- c課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)
- c課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)課程報(bào)
- c課程設(shè)計(jì)---圖書(shū)管理系統(tǒng)課程設(shè)計(jì)
- c語(yǔ)言課程設(shè)計(jì)題目
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c語(yǔ)言課程設(shè)計(jì)--迷宮
- c語(yǔ)言課程設(shè)計(jì) (2)
- c語(yǔ)言課程設(shè)計(jì)范例
- c語(yǔ)言課程設(shè)計(jì)報(bào)告
- c++課程設(shè)計(jì)報(bào)告
- c語(yǔ)言程序課程設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論