




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、- . - .可修編-. z- . - .可修編-編號課程設計報告20152016學年 第一學期客戶消費積分管理系統(tǒng)的設計與實現(xiàn)The Design and Implementation of a Client Integral Management System實 習 類 別課程設計學 生 姓 名 志瑩專 業(yè)軟件工程學 號 140521329指 導 教 師丹、 何巍學 院計算機科學技術學院二一五年十二月- .可修編-. z起 止 周1718周數(shù)2實習地點南研1213/1208/1201實驗室課程設計目的:了解并掌握數(shù)據(jù)構造與算法的設計方法,具備初步的獨立分析和設計能力;初步掌握軟件開發(fā)過程的
2、問題分析、系統(tǒng)設計、程序編碼、測試等根本方法和技能;提高綜合運用所學的理論知識和方法獨立分析和解決問題的能力;訓練學生用系統(tǒng)的觀點和軟件開發(fā)一般規(guī)進展軟件開發(fā),培養(yǎng)軟件工作者所應具備的科學的工作方法和作風。課程設計要求:1、獨立思考,獨立完成:課程設計中各任務的設計和調試要求獨立完成,遇到問題可以討論,但不可以拷貝。2、做好上機準備:每次上機前,要事先編制好準備調試的程序,認真想好調試步驟和有關環(huán)境的設置方法,準備好有關的文件。3、實踐設計以實際應用中的小型題目為主,要求學生獨立完成或合作完成。要求學生能根據(jù)不同的題目類型選擇一種或兩種開發(fā)模式,完成從系統(tǒng)定義,指定開發(fā)方案,需求分析,設計,編
3、碼/測試,直至運行/維護的軟件生存期的全過程。完成課程設計題目客戶消費積分管理系統(tǒng)的設計與實現(xiàn)進度安排及主要容:第1次課:布置任務;第2次課:問題分析及解決方案確定;第3次課:形成編程思路;第4次課:使用具體語言實現(xiàn)算法;第5次課:上機調試程序;第6次課:編寫課程設計報告;成績:指導教師簽字年 月 日一、概述1.1 設計主要完成的任務1.1.1 題目要求針對客戶的消費情況,進展客戶管理,根據(jù)客戶的消費積分對客戶實行不同程度的打折優(yōu)惠。采用一定的存儲構造進展客戶信息的存儲;對客戶的信息可以進展修改、刪除、添加;能夠根據(jù)消費情況進展客戶積分的累加;根據(jù)積分情況,對客戶實行不同程度的打折優(yōu)惠;1.2
4、 解決的主要問題1.2.1 采用何種數(shù)據(jù)構造和編程語言實現(xiàn)客戶抽象由于客戶數(shù)目不定,所以采用鏈表構造實現(xiàn)客戶的增刪改查等根本操作,用C#窗體圖形用戶界面技術編寫程序。本程序要運用鏈表對客戶信息進展存儲,首先對結點進展定義,采用C#泛型思想和接口建立單鏈表類,并實現(xiàn)單鏈表的根本操作,代碼主要參考的是數(shù)據(jù)構造C#語言版,但是在實際編寫過程中略有調整。1.2.2 界面設計主界面:功能按鈕導航;添加界面:添加新客戶的信息;刪除界面:按客戶ID刪除已有客戶。修改界面:按客戶ID修改已有客戶信息。查找界面:按客戶ID查找已有客戶。顯示界面:遍歷顯示表中所有的客戶的所有信息。消費界面:按客戶ID對已有客戶進
5、展消費操作。1.2.3 數(shù)據(jù)構造中單鏈表的C#實現(xiàn)對于單鏈表的操作,主要用到兩個類,一個是Node類,一個是List類。Node類主要是建立節(jié)點的類,這個類包含數(shù)據(jù)容data和指針ne*t用于指向下一個節(jié)點,實現(xiàn)單鏈表的連接。List類主要是進展對單鏈表的各種操作:初始化頭節(jié)點為空的鏈表。求單鏈表的長度。清空單鏈表。判斷鏈表是否為空。在單鏈表尾部追加數(shù)據(jù)元素。在單鏈表的第i個結點的位置前插入一個值為value的結點。刪除單鏈表的第i個結點,只是修改引用域,邏輯上的刪除,由垃圾回收器回收。獲得單鏈表中第i個數(shù)據(jù)元素。在單鏈表中查找值為value的結點。所有的操作都是基于List中的私有變量hea
6、d和通過方法得到的長度,利用他們實現(xiàn)節(jié)點的查找和定位。1.2.4 客戶的抽象客戶用類進展抽象建模,在客戶類Consumer中定義相關字段信息、屬性字段的操作方式、構造方法客戶創(chuàng)立方式和實例方法操作函數(shù)。所要定義的屬性、字段和方法參見圖-1。圖-1 客戶類的構造圖-1中類要調用消費方法時,消費方法又調用計算折扣方法。左邊一列沒有注釋的容為類中各字段對應的屬性,用于對外寫入和讀入字段的值。右邊帶有注釋的容為屬于類的字段,是對客戶信息的抽象。二、需求分析2.1 客戶管理對象需求2.1.1 客戶的根本信息注冊登記時,每個客戶都有唯一的ID,在方便管理的根底上,管理員可對客戶的根本個人信息,如ID,,等
7、等,進展增加、刪除、修改和查找,但是無法直接修改客戶的累計消費、享有優(yōu)惠、積分,這三個信息是執(zhí)行消費操作時由系統(tǒng)后臺自動更改的。2.1.2 積分設置當用戶每消費一次,都由管理員用系統(tǒng)執(zhí)行添加消費操作,操作成功就有一筆積分與以前的積分進展累加,記錄在系統(tǒng)中,并按照相關的積分政策,可享受打折優(yōu)惠等,或累計一定的積分,可為會員類型進展升級。2.1.3 消費設置在系統(tǒng)中,每次消費操作得到管理員輸入的有效消費金額,調用折扣計算函數(shù)客戶的享有優(yōu)惠信息,計算出實際支付款,顯示次實付款以及此次消費享有的優(yōu)惠,購置成功后顯示最新積分。2.2 數(shù)據(jù)需求應使用string對每個客戶的根本信息進展存儲。用戶消費、積分
8、用double類型存儲。然后運用鏈表的存儲構造將用戶所有信息進展保存。繼而完成各種功能。2.3題目的功能采用一定的存儲構造進展客戶信息的存儲;對客戶的信息可以進展修改、刪除、添加;能夠根據(jù)消費情況進展客戶積分的累加;根據(jù)積分情況,對客戶實行不同程度的打折優(yōu)惠;2.4系統(tǒng)各項功能描述2.4.1根據(jù)不同的積分區(qū)間對客戶進展打折具體如下:積分滿500享受1元優(yōu)惠,積分滿1000享受2元優(yōu)惠,積分滿2000享受5元優(yōu)惠,積分滿5000享受9折優(yōu)惠,積分滿10000享受VIP的7折優(yōu)惠。2.4.1用例分析用例1用例名:錄入客戶及商品信息行為者:超市管理員目的:完成對客戶及商品信息的錄入管理過程描述:錄入
9、客戶商品的詳細信息包括客戶的、號、及現(xiàn)有的積分商品名、商品的序列號、商品的價格、商品的數(shù)量通過客戶文件in.t*tin2.t*t文件或者鍵盤輸入讀取客戶(商品)信息對鍵盤輸入的客戶的積分初始化為0;輸入客戶商品名稱能查找到相應信息;根據(jù)客戶的積分信息及打折信息給客戶實現(xiàn)打折優(yōu)惠;異常處理:無。用例2用例名:客戶信息管理。行為者:超市管理員。目的:完成對客戶信息的管理。過程描述:超市管理員輸入客戶的和ID號。對客戶進展相應的增、刪、查、改的操作并能正確的顯示客戶信息對客戶進展報表統(tǒng)計;保存客戶信息錄入客戶信息文件out.t*t異常處理:無。用例3用例名:客戶消費管理。行為者:超市管理員。目的:完
10、成對客戶購置消費的計算并根據(jù)客戶消費返回客戶積分;過程描述:超市管理員輸入客戶的號查找到相應的客戶并顯示客戶的積分及打折信息,如果客戶不存在則打印此用戶不存在;輸入客戶購置的商品序號打印出商品的信息。輸入客戶購置的商品數(shù)量并累加到consumer的消費中;退出系統(tǒng);異常處理:無。三、技術方案3.1軟硬件環(huán)境3.1.1 系統(tǒng)軟件:本課程設計的系統(tǒng)開發(fā)平臺為Windows*P及以上。程序設計語言為C#語言,程序運行平臺可Windws98/2000/*P/Seven。需要Visual Studio 2013編程軟件和.Net Framework組件。3.1.2系統(tǒng)硬件的需求:Pentium4800M
11、HZ或者更高主頻CPU512MB以上存。3.2配置方案Windows7操作系統(tǒng),VS2013開發(fā)工具及平臺。3.3 關鍵技術C#窗體應用技術,c#泛型和面向對象編程,數(shù)據(jù)構造原理及算法,單鏈表的根本操作??傮w設計4.1 系統(tǒng)功能架構系統(tǒng)的功能架構參見圖-2:圖-2 系統(tǒng)功能的構造4.2 各模塊功能架構4.2.1添加 圖-3 添加客戶4.2.2刪除 圖-4 刪除客戶4.2.3修改 圖-5 修改客戶4.2.4查找圖-6 查找客戶4.2.5添加消費 圖-7 添加消費4.2.6 查看所有 圖-8 查看所有五、詳細設計5.1節(jié)點的定義class Node / 定義單鏈表數(shù)據(jù)構造 private T da
12、ta; /數(shù)據(jù)域 字段 public T Data / 數(shù)據(jù)域 屬性 get return data; set data = value; private Node ne*t; /指針域 字段 public Node Ne*t /指針域 屬性 get return ne*t; set ne*t = value; /構造函數(shù) public Node() /空節(jié)點 this.data = default(T); this.ne*t = null; public Node(T data, Node ne*t) /數(shù)據(jù)域,指針域 節(jié)點 this.data = data; this.ne*t = ne*
13、t; public Node(T data) /數(shù)據(jù)域 節(jié)點 ne*t = null; this.data = data; public Node(Node ne*t) /指針域 節(jié)點 this.ne*t = ne*t; 5.2單鏈表的實現(xiàn)以及根本操作接口5.2.1單鏈表的字段、構造方法: class List : IListDS private Node head; / 單鏈表頭結點 字段 / 頭結點屬性 public Node Head get return head; set head = value; / 構造方法 public List() head = null;5.2.2 單鏈表
14、類接口:/接口的定義 public interface IListDS int GetLength(); /求長度 void Clear(); /清空操作 bool IsEmpty(); /判斷線性表是否為空 bool Append(T item); /附加操作 bool Insert(T item, int i); /插入操作 T Delete(int i); /刪除操作 T GetElem(int i); /取表元 int Locate(T value); /按值查找 5.3 各功能模塊流程圖5.3.1 添加流程 圖-9 添加流程5.3.2刪除流程圖-10 刪除流程5.3.3修改流程、查找
15、流程圖-11 修改流程、查找流程5.3.4添加消費、查看所有客戶流程圖-12 添加消費、查看所有客戶流程六、軟件測試6.1針對目標系統(tǒng)的測試方案6.1.1測試流程添加幾個用例,刪除其中之一,再試著查找不存在的客戶,給存在的客戶添加消費,查看所有客戶信息。6.1.2用例以及測試結果添加4個客戶-ID 號 會員類型 -a a a a 普通,b b b b 普通, c c c c 普通, d d d d VIP,刪除a,修改b為ba ba ba ba VIP,查找f,為c添加消費500元,查看所有客戶。 測試結果:|-ID-|-|-號-|-|會員類型|-累計消費-|-積分-|享受優(yōu)惠|1 babab
16、abaVIP00打七折2 cccc普通500500減1元3 ddddVIP00打七折6.1.3測試結論程序可以正常增刪改除客戶,具有一定友好性。七、總結在本次課程設計當中,我對許多以往掌握不夠熟練或者是使用較少而易忽略的知識點有了一定的掌握,比方說泛型,單鏈表的根本操作,new和delete的動態(tài)存分配與存空間的釋放,通過設計前對整個客戶積分系統(tǒng)的分析,使我對面向對象的構造化程序設計有了更深一層次的認識,通過對用戶需求所作的人性化分析,在設計程序的過程中,我更加合理的構建了能夠最大限度的滿足用戶需求的系統(tǒng)功能,使用戶在使用時可以隨心所欲,在編寫代碼的過程當中,我通過查閱有關的資料和分析實例,從
17、中學到了很多能夠不斷優(yōu)化自己代碼,可以提高代碼利用率的知識,并且更加合理的構建了各個知識點之間的聯(lián)系,充分的利用了循環(huán)和選擇性語句,在存儲過程中,對文件的局部知識也有了一個深層次的了解和掌握,對于如何修改文件信息以及保存有了一定的概念和運用。當然,在代碼的編寫過程中,也遇到了許多問題,我通過自身的努力去改正它們,在這個過程中我也學到了很多東西,在代碼的調試過程中,我碰到了許多以前所沒有碰到過的錯誤,在教師的悉心指導和自己的努力思考下, 我最終把這些問題一一解決掉,并把教訓牢記在心,努力使自己得到更大的收獲和提高??傊?,在本次課程設計的過程中,我首先從代碼的編寫中發(fā)現(xiàn)了一些解決問題所必須具備的根
18、本能力和素質,在設計程序時,我感受到了作為一名軟件開發(fā)者所必須具備的統(tǒng)籌安排,注重層次與構造的素養(yǎng),為我以后從事軟件開發(fā)工作標明了方向,自己設計的最終實現(xiàn)為自己以后的努力樹立了信心,這次課程設計使我受益匪淺。附錄1參考文獻1 嚴蔚敏,吳偉民數(shù)據(jù)構造C語言版):清華大學,2007.2 譚浩強C+程序設計第2版:清華大學,2011.8.3 莉,梅,志堅C#程序設計教程:清華大學,2014.附錄2 關鍵源代碼private void addButton_Click(object sender, EventArgs e) /單擊添加頁的添加按鈕函數(shù):獲取各文本框字符串,調用構造方法/創(chuàng)立新客戶,以此調
19、用構造鏈表的Append()方法將新客戶插入鏈表尾。 string type; if (radioButton_Normal.Checked = true) type = 普通; else type = VIP; Consumer con = new Consumer(te*tBo*ID.Te*t, te*tBo*Name.Te*t, te*tBo*IDnum.Te*t, te*tBo*Tel.Te*t, type ); L.List.Append(con); MessageBo*.Show(ID: + con.IID + ,: + con.Name + ,號: + con.IIDnum +
20、,: + con.Tel + ,會員類型: + con.Type + 。 + n客戶總數(shù): + L.List.GetLength(), 添加客戶成功!); this.Close(); private void modButton_Click(object sender, EventArgs e) /單擊修改頁的修改按鈕函數(shù) /*省略:i值獲取和根本信息參數(shù)獲取*/ Consumer con = new Consumer( /*省略:根本信息參數(shù)*/ /舊節(jié)點的累計消費 L.List.GetElem(i).PayoutSum, /舊節(jié)點的積分 L.List.GetElem(i).Integral
21、 ); L.List.Insert(con,i); /修改的實現(xiàn):1.先在i位置插入新節(jié)點 L.List.delete(value); / 2.刪除舊節(jié)點 this.Close(); /*省略消息對話框提示代碼,與上文相似*/ /*刪除和查找的代碼實現(xiàn)與以上添加和修改原理相似,故不贅述!*/private void confButton_Click(object sender, EventArgs e) /添加消費頁確實定按鈕單擊函數(shù) /*省略:i值獲取*/ if (i = 1) double amount = 0; try amount = double.Parse(te*tBo*_amou
22、nt.Te*t); if (amount 0) te*tBo*_amount_show.Te*t = amount.ToString(); te*tBo*_discountRate_show.Te*t = L.List.GetElem(i).DiscountRate; double payout = L.List.GetElem(i).consume(te*tBo*_amount.Te*t); te*tBo*_payout_show.Te*t = payout.ToString(); label_successBuy.Visible = true; te*tBo*_integral_show.Visible = true; te*tBo*_integral_show.Te*t = L.List
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度建筑行業(yè)代理招聘人才服務協(xié)議
- 二零二五年度汽修廠汽車維修行業(yè)智能化維修技術引進合同
- 2025年度一手房買賣意向金合同(含房屋增值服務)
- 2025年度手房購房定金及智能家居系統(tǒng)安裝合同
- 薄膜廢料回收機行業(yè)行業(yè)發(fā)展趨勢及投資戰(zhàn)略研究分析報告
- 農副合同范本
- 賓館裝修合同違約預防措施
- 2025年度員工薪資補充協(xié)議及加班費計算規(guī)定
- 修剪橘子合同范本
- 科技與生活語音識別在智能家居中的實踐
- 學校提高《規(guī)范書寫水平、傳承漢字文化》活動方案3篇
- 幕墻施工現(xiàn)場安全檢查方案
- 2023年4月2日湖北事業(yè)單位聯(lián)考C類《職業(yè)能力傾向測驗》試題
- 新課標背景下“教學評一體化”評的策略
- 兒童兒童矮身材臨床診治矮身材臨床診治
- 早產兒護理查房課件圖
- 2.3.1直線與平面垂直的判定(公開課)省公開課獲獎課件說課比賽一等獎課件
- 03S702鋼筋混凝土化糞池-標準圖集
- Unit 2 Bridging Cultures Reading for writing 課件-高中英語(2019)選擇性必修第二冊
- 滴定管的使用
- 砌筑工理論試題庫
評論
0/150
提交評論