客戶信息管理系統(tǒng)_第1頁
客戶信息管理系統(tǒng)_第2頁
客戶信息管理系統(tǒng)_第3頁
客戶信息管理系統(tǒng)_第4頁
客戶信息管理系統(tǒng)_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

湖南第一師范學(xué)院信息科學(xué)與工程學(xué)院課程設(shè)計(jì)報(bào)告所 屬 專 業(yè): 計(jì)算機(jī)科學(xué)與技術(shù) 課 程 名 稱: C+課程設(shè)計(jì) 課程設(shè)計(jì)名稱: 客戶信息管理系統(tǒng) 學(xué) 號: _姓 名: 李碧秋 指 導(dǎo) 教 師: 楊恒伏 伍智平 2015年 12 月湖南第一師范學(xué)院課程設(shè)計(jì)任務(wù)書2015 -2016 學(xué)年第 1學(xué)期院(部) 信息科學(xué)與工程學(xué)院 專業(yè) 計(jì)算機(jī)科學(xué)與技術(shù) 班級 14計(jì)科1班 課程名稱: C+課程設(shè)計(jì) 設(shè)計(jì)題目: 客戶信息管理系統(tǒng) 完成期限:自 2015 年 12 月 28 日至 2016 年 1 月 8 日共 2 周目的及任務(wù)1.掌握面向?qū)ο蟪绦蛟O(shè)計(jì)語言2.C+的基本語法3.掌握C+面向?qū)ο笤O(shè)計(jì)的思想4.掌握VC+6.0與DEV C+開發(fā)工具的使用5.運(yùn)用標(biāo)準(zhǔn)C+規(guī)范設(shè)計(jì)應(yīng)用程序6.遵循軟件過程的各個(gè)環(huán)節(jié)進(jìn)行系統(tǒng)分析、設(shè)計(jì)、實(shí)現(xiàn)、集成、測試,并相應(yīng)給出軟件規(guī)格說明書等文檔。進(jìn)度安排起止日期工作內(nèi)容2015.12.28選題,系統(tǒng)背景調(diào)查與文獻(xiàn)資料收集,實(shí)驗(yàn)平臺構(gòu)建2015.12.292015.12.31系統(tǒng)需求分析、系統(tǒng)概要設(shè)計(jì)、類的設(shè)計(jì)2016.1.12016.1.4系統(tǒng)詳細(xì)設(shè)計(jì)與編碼實(shí)現(xiàn)2016.1.52016.1.8系統(tǒng)測試與完善、文檔整理與課程設(shè)計(jì)報(bào)告撰寫主要參考資料1鄭莉, 董淵, 何江舟著. C+語言程序設(shè)計(jì)(第4版)(清華大學(xué)出版社, 2010.72(美)梅因等著, 金名等譯. 數(shù)據(jù)結(jié)構(gòu)與面向?qū)ο蟪绦蛟O(shè)計(jì)(C+版)(第4版). 清華大學(xué)出版社, 2012.53梅險(xiǎn), 曲蔚, 孫建業(yè)編. C/C+程序設(shè)計(jì)案例教程實(shí)驗(yàn)與實(shí)訓(xùn)指導(dǎo). 高等教育出版社, 2014.3指導(dǎo)教師(簽字): 年 月 日教研室主任(簽字): 年 月 日目 錄1. 客戶信息系統(tǒng)概述4 1.1 基本要求4 1.2 主要功能4 1.3 設(shè)計(jì)方法5 1.4 系統(tǒng)開發(fā)的目的52. 總體設(shè)計(jì)52.1 系統(tǒng)功能模塊52.2 系統(tǒng)總體框架62.3 類的分類表72.4 系統(tǒng)關(guān)鍵算法流程圖83. 系統(tǒng)運(yùn)行報(bào)告.134. 系統(tǒng)評價(jià)154.1 系統(tǒng)的特點(diǎn)154.2 系統(tǒng)的缺點(diǎn)154.3 將來可能提出的要求155. 系統(tǒng)調(diào)試出現(xiàn)的問題156. 總結(jié)167致謝.168. 參考文獻(xiàn)169. 源程序17 客戶信息管理系統(tǒng)設(shè)計(jì)報(bào)告 1. 客戶管理系統(tǒng)概述該系統(tǒng)主要處理客戶的相關(guān)信息。客戶信息主要包括:客戶編號、客戶名稱、所在地區(qū)、聯(lián)系方式等內(nèi)容。地區(qū)信息主要包括:編號、名稱等內(nèi)容。完成以下的操作:客戶信息、地區(qū)信息的錄入、修改、刪除和查詢。1.1 基本要求 程序運(yùn)行結(jié)果正確,操作方便,界面美觀,邏輯層次清楚,程序結(jié)構(gòu)合理,文檔規(guī)范清晰。1.2 主要功能 要求: 1)添加功能:能夠?qū)蛻艉偷貐^(qū)信息進(jìn)行添加。 2) 顯示功能:能夠?qū)蛻艉偷貐^(qū)信息進(jìn)行輸出,如未找到,顯示出相應(yīng)的提 示信息,如找到,則顯示相應(yīng)信息。 3) 刪除功能:能夠?qū)蛻艉偷貐^(qū)信息進(jìn)行刪除,如未找到,顯示出相應(yīng)的提示信息。 4)查找功能:能夠按編號對客戶和地區(qū)信息進(jìn)行查找,如未找到,顯示出相應(yīng)的提示信息。 5)修改功能:能夠按編號對客戶和地區(qū)信息進(jìn)行修改,如未找到,顯示出相應(yīng)的提示信息。 6)保存功能:能夠把客戶和地區(qū)信息保存為文件。7)讀取功能:可將保存在文件中的人員信息讀入到當(dāng)前系統(tǒng)中,供用戶使用。1.3 設(shè)計(jì)方法1)應(yīng)用系統(tǒng)分析,建立該系統(tǒng)的功能模塊框圖以及界面的組織和設(shè)計(jì);2)分析系統(tǒng)中的各個(gè)實(shí)體與他們之間的關(guān)系;3)根據(jù)問題描述,設(shè)計(jì)系統(tǒng)的類層次;4)完成類層次中各個(gè)類的描述;5)完成類中各個(gè)成員函數(shù)的定義;6)完成系統(tǒng)的應(yīng)用模塊;7)功能調(diào)試。1.4 系統(tǒng)開發(fā)的目的 1. 熟練掌握C+語言的基本知識和技能; 2. 基本掌握面向?qū)ο蟪绦蛟O(shè)計(jì)的基本思路和方法; 3. 利用所學(xué)的基本知識和技能,解決簡單的面向?qū)ο蟪绦蛟O(shè)計(jì)問題; 4. 設(shè)計(jì)一個(gè)含有最基本功能的客戶信息管理系統(tǒng)。2. 總體設(shè)計(jì)2.1 系統(tǒng)功能模塊 根據(jù)問題描述和要求,系統(tǒng)要求能夠按編號顯示、查找、增加、刪除和保存客戶、地區(qū)的信息,確定程序至少應(yīng)該具備如下功能:“錄入客戶和地區(qū)信息、”“查詢客戶和地區(qū)信息”、“增加客戶和地區(qū)信息”、“刪除客戶和地區(qū)信息”、“修改客戶和地區(qū)信息”、“輸出客戶和地區(qū)信息”、“數(shù)據(jù)存盤”基本模塊。 系統(tǒng)既然具有“數(shù)據(jù)存盤”功能客戶數(shù)據(jù)可以保存到磁盤文件,那么也就意味著可以從磁盤文件讀出客戶數(shù)據(jù),所以系統(tǒng)增加了“客戶數(shù)據(jù)裝入”模塊,以方便用戶使用、避免數(shù)據(jù)重復(fù)錄入,并定義客戶數(shù)據(jù)文件名:Xinxi.dat。 考慮到根據(jù)編號查找人員信息功能在“刪除客戶和地區(qū)”、“修改客戶和地區(qū)”“輸出客戶和地區(qū)信息”、等模塊都使用,所以可以考慮設(shè)置為一個(gè)模塊。 如下圖:刪除信息修改信息查找Find輸出信息管理員添加信息查找信息保存信息 2.2 系統(tǒng)總體框架 使用面向?qū)ο蟮某绦蛟O(shè)計(jì)思想進(jìn)行分析,整個(gè)系統(tǒng)涉及兩大類信息和操作,客戶、地區(qū)。所以系統(tǒng)涉及四個(gè)大類:信息類Xinxi(基類)、客戶類customer(繼承類)、地區(qū)類area(繼承類)、管理類(友元類)。系統(tǒng)的總體框架就是管理類的定義,主函數(shù)中定義一個(gè)管理對象,循環(huán)顯示主菜單并根據(jù)用戶選擇調(diào)用管理類的成員函數(shù)。 (1)信息類Xinxi:考慮系統(tǒng)操作的客戶信息的數(shù)量具有不確定性,所以考慮使用鏈表保存、處理客戶信息。因?yàn)榭蛻艉偷貐^(qū)信息都包括了地區(qū)編碼和地區(qū)名稱,所以信息類包含私有數(shù)據(jù)成員:編號No1、名稱Name1、指針域next以及類別Duty,Duty用來區(qū)分是客戶信息還是地區(qū)信息,并且考慮到客戶和地區(qū)信息的輸入輸出,信息類需要定義公共成員函數(shù)以便供客戶類和地區(qū)類繼承使用。 (2)地區(qū)類area:地區(qū)類是信息類的公共繼承類,繼承了信息類的數(shù)據(jù)成員和成員函數(shù),所以地區(qū)類不需要再定義其他數(shù)據(jù)成員和成員函數(shù)。 (3)客戶類customer:客戶類是信息類的繼承類,客戶類包括的信息除了地區(qū)編碼和地區(qū)名稱還包括客戶本身的編碼,名稱及聯(lián)系方式,所以客戶類里需要另外定義數(shù)據(jù)成員客戶編碼No2、客戶名稱Name1、聯(lián)系方式num. (4)管理類manger:管理類是信息類的友元類,以便訪問信息類的私有數(shù)據(jù)成員和成員函數(shù),在管理類中分別定義添加信息,刪除信息,輸出信息,查找信息,保存信息,修改信息等函數(shù)。2.3 類的層次圖類名信息類(基類)Xinxi數(shù)據(jù)成員No1,Name1,Duty,next成員函數(shù)Input,Output類名地區(qū)類(繼承類)area數(shù)據(jù)成員No1,Name1,Duty,next成員函數(shù)Input,Output類名客戶類(繼承類)customer數(shù)據(jù)成員No1,Name1,Duty,next,No2,Name2成員函數(shù)Input,Output類名管理類(友元類)manger數(shù)據(jù)成員 Xinxi *PL成員函數(shù) Clear() manger() Delete() Save() Print() Search() Modify() Load() 1.Xinxi 類的No1-地區(qū)編號,Name1-地區(qū)名稱,Duty-信息類別,next-指向下一個(gè)客戶和地區(qū)的信息;Xinxi類的Input(),Output()定義為純虛函數(shù)分別表示輸入和輸出信息,由于定義純虛函數(shù),所以Xinxi是抽象類,具體輸入,輸出信息由派生類完成。 2.各個(gè)派生的類,包含本類對象特有的數(shù)據(jù),繼承基類共同的數(shù)據(jù)。 3.友元類定義各個(gè)函數(shù): void Add(); /添加void Delete(); /刪除void Modify(); /修改void Search(); /查找void Print(); /輸出void Save(); /存盤void Load(); /裝入 void Clear();其中: (1)Clear()用于清除人員鏈表所有結(jié)點(diǎn)。 (2)Add(),Delete(),Modify(),Print(),Search(),Save(),Load()分別表示系統(tǒng)各個(gè)功能模塊:增加信息,刪除信息,修改修改,輸出信息,查詢信息,數(shù)據(jù)存盤,數(shù)據(jù)裝入。2.4 系統(tǒng)關(guān)鍵算法流程圖 開始(1)主函數(shù)流程 創(chuàng)建管理對象 顯示菜單 接受輸入 根據(jù)輸入進(jìn)行操作 輸出 結(jié)束(2)manger:Add() 開始 選擇輸入類別輸入數(shù)據(jù),創(chuàng)立新結(jié)點(diǎn)結(jié)點(diǎn)加入鏈表結(jié)束 開始(3) manger:Delete() 選擇刪除類別 查找要?jiǎng)h除結(jié)點(diǎn)結(jié)點(diǎn)存在提示未找到鏈表刪除結(jié)點(diǎn) 結(jié)束 開始(4) manger:Modify選擇修改類別 查找結(jié)點(diǎn)結(jié)點(diǎn)存在修改結(jié)點(diǎn)提示未找到結(jié)束(5) manger:Save() 開始打開數(shù)據(jù)文件遍歷鏈表保存數(shù)據(jù) 關(guān)閉文件打開數(shù)據(jù)文件保存數(shù)據(jù)文件關(guān)閉文件結(jié)束開始選擇輸出類型(6) manger:Print()查找結(jié)點(diǎn)結(jié)點(diǎn)存在提示未找到輸出信息結(jié)束 開始(7) manger:Search() 選擇查找類別查找結(jié)點(diǎn) 結(jié)點(diǎn)存在 提示未找到 輸出信息 結(jié)束開始(8) manger:Load()打開文件讀取基礎(chǔ)數(shù)據(jù)關(guān)閉文件打開文件讀取每一條記錄文件未結(jié)束根據(jù)人員類型創(chuàng)立結(jié)點(diǎn)鏈表加入結(jié)點(diǎn)關(guān)閉文件讀取下面一行記錄 關(guān)閉文件結(jié)束3.系統(tǒng)運(yùn)行報(bào)告(1)管理界面(2)輸入信息(3)輸出信息(4)刪除信息(5)修改信息(6)查找信息(7)信息存盤4系統(tǒng)評價(jià) 本部分具體從三方面闡述:優(yōu)點(diǎn)、缺點(diǎn)以及將來可能提出的要求。4.1 系統(tǒng)的特點(diǎn) 1.流程符合客戶管理系統(tǒng)的基本要求。 2.操作簡單、方便。 3.系統(tǒng)擴(kuò)充容易。由于資料有限,有很多地方還需要更好的完善。4.2 系統(tǒng)的缺點(diǎn) 1.界面不太美觀、友好,輸出和查找時(shí)數(shù)據(jù)和對應(yīng)的信息沒有對齊顯示,查看時(shí)不太方便。 2.同時(shí)輸入客戶信息和地區(qū)信息時(shí),不能同時(shí)輸出查看,只能查看首先錄 入的信息;同時(shí)輸入多個(gè)地區(qū)信息時(shí)不能全部保存,只能顯示第一次輸入的信息;當(dāng)輸入客戶信息而沒輸入地區(qū)信息時(shí),查看地區(qū)信息時(shí)并不會提示沒有信息,而是將客戶信息輸出??傊?,只能實(shí)現(xiàn)客戶信息和地區(qū)信息的分別輸入和顯示。 3.文件保存功能沒有實(shí)現(xiàn),打開文件時(shí)沒有任何記錄。4.3 將來可能提出的要求 1.要求界面更加完美 ,閱讀起來方便易懂。 2.要求客戶信息和地區(qū)信息可以結(jié)合在一起,實(shí)現(xiàn)同時(shí)輸入、同時(shí)保存、同時(shí)輸出。 5.系統(tǒng)調(diào)試出現(xiàn)的問題 1.編譯程序時(shí)沒有顯示任何錯(cuò)誤,但是執(zhí)行時(shí)系統(tǒng)會出現(xiàn)程序停止運(yùn)行的情況,我認(rèn)為是系統(tǒng)沒有為我在刪除函數(shù)里定義的指針q開辟空間,如下:Xinxi q;q=p;delete q;p=p-next;然后我換了另外一種方法,如下:p2-next=p1-next; /連接delete p1;cout正確刪除!n; 2.程序編譯時(shí)會出現(xiàn)沒有主函數(shù)的錯(cuò)誤,原因是括號沒有正確匹配。 3.程序運(yùn)行時(shí)出現(xiàn)無限循環(huán),是因?yàn)檩敵龊瘮?shù)沒有終止語句break.6. 總結(jié)在這次課程設(shè)計(jì)中我終收獲頗多,讓我對編程有了新的認(rèn)識,平時(shí)很少上機(jī),總是在看程序,滿足于看懂程序,因此離自己會編程序還有一段差距, 這次課程設(shè)計(jì)雖然老師給了參考模板,但是這只是一種思路,需要我們根據(jù)自己的問題完善程序,這使得我不得不自己寫,看了幾遍程序,基本理解了編程的方法,雖然一開始出現(xiàn)了很多錯(cuò)誤,但是經(jīng)過多次分析與修改,最后完成了程序要求。其次,在編程之前一定要思考,給自己規(guī)劃好步驟,我在第一周編程時(shí)沒有認(rèn)真閱讀問題要求,以為只要對客戶信息進(jìn)行操作,在第二周我已經(jīng)編好程序準(zhǔn)備寫設(shè)計(jì)報(bào)告時(shí)才發(fā)現(xiàn)自己看錯(cuò)了,所以星期二下午和星期三我又在之前的基礎(chǔ)上重新編了這個(gè)程序,導(dǎo)致設(shè)計(jì)報(bào)告寫的有些倉促,所以,我們在編程之前一定要認(rèn)真閱讀題目,分析設(shè)計(jì)要求,理清思路,這樣后面編程時(shí)才能順利進(jìn)行。所以這次的課程設(shè)計(jì)讓我用了一個(gè)相對比較集中的時(shí)間去練習(xí)我的編程,特別是自己的動手能力,加深了對類和對象的理解,提高了自己分析問題、運(yùn)用所學(xué)知識解決問題的能力,并培養(yǎng)了基本的設(shè)計(jì)技能。7致謝在這次課程設(shè)計(jì)中,老師和同學(xué)們給了我很大的幫助,在此表示衷心的感謝和誠摯的謝意。 8. 參考文獻(xiàn) 1. 1譚浩強(qiáng). C+面向?qū)ο蟪绦蛟O(shè)計(jì)(第2版第二版)M. 清華大學(xué)出版 社,2014. 2. 1彭召意,朱艷輝,周玉. C+面向?qū)ο蟪绦蛟O(shè)計(jì)課程的實(shí)踐教學(xué)研究J. 計(jì) 算機(jī)教育, 2015, (5): 151-1549. 源程序/#include#includeclass Xinxi protected: int No1; /編號char Name120; /名稱int Duty;Xinxi *next; /指針域public: Xinxi ()next=0; /指針域設(shè)置為空virtual Xinxi() virtual void Input()=0; /從鍵盤輸入數(shù)據(jù) virtual void Input(ifstream& ifs)=0; /從文件輸入信息 virtual void Output()=0; /向屏幕輸出信息 virtual void Output(ofstream& ofs)=0; /向文件輸出信息friend class manger;class customer: public Xinxi /客戶繼承類 .;class area: public Xinxi /地區(qū)繼承類 .;class manger /管理員private: Xinxi *PL;void Clear();int manger:Find(int ID,Xinxi *p1,Xinxi *p2);public:manger(); /構(gòu)造manger(); /析構(gòu)void Add(); /添加void Delete(); /刪除void Modify(); /修改void Search(); /查找void Print(); /輸出void Save(); /存盤void Load(); /裝入;manger:manger() /構(gòu)造(創(chuàng)建一個(gè)頭結(jié)點(diǎn)的鏈表)customer *p=new customer;PL=p;coutnext; delete p; p=PL;void manger:Add() coutnext)p=p-next; int ch; coutch; /創(chuàng)建新結(jié)點(diǎn),錄入數(shù)據(jù),連接到鏈表 area *ar; customer *cu; switch(ch) case 1: ar=new area; ar-Input(); p-next=ar; break; case 2: cu=new customer; cu-Input();/*p-next=cu; break; default: return; /*void manger:Clear() Xinxi *p=PL-next; while(p) PL-next=p-next; delete p; p=PL-next; /*int manger:Find(int ID,Xinxi *p1,Xinxi *p2)*p1=PL-next;*p2=PL;while(*p1)if(*p1)-No1=ID)break; /找到else*p2=*p1; /繼續(xù)查找*p1=(*p1)-next;return *p1?1:0;void manger:Delete() coutnext; int ch; coutch; coutNo;switch(ch) case 0: if(!Find(No,&p1,&p2) coutnext=p1-next; /連接 delete p1; cout正確刪除!n; break; case 1: if(!Find(No,&p1,&p2) coutnext=p1-next; /連接 delete p1; cout正確刪除!n; break; default: return; void manger:Modify()coutn*修改信息*n;int No;int ch;Xinxi *p1,*p2; Xinxi *p=PL; coutch;coutNo;while(p-next)switch(ch) case 0: if(!Find(No,&p1,&p2) coutOutput(); /輸出原來地區(qū)信息 p1-Input(); /輸入新的地區(qū)信息 cout地區(qū)信息修改完成!n; break; case 1: if(!Find(No,&p1,&p2) coutOutput(); /輸出原來客戶信息 p1-Input(); /輸入新的客戶信息 coutnext;void manger:Print() coutnext; coutch; coutNo; switch(ch) case 0: if(!Find(No,&p1,&p2) cout對不起,您需要的地區(qū)信息沒有找到!n; else coutn* 地區(qū)信息表 *n; coutOutput(); p=p-next; cout正確輸出!n; break; case 1: if(!Find(No,&p1,&p2) cout對不起,您需要的客戶信息沒有找到!n; else coutn* 地區(qū)信息表 *n; coutOutput(); p=p-next; coutnext;while(p) p-Output(f);p=p-next;f.close(); /關(guān)閉文件coutbufbufDuty;if(f)switch(Du

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論