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

下載本文檔

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

文檔簡介

word整理版目錄TOC\o"1-5"\h\z系統(tǒng)開發(fā)的背景1系統(tǒng)分析與設(shè)計1系統(tǒng)功能要求1系統(tǒng)模塊結(jié)構(gòu)設(shè)計1系統(tǒng)的設(shè)計與實現(xiàn)2(一)添力口客戶:GETELEM(CNODE*HEAD)2(二)修改客戶AMEND(CNODE*HEAD,CHARNAME[])5刪除客戶DELETE(CNODE*HEAD,CHARNAME[])8顯示客戶VOIDSHOWALL(CNODE*HEAD)10系統(tǒng)測試12(一)測試VOIDNAIN()函數(shù)12(二)部分調(diào)用函數(shù)的測試13總結(jié)14附件(代碼)14學習好幫手

word整理版客戶消費積分管理系統(tǒng)一、系統(tǒng)開發(fā)的背景為了能夠快速根據(jù)客戶的消費積分計算打折后的價格,以及優(yōu)惠后的價格,給客戶以心理上的刺激,激發(fā)客戶的消費欲望。并且減輕收銀員的工作負擔;因此,我特別編寫了一套有關(guān)客戶消費積分管理的系統(tǒng),來方便在日常生活中的使用。二、系統(tǒng)分析與設(shè)計(一)系統(tǒng)功能要求針對客戶的消費情況,進行客戶管理,根據(jù)客戶的消費積分對客戶實行不同程度的打折優(yōu)惠。1、對客戶的信息可以進行修改、刪除、添加;2、能夠根據(jù)消費情況進行客戶積分的計算;3、根據(jù)積分情況實行不同程度的打折優(yōu)惠;(二)系統(tǒng)模塊結(jié)構(gòu)設(shè)計通過對系統(tǒng)功能的分析,客戶消費積分管理系統(tǒng)功能如圖(1)所示

客戶消費積學管理系統(tǒng))添加函數(shù)修改函數(shù)刪除函數(shù)顯示函數(shù)添加函數(shù)修改函數(shù)刪除函數(shù)顯示函數(shù)圖(1)客戶消費管理系用統(tǒng)圖通過上圖的功能分析,首先定義了一個數(shù)據(jù)域,來存儲客戶的基本信息;學習好幫手word整理版其次,基本函數(shù)成員有姓名,消費卡號,消費價格以及折扣后的價格。最主要的是運用While語句和sw讓ch語句的套用來實現(xiàn),止匕外,就是要用到malloc函數(shù)來存儲客戶的信息分配內(nèi)存。把整個系統(tǒng)主要劃分為4個模塊:1、添加客戶信息:該模塊主要實現(xiàn),客戶基本信息(姓名、消費卡號、消費金額)的添加,借助函數(shù)Getelem(cnode*head)來實現(xiàn);2、修改客戶信息:該模塊主要實現(xiàn),對消費者的基本信息的修改功能,借助函數(shù)Amend(cnode*head,charname口)來實現(xiàn);3、刪除客戶信息:此模塊的功能是,刪除所要確定的客戶信息,而達到從整個系統(tǒng)清除的目的,借助函數(shù)Delete(cnode*head,charname口)來實現(xiàn);4、顯示客戶信息:此模塊的主要作用是顯示消費者的相關(guān)信息,借助函數(shù)Showall(cnode*head)來實現(xiàn)。三、系統(tǒng)的設(shè)計與實現(xiàn)(一)添力口客戶:Getelem(cnode*head)分析:首先選擇的添加客戶的指令,然后輸入客戶的基本信息??蛻舻男彰蛻舻腎D消費卡號,如果輸入的不正確則需要提示重輸,還有就是客戶的消費金額,這樣才能計算后面的積分優(yōu)惠折扣。最后就顯示該添加客戶的信息。流程圖如圖(2)所示。運行結(jié)果如圖(a)所示??蛻粜彰M金額消費金額積分折扣圖(2)-1模塊分析圖學習好幫手word整理版圖(2)添加客戶信息流程圖該模塊的具體代碼如下所示:客戶姓名客戶客戶姓名客戶ID號#include<stdio.h>//#include<stdlib.h>//#include<string.h>//structcnode{charname[20];//charID[4];//標準的輸入輸出庫函數(shù)動態(tài)存儲分配函數(shù)字符串函數(shù)doubleconsume;//客戶消費doubleinteger;//客戶積分cnode*next;};客戶積分折扣函數(shù)doubledisplay_discount(doublepoints)//{客戶積分折扣函數(shù)doublediscount;if(points==0){discount=0;}elseif(points>0&&points<=50){discount=9.8;}elseif(points>50&&points<=100){discount=9.5;}elseif(points>100&&points<=200){discount=9.0;}elseif(points>200&&points<=300){discount=8.0;}學習好幫手word整理版elseif(points>300){discount=7.0;}returndiscount;}voidInitstack(cnode*&head){head=(cnode*)malloc(sizeof(cnode));〃malloc存儲區(qū)head->next=NULL;}voidGetelem(cnode*head)//添加客戶函數(shù){cnode*p;doubley;p=(cnode*)malloc(sizeof(cnode));printf("請輸入姓名:");scanf("%s",&p->name);printf("請輸入ID(4位):");scanf("%s”,&p->ID);while(strlen(p->ID)!=4){printf("ID有誤,請重新輸入(4位):");scanf("%s”,p->ID);}printf("請輸入消費金額:");scanf("%lf",&p->consume);p->integer=p->consume/100;y=display_discount(p->integer);printf("折扣:%llf折\n",y);p->next=head->next;head->next=p;system("pasue");}voidmain(){cnode*head;intchoice;charname[10];Initstack(head);do函數(shù)開辟內(nèi)存單元,分配cnode長度字節(jié)的{printf("\n");printf("printf("printf("printf("\nprintf("\n\n");客戶消費積分管理系統(tǒng)$\n");\n");****************************");*");學習好幫手word整理版printf("\n*<<土菜單>>*");printf("\n*1.添加客戶*");printf("\n*2.查找客戶*");printf("\n*3.修改客戶*");printf("\n*4.刪除客戶*");printf("\n*5.顯示客戶*");printf("\n*6.統(tǒng)計客戶*");printf("\n*7.退出*");printf("\n****************************“);printf("\n請輸入您的選擇(1,2,3,4,5,6,7):"Getelem(head);break;system("cls");//程序運行后自動清屏}while(choice<=7);}'C:\Users\.Administrator\De5比叩\曼程汶二十\Debug)客「有愛租分至加exe"■f%JWVfvwuwvfvwuwvfvwuw\f<WifwwvvvwuwvifV¥V*vvvRrw?vifV¥V*vvvifw?v$客戶消費積分管理系統(tǒng)$tfvnnvvvnnvtivtfunjwvdrHWvrvdrunjwvdrunjwwrirunjwwdiSw^uwwriruiruwwdrhr人姓ID,梢

tAAS人姓ID,梢

tAAS

請??W:Sf'CL戶戶戶戶戶處雪客客客客客主加找改除示計出“暫一修刪顯暫■■--■??■■1234567擇海4輸,'選小的:位重金

你省<4富4■32■1初-

44

\5

.//3,5,6,7):1=1457圖(a)(二)修改客戶Amend(cnode*head,charname口)分析:首先要確定該客戶消費積分系統(tǒng)有沒有客戶,在有客戶的條件下對所在客戶的相關(guān)信息進行修改。第一步要輸入所要修改客戶的姓名,第二步是選擇修改客戶的姓名、ID消費卡號、還是消費金額。然而對消費金額的修改有可以選擇是續(xù)加金額和覆蓋原有的金額兩種操作。最后結(jié)果顯示在屏學習好幫手word整理版幕上。流程圖如圖(3)所示。運行結(jié)果如圖(b)所示開始如圖(3)修改客戶信息流程圖該模塊的具體代碼如下所示:voidAmend(cnode*head,charname[])//修改客戶函數(shù){cnode*p;doubley,z;intchoose,x;p=head;if(p->next==NULL){printf("\n沒有客戶!");)else{while(p->next!=NULL){p=p->next;if(strcmp(name,p->name)==0){printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);))printf("\n請選擇您要修改的資料:1.姓名2.ID3.消費金額\n");scanf("%d",&choose);學習好幫手word整理版switch(choose)(printf("請輸入修改后的姓名:");scanf("%s",p->name);break;printf("請輸入修改后的ID:");scanf("%s",p->ID);break;while(strlen(p->ID)!=4){printf("ID有誤,請重輸(4位):");scanf("%s",p->ID);}break;printf("請選擇:1覆蓋以前的消費.2續(xù)加上現(xiàn)在的消費.");scanf("%d",&x);switch(x){case1:printf("請輸入修改后的消費:");scanf("%lf",&p->consume);break;case2:printf("請輸入續(xù)加金額:");scanf("%lf",&z);p->consume+=z;break;}}printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費額:%.2lf",p->consume);p->integer=p->consume/100;printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);}system("pasue");}學習好幫手word整理版■?C:\Users\Administrator^DesIctcpM黑程設(shè)計\Debu■?C:\Users\Administrator^DesIctcpM黑程設(shè)計\Debug\客戶;積分系統(tǒng)段后“*********>戶戶戶戶戶沖拿客客客客客主加找改除示計出<<奢一修刪顯第1234567請輸入您的選擇(1.23,4小"戶)輸人要修改的客戶姓名小嗨&小蹲10折?Ji1457fffFf10折消費:351.4。和分工酒514013。折扣?請選擇您要修改的資料;】.姓名2.ID3.消費金額請輸入修改后的姓名:王海圖(b)(三)刪除客戶Delete(cnode*head,charname[])分析:首先也是要確定該客戶消費積分系統(tǒng)有沒有客戶,在有客戶的條件下對所在客戶的相關(guān)信息進行刪除。第一步要輸入所要刪除的客戶的姓名,第二步是就是對所選定的客戶進行刪除,在刪除結(jié)束時,會出現(xiàn)是否刪除成功的提示語,以便進行慎重的刪除操作。流程圖如圖(4)所示。運行結(jié)果如圖(c)所示。學習好幫手開始word整理版圖(4)刪除客戶信息流程圖該模塊的具體代碼如下所示:voidDelete(cnode*head,charname[])//刪除客戶函數(shù)(cnode*p;intx;doubley;p=head;if(p->next==NULL)(printf("\n沒有客戶!");}else{while(p->next!=NULL){head=p;p=p->next;if(strcmp(name,p->name)==0){printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);}printf("確認刪除?1確認2取消請選擇:");scanf("%d",&x);if(x==1)學習好幫手word整理版{head->next=p->next;printf("刪除成功!");)else{printf("刪除失敗!");)))printf("\n");system("pause");)**€:\Users\Administr3tor\DeeId□pY:果程設(shè)計\Debug\客聲消差積分系統(tǒng).號乂號rS客戶消費耙分管理系統(tǒng)$ZAMWA/ZAJAj(ZfWUJV222ZZ22Al!2Bj-EL戶戶戶戶戶至各客客客客客王加找改除示計出<<S客戶消費耙分管理系統(tǒng)$ZAMWA/ZAJAj(ZfWUJV222ZZ22Al!2Bj-EL戶戶戶戶戶至各客客客客客王加找改除示計出<<奢修刪顯卷Bill,BI1234567請輸入您的選擇(1,2,3,4,5,6,7)?4ID:5698整入契除的客戶姓名二米蘭ID:569863?段積分:45?6—斯扣?1@折?1W2取消請選擇:Tt圖(c)(四)顯示客戶voidShowall(cnode*head)分析:首先還是要確定該客戶消費積分系統(tǒng)有沒有客戶,在有客戶的條件下對所有客戶的相關(guān)信息進行顯示。最終將所有客戶的相關(guān)信息顯示在屏幕上。流程圖如圖(5)所示。運行結(jié)果如圖(d)所示學習好幫手

word整理版圖word整理版圖(5)顯示客戶信息流程圖該模塊的具體代碼如下所示:voidShowall(cnode*head)//顯示客戶函數(shù){cnode*p;doubley;p=head;if(p->next==NULL){printf("沒有客戶!");}else{while(p->next!=NULL){p=p->next;printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);}}system("pause");}學習好幫手

word整理版*C:\Users\Administraior\Desktop'課程設(shè)計\口€bug倩戶消費積分系埃后xefwvwirwuwfww^mjwYvwnmjwmvwwwvmjvMwwwwwwv$客戶消費積分管理系統(tǒng)S請輸入您的選擇(1.2,3戶戶戶戶戶”交告客客客客客請輸入您的選擇(1.2,3戶戶戶戶戶”交告客客客客客主加找改除示計出<<堂哥顯意1234587姓名:技監(jiān)局ID;9876曹學翠黑曾0積分?80.曬曬折扣一時斤ID:5874消費:SE4.0國積分:S.64?頡⑻折扣:1時斤圖(d)四、系統(tǒng)測試(一)測試voidnain()函數(shù)測試該函數(shù)使用的測試方法,測試的具體步驟,測試用例的選取,測試的結(jié)果。首先,通過編譯,運行兩步的操作,排除了該程序中的基本語法錯誤,鏈接進一步的檢查了程序的正確性與合法性,完全排除了程序中的邏輯錯誤,使得程序可以正確的運行出來。然后檢驗程序的可實用性,通過操作者自己輸入一些對客戶操作要求,來完成檢驗這一步。最后,還要看顯示的結(jié)果是否正確可靠。這樣,一個客戶消費積分系統(tǒng)的程序就完成了。所以,下圖(6)就是主函數(shù)測試的結(jié)果。學習好幫手

word整理版■C:\U號ers\Adminktrator\DbId。p\深程設(shè)計\Debug\客戶滔斐積分蒙虢,exe”rsm1mrrvlwrvwinjwwrirwrvirvrinjwwrin1mwdnuwwrin1mmrrinummw$客戶消費積分管理系統(tǒng)sf\MW2f\rtfW0f\MWiFVWtfW2f\rfWiFVNtfW2f\rfWiFVY\MWrW\MW2f\MW一委各客客客客客一委各客客客客客

主加找改除示計出

<<善_修刪顯■

123456?請輸入您的選擇(1,2.3,4,5,6,?):圖(6)主函數(shù)測試結(jié)果(二)部分調(diào)用函數(shù)的測試如圖(4)是查找函數(shù)的測試,如圖5)是統(tǒng)計函數(shù)的測試。rwMmnHwwumfunnvYUrvAMvrvmrwunns-vurwAMvni-vunnvrwMmnHwwumfunnvYUrvAMvrvmrwunns-vurwAMvni-vunnv-'C^JseraVWmimst.br\Pe$ktop博程酬pebug\都啼強酚㈱e?,AMMnrnmmwhmnvTwmAfwwvTWfwnvMfvrvinmwnMvrv$鼾糠船管理繇5fMfdrvnAMYVlWVSMMTMYVnWfUOJrVWTiVWMIMmvrywfVfUNTV>單戶戶戶戶戶戶?客客客客客主加我改瞬示<<,s.t_.f.H,fi^^1234567曇餐##"餐片鼻骨請輸入您的選擇(L2345配7)!6位?

2■

ass-戶意有芍口=月箭靖查魁客質(zhì)名:於如圖(4)查找函數(shù)的測試結(jié)果如圖(5)是統(tǒng)計函數(shù)的測試結(jié)果學習好幫手word整理版五、總結(jié)系統(tǒng)完成了對一個消費商店內(nèi)部,進行的一次優(yōu)惠打折活動,根據(jù)顧客在本商店所進行的消費情況,對相關(guān)消費客戶的信息進行了增加、刪除和修改等的操作。并且運用switch語句完成用戶自行選擇的要求,使得程序變得更加友善和諧,讓用戶根據(jù)每一步的提示來完成所需的操作,進而達到對有關(guān)消費客戶的操作,并且與此次活動的優(yōu)惠積分規(guī)定相一致,來計算顧客所得的積分及其相應(yīng)的折扣。并且完成了對消費客戶信息的增加,刪除,添改功能。此外充分利用C語言的語法結(jié)構(gòu)(順序機構(gòu)、循環(huán)結(jié)構(gòu)及其選擇機構(gòu)),對整個程序進行了合理編寫與調(diào)試。盡量做到程序的簡單、合理明白,加一些適當?shù)淖⑨屨f明部分。系統(tǒng)不足:這個系統(tǒng)的不足在于他不能的將客戶的信息資料存儲于磁盤中,只能在完整的一次操作中,不退出此界面一直能有效正確的執(zhí)行命令。但是退出一次之后,重新操作時,以前的客戶信息就不再存在了。因此,這是還有待于我不斷改進完善的地方。我的收獲:在此次的C++課程設(shè)計中,通過設(shè)計掌握了C++課程及其數(shù)據(jù)結(jié)構(gòu)在以后學習C課程中的重要性。數(shù)據(jù)機構(gòu)中的基本理論和算法的綜合應(yīng)用是解決實際問題的重要手段。在做這次課程設(shè)計中最讓我得到提高的是自己的獨立思考及實踐能力,在完成此項設(shè)計的過程中,我利用各種和C有關(guān)的工具書、相關(guān)的網(wǎng)絡(luò)信息完成了一個關(guān)于客戶消費積分管理系統(tǒng)的程序,讓我從中更多的了解了C這門語言及其有關(guān)知識,更讓我對最初學C態(tài)度有了一個強烈轉(zhuǎn)變一一C中的奧秒就在于自己的不斷探索與積累。六、附件(代碼)學習好幫手word整理版#include<stdio.h>//#include<stdlib.h>//#include<string.h>//structcnode標準的輸入輸出庫函數(shù)動態(tài)存儲分配函數(shù)字符串函數(shù)(charname[20];//客戶姓名charID[4];//客戶ID號doubleconsume;//客戶消費doubleinteger;//客戶積分cnode*next;};voidCount(cnode*head)//統(tǒng)計客戶函數(shù){cnode*p;inti=0;p=head;if(p->next==NULL){printf("\n沒有客戶!");}else{while(p->next!=NULL){p=p->next;i++;}}printf("\n現(xiàn)有客戶數(shù)量為%~位\已力;system("pause");}客戶積分折扣函數(shù)doubledisplay_discount(doublepoints)//{客戶積分折扣函數(shù)doublediscount;if(points==0){discount=0;}elseif(points>0&&points<=50){discount=9.8;}elseif(points>50&&points<=100){discount=9.5;}elseif(points>100&&points<=200){discount=9.0;}elseif(points>200&&points<=300){discount=8.0;}elseif(points>300)學習好幫手word整理版{discount=7.0;}returndiscount;}voidInitstack(cnode*&head){head=(cnode*)malloc(sizeof(cnode));//malloc函數(shù)開辟內(nèi)存單元,分配cnode長度字節(jié)的存儲區(qū)head->next=NULL;}voidGetelem(cnode*head)//添加客戶函數(shù){cnode*p;doubley;p=(cnode*)malloc(sizeof(cnode));printf("請輸入姓名:");scanf("%s",&p->name);printf("請輸入ID(4位):");scanf("%s”,&p->ID);while(strlen(p->ID)!=4){printf("ID有誤,請重新輸入(4位):");scanf("%s”,p->ID);}printf("請輸入消費金額:");scanf("%lf",&p->consume);p->integer=p->consume/100;y=display_discount(p->integer);printf("折扣:%11f折\n",y);p->next=head->next;head->next=p;system("pasue");}voidSearch(cnode*head,charname口)〃查找客戶函數(shù){cnode*p;doubley;intflag=false;p=head;if(p->next==NULL){printf("\n沒有客戶!");}else{while(p->next!=NULL){p=p->next;if(!strcmp(name,p->name)){printf("姓名:%s\n",p->name);學習好幫手word整理版printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);printf("折扣:%.llf折\n",y);flag=true;}}if(!flag){printf("該客戶不存在!\n");}}system("pasue");}voidAmend(cnode*head,charname口)〃修改客戶函數(shù){cnode*p;doubley,z;intchoose,x;p=head;if(p->next==NULL){printf("\n沒有客戶!");}else{while(p->next!=NULL){p=p->next;if(strcmp(name,p->name)==0){printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);}}printf("\n請選擇您要修改的資料:1.姓名2.ID3.消費金額\n");scanf("%d",&choose);switch(choose){printf("請輸入修改后的姓名:");scanf("%s”,p->name);break;printf("請輸入修改后的ID:");scanf("%s",p->ID);break;while(strlen(p->ID)!=4)學習好幫手word整理版{printf("ID有誤,請重輸(4位):");scanf("%s",p->ID);}break;printf("請選擇:1覆蓋以前的消費.2續(xù)加上現(xiàn)在的消費.");scanf("%d",&x);switch(x){case1:printf("請輸入修改后的消費:");scanf("%lf",&p->consume);break;case2:printf("請輸入續(xù)加金額:");scanf("%lf",&z);p->consume+=z;break;}}printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費額:%.2lf",p->consume);p->integer=p->consume/100;printf("積分:%lf",p->integer);y=display_discount(p->integer);printf("折扣:%.llf折\n",y);}system("pasue");}voidDelete(cnode*head,charname[])//刪除客戶函數(shù){cnode*p;intx;doubley;p=head;if(p->next==NULL){printf("\n沒有客戶!");}else{while(p->next!=NULL){head=p;p=p->next;if(strcmp(name,p->name)==0){printf("姓名:%s\n",p->name);printf("ID:%s\n",p->ID);printf("消費:%.2lf",p->consume);printf("積分:%lf",p->integer);y=display_discount(p->integer);學習好幫手word整理版printf("折扣:%.llf折\n",y);)printf("確認刪除?1確認2取消請選擇:");scanf("%d",&x);if(x==1){head->next=p->next;printf("刪除成功!");)else{printf

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論