客戶消費積分管理系統-課程設計參考模板_第1頁
客戶消費積分管理系統-課程設計參考模板_第2頁
客戶消費積分管理系統-課程設計參考模板_第3頁
客戶消費積分管理系統-課程設計參考模板_第4頁
客戶消費積分管理系統-課程設計參考模板_第5頁
已閱讀5頁,還剩46頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、 客戶消費積分管理系統的設計與實現客戶消費積分管理系統摘 要:客戶消費積分管理系統開發的總體目標是實現酒吧會員卡的積分和打折管理。主要是通過對客戶積分卡積分的統計,再通過不同層段的積分有不同的折扣。本系統根據客戶及商品的數據需求,采用了線性表的鏈式存儲結構,主要功能包括數據的錄入、插入、刪除、修改、以及數據的顯示,對客戶積分的管理,對客戶購物時依據積分的數目進行不同打折處理。 關鍵詞:C+語言;客戶積分管理系統;數據結構;鏈式存儲結構; 1 前言 當今世界由于人類文明進入了高速發展階段,計算機技術已經取得了長足的發展,計算機已經普及到各大商城和小市場的管理當中,介于此,經過了網上的 資料查閱和

2、數據分析,開發了這個客戶消費積分管理系統,對一些商品進行折扣的統計和管理。設計一個程序用于管理客戶的消費情況,從而根據客戶的消費積分對客戶實行不同程度的打折優惠。對于客戶消費積分管理系統利用線性表的鏈表存儲方式,使用結構體指針將每一個用戶聯系起來。程序中設計了添加用戶查找用戶修改用戶刪除用戶統計客戶數量的功能,充分滿足對于管理系統的要求。2 設計分析1 / 51根據題目要求及本次課程設計的目的,采用結構體來存儲每組數據,用單鏈表對每組數據進行相應的操作。現把相應的設計思路及各個函數解析如下。2.1 數據結構設計分析2.1.1 存儲客戶信息的結構體 客戶資料有姓名、身份證號、客戶編號、消費金額、

3、客戶積分等信息。具體結構如下:struct Client/客戶信息string CCardNumber;/客戶編號string CNumber;/客戶身份證號float CBuy;/客戶消費金額float CGrade;/客戶積分string CName;/客戶名稱;2.1.2 存儲商品信息的結構體 首先用一個商品信息的結構體Production存儲商品的價格、商品的固定積分、商品的名稱,在用一個數組進行存儲每一件商品,使用數組和for循環能夠便捷并容易的進行數據的操作。另外再用一個商品消費的記錄ProCli,用來記錄每個客戶消費商品的記錄具體結構如下:struct Production/商品

4、信息float PPrice;/商品價格int PGrade;/商品積分string PName;/商品名稱;struct PN/產品消費的信息記錄string ProName16;/記錄消費了的產品的名稱int mount16;/記錄該產品的消費數量;struct ProClistring Cardnum;/客戶的名稱PN CPN;/消費產品和數量2.2 各個函數分析2.2.1 主函數 函數原型:int main()main()函數主要是整個系統的控制端,主要功能是控制整個程序的運行。從主函數開始調用各相關函數來達到相應的功能。由于有多個不同的選項,所以用一個switch()語句控制每個函數

5、調用,控制起來方便、明了。關鍵代碼如下:switch(work)case 1:cout<<"繼續請輸入1,返回請輸入2"<<endl;cin>>work;if(work=1)cout<<"請輸入要查詢客戶的名稱或編號或身份證號: "cin>>str;locateElem_L(client,str);else if(work=2)system("cls");face(); elsecout<<"輸入錯誤!"<<endl;system(

6、"cls");face(); break;case 2:cout<<"刪除請輸入1,增加請輸入2,返回請輸入3: "cin>>work;if(work=1)deleteElem_L(client,procli);else if(work=2)cout<<"請輸入客戶編號"<<endl;cin>>clients.CCardNumber;cout<<"請輸入客戶身份證號"<<endl;cin>>clients.CNumber

7、;cout<<"請輸入客戶名稱"<<endl;cin>>clients.CName;cout<<"請輸入客戶消費金額"<<endl;cin>>clients.CBuy;cout<<"請輸入客戶積分"<<endl;cin>>clients.CGrade;insertElem_L(client,procli,clients);else if(work=3)system("cls");face(); elsecou

8、t<<"輸入錯誤!"<<endl;system("cls");face(); break;case 3:cout<<"現在進行客戶信息修改:繼續請輸入1,返回請輸入2"<<endl;cin>>work;if(work=1) cout<<"請輸入要修改的客戶的名稱或編號或身份證號: " cin>>str; recompose(client,str);else if(work=2)system("cls");face

9、(); elsecout<<"輸入錯誤!"<<endl;system("cls");face(); break;case 4:trverseLnode(client);break;case 5:purchase(client,procli);break;case 6:cout<<"繼續請輸入1,返回請輸入2"<<endl;cin>>work;if(work=1)cout<<"查詢的客戶消費資料,請輸入客戶名稱:"cin>>str;l

10、ocateElem_P(procli,str);else if(work=2)system("cls");face(); elsecout<<"輸入錯誤!"<<endl;system("cls");face(); break;case 7:system("cls");face(); break;case 8:cout<<"是否確定退出,是,請輸入'yes',否,請輸入'no'!: "cin>>str;if(str=&

11、quot;yes")cout<<"是否確定保存,是,請輸入'yes',否,請輸入'no'!: "cin>>str1;if(str1="yes")printer(client);printer(procli);cout<<"已經保存成功"<<endl;cout<<"已成功退出!"<<endl;return 0;else if(str ="no")break;2.2.2 讀文件函數函數原

12、型:無 把存儲在文件中的客戶信息、產品信息及產品消費信息讀入到鏈表中去,為各操作做準備,也就相當于打開系統時,加載數據一樣。在讀文件中時,主要用到C+里的文件流操作,從文件(客戶信息)client.txt和(客戶消費信息保存文件)clientproduction.txt兩個文件中讀取信息,分別存放到鏈表client和procli中。client.txt文件是每一行存放一個客戶的信息,是按客戶編號、客戶身份證號、客戶名稱、客戶消費金額、客戶積分存放的。而clientproduction.txt文件是客戶姓名、產品名稱、產品的消費數量的順序存儲的。在讀取客戶信息時,判斷客戶編號和客戶省份證號是否為

13、“NULL”來確定客戶是否全部讀完。代碼如下:initList_L(client);clientp = client;ifstream enter;enter.open("client.txt",ios:in);dohi = new LNode;hi->next = clientp->next;enter>>hi->data.CCardNumber;enter>>hi->data.CNumber;enter>>hi->data.CBuy;enter>>hi->data.CGrade;ente

14、r>>hi->data.CName;clientp->next = hi;clientp = clientp->next;/cout<<clientp->data.CCardNumber<<" "<<clientp->data.CNumber<<" "<<clientp->data.CName<<endl;while(clientp->data.CCardNumber!="NULL")&&(cl

15、ientp->data.CNumber!="NULL"); 2.2.3 菜單函數函數原型:void face()在主函數調用此函數,展示整個系統可供用戶選擇的功能選項,清晰明了,使用戶對系統的操作更容易掌握。顯示各個選項,把后臺功能顯示在顯示器上,給用戶以提醒。2.2.4 顯示函數函數原型:void trverseLnode(LinkList L)此函數用來顯示所有客戶的信息,包括姓名、身份證號、客戶編號、消費金額、客戶積分等信息,當客戶想查看所有客戶信息時,可以使用此功能。不過說白了,也就是把鏈表中的東西打印出來。代碼如下:void trverseLnode(Lin

16、kList L) /遍歷鏈表Lnode *p;cout<<"客戶編號 "<<"身份證號 "<<"客戶名稱 "<<"消費金額 "<<"客戶積分"<<endl;for(p=L->next; p!=NULL; p=p->next)if(p->data.CCardNumber!="NULL")cout<<p->data.CCardNumber<<" &qu

17、ot;<<p->data.CNumber<<" "<<p->data.CName" <<" "<<p->data.CBuy<<" "<<p->data.CGrade<<endl;cout<<endl;2.2.5 查詢函數函數原型:bool locateElem_L(LinkList L,string e)bool locateElem_P(LinkListP L,string e)查詢函數設計了

18、兩個,進行兩種功能的查詢,一是查詢客戶信息,包括姓名、身份證號、客戶編號、消費金額、客戶積分等信息,二是查詢客戶消費信息記錄,用戶可以看到客戶的消費情況作出商業上的調整,選擇相應的查詢功能,系統會給出不同的信息提示,要求用戶輸入一些相應的信息,比如客戶姓名等,為實現這兩種不同的查詢功能,編寫了以下查詢函數。(1) 客戶信息查詢: bool locateElem_L(LinkList L,string e)/按值查找 LNode *p = L->next;while(p)if(p->data.CCardNumber=e)break;else if(p->data.CNumber

19、=e)break;else if(p->data.CName=e)break;p = p->next;if(p)cout<<"客戶編號 "<<"身份證號 "<<"客戶名稱 "<<"消費金額 "<<"客戶積分"<<endl;cout<<p->data.CCardNumber<<" "<<p->data.CNumber<<" &

20、quot;<<p->data.CName<<" "<<p->data.CBuy<<" "<<p->data.CGrade<<endl;return true;elsecout<<"不存在此客戶!"<<endl;return false;(2) 客戶消費情況查詢: bool locateElem_P(LinkListP L,string e)/按值查找|遍歷查詢 int i,j;bool flag = false;LPode

21、 *p = L->next;while(p)if(p->data.Cardnum=e)break;p = p->next;if(p)cout<<"客戶名稱 "<<"產品名稱 "<<"消費數量 "<<endl;if(p->data.CPN.mount0<0)flag = true;for(i=0,j=0; p->data.CPN.mountj>0; i+,j+)cout<<e<<" "<<p-

22、>data.CPN.ProNamei<<" "<<" "<<p->data.CPN.mountj<<endl;if(flag)cout<<"無消費記錄!"<<endl;return true;elsecout<<"不存在此客戶!"<<endl;return false; 2.2.6 購買產品的函數函數原型:void purchase(LinkList L,LinkListP PI)在此函數中,用戶只需按照系統

23、所提示的每一步操作,即可完成產品的購買,并且可以對用戶輸入的信息作出相應的回應。當用戶輸入的信息在數據庫中不存在的時候就會作出反饋,結束用戶的操作。購買產品主要先是選擇購買商品的功能的序號然后回車,系統會給出請輸入客戶的姓名,回車后如果沒有用戶所輸入的客戶姓名的話,系統則會自動提示用戶沒有該信息,并結束用戶繼續完成購買操作。如果存在這個用戶的話,就會把該客戶的客戶信息打印出來,然后提示用戶輸入購買的產品名稱和數量,主要代碼是:void purchase(LinkList L,LinkListP PI)LNode *p = L->next;LPode *pi = PI->next;b

24、ool flag1 = false,flag2 = false;string cname; /輸入的客戶名string proname; /輸入的產品名int count; /輸入的產品數量int i,j;cout<<"請輸入客戶的姓名: "<<endl;cin>>cname;while(p)if(p->data.CName=cname)flag1 = true;break;p = p->next;while(pi)if(pi->data.Cardnum=cname)flag2 =true;break;pi = pi-&

25、gt;next;if(p)cout<<p->data.CCardNumber<<" "<<p->data.CNumber<<" "<<p->data.CName<<" "<<p->data.CBuy<<" "<<p->data.CGrade<<endl;elsecout<<"不存在此客戶!"<<endl;cout<&l

26、t;"請輸入購買的產品名和數量"<<endl;cin>>proname>>count;if(flag1&&flag2)for(i=0,j=0; pi->data.CPN.mounti>0; i+,j+)if(pi->data.CPN.ProNamej=proname)pi->data.CPN.mounti = pi->data.CPN.mounti+count;if(pi->data.CPN.mounti<0)pi->data.CPN.mounti = count;pi-&g

27、t;data.CPN.ProNamej = proname;if(flag1)for(i=0; i<16; i+)if(proname = productioni.PName)if(p->data.CGrade>=50&&p->data.CGrade<=100)p->data.CBuy = p->data.CBuy + count*productioni.PPrice*0.95;p->data.CGrade = p->data.CGrade/2;else if(p->data.CGrade>100)p->d

28、ata.CBuy = p->data.CBuy + count*productioni.PPrice*0.85;p->data.CGrade = p->data.CGrade/2;elseif(count>3)p->data.CBuy = p->data.CBuy +count*productioni.PPrice; p->data.CGrade=p->data.CGrade+count*productioni.PGrade+count-3;elsep->data.CBuy = p->data.CBuy +count*producti

29、oni.PPrice;p->data.CGrade = p->data.CGrade+count*productioni.PGrade;2.2.7 修改客戶信息函數函數原型:void recompose(LinkList L,string numb)此函數首先會打印用戶要修改的客戶信息,然后再打印出一個子菜單讓用戶選擇不同的功能,進行修改該客戶不同的信息,然后要求用戶輸入要選擇的功能的編號。用戶只需按照系統給出的提示,就可以修改客戶的信息。2.3 算法及平臺分析 本系統用到的算法主要有鏈表的前插法、后插法及搜索等基本算法,沒有用到其它比較復雜的算法,操作起來簡單,并且容易控制;還用

30、到輸入輸出流的一些操作來使顯示的信息對稱,不凌亂;再就是一些文件操作,更改存儲文件中的內容,保存操作后的所有信息。本系統是在Microsoft Visual C+ 6.0上設計及運行的,所有的信息顯示均是在dos界面中顯示出來,利用system("color 0B")操作使主界面以黑色為背景,前景色為亮藍色,而其它界面顯示及字的顯示均為綠色。并且在每一步操作后,都利用system("cls")對dos界面進行清屏,使顯示器顯示的信息清晰、整齊。3 實現方法 通過對設計題目的深入分析,及題目的要求,在設計時,主要實現八大功能模塊,大致滿足一個客戶消費積分管

31、理系統系統的基本需要,主要的流程及實現方法請看下面的報告。3.1 客戶消費積分管理系統系統框架圖客戶消費積分管理系統返回首面查詢客戶消費狀況 退出系統購買產品顯示所有客戶信息修改客戶信息查詢客戶信息增加或刪除客戶 客戶編號客戶名稱客戶消費產品星客戶信息 客戶身份證號產品名稱 客戶姓名 客戶消費金額 消費產品數量 客戶積分 3.2 客戶消費積分管理系統系統主函數流程圖結束修改客戶信息顯示所有客戶信息退出系統購買產品返回首面查詢客戶消費狀況初始化錄入函數顯示函數輸入work值switch(work)開始查詢客戶信息增加或刪除客戶4 調試問題在制作和編寫系統的過程中,碰到不少問題。在著手寫代碼時,我

32、首先把主界面設計好,并按照主界面上顯示的各種功能設計各個函數,這樣不至于太盲目了。可是當我測試主界面時,出現了好多問題,出現好多函數沒有聲明的錯誤,然后把所有的屏蔽掉,就可以運行了。接著就是寫第一個讀取文件中的信息的函數,本想用二進制進行讀寫操作,但是使用之后,輸出的信息全是些亂碼,最后也只能確定用ASCII碼進行讀寫了。在寫到購買產品函數的時候,由于每一次購買后,都要把信息儲存到文件中去,所以要用到寫入文件操作,但是由于項目比較多,所以在編寫代碼的時候漏掉了終點時間沒有寫入,所以在保存后,退出系統后重新啟動系統時,讀入函數讀入客戶信息和客戶消費信息時,在文件中所能讀到的信息就缺少了一項,所以

33、會把后面的信息讀入到鏈表的頭表中去,從而使數據讀入時出現交錯錯誤,使一些變量沒有讀得信息,從而在顯示的時候,就會打印出亂碼,這個錯誤在我找了好久,才從文件的數據中找到。還有個問題就是顯示方面的。在寫那些函數時,總會清屏上一次的屏幕,把函數寫完之后,也會做同樣的工作,所以在運行到system(“cls”)時,就會清除屏幕信息而顯示其它內容。所以要想清晰看到每次操作的信息,就要延遲system(“cls”)的執行。在沒有做處理之前,總會出現一閃而過的現象,一瞬即逝,根本看不清所要顯示的信息。在system(“cls”)前加上兩行getchar()函數,它會吸收一個回車,然后再等待用戶輸入一個字符來

34、結束當前的操作,所以在用戶進入下一個操作時,按下任意一個鍵就行了。這使得用戶可以看清自己想要的信息,做好下一步操作的準備工作。當然,在編寫代碼調試程序的時候,還碰到很多大大小小的問題,但在自己一遍又一遍的調試中改正了,從而使系統的功能更加完善,使系統的功能更從人性化,容錯能力更加強大。但是系統還有可能有這樣或那樣的問題,只是自己沒有發現,在測試過程中,沒有用到一些特別的樣例,可能會使系統崩潰,我想這也是可能的,希望老師加以指正和指導。5 系統的使用說明書對于整個系統的使用及每一次你所作出選擇和操作之后會出現什么樣的界面及操作結果,在下面的說明中作出詳細的說明及展示,具體如下所示。5.1 主界面

35、說明當運行系統時,首先進入的是主界面,顯示了整個系統所提供的功能選項,在最后一行有提示讓您輸入你所要選擇的功能項。如下所示:5.2 查詢客戶信息功能介紹根據系統的提示選擇主界面的功能的序號,輸入查詢客戶信息功能的序號1回車,系統就會打印出客戶信息。5.3 增加或刪除功能介紹根據系統的提示選擇主界面的功能的序號,鍵入2進行增加或刪除功能的操作,但是這個時候,系統會打印出一個信息對用戶進行提示,若用戶要求進行刪除操作就需要客戶鍵入1,若客戶要求進行增加客戶的操作就需要用戶鍵入2,刪除的具體操作如下所示用戶若是增加客戶,鍵入2時,系統會打印出一些增加客戶所需要的輸入的信息,用戶需要按照系統給出的提示

36、,輸入客戶的信息,添加成功后系統會打印出增加成功的字樣進行提示,增加客戶的操作如下所示5.4 修改客戶信息功能介紹首先根據系統的提示選擇主界面的功能的序號,鍵入3回車后,系統會彈出一個修改客戶信息的子菜單和要修改的客戶的客戶信息。用戶可以按照子菜單上的功能編號進行選擇,然后鍵入相應的編號。例如以下就是鍵入功能編號D之后,就可以修改客戶的消費金額。根據系統提示鍵入新的客戶消費金額。成功之后,系統會彈出提示修改成功!5.5 查詢客戶信息功能介紹首先根據系統的提示選擇主界面的功能的序號,鍵入4回車后,用戶就可以看到所有客戶的信息資料。5.6 購買產品功能介紹選擇購買產品功能,需要首先根據系統的提示選

37、擇主界面的功能的序號,鍵入5回車后,系統會彈出“請輸入客戶的姓名”提示,用戶就需要填寫客戶的姓名,回車之后系統會彈出該客戶的一些信息,然后系統給出提示,要用戶填入需要購買的產品的名稱和數量。購買之后系統會彈出“購買成功”的提示。5.7 查詢客戶消費資料功能介紹首先根據系統的提示選擇主界面的功能的序號,鍵入6回車后,系統會彈出“請輸入客戶的姓名”提示,用戶就需要填寫客戶的姓名,回車之后系統會彈出該客戶的一些消費記錄信息。5.8 退出系統功能首先根據系統的提示選擇主界面的功能的序號,鍵入8回車后,系統就會彈出“是否確定退出,是,請輸入yes,否請輸入no!:”提示,需要用戶根據選擇進行鍵入。最后系

38、統會詢問用戶是否要對之前的一些操作,進行保存,如果需要的話,用戶可以根據提示,鍵入yes,如果不需要保存的話,用戶可以根據提示,鍵入no。系統就不會保存之前的一切操作而退出系統。6 結論經過幾天的忙碌,最終把課程設計任務完成了。要做好一件事,只能一步一步的去做,不可能一下子就完成。本來以為簡單的幾個功能,要實現以為很容易,至多一天就可以做完,可是在真正實現、編寫代碼的過程卻發現有太多的問題沒有解決。比如要存儲哪些數據,用什么方式存儲;用怎么樣的結構去保存各種數據等。要做好一個系統,一個嚴謹的思維是不可以或缺的,每一個聯系都要考慮,每個細節都需要注意,每一種錯誤都要會解決。只有把每一種問題都解決

39、了,才能做出一個完善的系統出來。參考文獻 1譚浩強.C程序設計(第三版). 北京: 清華大學出版社,20052嚴蔚敏著.吳偉民.數據結構(C語言版). 北京: 清華大學出版社,20073譚浩強著.C+程序設計. 北京:清華大學出版社,2004.6源代碼:(注:此處包含兩個文件1、main.cpp 2、head.h ,將代碼分邊寫入兩個文件中置于一個目錄下)Main.cpp代碼如下:#include <iostream>#include <string>#include <fstream>#include "head.h"using nam

40、espace std;void face()cout<<"="cout<<"* ÷ÈÁ¦¾Æ°É(¿Í»§Ïû·Ñ»ý·Ö¹ÜÀíϵͳ) *"cout<<"*±¾¾Æ°É

41、ÌṩµÄ²úÆ·ÈçÏ£º *"cout<<"* Æ¡ ¾Æ *Çൺơ¾Æ *Ñྩơ¾Æ *Ñ©»¨Æ¡¾Æ

42、*"cout<<"* *°ÙÍþÆ¡¾Æ *"cout<<"* °×¾Æ *ÀÉ¾Æ *·Ú¾Æ *ę́ *"cout<<"* *ÎåÁ¸Òº *½ðÁù

43、84;£ *¾Æ¹í¾Æ *"cout<<"* ºì¾Æ *À­·Æºì¾Æ *ÏãéÄ *»ªÏij¤³Ç *"cout<<"* *ÍþÁú *ÕÅÔ&#

44、163; *¹Ú½Ý *"cout<<"*=*"cout<<"*ÇëÑ¡Ôñ±¾ÏµÍ³ÌṩÒÔϹ¦ÄܵÄÐòºÅ *"cout<<"* 1¡&

45、#162;²éѯ¿Í»§ÐÅÏ¢ 2¡¢Ôö¼Ó»òɾ³ý¿Í»§ *"cout<<"* 3¡¢Ð޸Ŀͻ§ÐÅÏ¢ 4¡

46、2;ÏÔʾËùÓпͻ§ÐÅÏ¢ *"cout<<"* 5¡¢¹ºÂò²úÆ· 6¡¢²éѯ¿Í»§Ïû·Ñ×´¿ö *&

47、quot;cout<<"* 7¡¢·µ»ØÊ×Ãæ 8¡¢Í˳öϵͳ *"cout<<"="void recompose(LinkList L,string numb)LNode *p = L->next;char ch;float cont;string str;while(p)if(p->data.CCardNu

48、mber=numb)break;else if(p->data.CNumber=numb)break;else if(p->data.CName=numb)break;p = p->next;if(p)cout<<"ÄúÒªÐ޸ĵĿͻ§ÐÅÏ¢:"<<p->data.CCardNumber<<" "<&l

49、t;p->data.CNumber<<" "<<p->data.CName<<" "<<p->data.CBuy<<" "<<p->data.CGrade<<endl;cout<<"*"<<endl;cout<<"A¡¢Ð޸Ŀͻ§±à

50、86;Å "<<"B¡¢Ð޸Ŀͻ§Éí·ÝÖ¤ºÅ "<<endl; cout<<"C¡¢Ð޸Ŀͻ§Ãû³Æ "<<"D¡¢

51、08;޸Ŀͻ§Ïû·Ñ½ð¶î "<<endl;cout<<"E¡¢Ð޸Ŀͻ§»ý·Ö "<<endl;cout<<"*"<<endl;cout<<"Ç&#

52、235;Ñ¡Ôñ¹¦ÄܱàºÅ: "cin>>ch;switch (ch)case'A':case'a':cout<<"ÊäÈëеĿͻ§±àºÅ: "cin>>str;p->data.CCardNumber

53、 = str;cout<<"Ð޸ijɹ¦!"<<endl;break;case'B':case'b':cout<<"ÊäÈëеĿͻ§Éí·ÝÖ¤ºÅ: "cin>>str;p->da

54、ta.CNumber = str;cout<<"Ð޸ijɹ¦!"<<endl;break;case'C':case'c':cout<<"ÊäÈëеĿͻ§Ãû³Æ: "cin>>str;p->data.CName = str

55、;cout<<"Ð޸ijɹ¦!"<<endl;break;case'D':cout<<"ÊäÈëеĿͻ§Ïû·Ñ½ð¶î: "cin>>cont;p->data.CBuy = cont;cout&l

56、t;<"Ð޸ijɹ¦!"<<endl;break;case'E':case'e':cout<<"ÊäÈëеĿͻ§»ý·Ö: "cin>>cont;p->data.CGrade = cont;cout<<"&

57、#208;޸ijɹ¦!"<<endl;break;default:cout<<"Ð޸ĴíÎó!"<<endl;break;elsecout<<"²»´æÔڴ˿ͻ§!"<<endl;void purchase

58、(LinkList L,LinkListP PI)LNode *p = L->next;LPode *pi = PI->next;bool flag1 = false,flag2 = false;string cname; /ÊäÈëµÄ¿Í»§Ãûstring proname; /ÊäÈëµÄ²úÆ·Ãûint count; /Ê&#

59、228;ÈëµÄ²úÆ·ÊýÁ¿int i,j;int work;cout<<"ÇëÊäÈë¿Í»§µÄÐÕÃû: "<<endl;cout<<"¼ÌÐøÇëÊäÈ

60、ë1£¬·µ»ØÇëÊäÈë2"<<endl;cin>>work;if(work=2)system("cls");face(); return;else if(work!=1&&work!=2)cout<<"ÊäÈë´íÎó!"<<endl;system("cls&

61、quot;);face(); return;cin>>cname;while(p)if(p->data.CName=cname)flag1 = true;break;p = p->next;while(pi)if(pi->data.Cardnum=cname)flag2 =true;break;pi = pi->next;if(p)cout<<p->data.CCardNumber<<" "<<p->data.CNumber<<" "<<p->

62、;data.CName<<" "<<p->data.CBuy<<" "<<p->data.CGrade<<endl;elsecout<<"²»´æÔڴ˿ͻ§!"<<endl;return;cout<<"ÇëÊäÈ빺

63、;ÂòµÄ²úÆ·ÃûºÍÊýÁ¿"<<endl;cin>>proname>>count;if(flag1&&flag2)for(i=0,j=0; pi->data.CPN.mounti>0; i+,j+)if(pi->data.CPN.ProNamej=proname)pi->data.CPN.mounti = pi->data.CPN.mou

64、nti+count;if(pi->data.CPN.mounti<0)pi->data.CPN.mounti = count;pi->data.CPN.ProNamej = proname;if(flag1)for(i=0; i<16; i+)if(proname = productioni.PName)if(p->data.CGrade>=50&&p->data.CGrade<=100)p->data.CBuy = p->data.CBuy + count*productioni.PPrice*0.95;p->data.CGrade = p->data.CGrade/2;else if(p->data.CGrade>100)p->

溫馨提示

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

評論

0/150

提交評論