版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> C語言課程設(shè)計報告</b></p><p><b> 班學(xué)號: 1</b></p><p><b> 姓名: </b></p><p><b> 指導(dǎo)老師: </b></p><p> 日期: 201
2、0年6月</p><p> 中國地質(zhì)大學(xué)(武漢)</p><p><b> 計算機(jī)學(xué)院</b></p><p><b> 一、題目要求</b></p><p><b> 系統(tǒng)主要功能模塊:</b></p><p> 1,實(shí)現(xiàn)系統(tǒng)內(nèi)制卡,發(fā)卡功能
3、。</p><p> 2,實(shí)現(xiàn)系統(tǒng)內(nèi)購物卡帳戶及相關(guān)帳戶管理。</p><p> 3,實(shí)現(xiàn)購物卡交易和合法性檢查。</p><p> 4,實(shí)現(xiàn)購物卡交易積分功能。</p><p> 5,實(shí)現(xiàn)購物卡報表功能。</p><p> 6,數(shù)據(jù)以文件形式存儲。</p><p> 提示:制卡:指
4、申請一個購物卡,但還沒有使用。發(fā)卡:指該卡已經(jīng)起用。實(shí)現(xiàn)卡交易:指從卡中消費(fèi)掉一定金額。</p><p><b> 二、需求分析</b></p><p> 根據(jù)題目要求,由于購物卡信息是存放在文件中,所以應(yīng)提供文件的輸入、輸出等操作;在程序中需瀏覽購物卡的信息,應(yīng)提供報表、查詢等操作;另外還應(yīng)提供鍵盤式選擇菜單實(shí)現(xiàn)功能選擇。</p><p>
5、;<b> 三、總體設(shè)計</b></p><p> 根據(jù)需求分析,可以將系統(tǒng)分為五大模塊:制卡、發(fā)卡、登陸、報表、積分。</p><p><b> 四、詳細(xì)設(shè)計</b></p><p><b> 1、主函數(shù)</b></p><p> 將main()函數(shù)體內(nèi)的界面選擇部
6、分語句單獨(dú)抽取出來作為一獨(dú)立函數(shù),目的在于系統(tǒng)執(zhí)行完每部分功能模塊后能夠方便返回到系統(tǒng)界面。</p><p> void menu()</p><p><b> {</b></p><p><b> int v,w1;</b></p><p><b> do</b>&l
7、t;/p><p><b> {</b></p><p> printf("\t\t*********************MENU*********************\n\n");</p><p> printf("\t\t\t\t 1.card-made\n");</p><
8、;p> printf("\t\t\t\t 2.card-life\n");</p><p> printf("\t\t\t\t 3.card-enter\n");</p><p> printf("\t\t\t\t 4.card-browse\n");</p><p> printf(&quo
9、t;\t\t\t\t 5.exit\n");</p><p> printf("\n\n\t\t **********************************************\n");</p><p> printf("Choice your number(1-5):[]\b\b");</p><p&
10、gt; scanf("%d",&v);</p><p> if(v<1||v>5)</p><p><b> { </b></p><p><b> w1=1;</b></p><p> getchar();</p><p
11、><b> }</b></p><p> else w1=0;</p><p><b> }</b></p><p> while(w1==1);</p><p><b> switch(v)</b></p><p><b>
12、 {</b></p><p> case 1:made();break; </p><p> case 2:life();break; </p><p> case 3:enter();break; </p><p> case 4:browse();break;</p><p>
13、 case 5:exit(0); </p><p><b> }</b></p><p><b> }</b></p><p><b> 2、各功能模塊設(shè)計</b></p><p><b> (1)制卡模塊</b></p
14、><p><b> 【數(shù)據(jù)結(jié)構(gòu)】</b></p><p> struct credicard </p><p><b> {</b></p><p> int number;</p><p> char name[20];</p><p
15、> char ID[20];</p><p> char word[8];</p><p><b> int flag;</b></p><p> float account; </p><p> int integal; </p><p><b> }card[M];
16、</b></p><p> /*card[M]中每個數(shù)組元素對應(yīng)一個運(yùn)動員信息* /</p><p><b> 【程序】</b></p><p> void made() </p><p><b> {</b></p><
17、;p><b> int i;</b></p><p> char h[20];</p><p><b> do</b></p><p><b> {</b></p><p> printf("\n\n\t Input your number:<\
18、t\t\t>\b\b\b\b\b\b\b");</p><p> scanf("%s",h);</p><p> if(strlen(h)!=6)</p><p><b> {</b></p><p> printf("\n\n\n\t\t**************
19、*Wrong!Input again****************\n\n");</p><p><b> continue;</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> if(strcmp(card[
20、i].ID,h)==0)</p><p><b> {</b></p><p> printf("\n\n\t\t***********The number exist,input again************\n\n");</p><p><b> break;</b></p>
21、<p><b> }</b></p><p><b> }</b></p><p> while(((strlen(h))!=6)||strcmp(card[i].ID,h)==0);</p><p> card[n].number=n;</p><p> strcpy(ca
22、rd[n].name,"***");</p><p> strcpy(card[n].ID,h);</p><p> strcpy(card[n].word,"000000");</p><p> card[n].flag=0;</p><p> card[n].account=0.00;<
23、;/p><p> card[n].integal=0;</p><p> printf("\n\n\n\t\t********************The card is made!**********************\n\n");</p><p> print_one(n);</p><p><b>
24、; n++;</b></p><p><b> add();</b></p><p><b> menu();</b></p><p><b> }</b></p><p> print_one(n):顯示一張卡信息的函數(shù)。</p><
25、p><b> 【程序】</b></p><p> void print_one(int j) </p><p><b> {</b></p><p> printf("\n|----|--------------------|--------------------|-
26、---|----------|----------|");</p><p> printf("\n|NO. | name | ID |flag| account | integal |");</p><p> printf("\n|----|--------------------|
27、--------------------|----|----------|----------|");</p><p> printf("\n|%4d|%20s|%20s|%4d|%10.2f|%10d|",</p><p> card[j].number,card[j].name,card[j].ID,card[j].flag,card[j].accou
28、nt,card[j].integal);</p><p> printf("\n|----|--------------------|--------------------|----|----------|----------|");</p><p><b> }</b></p><p><b> (2)發(fā)
29、卡模塊</b></p><p> void life() </p><p><b> {</b></p><p><b> int k=-1;</b></p><p> char h[20];</p><p&g
30、t;<b> if(n==0)</b></p><p> printf("\n\n\t\t****************Make card first*********************\n");</p><p><b> else</b></p><p><b> {<
31、/b></p><p> printf("\n\n\t Input your applied number:<\t\t\t>\b\b\b\b\b\b\b");</p><p> scanf("%s",h);</p><p> k=search(h);</p><p><b&
32、gt; if(k==-1)</b></p><p> printf("\n\n\t\t\t*****************Wrong number!****************\n");</p><p><b> else</b></p><p><b> {</b></
33、p><p> if(card[k].flag==1)</p><p> printf("\n\n\t\t****************Life already!*****************\n");</p><p> else huo(k);</p><p><b> }</b></
34、p><p><b> }</b></p><p><b> menu();</b></p><p><b> }</b></p><p> huo(k):激活一張卡的函數(shù)。</p><p> void huo(int k)
35、 </p><p><b> {</b></p><p> char m[20],p[8];</p><p><b> int x,w2;</b></p><p><b> do</b></p><p><b> {<
36、;/b></p><p> printf("\n\n\t\t Life? (1) Yes (2) No \n");</p><p> printf("\n\t\t Chioce your number:< >\b\b");</p><p> scanf("%d",&
37、;x);</p><p> if(x<1||x>2)</p><p> {w2=1;getchar();}</p><p> else w2=0;</p><p><b> }</b></p><p> while(w2==1);</p><p>&l
38、t;b> if(x==1)</b></p><p><b> {</b></p><p> printf("\n\n\t\tInput your name:<\t\t\t>\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");</p><p> scanf
39、("%s",m);</p><p> strcpy(card[k].name,m);</p><p> printf("\n\n\t\tInput six-number code :< >\b\b\b\b\b\b\b");</p><p> scanf("%s",p);</
40、p><p> strcpy(card[k].word,p);</p><p> card[k].flag=1;</p><p> printf("\n\n\n\t\t********************Life!**********************\n\n");</p><p> print_one(k);
41、</p><p><b> add();</b></p><p><b> }</b></p><p><b> }</b></p><p><b> ?。?)登陸模塊</b></p><p> void enter()
42、 </p><p><b> {</b></p><p><b> int k=-1;</b></p><p> char h[20];</p><p><b> if(n==0)</b></p><p
43、> printf("\n\n\t\t****************Make card first*********************\n");</p><p><b> else</b></p><p><b> {</b></p><p> printf("\n\n\t
44、Input your applied number:<\t\t\t>\b\b\b\b\b\b\b");</p><p> scanf("%s",h);</p><p> k=search(h);</p><p><b> if(k==-1)</b></p><p> pr
45、intf("\n\n\t\t\t*****************Wrong number!****************\n");</p><p><b> else</b></p><p><b> {</b></p><p> if(card[k].flag=0)</p>&
46、lt;p> printf("\n\n\t\t************LIFE FIRST!************\n");</p><p><b> else</b></p><p><b> hedui(k);</b></p><p><b> }</b><
47、/p><p><b> }</b></p><p><b> menu();</b></p><p><b> }</b></p><p> hedui(k):登陸信息。</p><p> void hedui(int k)
48、 </p><p><b> {</b></p><p> int c=0,w3=0;</p><p> char p[8];</p><p><b> do</b></p><p><b> { </b></p>
49、;<p> printf("\n\n\t\t*******Input your code:< >\b\b\b\b\b\b\b");</p><p> scanf("%s",p);</p><p> if(strcmp(card[k].word,p)!=0)</p><p><b&
50、gt; {</b></p><p> printf("\n\n\t\t********Wrong code!**********\n");</p><p><b> c++;</b></p><p><b> continue;</b></p><p><
51、;b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> printf("\n\n\t\t**********Right code!***********\n");</p><p><b
52、> w3=1;</b></p><p><b> menu1(k);</b></p><p><b> }</b></p><p><b> }</b></p><p> while(w3==0&&c<3);</p>
53、<p><b> }</b></p><p><b> 子菜單設(shè)計如下:</b></p><p> void menu1(int k) </p><p><b> {</b></p><p><b>
54、int v,w4;</b></p><p><b> {</b></p><p> printf("\t\t*********************MENU********************\n\n");</p><p> printf("\t\t\t\t 1.Inquire\n"
55、;);</p><p> printf("\t\t\t\t 2.Deposit\n");</p><p> printf("\t\t\t\t 3.fetch\n");</p><p> printf("\t\t\t\t 4.change code\n");</p><p>
56、printf("\t\t\t\t 5.back to menu\n");</p><p> printf("\n\n\t\t *********************************************\n");</p><p> printf("Choice your number(1--5):< >\b\b
57、");</p><p> scanf("%d",&v);</p><p> if(v<1||v>5)</p><p> {w4=1;getchar();}</p><p> else w4=0;</p><p><b> }</b><
58、;/p><p> while(w4==1);</p><p><b> switch(v)</b></p><p><b> {</b></p><p> case 1:stat_one(k);break;</p><p> case 2:deposit(k);brea
59、k;</p><p> case 3:fetch(k);break;</p><p> case 4:change(k);break;</p><p> case 5:menu();</p><p><b> }</b></p><p><b> }</b><
60、;/p><p><b> 子模塊設(shè)計如下</b></p><p><b> 查詢模塊:</b></p><p> void stat_one(int k)</p><p><b> {</b></p><p> printf("\n\n\
61、t\t*************Operate successfully!***************");</p><p> print_one(k);</p><p><b> menu1(k);</b></p><p><b> }</b></p><p><b>
62、 儲蓄模塊</b></p><p> void deposit(int k)</p><p><b> {</b></p><p> float a=0.00;</p><p> printf("\n\n\t\tInput your amount:<\t\t>\b\b\b\b\
63、b\b\b\b\b\b\b");</p><p> scanf("%f",&a);</p><p> card[k].account+=a;</p><p> printf("\n\n\t\t**********deposit successfully!***********");</p>
64、<p> print_one(k);</p><p><b> add();</b></p><p><b> menu1(k);</b></p><p><b> } </b></p><p><b> 消費(fèi)模塊:</b></
65、p><p> void fetch(int k) </p><p><b> {</b></p><p> float b=0.00;</p><p> printf("\n\n\t\tInput your amount:<\t\t>\b\b\b\b\b\b
66、\b\b\b\b\b");</p><p> scanf("%f",&b);</p><p> if(b>card[k].account)</p><p> printf("\n\n\t\t**********Remaining sum is not enough !*************")
67、;</p><p><b> else</b></p><p><b> {</b></p><p> card[k].account-=b;</p><p> card[k].integal=b;</p><p> printf("\n\n\t\t***
68、*******Your patronage !***********");</p><p> print_one(k);</p><p><b> add();</b></p><p><b> }</b></p><p><b> menu1(k);</b>
69、</p><p><b> }</b></p><p><b> 修改密碼模塊:</b></p><p> void change(int k) </p><p><b> {</b></p><p>
70、char a[8],b[8];</p><p> printf("\n\n\t\tInput new six-number code:< >\b\b\b\b\b\b\b");</p><p> scanf("%s",a);</p><p> printf("\n\t\tInput new
71、code again:< >\b\b\b\b\b\b\b");</p><p> scanf("%s",b);</p><p> if(strcmp(a,b)==0)</p><p><b> {</b></p><p> printf("\n\n\t
72、\t**********Code change!*************");</p><p><b> add();</b></p><p><b> }</b></p><p><b> else</b></p><p> printf("\n
73、\n\t\tDifferent codes,code change failed!");</p><p><b> menu1(k);</b></p><p><b> }</b></p><p><b> (4)報表模塊:</b></p><p> void
74、 browse()</p><p><b> {</b></p><p><b> int i;</b></p><p><b> if(n==0)</b></p><p> printf("\n\n\t\t**********Make card first!
75、***********");</p><p><b> else</b></p><p><b> {</b></p><p> printf("\n\n\t\t*************Operate successfully!**************\n");</p>
76、<p> printf("\n|----|--------------------|--------------------|----|----------|----------|");</p><p> printf("\n|NO. | name | ID |flag| account | integ
77、al |");</p><p> printf("\n|----|--------------------|--------------------|----|----------|----------|");</p><p> for(i=0;i<n;i++)</p><p> printf("\n|%4d|%2
78、0s|%20s|%4d|%10.2f|%10d|",</p><p> card[i].number,card[i].name,card[i].ID,card[i].flag,card[i].account,card[i].integal);</p><p> printf("\n|----|--------------------|----------------
79、----|----|----------|----------|");</p><p><b> }</b></p><p><b> menu( );</b></p><p><b> } </b></p><p><b> 3、公共函數(shù)<
80、/b></p><p><b> ?。?)保存函數(shù)</b></p><p> void add() </p><p><b> {</b></p><p><b> int i;</b></p><
81、p><b> FILE *fp;</b></p><p> if((fp=fopen("score.txt","wb"))==NULL)</p><p><b> {</b></p><p> printf("\t\t Can not open the fil
82、e \n");</p><p><b> return;</b></p><p><b> }</b></p><p> for(i=0;i<n;i++)</p><p> if(fwrite(&card[i],sizeof(struct credicard),1,f
83、p)!=1)</p><p><b> {</b></p><p> printf("\t\t File write error \n");</p><p><b> return;</b></p><p><b> }</b></p>
84、<p> fclose(fp);</p><p> printf("\n\n\n\t\t************Keep!!!************\n");</p><p><b> }</b></p><p><b> ?。?)查找函數(shù)</b></p><p&
85、gt; int search(char h[20])</p><p><b> {</b></p><p> int i,k=-1;</p><p> for(i=0;i<n;i++)</p><p> if(strcmp(card[i].ID,h)==0)k=i;</p><p>
86、; return(k);</p><p><b> }</b></p><p><b> 五、運(yùn)行結(jié)果</b></p><p><b> ?。?)主菜單</b></p><p> (2)制卡模塊:輸入卡號</p><p><b> ?。?/p>
87、3)制卡成功</b></p><p><b> ?。?)發(fā)卡模塊</b></p><p><b> (5)發(fā)卡成功</b></p><p><b> ?。?)登錄模塊</b></p><p><b> ?。?)儲蓄成功</b></p&g
88、t;<p><b> (8)修改密碼</b></p><p><b> ?。?)報表功能</b></p><p><b> 六、總結(jié)</b></p><p> 以前在沒有做課程設(shè)計的時候,總覺得自己編寫一個程序那簡直就是天方夜譚,自己怎么可能寫的出來。可是現(xiàn)在,照著書本一點(diǎn)點(diǎn)模仿設(shè)
89、計,自己竟然也可以寫個大概,雖然過程不是很順利,有些部分還需要學(xué)長的指點(diǎn),但是,我覺得已經(jīng)有很大的收獲了。對于有些部分,可能還是不會寫,最起碼可以看懂了,不會像以前一樣,只是能做一兩道題目,寫個三四十行程序,現(xiàn)在是對于程序有了一個整體的把握。雖然花費(fèi)了很多時間和精力,但是可以學(xué)到很多東西,現(xiàn)在自己對于C語言有了更深一點(diǎn)的理解和認(rèn)識。</p><p> 我知道,現(xiàn)在只是學(xué)了一點(diǎn)皮毛而已,離熟練掌握C語言還有很大一
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設(shè)計報告----網(wǎng)上購物管理系統(tǒng)
- c語言課程設(shè)計-教材管理系統(tǒng)——課程論文
- c語言課程設(shè)計(論文)-銷售管理系統(tǒng)
- c語言課程設(shè)計論文--銷售管理系統(tǒng)
- c語言課程設(shè)計(論文)-實(shí)驗(yàn)室管理系統(tǒng)
- c語言課程設(shè)計-賓館管理系統(tǒng)
- c語言課程設(shè)計-成績管理系統(tǒng)
- c語言課程設(shè)計--宿舍管理系統(tǒng)
- c語言課程設(shè)計-學(xué)籍管理系統(tǒng)
- c語言課程設(shè)計車票管理系統(tǒng)
- c語言課程設(shè)計--車票管理系統(tǒng)
- c語言課程設(shè)計--銷售管理系統(tǒng)
- c語言課程設(shè)計——教材管理系統(tǒng)
- c語言課程設(shè)計-人員管理系統(tǒng)
- c語言課程設(shè)計----銷售管理系統(tǒng)
- c語言課程設(shè)計(論文)-高校人事管理系統(tǒng)設(shè)計
- c語言課程設(shè)計-銷售管理系統(tǒng)
- c語言課程設(shè)計-學(xué)籍管理系統(tǒng)
- c#課程設(shè)計公交卡管理系統(tǒng)論文
- c語言課程設(shè)計論文-圖書信息管理系統(tǒng)設(shè)計
評論
0/150
提交評論