![客戶信息管理系統(tǒng)_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/26/d70afd03-c89f-45be-8efe-9355e237054f/d70afd03-c89f-45be-8efe-9355e237054f1.gif)
![客戶信息管理系統(tǒng)_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/26/d70afd03-c89f-45be-8efe-9355e237054f/d70afd03-c89f-45be-8efe-9355e237054f2.gif)
![客戶信息管理系統(tǒng)_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/26/d70afd03-c89f-45be-8efe-9355e237054f/d70afd03-c89f-45be-8efe-9355e237054f3.gif)
![客戶信息管理系統(tǒng)_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/26/d70afd03-c89f-45be-8efe-9355e237054f/d70afd03-c89f-45be-8efe-9355e237054f4.gif)
![客戶信息管理系統(tǒng)_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/26/d70afd03-c89f-45be-8efe-9355e237054f/d70afd03-c89f-45be-8efe-9355e237054f5.gif)
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、湖南第一師范學院信息科學與工程學院課程設計報告所屬專業(yè):計算機科學與技術課 程名稱:C+課程設計課程設計名稱:客戶信息管理系統(tǒng)學號:名:李碧秋指導教師:楊恒伏伍智平2015年12月湖南第一師范學院課程設計任務書2015-2016學年第1學期院(部)信息科學與工程學院專業(yè)計算機科學與技術班級14計科1班課程名稱:C+課程設計設計題目:客戶信息管理系統(tǒng)完成期限:自2015年12月28日至2016年/月8日共2周目的及任務1. 掌握面向對象程序設計語言2. C+的基本語法3. 掌握C+面向對象設計的思想4. 掌握VC+6.0與DEV C+開發(fā)工具的使用5. 運用標準C+規(guī)范
2、設計應用程序6. 遵循軟件過程的各個環(huán)節(jié)進行系統(tǒng)分析、設計、實現(xiàn)、集成、測試,并相應給出軟件規(guī)格說明書等文檔。進度安排起止日期工作內容2015.12.28選題,系統(tǒng)背景調查與文獻資料收集,實驗平臺構建2015.12.29 2015.12.31系統(tǒng)需求分析、系統(tǒng)概要設計、類的設計2016.1.1 2016.1.4系統(tǒng)詳細設計與編碼實現(xiàn)2016.1.52016.1.8系統(tǒng)測試與完善、文檔整理與課程設計報告撰寫鄭莉,董淵,何江舟著 C+語言程序設計(第4版)(清華大學出版社,2010.7主要參考資料2 (美)梅因等著,金名等譯.數(shù)據結構與面向對象程序設計(C+版)(第4版).清華大學出版社,2012
3、.53 梅險,曲蔚,孫建業(yè)編.C/C+程序設計案例教程實驗與實訓指導高等教音出師襯,2014.3指導教師(簽字): 教研室主任(簽字):目錄1. 客戶信息系統(tǒng)概述 5.1.1基本要求5.1.2主要功能5.1.3設計方法51.4系統(tǒng)開發(fā)的目的6.2. 總體設計5.2.1系統(tǒng)功能模塊5.2.2系統(tǒng)總體框架 6.2.3類的分類表 7.2.4系統(tǒng)關鍵算法流程圖8.3. 系統(tǒng)運行報告134. 系統(tǒng)評價 144.1系統(tǒng)的特點1.6.4.2系統(tǒng)的缺點1.6.4.3將來可能提出的要求 1.65. 系統(tǒng)調試出現(xiàn)的問題1.6.6. 總結仁77. 致謝168參考文獻1.7.9.源程序1.8.客戶信息管理系統(tǒng)設計報告
4、1. 客戶管理系統(tǒng)概述該系統(tǒng)主要處理客戶的相關信息。客戶信息主要包括:客戶編號、客戶名稱、所 在地區(qū)、聯(lián)系方式等內容。地區(qū)信息主要包括:編號、名稱等內容。完成以下的操作:客戶信息、地區(qū)信息的錄入、修改、刪除和查詢。1.1基本要求程序運行結果正確,操作方便,界面美觀,邏輯層次清楚,程序結構合理,文檔規(guī)范清晰。1.2主要功能要求:1)添加功能:能夠對客戶和地區(qū)信息進行添加。2)顯示功能:能夠對客戶和地區(qū)信息進行輸出,如未找到,顯示出相應的提 示信 息,如找到,則顯示相應信息。3)刪除功能:能夠對客戶和地區(qū)信息進行刪除,如未找到,顯示出相應的提 示信 息。顯示出相應的顯示出相應的4)查找功能:能夠按
5、編號對客戶和地區(qū)信息進行查找,如未找到,提示信息。5)修改功能:能夠按編號對客戶和地區(qū)信息進行修改,如未找到,提示信息。6)保存功能:能夠把客戶和地區(qū)信息保存為文件。7)讀取功能:可將保存在文件中的人員信息讀入到當前系統(tǒng)中,供用戶使用1.3設計方法1)應用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設計;2)分析系統(tǒng)中的各個實體與他們之間的關系;3)根據問題描述,設計系統(tǒng)的類層次;4)完成類層次中各個類的描述;5)完成類中各個成員函數(shù)的定義;6)完成系統(tǒng)的應用模塊;7)功能調試。1.4系統(tǒng)開發(fā)的目的1熟練掌握C+語言的基本知識和技能;2. 基本掌握面向對象程序設計的基本思路和方法;3.
6、利用所學的基本知識和技能,解決簡單的面向對象程序設計問題;4 設計一個含有最基本功能的客戶信息管理系統(tǒng)。2. 總體設計2.1系統(tǒng)功能模塊根據問題描述和要求,系統(tǒng)要求能夠按編號顯示、查找、增加、刪除和保存客戶、 地區(qū)的信息,確定程序至少應該具備如下功能:“錄入客戶和地區(qū)信息、“查詢客 戶和地區(qū)信息”、“增加客戶和地區(qū)信息、“刪除客戶和地區(qū)信息”、“修改客戶 和地區(qū)信息、“輸出客戶和地區(qū)信息”、“數(shù)據存盤基本模塊。系統(tǒng)既然具有“數(shù)據存盤”功能一一客戶數(shù)據可以保存到磁盤文件,那么也就意 味著可以從磁盤文件讀出客戶數(shù)據,所以系統(tǒng)增加了 “客戶數(shù)據裝入模塊,以方便 用戶使用、避免數(shù)據重復錄入,并定義客戶
7、數(shù)據文件名:Xinxi.dat o考慮到根據編號查找人員信息功能在“刪除客戶和地區(qū)”、“修改客戶和地區(qū)” “輸出客戶和地區(qū)信息、等模塊都使用,所以可以考慮設置為一個模塊。如下圖:刪除信息C修改信息2 /X* ( 輸出信息 二f/查找 Find管理員七rJ)aC添加信息 、)亠*査找信息保存信息2.2系統(tǒng)總體框架使用面向對象的程序設計思想進行分析,整個系統(tǒng)涉及兩大類信息和操作,客 戶、地區(qū)。所以系統(tǒng)涉及四個大類:信息類Xinxi (基類)、客戶類customer (繼 承類)、地區(qū)類area (繼承類)、管理類(友元類)。系統(tǒng)的總體框架就是管理類 的定義,主函數(shù)中定義一個管理對象,循環(huán)顯示主菜單
8、并根據用戶選擇調用 管理類的 成員函數(shù)。(1)信息類Xinxi :考慮系統(tǒng)操作的客戶信息的數(shù)量具有不確定性,所以考 慮 使用鏈表保存、處理客戶信息。因為客戶和地區(qū)信息都包括了地區(qū)編碼和地區(qū)名稱, 所以信息類包含私有數(shù)據成員:編號No1、名稱Namel指針域next以及 類別 Duty, Duty用來區(qū)分是客戶信息還是地區(qū)信息,并且考慮到客戶和地區(qū)信 息的輸入 輸出,信息類需要定義公共成員函數(shù)以便供客戶類和地區(qū)類繼承使用。(2)地區(qū)類area :地區(qū)類是信息類的公共繼承類,繼承了信息類的數(shù)據成員 和成員函數(shù),所以地區(qū)類不需要再定義其他數(shù)據成員和成員函數(shù)。(3)客戶類customer :客戶類是信
9、息類的繼承類,客戶類包括的信息除了地 區(qū)編碼和地區(qū)名稱還包括客戶本身的編碼,名稱及聯(lián)系方式,所以客戶類里需要另外 定義數(shù)據成員客戶編碼No2、客戶名稱Namel聯(lián)系方式num.(4)管理類manger:管理類是信息類的友元類,以便訪問信息類的私有數(shù) 據成員和成員函數(shù),在管理類中分別定義添加信息,刪除信息,輸出信息,查找信 息,保存信息,修改信息等函數(shù)。2.3類的層次圖類名信息類(基類)Xin xi數(shù)據成員No1, Namel, Duty, next成員函數(shù)In put, Output類名地區(qū)類(繼承類)area數(shù)據成員No1, Namel, Duty, next成員函數(shù)In put, Outp
10、ut類名客戶類(繼承類)customer數(shù)據成員No1, Namel, Duty, next,No2, Name2成員函數(shù)In put, Output類名管理類(友元類)manger數(shù)據成員Xinxi *PL成員函數(shù)Clear() ma nger() Delete() Save() Print()Search() Modify() Load()I. Xinxi類的No1 地區(qū)編號,Namel地區(qū)名稱,Duty-信息類別,next扌旨向下一個客戶 和地區(qū)的信息;Xinxi類的Input () , Output ()定義為純虛函數(shù)分別 表示輸入和輸出信 息,由于定義純虛函數(shù),所以Xinxi是抽象類
11、,具體輸入,輸出信息由派生類完成。2. 各個派生的類,包含本類對象特有的數(shù)據,繼承基類共同的數(shù)據3. 友元類定義各個函數(shù):void Add();添加void Delete();刪除void Modify();修改void Search();查找void Prin t();輸出void Save();存盤void Load();裝入void Clear();其中:(1) Clear()用于清除人員鏈表所有結點。(2) Add(),Delete()5Modify(),Print(),Search() , Save()丄oad()分別表示系統(tǒng)各 個 功能模塊:增加信息,刪除信息,修改修改,輸出信息,
12、查詢信息,數(shù)據存盤,數(shù)據裝 入。2.4系統(tǒng)關鍵算法流程圖(1)主函數(shù)流程開始創(chuàng)建管理對象顯小菜單 =曰于臺-T工 4- _A二l.JI-next;然后我換了另外一種方法,如下:p2-next=p1-next; /連接 delete p1;coutvv”正確刪除! n;2. 程序編譯時會出現(xiàn)沒有主函數(shù)的錯誤*,原因是括號沒有正確匹配。3. 程序運行時出現(xiàn)無限循環(huán),是因為輸出函數(shù)沒有終止語句 break.6總結在這次課程設計中我終收獲頗多,讓我對編程有了新的認識,平時很少上機, 總是在看程序,滿 足于看懂 程序,因此離自己會 編程序 還有一段差 距,這次 課程設計雖然老師給了參考模板,但是這只是一
13、種思路,需要我們根據自己的問 題完善程序,這使得我不得不自己寫,看了幾遍程序,基本理解了編程的方 法, 雖然一開始出現(xiàn)了很多錯誤,但是經過多次分析與修改,最后完成了程序要 求。其次,在編程之前一定要思考,給自己規(guī)劃好步驟,我在第一周編程時沒有 認真閱讀問題要求,以為只要對客戶信息進行操作,在第二周我已經編好程序準 備寫設計報告時才發(fā)現(xiàn)自己看錯了,所以星期二下午和星期三我又在之前的基礎 上 重新編了這個程序,導致設計報告寫的有些倉促,所以,我們在編程之前一定 要 認真閱讀題目,分析設計要求,理清思路,這樣后面編程時才能順利進行。所以這次的課程設計讓我用了一個相對比較集中的時間去練習我的編程,特別
14、 是自己的動手能力,加深了對類和對象的理解,提高了自己分析問題、運用所學 知識解決問題的能力,并培養(yǎng)了基本的設計技能。7. 致謝在這次課程設計中,老師和同學們給了我很大的幫助,在此表示衷心的感謝 和誠摯的謝意。8. 參考文獻11譚浩強C+面向對象程序設計(第2版第二版)M.清華大學出版 社,2014.2.彭召意,朱艷輝,周玉.C+面向對象程序設計課程的實踐教學研究J計算機教育,2015, (5):151-1549 源程序IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIH#include#include class Xinxi
15、 protected:int No1;編號char Namel 20;/ 名稱int Duty;Xinxi *next;指針域public:Xinxi ()next=0;指針域設置為空 virtual Xinxi()從鍵盤輸入數(shù)據從文件輸入信息/向屏幕輸出信息向文件輸出信息virtual void Input()=0;virtual void lnput(ifstream& ifs)=O; virtual void Output()=0;virtual void Output(ofstream& ofs)=0; friend class man ger;;class customer: pub
16、lic Xinxi客戶繼承類;class area: public Xinxi地區(qū)繼承類;class manger管理員private:Xinxi *PL; void Clear(); int manger:Find(intID,Xinxi *p1,Xinxi *p2);public: man ger();ger();void Add();void Delete();void Modify();void Search();void Print();void Save();void Load();;manger:ma nger()customer *p=new customer; PL=p;co
17、utvv”自動裝入數(shù)據n”;構造析構/添加刪除修改查找輸出存盤裝入構造(創(chuàng)建一個頭結點的鏈表)Load();析構函數(shù)(僅保留一個頭結點)manger:ma nger() Xinxi *p=PL;while(p)PL=p-n ext; delete p;P=PL;void manger:Add()coutnn* 增加信息rT;Xinxi *p =PL;while(p-next)p=p-next;int ch;coutvv”選擇信息類別1 地區(qū)信息2客戶信息:”; cinch;創(chuàng)建新結點,錄入數(shù)據,連接到鏈表area *ar;customer *cu;switch(ch)case 1: ar=ne
18、w area; ar-lnput();p-next=ar;break;case 2: cu=new customer; cu-lnput();/* p-next=cu; break;default: return;*/* void manger:Clear()Xinxi *p=PL-next; while(p)PLnext=p-next; delete p; p=PL-n ext;7 7 * *p2)int manger:Find(int ID,Xinxi *p1,Xinxi*p1=PL-next;*p2=PL;while(*p1)if(*p1)-No1=ID) break;/找到 else*
19、p2=*p1;繼續(xù)查找*p1=(*p1)- next; return *p1?1:0;void manger:Delete()coutHn* 刪除信息n”;int No;Xinxi *p1,*p2;Xinxi *p=PL-next;int ch;coutvv*輸入刪除的類型0地區(qū)信息,1 客戶信息:n; cinch; cout編號:“;cinNo; switch(ch)case 0:if(!Find(No, &p1, &p2)coutvv”對不起,您需要的地區(qū)信息沒有找到! n”;elsep2-next=p1 -next; 連接 delete p1;coutvv”正確刪除!n”; break;
20、case 1: if(!Find(No, &p1, &p2)coutvv”對不起,您需要的客戶信息沒有找到!n”; elsep2-next=p1-next; 連接 delete p1;coutvv”正確刪除!n”;break; default: return;void manger:Modify()coutnn* 修改信息 *nu;int No;int ch;Xinxi *p1,*p2;Xinxi *p=PL;coutvv”輸入修改的類型0地區(qū)信息,1-客戶信息:n; cinch; coutvv1 編號:”;cinNo;while(p-n ext)switch(ch)case 0:if(!Fi
21、nd(No, &p1, &p2)coutvv”對不起,您需要的地區(qū)信息沒有找到! else nH; p1-Output();輸出原來地區(qū)信息p1 -lnput();輸入新的地區(qū)信息coutvv哋區(qū)信息修改完成! nH; break;case 1:if(!Find(No, &p1, &p2)coutvv”對不起,您需要的客戶信息沒有找到! elseP1 -Output();輸出原來客戶信息E;p1 -lnput();輸入新的客戶信息coutvv*喀戶信息修改完成! nM;break;default: retn;p=pnext; void manger:Print()coutn* 輸出信息 *nn
22、; int No; int ch;Xinxi *p1,*p2;Xinxi *p=PL-next;coutvv”輸入輸出的類型0地區(qū)信息,1 客戶信息:H;cinch; coutvv” 編號:”; cinNo; switch(ch)case 0:if(!Find(No,&p1 ,&p2)cout對不起,您需要的地區(qū)信息沒有找到!比elsecoutnn*地區(qū)信息表*nH; cout地區(qū)編號 地區(qū) 名稱 nH; p-Output();p=p-next;coutn正確輸出!nH;break;case 1:if(!Find(No,&p1,&p2)coutn對不起,您需要的客戶信息沒有找到!nH; els
23、ecoutnn* 地區(qū)信息表 *n;cout客戶編號客戶名稱聯(lián)系方式地區(qū)編號n”;地區(qū)名稱 p-Output();p=p-next;coutnlE確輸出! rf;break; default: return;void manger:Save()ofstream f(HXinxi.datH,ios:out);/ 打開文件/遍歷輸出文件Xinxi *p=PL-next;while(p)p-Output(f); p=p-next;f.close(); 關閉文件cout信息已經保存在Xinxi.dat.n;void manger:Load() char buf81; int Duty;Xinxi *p
24、2;long t;臨時空間/新建結點的指針讀寫位置清除現(xiàn)有結點Clear();ifstream f(Xinxi.dat,ios:in); 打開文件Xinxi *p=PL; /建立結點,讀數(shù)據 while(1)t=f.tellg(); fbufbufDuty;if(f)switch(Duty)case 0:p2=new area;break; case 1:p2=new customer;break; defaults.close();return;p- next=p2; 創(chuàng)立新結點p=p-n ext;f.seekg(t); p-lnput(f);break;f.close(); 關閉文件 void ma
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024山東文教體育用品制造業(yè)市場前景及投資研究報告
- 加工制式合同范例
- 制式裝修施工合同范本
- 會展設計搭建合同范本
- 農村秸稈清運合同范本
- 產品模具加工合同范本
- 2025年度國際基礎設施建設限制性條款合同
- 農村蓋房合同范本
- 公廁承建合同范本
- 專利制合同范本
- 2012年安徽高考理綜試卷及答案-文檔
- 《游戲界面設計專題實踐》課件-知識點5:圖標繪制準備與繪制步驟
- 自動扶梯安裝過程記錄
- 智慧供熱管理系統(tǒng)方案可行性研究報告
- 帕金森病的言語康復治療
- 中國城市居民的健康意識和生活方式調研分析報告
- 上海星巴克員工手冊
- 統(tǒng)編版小學語文五年級下冊第四單元解讀與大單元設計思路
- 貓狗創(chuàng)業(yè)計劃書
- 復產復工試題含答案
- 部編版語文三年級下冊第六單元大單元整體作業(yè)設計
評論
0/150
提交評論