數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)客戶消費(fèi)積分系統(tǒng)_第1頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)客戶消費(fèi)積分系統(tǒng)_第2頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)客戶消費(fèi)積分系統(tǒng)_第3頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)客戶消費(fèi)積分系統(tǒng)_第4頁
數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)客戶消費(fèi)積分系統(tǒng)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、課程設(shè)計(jì)報(bào)告 設(shè)計(jì)題目: 客戶消費(fèi)積分系統(tǒng) 學(xué)院、系: 電子與信息工程學(xué) 院 專業(yè)班級: 學(xué)生姓名: 指導(dǎo)教師: 成 績: 2013年 1 月 8 日目錄1、 需求分析21.1問題描述31.2基本要求32、概要設(shè)計(jì)32.1數(shù)據(jù)結(jié)構(gòu).42.2程序模塊.4 2.3各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì).43、詳細(xì)設(shè)計(jì).54、測試與分析.65、總結(jié).106、附錄.111、需求分析:11問題描述1、采用動(dòng)態(tài)分配順序表存儲(chǔ)客戶信息,并用文件保存和讀寫數(shù)據(jù)2、能對客戶信息進(jìn)行添加、查詢、修改、刪除等基本操作3、根據(jù)客戶消費(fèi)額,合理計(jì)算出客戶消費(fèi)所得積分4、根據(jù)客戶積分值,實(shí)行不同情況的優(yōu)惠(即計(jì)算折扣)12基本

2、要求進(jìn)行添加客戶時(shí)要注意不能超過所定義數(shù)組的最大容量,查找時(shí)輸入的身份證號要求為18位,本程序能對客戶信息進(jìn)行添加、查詢、修改、刪除等基本操作,根據(jù)客戶消費(fèi)額,合理計(jì)算出客戶消費(fèi)所得積分,根據(jù)客戶積分值,實(shí)行不同情況的優(yōu)惠。2、 概要設(shè)計(jì) :1. 數(shù)據(jù)結(jié)構(gòu) 線性表的抽象數(shù)據(jù)類型定義initlist前置條件:線性表不存在輸入:無功能:線性表的初始化輸出:無后置條件:一個(gè)空的線性表destroylist前置條件:線性表已存在輸入:無功能:銷毀線性表輸出:無后置條件:釋放線性表所占的內(nèi)存空間length前置條件:線性表已存在輸入:無功能:求線性表的長度輸出:線性表中元素個(gè)數(shù)后置條件:、線性表不變ge

3、t前置條件:線性表已存在輸入:元素的序號i 功能:在線性表中去序號為i的元素輸出:如果序號合法,返回序號為i的元素值,否則拋出異常后置條件:、線性表不變insert前置條件:線性表已存在輸入:插入位置i ,插入元素x功能:在線性表的第i個(gè)位置,插入元素x輸出:若插入不成功,拋出異常后置條件:若插入成功,表中增加了一個(gè)元素delete前置條件:線性表已存在輸入:刪除位置i功能:刪除線性表的第i個(gè)元素輸出:若刪除成功,返回被刪除元素,否則拋出異常后置條件:若刪除成功,表中減少了一個(gè)元素print前置條件:線性表已存在輸入:無功能:按位置的先后次序依次輸出線性表中的元素輸出:線性表中的各個(gè)元素 后置

4、條件:線性表不變 2. 程序模塊主函數(shù)main() 動(dòng)態(tài)獲取表空間,初始化鏈表,打開文件將客戶數(shù)據(jù)加載入表中,進(jìn)行表操作,操作結(jié)束將表數(shù)據(jù)保存到文件,文件關(guān)閉。2.1添加客戶信息 遍歷當(dāng)前單鏈表,若待添加的用戶編號已存在,則返回用戶已存在的提示信息;若待添加的用戶不存在,則將該客戶信息添加到順序表最后,并將單鏈表表長度加1。2.2刪除客戶信息 遍歷當(dāng)前順序表,若要?jiǎng)h除的用戶標(biāo)號不存在,則返回提示信息;否則提示用戶是否確定刪除,確定即刪除。刪除操作即將待刪除記錄的后面記錄依次向前移動(dòng)1步。2.3更改客戶信息遍歷當(dāng)前單鏈表,若待更改的用戶編號不存在,則返回用戶不存在的提示信息;若待添加的用戶存在,

5、則提示輸入新的信息。2.4 查找客戶信息輸入待查找用戶的身份證號,若存在則返回用戶的信息2.5 顯示客戶信息遍歷整個(gè)單鏈表,顯示當(dāng)前所有客戶2.6 統(tǒng)計(jì)客戶遍歷單鏈表,統(tǒng)計(jì)當(dāng)前鏈表中所有客戶的總數(shù)3. 各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì) 添加客戶信息客戶消費(fèi)積分管理系統(tǒng)查找客戶信息刪除客戶信息更改客戶信息顯示客戶信息統(tǒng)計(jì)客戶總數(shù)客戶消費(fèi)積分管理系統(tǒng)功能3、詳細(xì)設(shè)計(jì) 添加客戶信息偽代碼:1.初始化工作指針p,申請空的結(jié)點(diǎn)空間;2.輸入姓名,輸入身份證號;3.若省份證號不等于18,輸出輸入有誤,否則輸入消費(fèi)金額,并調(diào)用函數(shù)進(jìn)行折扣計(jì)算 ;查找客戶信息:1. 初始化工作指針p,工作指針p指向頭結(jié)點(diǎn),并

6、定義折扣;2.判斷p是否為空,若為空,輸出無用戶,否則p后移直到身份證號相同;3若相同調(diào)用函數(shù)計(jì)算折扣;更改客戶信息:1. 初始化工作指針p ,定義折扣和續(xù)加金額;2. 判斷指針p是否為空,若為空輸出沒有客戶,否則p后移;3. 判斷身份證號是否相同,若相同輸出姓名、身份證號、消費(fèi)、折扣、積分;4. 輸入要修改的項(xiàng)目;4.1選擇1,輸入修改后的姓名 4.2 選擇2,輸入修改后的身份證號4.3選擇3,覆蓋以前消費(fèi)、續(xù)加上現(xiàn)在費(fèi)用;5. 調(diào)用積分函數(shù),計(jì)算折扣;刪除客戶信息:1. 初始化工作指針p ,定義折扣;2判斷指針p是否為空,若為空輸出沒有客戶,否則p后移;3判斷身份證號是否相同,若相同輸出姓

7、名、身份證號、消費(fèi)、折扣、積分;4選擇是否刪除,選1返回刪除成功,選2,返回刪除失??;顯示客戶信息:1初始化工作指針p ,定義折扣;2判斷指針p是否為空,若為空輸出沒有客戶,否則p后移;3輸出每位姓名、身份證號、消費(fèi)、折扣、積分統(tǒng)計(jì)客戶信息:1初始化工作指針p ,累加器i初始化;2判斷指針p是否為空,若為空輸出沒有客戶,否則p后移;3累加器i加1;4輸出現(xiàn)有客戶數(shù)量i位;計(jì)算折扣函數(shù):1. 定義折扣discount2. 若積分為0,則折扣為0;若積分大于0小于50,則折扣為9;若積分大于等于50,于100,則折扣為8,;若積分大于等于100,小于等于150,則折扣為7;若積分大于等于150,小

8、于等于200,則折扣為7;若積分大于等于150,小于等于200,則折扣為6.5若積分大于等于200,小于等于300,則折扣為6,;若積分大于300,折扣為6.4、測試與分析 添加客戶信息:查找客戶信息:修改客戶信息:刪除客戶信息:顯示客戶:統(tǒng)計(jì)客戶:退出:5、總結(jié): 在本次課程設(shè)計(jì)當(dāng)中,我對許多以往掌握不夠熟練或者是使用較少而易忽略的知識點(diǎn)有了一定的掌握,而且通過本次試驗(yàn)提高了我的實(shí)際操作能力,在編寫代碼的過程當(dāng)中,我通過查閱有關(guān)的資料和分析實(shí)例,從中學(xué)到了很多能夠不斷優(yōu)化自己代碼,可以提高代碼利用率的知識,并且更加合理的構(gòu)建了各個(gè)知識點(diǎn)之間的聯(lián)系,充分的利用了循環(huán)和選擇性語句,在存儲(chǔ)過程中,

9、對文件的部分知識也有了一個(gè)深層次的了解和掌握,對于如何修改文件信息以及保存有了一定的概念和運(yùn)用。 當(dāng)然,在代碼的編寫過程中,也遇到了許多問題,我通過自身的努力去改正它們,在這個(gè)過程中我也學(xué)到了很多東西,在代碼的調(diào)試過程中,我碰到了許多以前所沒有碰到過的錯(cuò)誤,但通過同學(xué)的幫助解決了這些困難,并且自身得到了一定的提高。通過本學(xué)期的學(xué)習(xí)我對數(shù)據(jù)結(jié)構(gòu)有了更深的了解,數(shù)據(jù)結(jié)構(gòu)重在思想,通過學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的思想和c+結(jié)合來編寫程序,雖然現(xiàn)在編程仍有許多困難,但以后的學(xué)習(xí)中,我會(huì)更加努力,希望能夠不斷的提高自己!6、 附錄:源程序#includeusing namespace std;struct cnode

10、char name20;char id20;double consume;double integer;struct cnode *next;void initstack(cnode * &head) head= new cnode; head-next=null;void getelem (cnode *head);void search(cnode *head,char id);void amend(cnode *head,char id);void delete(cnode *head,char id);void showall(cnode *head);void count(cnode

11、 *head);double display_discount(double integer);void main() cnode *head; int choice;char y20;initstack(head); docoutn;cout 客戶消費(fèi) 積分管理系統(tǒng) nn;cout *;coutn * *n;coutn * 主菜單 *n;coutn * 1 添加客戶 *n;coutn * 2 查找客戶 *n;coutn * 3 修改客戶 *n;coutn * 4 刪除客戶 *n;coutn * 5 顯示客戶 *n;coutn * 6 統(tǒng)計(jì)客戶 *n;coutn * 7 退出 *n;coutn

12、 * *n;cout *;coutchoice;if(choice=1)getelem(head); else if(choice=2) couty;while(strlen(y)!=18)couty; search(head,y); else if(choice=3)couty;while(strlen(y)!=18)couty;amend(head,y); else if(choice=4)coutn;couty;delete(head,y); else if(choice=5)coutn;showall(head); else if(choice=6)coutn;count(head);

13、 else if(choice=7)exit(1);while(choice=7);void getelem (cnode *head) cnode *p;double y;p=new cnode; /*申請空的節(jié)點(diǎn)空間*/coutp-name;coutp-id;while(strlen(p-id)!=18)coutp-id;coutp-consume;p-integer=p-consume/100;y=display_discount(p-integer); cout折扣:;couty;coutnext=head-next;head-next=p;void search(cnode *hea

14、d,char id)cnode *p;double y;p=head;if(p-next=null)coutnext!=null)p=p-next;if(strcmp(id,p-id)=0) cout姓名:;coutname;cout身份證號:;coutid;cout消費(fèi):;coutconsume;cout積分:;coutinteger;y=display_discount(p-integer);cout折扣:;couty;coutnext=null)coutnext!=null)p=p-next;if(strcmp(id,p-id)=0) cout姓名:;coutname;cout身份證號:

15、;coutid;cout消費(fèi) ;coutconsume;cout積分:;coutinteger;y=display_discount(p-integer);cout折扣:;couty;cout折n;coutchoose;if(choose=1)coutp-name;if(choose=2)coutp-id;while(strlen(p-id)!=18)coutp-id;if(choose=3)coutx;if(x=1)coutp-consume;elsecoutz;p-consume+=z;cout姓名:;coutname;cout身份證號:;coutid;cout消費(fèi):;coutconsum

16、e; p-integer=p-consume/100;cout積分:;coutinteger;y=display_discount(p-integer);cout折扣:;couty;coutnext=null)coutnext!=null)head=p;p=p-next;if(strcmp(id,p-id)=0) cout姓名:;coutname;cout身份證號:;coutid;cout消費(fèi):;coutconsume;cout積分:;coutinteger;y=display_discount(p-integer);cout折扣:;couty;cout折n;coutx;if(x=1)head-next=p-next;cout刪除成功!;elsecoutnext=null)coutnext!=null)p=p-next;c

溫馨提示

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

評論

0/150

提交評論