版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程設(shè)計(jì)報(bào)告設(shè)計(jì)題目:客戶(hù)消費(fèi)積分系統(tǒng)學(xué)院、系:電子與信息工程學(xué)院專(zhuān)業(yè)班級(jí):學(xué)生姓名:指導(dǎo)教師:成 績(jī):2013年 1月 8日目錄1、需求分析 21.1問(wèn)題描述 31.2基本要求32、概要設(shè)計(jì)32.1數(shù)據(jù)結(jié)構(gòu).42.2程序模塊.42.3各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì) .43、詳細(xì)設(shè)計(jì).54、測(cè)試與分析.65、總結(jié) .10&附錄 .111、需求分析:11 問(wèn)題描述1、采用動(dòng)態(tài)分配順序表存儲(chǔ)客戶(hù)信息,并用文件保存和讀寫(xiě)數(shù)據(jù)2、能對(duì)客戶(hù)信息進(jìn)行添加、查詢(xún)、修改、刪除等基本操作3、根據(jù)客戶(hù)消費(fèi)額,合理計(jì)算出客戶(hù)消費(fèi)所得積分4、根據(jù)客戶(hù)積分值,實(shí)行不同情況的優(yōu)惠(即計(jì)算折扣)12 基本要求 進(jìn)
2、行添加客戶(hù)時(shí)要注意不能超過(guò)所定義數(shù)組的最大容量, 查找時(shí)輸入的身份證號(hào) 要求為 18 位,本程序能對(duì)客戶(hù)信息進(jìn)行添加、查詢(xún)、修改、刪除等基本操作, 根據(jù)客戶(hù)消費(fèi)額, 合理計(jì)算出客戶(hù)消費(fèi)所得積分, 根據(jù)客戶(hù)積分值, 實(shí)行不同情 況的優(yōu)惠。2、概要設(shè)計(jì) :1. 數(shù)據(jù)結(jié)構(gòu) 線性表的抽象數(shù)據(jù)類(lèi)型定義InitList 前置條件:線性表不存在 輸入:無(wú)功能:線性表的初始化輸出:無(wú) 后置條件:一個(gè)空的線性表DestroyList 前置條件:線性表已存在 輸入:無(wú)功能:銷(xiāo)毀線性表輸出:無(wú) 后置條件:釋放線性表所占的內(nèi)存空間Length 前置條件:線性表已存在 輸入:無(wú)功能:求線性表的長(zhǎng)度 輸出:線性表中元素個(gè)
3、數(shù) 后置條件:、線性表不變Get 前置條件:線性表已存在 輸入:元素的序號(hào) i 功能:在線性表中去序號(hào)為 i 的元素 輸出:如果序號(hào)合法,返回序號(hào)為 i 的元素值,否則拋出異常 后置條件:、線性表不變Insert前置條件:線性表已存在輸入:插入位置 i ,插入元素 x功能:在線性表的第 i 個(gè)位置,插入元素 X 輸出:若插入不成功,拋出異常 后置條件:若插入成功,表中增加了一個(gè)元素 Delete前置條件:線性表已存在 輸入:刪除位置 i 功能:刪除線性表的第 i 個(gè)元素 輸出:若刪除成功,返回被刪除元素,否則拋出異常 后置條件:若刪除成功,表中減少了一個(gè)元素 Print前置條件:線性表已存在
4、輸入:無(wú) 功能:按位置的先后次序依次輸出線性表中的元素 輸出:線性表中的各個(gè)元素 后置條件:線性表不變2. 程序模塊 主函數(shù) main()動(dòng)態(tài)獲取表空間,初始化鏈表,打開(kāi)文件將客戶(hù)數(shù)據(jù)加載入表中,進(jìn)行表操 作,操作結(jié)束將表數(shù)據(jù)保存到文件,文件關(guān)閉。2.1 添加客戶(hù)信息 遍歷當(dāng)前單鏈表,若待添加的用戶(hù)編號(hào)已存在,則返回用戶(hù)已存在的提示 信息;若待添加的用戶(hù)不存在, 則將該客戶(hù)信息添加到順序表最后, 并將單鏈表 表長(zhǎng)度加 1。2.2 刪除客戶(hù)信息 遍歷當(dāng)前順序表,若要?jiǎng)h除的用戶(hù)標(biāo)號(hào)不存在,則返回提示信息;否則提 示用戶(hù)是否確定刪除,確定即刪除。刪除操作即將待刪除記錄的后面記錄依次向前移動(dòng) 1 步。
5、2.3 更改客戶(hù)信息 遍歷當(dāng)前單鏈表,若待更改的用戶(hù)編號(hào)不存在,則返回用戶(hù)不存在的提示信息; 若待添加的用戶(hù)存在,則提示輸入新的信息。2.4 查找客戶(hù)信息 輸入待查找用戶(hù)的身份證號(hào),若存在則返回用戶(hù)的信息2.5 顯示客戶(hù)信息 遍歷整個(gè)單鏈表,顯示當(dāng)前所有客戶(hù)2.6 統(tǒng)計(jì)客戶(hù) 遍歷單鏈表,統(tǒng)計(jì)當(dāng)前鏈表中所有客戶(hù)的總數(shù)3. 各模塊之間的調(diào)用關(guān)系以及算法設(shè)計(jì)3、詳細(xì)設(shè)計(jì)添加客戶(hù)信息偽代碼:1初始化工作指針 P,申請(qǐng)空的結(jié)點(diǎn)空間;2輸入姓名,輸入身份證號(hào);3若省份證號(hào)不等于18,輸出輸入有誤,否則輸入消費(fèi)金額,并調(diào)用函數(shù)進(jìn)行折扣計(jì)算;查找客戶(hù)信息:1. 初始化工作指針P,工作指針P指向頭結(jié)點(diǎn),并定義折
6、扣;2判斷P是否為空,若為空,輸出無(wú)用戶(hù),否則P后移直到身份證號(hào)相同;3 若相同調(diào)用函數(shù)計(jì)算折扣; 更改客戶(hù)信息:1. 初始化工作指針p,定義折扣和續(xù)加金額;2. 判斷指針P是否為空,若為空輸出沒(méi)有客戶(hù),否則p后移;3. 判斷身份證號(hào)是否相同,若相同輸出姓名、身份證號(hào)、消費(fèi)、折扣、積分;4. 輸入要修改的項(xiàng)目;4.1選擇1,輸入修改后的姓名 4.2選擇2,輸入修改后的身份證號(hào) 4.3選擇3,覆蓋以前消 費(fèi)、續(xù)加上現(xiàn)在費(fèi)用;5. 調(diào)用積分函數(shù),計(jì)算折扣;刪除客戶(hù)信息:1.初始化工作指針p,定義折扣;2判斷指針P是否為空,若為空輸出沒(méi)有客戶(hù),否則p后移;3判斷身份證號(hào)是否相同,若相同輸出姓名、身份
7、證號(hào)、消費(fèi)、折扣、積分;4選擇是否刪除,選 1返回刪除成功,選 2,返回刪除失?。?顯示客戶(hù)信息:1初始化工作指針 p,定義折扣;2判斷指針P是否為空,若為空輸出沒(méi)有客戶(hù),否則p后移;3輸出每位姓名、身份證號(hào)、消費(fèi)、折扣、積分統(tǒng)計(jì)客戶(hù)信息:1初始化工作指針 p,累加器i初始化;2判斷指針P是否為空,若為空輸出沒(méi)有客戶(hù),否則p后移;3累加器i加1 ;4輸出現(xiàn)有客戶(hù)數(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、測(cè)試與分析添加客戶(hù)信息:客戶(hù)帖節(jié)積分管理系統(tǒng)” *請(qǐng)輸人您的應(yīng)莘CL, Z, 3t 4, 5t 6>?退出«附客戶(hù)*_D C+-FiDebugli xiaoton g .exe>8般S丄曉<1李號(hào)額工金SB姓屠.8 八人八汨 範(fàn)S!駅王菜單*1i耐悟戶(hù)*2查找客戶(hù)*查找客戶(hù)信息:修改客戶(hù)信息:統(tǒng)計(jì)客戶(hù)6退出刪除客戶(hù)豆示畧戶(hù)萱找喜戶(hù)修改客戶(hù)客H梢費(fèi)祀分菅璉系統(tǒng)證號(hào)t 肖費(fèi)t 1234;12 -3HJf
9、®:S 折2104219Z08310H肖夷 1234=12,:? *8 昂2.身份證號(hào)。3x瘠詡金頷。1:m英耳梵耳疋廉: Jt英耳疋耳耳幫斃鳶菱xa<g>E)ta<Kii:M請(qǐng)輸人堡的詵擇"2. 3. 4. 5, 6>=3 請(qǐng)輸入您想醪丐 生名:許R報(bào)筠 青輸人核改后姓刪除客戶(hù)信息:顯示客戶(hù): ' D C -Debugfi xiaotsrg.?ise土臬單 透加客門(mén) 沓找客口 修改客白 礎(chǔ)除客口顯示客白退岀請(qǐng)輸入您的選擇U 2, 3. 4, 5. 6)=5月身份證號(hào):21B4Z31?2fl8310855費(fèi);H45積'.分;口禺折汨洱
10、廝 許時(shí)任身俯證號(hào):21O4231?920831C844Vt位已和分:1氛旳折扣:¥8折 ¥:統(tǒng)計(jì)客戶(hù):退出:5、總結(jié): 在本次課程設(shè)計(jì)當(dāng)中,我對(duì)許多以往掌握不夠熟練或者是使用較少而易忽略的 知識(shí)點(diǎn)有了一定的掌握,而且通過(guò)本次試驗(yàn)提高了我的實(shí)際操作能力,在編寫(xiě)代碼的過(guò) 程當(dāng)中,我通過(guò)查閱有關(guān)的資料和分析實(shí)例,從中學(xué)到了很多能夠不斷優(yōu)化自己代碼, 可以提高代碼利用率的知識(shí),并且更加合理的構(gòu)建了各個(gè)知識(shí)點(diǎn)之間的聯(lián)系,充分的利 用了循環(huán)和選擇性語(yǔ)句,在存儲(chǔ)過(guò)程中,對(duì)文件的部分知識(shí)也有了一個(gè)深層次的了解和 掌握,對(duì)于如何修改文件信息以及保存有了一定的概念和運(yùn)用。當(dāng)然,在代碼的編寫(xiě)過(guò)
11、程中,也遇到了許多問(wèn)題,我通過(guò)自身的努力去改正它們,在這個(gè)過(guò)程中我也學(xué)到了很 多東西,在代碼的調(diào)試過(guò)程中,我碰到了許多以前所沒(méi)有碰到過(guò)的錯(cuò)誤,但通過(guò)同學(xué)的 幫助解決了這些困難,并且自身得到了一定的提高。通過(guò)本學(xué)期的學(xué)習(xí)我對(duì)數(shù)據(jù)結(jié)構(gòu)有 了更深的了解,數(shù)據(jù)結(jié)構(gòu)重在思想,通過(guò)學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)的思想和C+結(jié)合來(lái)編寫(xiě)程序,雖然現(xiàn)在編程仍有許多困難,但以后的學(xué)習(xí)中,我會(huì)更加努力,希望能夠不斷的提高自 己!6、附錄:源程序#in clude<iostream> using n amespace std; struct cnodechar n ame20;char ID20; double con s
12、ume; double in teger; struct cnode *n ext;void In itstack(c node * &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 *head);double displ
13、ay_discount(double integer); void main()cnode *head;int choice; char y20; Initstack(head);docout<<"客戶(hù)消費(fèi)積分管理系統(tǒng)nncout<<"*“ Jcout<<"n*n"cout<<"n*、t t I、/,主菜單*n"cout<<"n*1添加客戶(hù)*n"cout<<"n*2查找客戶(hù)*n"cout<<"n*3修改
14、客戶(hù)*n"cout<<"n*4刪除客戶(hù)*n"cout<<"n*5顯示客戶(hù)*n"cout<<"n*6統(tǒng)計(jì)客戶(hù)*n"cout<<"n*7退出*n"cout<<"n*n"cout<<"*"Jcout<<"n請(qǐng)輸入您的選擇 (1 ,2, 3,4,5,6cout<<"n".n.cin>>choice;if(choice=1)Getelem(
15、head);else if(choice=2)cout<<"n 請(qǐng)輸入您查找客戶(hù)的身份證號(hào)cin>>y;while(strlen(y)!=18)cout<<"身份證號(hào)碼位數(shù)有誤請(qǐng)重新輸入(18位):"cin>>y; Search(head,y);else if(choice=3)cout<<"n 請(qǐng)輸入您想修改客戶(hù)的身份證號(hào) : cin>>y;while(strlen(y)!=18)(18 位 ): "cout<<" 身份證號(hào)碼位數(shù)有誤請(qǐng)重新輸入 ci
16、n>>y; Amend(head,y);else if(choice=4) cout<<"n" cout<<" 請(qǐng)輸入你想要?jiǎng)h除的客戶(hù)的身份證號(hào): cin>>y;Delete(head,y);else if(choice=5) cout<<"n" Showall(head);else if(choice=6) cout<<"n" count(head);else if(choice=7) exit(1);while(choice<=7);void
17、Getelem (cnode *head)cnode *p; double y;p=new cnode;/* 申請(qǐng)空的節(jié)點(diǎn)空間 */cout<<" 請(qǐng)輸入姓名: "cin>>p->name;cout<<"請(qǐng)輸入身份證號(hào)(18位):"; cin>>p->ID;while(strlen(p->ID)!=18)(18 位 ): "cout<<" 身份證號(hào)碼位數(shù)有誤請(qǐng)重新輸入 cin>>p->ID;cout<<" 請(qǐng)輸入消費(fèi)金
18、額: ";cin>>p->consume; p->integer=p->consume/100; y=display_discount(p->integer);cout<<" 折扣 :";cout<<y; cout<<" 折 n"; p->next=head->next; head->next=p;void Search(cnode *head,char ID)cnode *p; double y; p=head; if(p->next=NULL)c
19、out<<" 沒(méi)有客戶(hù) !n";elsewhile(p->next!=NULL)p=p->next; if(strcmp(ID,p->ID)=0)cout<<"姓名:" cout<<p->name; cout<<" 身份證號(hào): " cout<<p->ID;cout<<" 消費(fèi): " cout<<p->consume;cout<<"積分:"cout<<p-
20、>integer; y=display_discount(p->integer); cout<<"折扣:"cout<<y;cout<<"折 n"void Amend(cnode *head,char ID)cnode *p;double y,z;int choose,x;p=head;if(p->next=NULL)cout<<" 沒(méi)有客戶(hù) !n"elsewhile(p->next!=NULL)p=p->next;if(strcmp(ID,p->ID)
21、=0) cout<<" 姓名: " cout<<p->name; cout<<" 身份證號(hào): " cout<<p->ID; cout<<" 消費(fèi) " cout<<p->consume;cout<<"積分:";cout<<p->integer; y=display_discount(p->integer); cout<<"折扣:"cout<<y; c
22、out<<"折 n"cout<<" 請(qǐng)選擇你要修改的 1、姓名。 2、身份證號(hào)。 3、消費(fèi)金額。 cin>>choose;if(choose=1) cout<<" 請(qǐng)輸入修改后姓名 ;" cin>>p->name; if(choose=2)cout<<" 請(qǐng)輸入修改后的身份證號(hào)(18 位 ):"!請(qǐng)選擇 :"cin>>p->ID; while(strlen(p->ID)!=18) cout<<"
23、; 身份證號(hào)碼位數(shù)有誤請(qǐng)重新輸入 cin>>p->ID;if(choose=3)cout<<"1. 覆蓋以前消費(fèi)、 2.續(xù)加上現(xiàn)在費(fèi)用 cin>>x;if(x=1)cout<<" 請(qǐng)輸入修改后的消費(fèi) :" cin>>p->consume;elsecout<<" 請(qǐng)輸入續(xù)加金額 :"cin>>z; p->consume+=z; cout<<" 姓名: " cout<<p->name; cout&l
24、t;<" 身份證號(hào): " cout<<p->ID; cout<<" 消費(fèi): " cout<<p->consume; p->integer=p->consume/100;cout<<"積分:";cout<<p->integer; y=display_discount(p->integer); cout<<"折扣:"cout<<y;cout<<"折 n"void
25、Delete(cnode *head,char ID)cnode *p; int x;double y;p=head;if(p->next=NULL)cout<<" 沒(méi)有客戶(hù) !n"elsewhile(p->next!=NULL)head=p;p=p->next;if(strcmp(ID,p->ID)=0) cout<<" 姓名: " cout<<p->name; cout<<" 身份證號(hào): " cout<<p->ID; cout<&
26、lt;" 消費(fèi): " cout<<p->consume;cout<<"積分:";cout<<p->integer; y=display_discount(p->integer); cout<<"折扣:"cout<<y;cout<<"折 n"cout<<" 你確認(rèn)刪除? 1、確定。 2、取消。請(qǐng)選擇 cin>>x;if(x=1) head->next=p->next; cout<<" 刪除成功 !"elsecout<<" 刪除失敗 !"void Showall(cnode *head)cnode *p;double y;p=head;if(p->next=NULL)cout<<" 沒(méi)有客戶(hù) !n"elsewhile(p->next!=NULL)p=p->next; cout<<" 姓名: " cout<<p->name; cout<<"
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 沈陽(yáng)理工大學(xué)《傳感與測(cè)試技術(shù)》2023-2024學(xué)年第一學(xué)期期末試卷
- 國(guó)有土地委托經(jīng)營(yíng)管理合同
- 合同編504條與民法典61條
- 大班音樂(lè)課件P《春雨沙沙》
- 2024年六盤(pán)水客運(yùn)從業(yè)資格證考試一點(diǎn)通
- 2024個(gè)人短期借款合同書(shū)
- 會(huì)議備忘錄范文6篇-20220308150300
- 2024中國(guó)工商銀行借貸合同范本
- 2024版家政服務(wù)合同樣本
- 2024個(gè)人小額貸款合同書(shū)范本
- 《萬(wàn)維網(wǎng)服務(wù)大揭秘》課件 2024-2025學(xué)年人教版新教材初中信息技術(shù)七年級(jí)全一冊(cè)
- 2024年新華社招聘應(yīng)屆畢業(yè)生及留學(xué)回國(guó)人員129人歷年高頻難、易錯(cuò)點(diǎn)500題模擬試題附帶答案詳解
- 人教版(2024新版)七年級(jí)上冊(cè)英語(yǔ)Unit 5單元測(cè)試卷(含答案)
- (完整版)新概念英語(yǔ)第一冊(cè)單詞表(打印版)
- 美食行業(yè)外賣(mài)平臺(tái)配送效率提升方案
- 中國(guó)民用航空局信息中心招聘筆試題庫(kù)2024
- 芯片設(shè)計(jì)基礎(chǔ)知識(shí)題庫(kù)100道及答案(完整版)
- 2025屆高考語(yǔ)文一輪復(fù)習(xí):文言文概括和分析 課件
- 年產(chǎn)10萬(wàn)套新能源車(chē)電池托盤(pán)項(xiàng)目可行性研究報(bào)告寫(xiě)作模板-申批備案
- 《大學(xué)美育》 課件 4.模塊五 第二十四章 時(shí)空綜合的影視藝術(shù)之美
- 2022-2023學(xué)年廣東省廣州市天河區(qū)六年級(jí)(上)期末數(shù)學(xué)試卷(含答案)
評(píng)論
0/150
提交評(píng)論