軟件工程實踐報告_第1頁
軟件工程實踐報告_第2頁
軟件工程實踐報告_第3頁
軟件工程實踐報告_第4頁
軟件工程實踐報告_第5頁
已閱讀5頁,還剩20頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、軟件工程實踐報告設(shè)計題目: 商品銷售統(tǒng)計 學(xué)校: 南昌航空大學(xué) 班級: 姓名: 學(xué)號: 指導(dǎo)老師: 邱天 完成日期: 2014年2月19日 20軟件工程試驗報告摘要商品銷售統(tǒng)計系統(tǒng)程序設(shè)計利用計算機(jī)技術(shù),使得企業(yè)生產(chǎn)、庫存和銷售能夠有利結(jié)合起來,提高企業(yè)的效率和效益。利用該系統(tǒng)可以為決策者和管理者及時掌握時常動態(tài)和企業(yè)的生產(chǎn)狀況,以及對員工銷售額的統(tǒng)計。銷售統(tǒng)計系統(tǒng)是一個商品企業(yè)單位不可缺少的部分,它的內(nèi)容對于公司的決策者和管理者來說都至關(guān)重要,所以銷售統(tǒng)計系統(tǒng)應(yīng)該能夠為管理人員提供充足的信息和快捷的查詢手段。但一直以來人們使用傳統(tǒng)人工的方式管理文件檔案,這種管理方式存在著許多缺點。隨著科學(xué)技

2、術(shù)的不斷提高,計算機(jī)科學(xué)日漸成熟,其強(qiáng)大的功能已為人們深刻認(rèn)識,它已進(jìn)入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用。作為計算機(jī)應(yīng)用的一部分,使用計算機(jī)對員工信息及業(yè)績進(jìn)行管理,具有手工管理所無法比擬的優(yōu)點。關(guān)鍵字:計算機(jī)技術(shù)、提高效益、日漸成熟、不可或缺。目錄第一章、課設(shè)設(shè)計目的與要求11.1 目的與要求2第二章、課題介紹-商品銷售系統(tǒng)32.1課設(shè)題目32.2 任務(wù)和要求3第三章、算法的設(shè)計53.1 本程序的流程圖53.2 算法的思路5第四章、詳細(xì)設(shè)計與調(diào)試84.1 系統(tǒng)界面管理84.2 商品管理界面84.3 商品管理各功能的實現(xiàn)94.3.1 商品的添加94.3.2 商品的刪除94.3.3 商

3、品的查找104.3.4 商品的顯示104.4 購物功能的實現(xiàn)11第五章、調(diào)試手冊與測試數(shù)據(jù)125.1 調(diào)試手冊125.2 測試數(shù)據(jù)12第六章 實驗心得與體會13附錄一14附錄二21前言近年來,隨著商品銷售市場的不斷擴(kuò)大,有關(guān)商品的各種信息量也成倍增加,面對著龐大的信息量,傳統(tǒng)的人工方式管理會導(dǎo)致商品銷售管理上的混亂,人力與物力過多浪費,用于支付職員的工資不斷增加,從而使各大商品經(jīng)銷商的負(fù)擔(dān)過重,影響整個銷售部門的運作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實用的商品銷售管理系統(tǒng),對欲要銷售的商品進(jìn)行集中統(tǒng)一的管理。本系統(tǒng)開發(fā)的總設(shè)計目標(biāo)是實現(xiàn)商品經(jīng)銷商對商品的系統(tǒng)化、規(guī)范化和自動化管理

4、,實現(xiàn)對所經(jīng)銷商品的集中統(tǒng)一管理。第一章 課設(shè)設(shè)計目的與要求1.1目的 Visual C+面向?qū)ο笈c可視化程序設(shè)計是計算機(jī)專業(yè)一門重要的專業(yè)基礎(chǔ)課。此次課程設(shè)計的目的是以程序設(shè)計語言為基礎(chǔ),通過完成一些具有一定難度的課程設(shè)計題目的編寫、調(diào)試、運行工作,進(jìn)一步掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實際相結(jié)合。從而提高自我分析問題、解決問題的能力。通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉:(1) 進(jìn)一步鞏固、加深學(xué)生所學(xué)專業(yè)課程Visual C+面向?qū)ο笈c可視化程序設(shè)計的基本理論知識,理論聯(lián)系實際,進(jìn)一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力。(2)全

5、面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。(3)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C+語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。(4)對于給定的設(shè)計題目,如何進(jìn)行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型。(5)掌握面向?qū)ο蟮某绦蛟O(shè)計方法。(6)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序、修改程序和程序的測試。1.2 要求從課程設(shè)計的目的出發(fā),通過設(shè)計工作的各個環(huán)節(jié),達(dá)到以下教學(xué)要求:1) 根據(jù)實現(xiàn)的功能,劃分出合理的對象類,明確對象類間的關(guān)系。 2)利用所學(xué)知識,開發(fā)小型應(yīng)用系統(tǒng),掌握運用C+語言編寫調(diào)試應(yīng)用系統(tǒng)程序,訓(xùn)練獨立開發(fā)應(yīng)

6、用系統(tǒng),進(jìn)行數(shù)據(jù)處理的綜合能力。3)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的。4) 為每個對象類設(shè)計正確的域和方法,為每個方法設(shè)計合理的方法體。同時,為對象類及內(nèi)部的域和方法運用正確的修飾符,如訪問控制符等。5)編程簡練,程序功能齊全,能正確運行。6)進(jìn)一步掌握在集成環(huán)境下如何調(diào)試程序、修改程序和程序的測試。第二章 課題介紹-商品銷售系統(tǒng)2.1課設(shè)題目編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機(jī),屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數(shù)等),根據(jù)單價算出總價。客戶一

7、次購物可能購買多種商品,程序應(yīng)計算出客戶應(yīng)付的錢款數(shù)。2.2 任務(wù)和要求程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計。程序運行時由用戶選擇進(jìn)入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應(yīng)考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼(如-1)表示本次購物結(jié)束。此時。程序計算出應(yīng)付錢款數(shù)并顯示。 測試數(shù)據(jù):程序應(yīng)輸入不少于10種商品的信息,并進(jìn)行模擬運行。實現(xiàn)提示:本程序的商品信息管理可采用既定義一個商品類,每種商品作為商品類的實例(

8、對象)存儲在鏈表節(jié)點中的數(shù)據(jù)結(jié)構(gòu)。2.3 問題分析:按照要求這個程序的編寫要求,由于包含多種實現(xiàn)要求,所以在編寫時需要多個實現(xiàn)函數(shù),這樣就要定義一個類或機(jī)構(gòu)體來統(tǒng)籌各個函數(shù)以及用鏈表或指針數(shù)組來儲存輸入的常量數(shù)據(jù),并且在各個轉(zhuǎn)換點設(shè)置相應(yīng)的提示語句使整個程序便于操作。在修改數(shù)據(jù)的函數(shù)實現(xiàn)時,由于一個商品包含多個變量,要想在修改某一個數(shù)據(jù)后而不影響其他的數(shù)據(jù),所以就必須要有一個switch語句;在商品信息顯示函數(shù)的實現(xiàn)時,由于中間要有一個購買函數(shù)的實現(xiàn),所以商品數(shù)量會隨著商品的購買而減少,所以要將購買的數(shù)量另外定義一個變量。關(guān)于switch語句的運用在這個程序這可能要多次使用,主要在一個函數(shù)擁有

9、多個變量或變量函數(shù)。第3章 算法的設(shè)計3.1 本程序的流程圖開始輸入產(chǎn)品編號或產(chǎn)品名稱 添加、刪除、查詢、排序顯示、保存、匯總、計算判斷編號或名稱 結(jié)束結(jié)束3.2 算法的思路3.2.1 定義一個結(jié)構(gòu)體,該結(jié)構(gòu)體用來存放商品的代碼,名稱等信息:struct shangpinint number;char name30;float weight;float price;shangpin *next;3.2.2 定義list鏈表類,用來動態(tài)的存放商品的信息:class list /定義鏈表類 shangpin *elems; public: list() elems=0; list(); virtu

10、al bool insert(); void insert1(shangpin *pr,float wgt);/此虛函數(shù)在派生類中可重新定義 bool insert2(); virtual bool deletes(int); /此虛函數(shù)在派生類中可重新定義 bool contain(int); /定義重載的構(gòu)造函數(shù) bool contain1(int); shangpin *chazhao(int); void print(); void print1(); void shanchu();3.2.3 定義list的派生類set類,用來對商品進(jìn)行操作:class set:public list

11、 int card;/將集合類set定義為鏈表類list的派生類 struct shangpin shp; public: set() bool insert(); /重定義此函數(shù) bool deletes(int); /重定義此函數(shù);第四章 詳細(xì)設(shè)計與調(diào)試采用C+6.0作為開發(fā)工具,用面向?qū)ο缶幊蹋瑢λ幚淼纳唐沸畔⑦M(jìn)行存儲,分別調(diào)用各個功能函數(shù)來處理。4.1 系統(tǒng)界面管理void inr() coutendl;cout*endl;cout 歡迎進(jìn)入商店系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進(jìn)行商品管理操作endl;cout 1 :商品管理 2 :購物endl;cout a :退出end

12、l;cout*endl;4.2 商品管理界面void ini() coutendl;cout*endl;cout 歡迎進(jìn)入商品管理系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進(jìn)行添加操作endl;cout 1 :添加 2 :刪徐 endl;cout 3 :查找 4 :顯示 endl;cout q :退出endl;cout*endl;cout請選擇:;4.3 商品管理各功能的實現(xiàn)4.3.1 商品的添加bool list:insert() /定義list類中插入元素的成員函數(shù)int num;cout請再次輸入商品的代碼num; shangpin *elem=new shangpin; /為新元素分配存

13、儲 if (elem!=0) elem-number=num; cout請輸入商品的名稱elem-name; cout請輸入商品的價格(單位:元)elem-price;/將新元素插入到鏈表頭 elem-next=elems; elems=elem; return true; else return false;4.3.2 商品的刪除bool list:deletes(int number) /定義list類中刪除元素的成員函數(shù) if(elems=0) return false; /若表為空,返回false shangpin *tmp=elems; if(elems-number=number)

14、 /若待刪除的元素為表頭元素 elems=elems-next; delete tmp; return true; else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number) /循環(huán)查找待刪除元素 tmp=elem-next; elem-next=tmp-next; delete tmp; return true; return false;4.3.3 商品的查找bool list:contain1(int number)if(elems=0)cout沒有此商品number=n

15、umber)cout商品代碼:number商品名稱:name商品價格:pricenext!=0; elem=elem-next)if(elem-next-number=number)cout商品代碼:next-number商品名稱:next-name商品的價格:next-price元endl;return true;cout沒有此商品next) cout商品代碼:number 商品名稱:name 商品價格:price元endl; coutnext) cout商品代碼:number 商品名稱:name 商品價格:price元商品的重量或件數(shù):weightendl; coutendl;4.4 購物

16、功能的實現(xiàn)cout請輸入你所要購買的商品的代碼num4;cout請輸入你要購買的件數(shù)或重量weight;shangpin *p;p=ptr-chazhao(num4);ptr1-insert1(p,weight);zonge=zonge+(p-price)*weight;cout是否購物完畢?endl;cout如果購物完畢,請輸入* b *結(jié)束購物endl;cout如果繼續(xù)購物,請隨機(jī)輸入一個字符,但不要輸入*b*或*B*ch2;cout你購買的商品清單如下:print1();ptr1-shanchu();cout你所要支付的總金額為:zongeendl;zonge=0;第五章 調(diào)試手冊與測試

17、數(shù)據(jù)5.1 調(diào)試手冊(1)、error C2143: syntax error : missing ; before 行246少了一個分號(2)、error C2562: main : void function returning a value空類型不能有返回值(3)、error C2679: binary : no operator defined which takes a right-hand operand of type (or there is no acceptable conversion) ti.getName后面少了()5.2 測試數(shù)據(jù):進(jìn)入演示程序后,即顯示對話形式的

18、提示操作過程:第六章 實驗心得與體會c+課程設(shè)計在基本知識上由老師引導(dǎo),自己很多都靠自學(xué),不明白的問老師,但由此自學(xué)能力得到了很大的培養(yǎng)。在設(shè)計過程中,我感覺到一點:程序是不能一氣呵成的,至少一氣呵成的程序不會盡善盡美,程序編寫要一步一步的完成。首先,對于要編寫的程序要有一個總體思想,要明確想要什么,只要把思想理順清楚了,如此才能夠把程序分割成幾個模塊,即多個函數(shù),一塊一塊的編寫,然后將分散的函數(shù)用另外的函數(shù)鏈接起來或者用main函數(shù)鏈接。到了這一步,程序的框架也就完成了,之后就是調(diào)試查錯誤以及修改了。為了讓自己的程序更加的美觀和更加的簡潔,最后我們還得對程序再進(jìn)行進(jìn)一步的修改,優(yōu)化程序的階段

19、是很重要的。附錄一源程序:#include#include struct shangpinint number;char name30;float weight;float price;shangpin *next;class list /定義鏈表類 shangpin *elems; public: list() elems=0; list(); virtual bool insert(); void insert1(shangpin *pr,float wgt);/此虛函數(shù)在派生類中可重新定義 bool insert2(); virtual bool deletes(int); /此虛函數(shù)在

20、派生類中可重新定義 bool contain(int); bool contain1(int); shangpin *chazhao(int); void print(); void print1(); void shanchu();class set:public list int card;/將集合類set定義為鏈表類list的派生類 struct shangpin shp; public: set() bool insert(); /重定義此函數(shù) bool deletes(int); /重定義此函數(shù);shangpin *list:chazhao(int number) /若表為空,返回f

21、alse shangpin *tmp=elems; if(elems-number=number) /若待刪除的元素為表頭元素 return tmp; else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number) /循環(huán)查找待刪除元素 tmp=elem-next; return tmp; void list:shanchu() shangpin *tmp=elems; for(shangpin *elem=elems; elem!=0;) tmp=elem; elem=elem-

22、next; delete tmp; list:list() /list類得析構(gòu)函數(shù)定義,循環(huán)釋放各元素所占的存儲 shangpin *tmp=elems; for(shangpin *elem=elems; elem!=0;) tmp=elem; elem=elem-next; delete tmp; void list:insert1(shangpin *pr,float wgt)shangpin *elem=new shangpin; /為新元素分配存儲 if (elem!=0) elem-number=pr-number; int i; for(i=0;inamei=pr-namei;

23、elem-weight=wgt; elem-price=pr-price;/將新元素插入到鏈表頭 elem-next=elems; elems=elem; bool list:insert2()int num;cinnum; shangpin *elem=new shangpin; /為新元素分配存儲 if (elem!=0) elem-number=num; elem-next=elems; elems=elem; return true; else return false;bool list:insert() /定義list類中插入元素的成員函數(shù)int num;cout請再次輸入商品的代

24、碼num; shangpin *elem=new shangpin; /為新元素分配存儲 if (elem!=0) elem-number=num; cout請輸入商品的名稱elem-name; cout請輸入商品的價格(單位:元)elem-price;/將新元素插入到鏈表頭 elem-next=elems; elems=elem; return true; else return false;bool list:deletes(int number) /定義list類中刪除元素的成員函數(shù) if(elems=0) return false; /若表為空,返回false shangpin *tm

25、p=elems; if(elems-number=number) /若待刪除的元素為表頭元素 elems=elems-next; delete tmp; return true; else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number) /循環(huán)查找待刪除元素 tmp=elem-next; elem-next=tmp-next; delete tmp; return true; return false;bool list:contain(int number) /判元素val

26、在鏈表中是否存在if(elems=0)return false; if(elems-number=number) return true; else for(shangpin *elem=elems; elem-next!=0; elem=elem-next) if(elem-next-number=number) return true; return false;bool list:contain1(int number)if(elems=0)cout沒有此商品number=number)cout商品代碼:number商品名稱:name商品價格:pricenext!=0; elem=ele

27、m-next)if(elem-next-number=number)cout商品代碼:next-number商品名稱:next-name商品的價格:next-price元endl;return true;cout沒有此商品next) cout商品代碼:number 商品名稱:name 商品價格:price元endl; coutnext) cout商品代碼:number 商品名稱:name 商品價格:price元商品的重量或件數(shù):weightendl; coutendl;bool set:insert() /在set類中的insert的重定義版本int num1;cout請輸入商品代碼num1;

28、 if(list:contain(num1)=false&list:insert() /先判斷此元素是否存在,然后再調(diào)用基類的此函數(shù)版本 +card; return true; return false;bool set:deletes(int number) /在set類中的deletes的重定義版本 if(list:deletes(number) /調(diào)用基類中的此函數(shù)版本 card-; return true; return false;void ini() coutendl;cout*endl;cout 歡迎進(jìn)入商品管理系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進(jìn)行添加操作endl;cout 1 :添加 2 :刪徐 endl;cout 3 :查找 4 :顯示 endl;cout q :退出endl;cout*endl;co

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論