客戶消費積分管理系統(tǒng)1_第1頁
客戶消費積分管理系統(tǒng)1_第2頁
客戶消費積分管理系統(tǒng)1_第3頁
客戶消費積分管理系統(tǒng)1_第4頁
客戶消費積分管理系統(tǒng)1_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、目錄一、系統(tǒng)開發(fā)的背景1二、系統(tǒng)分析與設計1(一)系統(tǒng)功能要求1(二)系統(tǒng)模塊結構設計1三、系統(tǒng)的設計與實現(xiàn)2(一)增添消費者信息:void zentian()2(二)刪除消費者信息:void shanchu()3(三)修改消費者信息:void xiugai()5(四)查看消費者信息:void chakan()8(五)根據積分計算打折后消費總價格:void jisuan()10(六)刪除運行過的信息并返回第一頁主菜單:void qingping()13(七)退出程序:14四、系統(tǒng)測試15(一)測試( void zentian()/增添消費者信息 )函數:15(二)測試( void shanch

2、u()/刪除消費者信息)函數:17(三)測試( void xiugai()/修改消費者信息 )函數:18(四)測試( void chakan()/查看消費者信息 )函數:19(五)測試( void jisuan()/根據積分計算打折后消費總價格 )函數:21(六)測試( void qingping()/刪除運行過的信息并返回第一頁主菜單 )函數:22(七)測試退出函數:23五、總結23六、附件24(一)(全部代碼)24(二)(部分測試圖)33客戶消費積分管理系統(tǒng)一、系統(tǒng)開發(fā)的背景為了更便捷科學的管理客戶信息和為客戶服務,跟著現(xiàn)代化的步伐。因此設計開發(fā)了此客戶消費積分管理系統(tǒng)來更好的為客戶服務。

3、二、系統(tǒng)分析與設計(一) 系統(tǒng)功能要求針對客戶的消費情況,進行客戶管理,根據客戶的消費積分對客戶實行不同程度的打折優(yōu)惠。1、 對客戶的信息可以進行修改、刪除、添加和查看;2、 能夠根據消費情況進行客戶積分的計算;3、 根據積分情況實行不同程度的打折優(yōu)惠; (二) 系統(tǒng)模塊結構設計通過對系統(tǒng)功能的分析,客戶消費積分管理系統(tǒng)功能如圖1所示。圖1 客戶消費積分管理系統(tǒng)功能圖通過上圖的功能分析,把整個系統(tǒng)劃分為7個模塊:1、 增添消費者信息,該模塊主要實現(xiàn):對新客戶的添加(包括對新客戶所有信息的添加)。借助的函數是void zentian()來實現(xiàn);2、 刪除消費者信息,該模塊主要實現(xiàn):對保存的所有客

4、戶中的任意一個客戶的刪除。借助的函數是void shanchu()來實現(xiàn);3、 修改消費者信息,該模塊主要實現(xiàn):(1)、對任意一個客戶所有信息的修改。(2)、可以對任意一個客戶信息中的客戶編號、客戶姓名、客戶身份證號碼、積分、消費額中的任意一個信息的修改。借助的函數是void xiugai()來實現(xiàn);4、 查看消費者信息,該模塊主要實現(xiàn):(1)、全部客戶基本信息(客戶編號、客戶姓名、客戶身份證號碼、積分、消費額)的輸出。(2)、某個客戶基本信息(客戶編號、客戶姓名、客戶身份證號碼、積分、消費額)的輸出。借助的函數是void chakan()來實現(xiàn);5、 根據積分計算打折后消費總價格,該模塊主要

5、實現(xiàn):根據客戶所對應積分計算出打折優(yōu)惠和打折后的消費額。借助的函數是void jisuan()來實現(xiàn);6、 刪除運行過的信息并返回第一頁主菜單,該模塊主要實現(xiàn):運行內容太多時此功能可以簡化運行頁面。借助的函數是void qingping()來實現(xiàn);7、 退出程序,該模塊主要實現(xiàn):退出該運行程序。三、系統(tǒng)的設計與實現(xiàn)(一) 增添消費者信息:void zentian()分析:首先輸出主菜單,然后根據提示輸入要添加幾條新客戶信息,然后輸入客戶全部信息即可。流程圖如圖2所示。 圖2:void zentian()流程圖該模塊的具體代碼如下所示:void zentian()/增添消費者信息 int i,k

6、;printf("n");printf(" 請輸入您要添加幾條新信息:");scanf("%d",&k);printf("n"); printf(" 請輸入要添加的客戶信息(編號最小為10006),回車后信息將自動保存:nn");printf("客戶編號 客戶名 身份證號(18位) 積分 消費額nn");for(i=5;i<5+k;i+) scanf("%d %s %s %lf %lf",&mi.kehubh, &mi.nam

7、e,&mi.shengfzh,&mi.jifen,&mi.xiaofe); printf("n"); printf(" 保存成功!請到查看消費者信息中查看!nn");(二) 刪除消費者信息:void shanchu()分析:首先輸出主菜單,然后輸入要刪除的客戶編號,然后回車即可刪除該客戶的所有信息。流程圖如圖3所示。 圖3:void shanchu()流程圖該模塊的具體代碼如下所示:void shanchu()/刪除消費者信息 int q,b,i; printf("n"); printf(" 請輸入您

8、所要刪除的客戶編號:"); scanf("%d",&b); printf("n"); printf(" 刪除成功!nn"); printf(" 刪除后剩余客戶信息為:nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); for(i=0;i<5+k;i+)if(b!=mi.kehubh)q=i; printf(" %d %s %s %6.2lf %6.2lfn",mq.kehubh, ,mq.shengfzh,mq

9、.jifen,mq.xiaofe); (三) 修改消費者信息:void xiugai()分析:首先輸出主菜單,然后選擇要修改某個客戶的全部信息還是某條信息。若修改全部信息則重新輸入該客戶的全部信息即可,若修改某處則選擇要修改哪里然后重新輸入即可。流程圖如圖4所示。圖4:void xiugai()流程圖該模塊的具體代碼如下所示:void xiugai()/修改消費者信息int i,a,b,q,p; double j;printf("n");printf(" & & & & & & & & & &

10、amp; & & & & & & & & & &n");printf(" & &n");printf(" & 修改某處信息,請選擇1 &n");printf(" & &n");printf(" & 修改全部信息,請選擇2 &n");printf(" & &n");printf(" & & & &

11、amp; & & & & & & & & & & & & & & & &nn"); printf(" 請輸入您的選擇:"); scanf("%d",&p);if(p=1) printf("n"); printf(" 請輸入要修改的客戶信息的編號:"); scanf("%d",&a); for(i=0;i<5+k;i+) if(a=mi.k

12、ehubh) printf("n"); printf(" & & & & & & & & & & & & & & & & & & & &n"); printf(" # #n"); printf(" # 修改客戶編號,請選擇1 #n"); printf(" # #n"); printf(" # 修改客戶名,請選擇2 #n"

13、;); printf(" # #n"); printf(" # 修改客戶身份證號,請選擇3 #n"); printf(" # #n"); printf(" # 修改客戶積分,請選擇4 #n"); printf(" # #n"); printf(" # 修改客戶消費額,請選擇5 #n"); printf(" # #n"); printf(" & & & & & & & & &

14、& & & & & & & & & & &nn"); printf(" 請輸入您的選擇:"); scanf("%d",&b); if(b=1) printf("n"); printf(" 原客戶編號為%dnn",mi.kehubh); printf(" 請輸入新客戶編號為:"); scanf("%d",&q); mi.kehubh=q; printf("

15、n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); if(b=2) printf("n"); printf(" 原客戶姓名%sn",); printf(" 請輸入新客戶姓名為:"); scanf("%s&qu

16、ot;,&); printf("n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); if(b=3) printf("n"); printf(" 原客戶身份證號%sn",mi.shengfzh); printf("

17、; 請輸入新客戶身份證號為:"); scanf("%s",&mi.shengfzh); printf("n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); if(b=4) printf("n"); printf("

18、 原客戶積分%6.2lfn",mi.jifen); printf(" 請輸入新客戶積分為:"); scanf("%lf",&j); mi.jifen=j; printf("n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe);

19、if(b=5) printf("n"); printf(" 原客戶消費額%6.2lfn",mi.xiaofe); printf(" 請輸入新客戶消費額為:"); scanf("%lf",&j); mi.xiaofe=j; printf("n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mi.k

20、ehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); if(p=2) printf("n"); printf(" 請輸入要修改的客戶信息的編號:"); scanf("%d",&a); for(i=0;i<5+k;i+) if(a=mi.kehubh) printf("n"); printf(" 原客戶信息為:n"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %

21、s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); printf(" (輸成如上形式,中間用空格,可以是多個空格)n"); printf(" 請輸入修改后客戶信息為:nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); scanf("%d %s %s %lf %lf",&mi.kehubh, &,&mi.shengfzh,&mi.jifen,

22、&mi.xiaofe); printf("n"); printf(" 修改成功!nn");(四) 查看消費者信息:void chakan()分析:首先輸出主菜單,然后選擇查看全部還是查看某一個。若查看全部則輸出全部客戶信息,若查看某個客戶信息則輸入要查看的客戶的編號即可輸出該客戶的詳細信息。流程圖如圖5所示。圖5:void chakan()流程圖該模塊的具體代碼如下所示:void chakan()/查看消費者信息 int a,b,p,i; printf("n"); printf(" & & &

23、 & & & & & & & & & & & & & & & & &n");printf(" & &n"); printf(" & 要查看全部客戶信息請選擇1 &n");printf(" & &n"); printf(" & 要查看某個客戶信息請選擇2 &n");printf(" & &am

24、p;n");printf(" & & & & & & & & & & & & & & & & & & & &nn");printf(" 請輸入您的選擇:"); scanf("%d",&a); if (a=1) printf("n"); printf(" 您所查看全部客戶信息為(有0的是需用戶添加的):nn"); prin

25、tf("客戶編號 客戶名 身份證號 積分 消費額n"); for(i=0;i<5+k;i+) printf(" %d %s %s %6.2lf %6.2lfn",mi.kehubh, ,mi.shengfzh,mi.jifen,mi.xiaofe); if(a=2) printf("n"); printf(" 請輸入所查客戶編號:"); scanf("%d",&b); for(i=0;i<5+k;i+) if(b=mi.kehubh)p=i; if(p>=

26、0&&p<5+k) printf("n"); printf(" 您所要查看%d客戶的詳細信息為:nn",mp.kehubh); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn",mp.kehubh, ,mp.shengfzh,mp.jifen,mp.xiaofe); else printf(" 對不起,您輸入有誤!nn"); (五) 根據積分計算打折后消費總價格:void j

27、isuan()分析:首先輸出主菜單,然后輸入要計算積分是多少的客戶,輸入后即可計算出該客戶打折優(yōu)惠信息并輸出該客戶的詳細信息。流程圖如圖6所。 圖6:void jisuan()流程圖該模塊的具體代碼如下所示:void jisuan()/根據積分計算打折后消費總價格int i,p;double sum,a;printf("n"); printf(" 請輸入積分:"); scanf("%lf",&a);if(a<=30.00)for(i=0;i<5+k;i+)if(a=mi.jifen)p=i; printf(&quo

28、t;n"); printf(" <<該客戶打折信息為>>:n"); printf(" 客戶編號:%dn",mp.kehubh); printf(" 客 戶 名:%sn",); printf(" 身份證號:%sn",mp.shengfzh); printf(" 積 分:%6.2lfn",mp.jifen); printf(" 消 費 額:%6.2lfn",mp.xiaofe); printf(" 打折優(yōu)惠:9.8折n&q

29、uot;); sum=0.98*mp.xiaofe; printf(" 打折后消費額:%6.2lf元n",sum);elseif(a<=40.00)for(i=0;i<5+k;i+)if(a=mi.jifen)p=i; printf("n"); printf(" <<該客戶打折信息為>>:n"); printf(" 客戶編號:%dn",mp.kehubh); printf(" 客 戶 名:%sn",); printf(" 身份證號:%s

30、n",mp.shengfzh); printf(" 積 分:%6.2lfn",mp.jifen); printf(" 消 費 額:%6.2lfn",mp.xiaofe); printf(" 打折優(yōu)惠:9.5折n"); sum=0.95*mp.xiaofe; printf(" 打折后消費額:%6.2lf元n",sum);elseif(a<=60.00)for(i=0;i<5+k;i+)if(a=mi.jifen)p=i; printf("n"); printf("

31、<<該客戶打折信息為>>:n"); printf(" 客戶編號:%dn",mp.kehubh); printf(" 客 戶 名:%sn",); printf(" 身份證號:%sn",mp.shengfzh); printf(" 積 分:%6.2lfn",mp.jifen); printf(" 消 費 額:%6.2lfn",mp.xiaofe); printf(" 打折優(yōu)惠:9.0折n"); sum=0.90*mp.xiaofe;

32、 printf(" 打折后消費額:%6.2lf元n",sum);elseif(a<=80.00)for(i=0;i<5+k;i+)if(a=mi.jifen)p=i; printf("n"); printf(" <<該客戶打折信息為>>:n"); printf(" 客戶編號:%dn",mp.kehubh); printf(" 客 戶 名:%sn",); printf(" 身份證號:%sn",mp.shengfzh); prin

33、tf(" 積 分:%6.2lfn",mp.jifen); printf(" 消 費 額:%6.2lfn",mp.xiaofe); printf(" 打折優(yōu)惠:8.5折n"); sum=0.85*mp.xiaofe; printf(" 打折后消費額:%6.2lf元n",sum);elsefor(i=0;i<5+k;i+)if(a=mi.jifen)p=i; printf("n"); printf(" <<該客戶打折信息為>>:n"); printf

34、(" 客戶編號:%dn",mp.kehubh); printf(" 客 戶 名:%sn",); printf(" 身份證號:%sn",mp.shengfzh); printf(" 積 分:%6.2lfn",mp.jifen); printf(" 消 費 額:%6.2lfn",mp.xiaofe); printf(" 打折優(yōu)惠:8.0折n"); sum=0.80*mp.xiaofe; printf(" 打折后消費額:%6.2lf元n",sum)

35、;(六) 刪除運行過的信息并返回第一頁主菜單:void qingping()分析:首先輸出主菜單,然后輸入要運行的序號即可刪除運行過得信息并返回首頁主菜單。流程圖如圖7所示。圖7:void qingping()流程圖該模塊的具體代碼如下所示:要有#include <stdlib.h>void qingping()/刪除運行過的信息并返回第一頁主菜單 system("cls"); (七) 退出程序:分析:首先輸出主菜單,然后輸入要運行的序號即可退出該程序。流程圖如圖8所示。圖8:退出程序流程圖該模塊的具體代碼如下所示:scanf("%d",&a

36、mp;j);switch(j)case 0: break;四、系統(tǒng)測試測試該函數使用的測試方法,測試的具體步驟,測試用例的選取,測試的結果。(一) 測試( void zentian()/增添消費者信息 )函數:(二) 測試( void shanchu()/刪除消費者信息)函數:(三) 測試( void xiugai()/修改消費者信息 )函數:注:其他修改請在附件中查看(四) 測試( void chakan()/查看消費者信息 )函數:(五) 測試( void jisuan()/根據積分計算打折后消費總價格 )函數:(六) 測試( void qingping()/刪除運行過的信息并返回第一頁主

37、菜單 )函數:(七) 測試退出函數:五、總結系統(tǒng)完成了對客戶信息的增添、刪除、修改、查看、根據積分情況實行不同程度的打折優(yōu)惠、刪除運行過的信息并返回第一頁主菜單和退出功能。系統(tǒng)有(1)、當刪除某個客戶信息后,在主菜單客戶信息中查看剛剛刪除的客戶信息時信息還在卻無法刪除,并且不能一次性刪除多個客戶信息,要刪除多個客戶信息時必須運行該刪除功能多次,比較麻煩而且不方便。(2)、此系統(tǒng)沒有用到文件、鏈表和指針。(3)、當客戶信息中的積分有相同時,計算并輸出的客戶信息只有一個而不能全部顯示出來。以上三點不足。經過對客戶消費積分管理系統(tǒng)的前期了解以及自己構思到最后設計成此系統(tǒng)全部功能,也遇到了許多阻礙,但

38、最終還是一步一步的修改好了。但是我從中也學到了好多,尤其對一維數組還有for循環(huán)和if語句的使用和定義有了進一步的提高。對結構體的使用和選擇結構也有了進一步的提高。六、附件(一)(全部代碼)#include <stdio.h>#include <stdlib.h>int k;struct xiaofxx/結構體(消費信息)int kehubh; /客戶編號char name12; /客戶名char shengfzh19; /身份證號double jifen; /積分double xiaofe; /消費額xiaofxx1000;struct xiaofxx m100=10

39、001,"xiao hua","quot;,30.0,300.0,10002,"xiaoming","622538199402339820",40.0,400.0,10003,"wangjing","quot;,60.0,600.0,10004,"huanhuan","quot;,80.0,800.0,10005,"lu lu",&q

40、uotquot;,100.0,1000.0;/數組初始化void main()/主函數 void zentian(); void shanchu(); void xiugai(); void chakan(); void jisuan(); void qingping(); int j=1;while(j)printf("nn");printf(" <><><><><><><><><><><>&

41、lt;><><><><><><><><><><><><><><><><><><><>n"); printf(" <> <>n"); printf(" <> 客戶消費積分管理系統(tǒng) <>n"); printf(" <> <>n"

42、); printf(" <> <>n"); printf(" <> 增添消費者信息,請選擇1 <>n"); printf(" <> <>n"); printf(" <> 刪除消費者信息,請選擇2 <>n"); printf(" <> <>n"); printf(" <> 修改消費者信息,請選擇3 <>n"); printf("

43、; <> <>n"); printf(" <> 查看消費者信息,請選擇4 <>n"); printf(" <> <>n"); printf(" <> 根據積分計算打折后消費總價格,請選擇5 <>n"); printf(" <> <>n"); printf(" <> 刪除運行過的信息并返回第一頁主菜單,請選擇6 <>n"); printf(&qu

44、ot; <> <>n");printf(" <> 退出,請選擇0 <>n");printf(" <> <>n"); printf(" <><><><><><><><><><><><><><><><><><><><><>

45、;<><><><><><><><><><>nn"); printf(" 溫馨提示:請選擇所要運行的序號:");scanf("%d",&j);printf("n");switch(j)case 0: break;case 1: zentian() ; break;case 2: shanchu() ; break;case 3: xiugai() ; break;case 4: chakan() ;

46、break;case 5: jisuan() ; break;case 6: qingping(); break;default:printf(" 輸入有誤哦!請重新輸入!n");void zentian()/增添消費者信息 int i;printf("n");printf(" 請輸入您要添加幾條新信息:");scanf("%d",&k);printf("n"); printf(" 請輸入要添加的客戶信息(編號最小為10006),回車后信息將自動保存:nn");pri

47、ntf("客戶編號 客戶名 身份證號(18位) 積分 消費額nn");for(i=5;i<5+k;i+) scanf("%d %s %s %lf %lf",&mi.kehubh, &,&mi.shengfzh,&mi.jifen,&mi.xiaofe); printf("n"); printf(" 保存成功!請到查看消費者信息中查看!nn");void shanchu()/刪除消費者信息 int q,b,i; printf("n");

48、printf(" 請輸入您所要刪除的客戶編號:"); scanf("%d",&b); printf("n"); printf(" 刪除成功!nn"); printf(" 刪除后剩余客戶信息為:nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); for(i=0;i<5+k;i+) if(b!=mi.kehubh)q=i; printf(" %d %s %s %6.2lf %6.2lfn",mq.kehubh, mq.

49、name,mq.shengfzh,mq.jifen,mq.xiaofe); void xiugai()/修改消費者信息int i,a,b,q,p; double j;printf("n");printf(" & & & & & & & & & & & & & & & & & & & &n");printf(" & &n");printf(" &

50、 修改某處信息,請選擇1 &n");printf(" & &n");printf(" & 修改全部信息,請選擇2 &n");printf(" & &n");printf(" & & & & & & & & & & & & & & & & & & & &nn"); printf(" 請

51、輸入您的選擇:"); scanf("%d",&p);if(p=1) printf("n"); printf(" 請輸入要修改的客戶信息的編號:"); scanf("%d",&a); for(i=0;i<5+k;i+) if(a=mi.kehubh) printf("n"); printf(" & & & & & & & & & & & & & &

52、; & & & & & &n"); printf(" # #n"); printf(" # 修改客戶編號,請選擇1 #n"); printf(" # #n"); printf(" # 修改客戶名,請選擇2 #n"); printf(" # #n"); printf(" # 修改客戶身份證號,請選擇3 #n"); printf(" # #n"); printf(" # 修改客戶積分,請選擇4

53、 #n"); printf(" # #n"); printf(" # 修改客戶消費額,請選擇5 #n"); printf(" # #n"); printf(" & & & & & & & & & & & & & & & & & & & &nn"); printf(" 請輸入您的選擇:"); scanf("%d"

54、;,&b); if(b=1) printf("n"); printf(" 原客戶編號為%dnn",mi.kehubh); printf(" 請輸入新客戶編號為:"); scanf("%d",&q); mi.kehubh=q; printf("n"); printf(" 修改成功!nn"); printf("客戶編號 客戶名 身份證號 積分 消費額nn"); printf(" %d %s %s %6.2lf %6.2lfn"

溫馨提示

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

最新文檔

評論

0/150

提交評論