




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1 湖南第一師范學院信息科學與工程學院課程設計報告所屬 專 業:計算機科學與技術課程 名 稱:c+課程設計課程設計名稱:客戶信息管理系統學號: _姓名:李碧秋指 導教 師:楊恒伏伍智平2015 年12 月2 湖南第一師范學院課程設計任務書2015 -2016 學年第 1 學期院(部)信息科學與工程學院專業計算機科學與技術班級14 計科 1 班課程名稱:c+課程設計設計題目:客戶信息管理系統完成期限:自2015 年12 月28 日至2016 年 1 月8 日共2 周目的及任務1. 掌握面向對象程序設計語言2. c+的基本語法3. 掌握 c+面向對象設計的思想4. 掌握
2、 vc+6.0 與 dev c+ 開發工具的使用5. 運用標準c+規范設計應用程序6. 遵循軟件過程的各個環節進行系統分析、設計、 實現、集成、 測試,并相應給出軟件規格說明書等文檔。進度安排起止日期工作內容2015.12.28 選題,系統背景調查與文獻資料收集,實驗平臺構建2015.12.292015.12.31 系統需求分析、系統概要設計、類的設計2016.1.12016.1.4 系統詳細設計與編碼實現2016.1.52016.1.8 系統測試與完善、文檔整理與課程設計報告撰寫主要參考資料1鄭莉 , 董淵 , 何江舟著 . c+語言程序設計(第4 版) (清華大學出版社, 2010.7 2
3、(美)梅因等著, 金名等譯 . 數據結構與面向對象程序設計(c+版)(第 4版) . 清華大學出版社, 2012.5 3梅險 , 曲蔚 , 孫建業編 . c/c+程序設計案例教程實驗與實訓指導. 高等教育出版社, 2014.3 指導教師(簽字) :年月日教研室主任(簽字) :年月日3 目錄1. 客戶信息系統概述 . 41.1 基本要求 . 41.2 主要功能 . 41.3 設計方法 . 51.4 系統開發的目的 . 52. 總體設計 . 52.1 系統功能模塊 . 52.2 系統總體框架 . 62.3 類的分類表 . 72.4 系統關鍵算法流程圖 . 83. 系統運行報告.134. 系統評價
4、. 13 4.1 系統的特點 . 15 4.2 系統的缺點 . 15 4.3 將來可能提出的要求 . 15 5. 系統調試出現的問題 . 15 6. 總結. 16 7致謝.168. 參考文獻 . 16 9. 源程序 . 17 4 客戶信息管理系統設計報告1. 客戶管理系統概述該系統主要處理客戶的相關信息。客戶信息主要包括:客戶編號、客戶名稱、所在地區、聯系方式等內容。地區信息主要包括:編號、名稱等內容。完成以下的操作:客戶信息、地區信息的錄入、修改、刪除和查詢。1.1 基本要求程序運行結果正確,操作方便,界面美觀,邏輯層次清楚,程序結構合理,文檔規范清晰。1.2 主要功能要求:1)添加功能:能
5、夠對客戶和地區信息進行添加。2) 顯示功能:能夠對客戶和地區信息進行輸出,如未找到,顯示出相應的提示信息,如找到,則顯示相應信息。3) 刪除功能:能夠對客戶和地區信息進行刪除,如未找到,顯示出相應的提示信息。4)查找功能:能夠按編號對客戶和地區信息進行查找,如未找到,顯示出相應的提示信息。5)修改功能:能夠按編號對客戶和地區信息進行修改,如未找到,顯示出相應的提示信息。6)保存功能:能夠把客戶和地區信息保存為文件。7) 讀取功能:可將保存在文件中的人員信息讀入到當前系統中,供用戶使用。5 1.3 設計方法1)應用系統分析,建立該系統的功能模塊框圖以及界面的組織和設計;2)分析系統中的各個實體與
6、他們之間的關系;3)根據問題描述,設計系統的類層次;4)完成類層次中各個類的描述;5)完成類中各個成員函數的定義;6)完成系統的應用模塊;7)功能調試。1.4 系統開發的目的1. 熟練掌握 c+ 語言的基本知識和技能;2. 基本掌握面向對象程序設計的基本思路和方法;3. 利用所學的基本知識和技能,解決簡單的面向對象程序設計問題;4. 設計一個含有最基本功能的客戶信息管理系統。2. 總體設計2.1 系統功能模塊根據問題描述和要求,系統要求能夠按編號顯示、查找、增加、刪除和保存客戶、地區的信息,確定程序至少應該具備如下功能:“錄入客戶和地區信息、 ”“查詢客戶和地區信息” 、 “增加客戶和地區信息
7、” 、 “刪除客戶和地區信息” 、 “修改客戶和地區信息”、 “輸出客戶和地區信息” 、 “數據存盤”基本模塊。系統既然具有 “數據存盤” 功能客戶數據可以保存到磁盤文件,那么也就意味著可以從磁盤文件讀出客戶數據,所以系統增加了 “客戶數據裝入” 模塊,以方便用戶使用、避免數據重復錄入,并定義客戶數據文件名:xinxi.dat。考慮到根據編號查找人員信息功能在 “刪除客戶和地區”、“修改客戶和地區”“輸出客戶和地區信息” 、等模塊都使用,所以可以考慮設置為一個模塊。如下圖:6 2.2 系統總體框架使用面向對象的程序設計思想進行分析,整個系統涉及兩大類信息和操作,客戶、地區。所以系統涉及四個大類
8、:信息類xinxi (基類) 、客戶類 customer(繼承類)、地區類 area(繼承類)、管理類(友元類)。系統的總體框架就是管理類的定義, 主函數中定義一個管理對象, 循環顯示主菜單并根據用戶選擇調用管理類的成員函數。(1)信息類 xinxi :考慮系統操作的客戶信息的數量具有不確定性,所以考慮使用鏈表保存、 處理客戶信息。 因為客戶和地區信息都包括了地區編碼和地區名稱,所以信息類包含私有數據成員:編號no1 、名稱 name1 、指針域 next 以及類別 duty,duty 用來區分是客戶信息還是地區信息,并且考慮到客戶和地區信息的輸入輸出,信息類需要定義公共成員函數以便供客戶類和
9、地區類繼承使用。(2)地區類area:地區類是信息類的公共繼承類,繼承了信息類的數據成員和成員函數,所以地區類不需要再定義其他數據成員和成員函數。(3)客戶類customer:客戶類是信息類的繼承類,客戶類包括的信息除了地區編碼和地區名稱還包括客戶本身的編碼,名稱及聯系方式, 所以客戶類里需要另外定義數據成員客戶編碼no2 、客戶名稱 name1 、聯系方式 num. (4)管理類manger:管理類是信息類的友元類,以便訪問信息類的私有數據成員和成員函數,在管理類中分別定義添加信息,刪除信息,輸出信息,查找信息,保存信息,修改信息等函數。添加信息刪除信息修改信息輸出信息查找信息保存信息管理員
10、查找 find 7 2.3 類的層次圖類名信息類(基類) xinxi 數據成員no1,name1,duty,next 成員函數input,output 類名地區類(繼承類 )area 數據成員no1,name1,duty,next 成員函數input,output 類名客戶類(繼承類) customer 數據成員no1,name1,duty,next,no2,name2 成員函數input,output 類名管理類(友元類) manger 數據成員xinxi *pl 成員函數clear() manger() delete() save() print() search() modify() l
11、oad() 1.xinxi 類的 no1-地區編號, name1- 地區名稱, duty- 信息類別, next- 指向下一個客戶和地區的信息;xinxi類的 input(), output() 定義為純虛函數分別表示輸入和輸出信息 , 由于定義純虛函數,所以xinxi 是抽象類,具體輸入,輸出信息由派生類完成。2. 各個派生的類,包含本類對象特有的數據,繼承基類共同的數據。3.友元類定義各個函數:8 void add(); /添加void delete(); /刪除void modify(); /修改void search();/查找void print(); /輸出void save();
12、 /存盤void load(); /裝入void clear(); 其中:(1)clear()用于清除人員鏈表所有結點。(2)add(),delete(),modify(),print(),search() ,save(),load()分別表示系統各個功能模塊 : 增加信息,刪除信息,修改修改,輸出信息,查詢信息,數據存盤,數據裝入。2.4 系統關鍵算法流程圖(1)主函數流程開始創建管理對象顯示菜單接受輸入根據輸入進行操作輸出結束9 (2)manger:add() (3) manger:delete() 開始選擇輸入類別輸入數據,創立新結點結點加入鏈表結束開始選擇刪除類別查找要刪除結點鏈表刪除
13、結點提示未找到結束結點存在10 (4) manger:modify (5) manger:save() 開始選擇修改類別查找結點修改結點提示未找到結束結點存在開始打開數據文件遍歷鏈表保存數據關閉文件打開數據文件保存數據文件關閉文件結束11 (6)manger:print() (7)manger:search() 開始選擇輸出類型查找結點結點存在輸出信息提示未找到結束開始選擇查找類別查找結點結點存在輸出信息提示未找到結束12 (8) manger:load() 開始打開文件關閉文件打開文件讀取每一條記錄文件未結束鏈表加入結點讀取下面一行記錄結束根據人員類型創立結點讀取基礎數據關閉文件13 3.
14、系統運行報告(1)管理界面(2)輸入信息(3)輸出信息14 (4)刪除信息(5)修改信息(6)查找信息(7)信息存盤15 4系統評價本部分具體從三方面闡述:優點、缺點以及將來可能提出的要求。4.1 系統的特點1. 流程符合客戶管理系統的基本要求。2. 操作簡單、方便。3. 系統擴充容易。由于資料有限,有很多地方還需要更好的完善。4.2 系統的缺點1.界面不太美觀、友好,輸出和查找時數據和對應的信息沒有對齊顯示,查看時不太方便。2.同時輸入客戶信息和地區信息時,不能同時輸出查看,只能查看首先錄入的信息;同時輸入多個地區信息時不能全部保存,只能顯示第一次輸入的信息;當輸入客戶信息而沒輸入地區信息時
15、,查看地區信息時并不會提示沒有信息,而是將客戶信息輸出。總之,只能實現客戶信息和地區信息的分別輸入和顯示。3. 文件保存功能沒有實現 , 打開文件時沒有任何記錄。4.3 將來可能提出的要求1.要求界面更加完美,閱讀起來方便易懂。2.要求客戶信息和地區信息可以結合在一起,實現同時輸入、同時保存、同時輸出。5. 系統調試出現的問題1.編譯程序時沒有顯示任何錯誤 ,但是執行時系統會出現程序停止運行的情況,我認為是系統沒有為我在刪除函數里定義的指針q開辟空間,如下:xinxi q ;q=p;delete q ;p=p-next; 16 然后我換了另外一種方法,如下:p2-next=p1-next; /
16、連接delete p1; cout 正確刪除 ! n; 2.程序編譯時會出現沒有主函數的錯誤 ,原因是括號沒有正確匹配。3.程序運行時出現無限循環,是因為輸出函數沒有終止語句break. 6. 總結在這次課程設計中我終收獲頗多, 讓我對編程有了新的認識, 平時很少上機,總是在看程序,滿足 于看懂 程 序,因 此離自己會編程序 還有一段差距,這次課程設計雖然老師給了參考模板,但是這只是一種思路, 需要我們根據自己的問題完善程序, 這使得我不得不自己寫, 看了幾遍程序, 基本理解了編程的方法,雖然一開始出現了很多錯誤,但是經過多次分析與修改, 最后完成了程序要求。其次,在編程之前一定要思考, 給自
17、己規劃好步驟, 我在第一周編程時沒有認真閱讀問題要求, 以為只要對客戶信息進行操作, 在第二周我已經編好程序準備寫設計報告時才發現自己看錯了, 所以星期二下午和星期三我又在之前的基礎上重新編了這個程序, 導致設計報告寫的有些倉促,所以,我們在編程之前一定要認真閱讀題目,分析設計要求,理清思路,這樣后面編程時才能順利進行。所以這次的課程設計讓我用了一個相對比較集中的時間去練習我的編程,特別是自己的動手能力, 加深了對類和對象的理解, 提高了自己分析問題、 運用所學知識解決問題的能力,并培養了基本的設計技能。7致謝在這次課程設計中, 老師和同學們給了我很大的幫助,在此表示衷心的感謝和誠摯的謝意。
18、8. 參考文獻1. 1譚浩強 . c+ 面向對象程序設計 (第2版第二版 )m. 清華大學出版社,2014. 17 2. 1彭召意,朱艷輝,周玉. c+ 面向對象程序設計課程的實踐教學研究j. 計算機教育 , 2015, (5): 151-1549. 源程序/ #include #include class xinxi protected: int no1; /編號char name120; /名稱int duty; xinxi *next; /指針域public: xinxi () next=0; /指針域設置為空 virtual xinxi() virtual void input()=0
19、; /從鍵盤輸入數據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 /地區繼承類 . ; class manger /管理員 private: 18 xinxi *pl; void clear(); int
20、manger:find(int id,xinxi *p1,xinxi *p2); public: manger(); /構造manger(); /析構void add(); /添加void delete(); /刪除void modify(); /修改void search(); /查找void print(); /輸出void save(); /存盤void load(); /裝入; manger:manger() /構造(創建一個頭結點的鏈表) customer *p=new customer; pl=p; coutnext; delete p; p=pl; void manger:add
21、() coutnext)p=p-next; int ch; coutch; 19 /創建新結點 ,錄入數據 ,連接到鏈表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
22、-next; /* int manger:find(int id,xinxi *p1,xinxi *p2) *p1=pl-next; *p2=pl; while(*p1) if(*p1)-no1=id) break; /找到20 else *p2=*p1; /繼續查找*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;
23、 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();
24、/輸出原來地區信息p1-input(); /輸入新的地區信息cout地區信息修改完成! n; break; case 1: if(!find(no,&p1,&p2) coutoutput(); /輸出原來客戶信息p1-input(); /輸入新的客戶信息22 coutnext; void manger:print() coutnext; coutch; coutno; switch(ch) case 0: if(!find(no,&p1,&p2) cout對不起,您需要的地區信息沒有找到!n; else coutn* 地區信息表*n; coutoutput(); p=p-next; cout正確輸出 !n; break; 23 case 1: if(!find(no,&p1,&p2) cout對不起,您需要的客戶信息沒有找到!n; else coutn* 地區信息表*n; coutoutput(); p=p-next; coutnext; while(p) p-output(f); p=p-next; f.close(); /關閉文件coutbufbufduty; if(f) switch(duty) case 0:p2=ne
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年非盈利機構財務管理考試試題及答案
- 2025年大氣科學與氣候變化專業考試卷及答案
- 生物科學2025年生物科學與技術考試試卷及答案
- 2025年環境保護法考試試卷及答案
- 2025年中級會計實務考試應試總結試題及答案技巧
- 2025年文化適應性與教育問題考試卷及答案
- 2025年護理學基礎知識考試試卷及答案
- 2025年健康心理學考試試題及答案信息
- 2025年職業衛生管理師考試卷及答案
- 工程法規考試概念梳理試題及答案
- 外國文學史第二版馬工程課件 第六章 19世紀文學(上)
- chap02 機器視覺中的圖像采集技術
- GB/T 18742.1-2017冷熱水用聚丙烯管道系統第1部分:總則
- 工程施工停工令模板
- 征信報告樣本
- 盤扣支模架工程監理細則
- 轉動機械找對輪找中心(有圖、有公式)課件
- 天然氣管道陰極保護共66張課件
- 大學學院成績表模板
- 廚房知識考題切配答案
- 生物化學技術基本原理和應用
評論
0/150
提交評論