

下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、軟件工程實踐報告【精選文檔】軟件工程實踐報告設(shè)計題目: 商品銷售統(tǒng)計 學(xué)校: 南昌航空大學(xué) 班級: 姓名: 學(xué)號: 指導(dǎo)老師: 邱天 完成日期: 2014年2月19日 摘要商品銷售統(tǒng)計系統(tǒng)程序設(shè)計利用計算機技術(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)人工的方式管理文件檔案,這種管
2、理方式存在著許多缺點。隨著科學(xué)技術(shù)的不斷提高,計算機科學(xué)日漸成熟,其強大的功能已為人們深刻認(rèn)識,它已進入人類社會的各個領(lǐng)域并發(fā)揮著越來越重要的作用. 作為計算機應(yīng)用的一部分,使用計算機對員工信息及業(yè)績進行管理,具有手工管理所無法比擬的優(yōu)點。關(guān)鍵字:計算機技術(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
3、.1 商品的添加94。3.2 商品的刪除94。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前 言 近年來,隨著商品銷售市場的不斷擴大,有關(guān)商品的各種信息量也成倍增加,面對著龐大的信息量,傳統(tǒng)的人工方式管理會導(dǎo)致商品銷售管理上的混亂,人力與物力過多浪費,用于支付職員的工資不斷增加,從而使各大商品經(jīng)銷商的負(fù)擔(dān)過重,影響整個銷售部門的運作和控制管理,因此,必須制定一套合理、有效,規(guī)范和實用的商品銷售管理系統(tǒng),對欲要銷售的商品
4、進行集中統(tǒng)一的管理.本系統(tǒng)開發(fā)的總設(shè)計目標(biāo)是實現(xiàn)商品經(jīng)銷商對商品的系統(tǒng)化、規(guī)范化和自動化管理,實現(xiàn)對所經(jīng)銷商品的集中統(tǒng)一管理。第一章 課設(shè)設(shè)計目的與要求1.1目的 Visual C+面向?qū)ο笈c可視化程序設(shè)計是計算機專業(yè)一門重要的專業(yè)基礎(chǔ)課。此次課程設(shè)計的目的是以程序設(shè)計語言為基礎(chǔ),通過完成一些具有一定難度的課程設(shè)計題目的編寫、調(diào)試、運行工作,進一步掌握面向過程和面向?qū)ο蟪绦蛟O(shè)計的基本方法和編程技巧,鞏固所學(xué)理論知識,使理論與實際相結(jié)合.從而提高自我分析問題、解決問題的能力.通過課程設(shè)計,學(xué)生在下述各方面的能力應(yīng)該得到鍛煉: (1) 進一步鞏固、加深學(xué)生所學(xué)專業(yè)課程Visu
5、al C+面向?qū)ο笈c可視化程序設(shè)計的基本理論知識,理論聯(lián)系實際,進一步培養(yǎng)學(xué)生綜合分析問題,解決問題的能力. (2)全面考核學(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),進行數(shù)據(jù)處理的綜合能力。 (4)對于給定的設(shè)計題目,如何進行分析,理清思路,并給出相應(yīng)的數(shù)學(xué)模型. (5)掌握面向?qū)ο蟮某绦蛟O(shè)計方法。 (6)進一步掌握在集成環(huán)境下如何調(diào)試程序、修改程序和程序
6、的測試。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)用系統(tǒng),進行數(shù)據(jù)處理的綜合能力。3)全面考核學(xué)生所掌握的基本理論知識及其實際業(yè)務(wù)能力,從而達(dá)到提高學(xué)生素質(zhì)的最終目的.4) 為每個對象類設(shè)計正確的域和方法,為每個方法設(shè)計合理的方法體。同時,為對象類及內(nèi)部的域和方法運用正確的修飾符,如訪問控制符等.5)編程簡練,程序功能齊全,能正確運行。6)進一步掌握在集成環(huán)境下如何調(diào)試程序、修改程序和程序的測試.第二章 課題介
7、紹-商品銷售系統(tǒng)2。1 課設(shè)題目編寫商品銷售統(tǒng)計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價.所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數(shù)等),根據(jù)單價算出總價。客戶一次購物可能購買多種商品,程序應(yīng)計算出客戶應(yīng)付的錢款數(shù)。2.2 任務(wù)和要求程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現(xiàn)銷售統(tǒng)計.程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數(shù)目較多時,應(yīng)考慮分屏顯示),用戶輸入商品代碼及商品重量或件數(shù),用戶一次操作可輸
8、入若干商品的購買信息,然后輸入一個特殊的代碼(如1)表示本次購物結(jié)束.此時.程序計算出應(yīng)付錢款數(shù)并顯示。 測試數(shù)據(jù):程序應(yīng)輸入不少于10種商品的信息,并進行模擬運行。實現(xiàn)提示:本程序的商品信息管理可采用既定義一個商品類,每種商品作為商品類的實例(對象)存儲在鏈表節(jié)點中的數(shù)據(jù)結(jié)構(gòu)。2。3 問題分析:按照要求這個程序的編寫要求,由于包含多種實現(xiàn)要求,所以在編寫時需要多個實現(xiàn)函數(shù),這樣就要定義一個類或機構(gòu)體來統(tǒng)籌各個函數(shù)以及用鏈表或指針數(shù)組來儲存輸入的常量數(shù)據(jù),并且在各個轉(zhuǎn)換點設(shè)置相應(yīng)的提示語句使整個程序便于操作。在修改數(shù)據(jù)的函數(shù)實現(xiàn)時,由于一個商品包含多個變量,要想在修改某一個數(shù)據(jù)后而不影響其他的
9、數(shù)據(jù),所以就必須要有一個switch語句;在商品信息顯示函數(shù)的實現(xiàn)時,由于中間要有一個購買函數(shù)的實現(xiàn),所以商品數(shù)量會隨著商品的購買而減少,所以要將購買的數(shù)量另外定義一個變量。關(guān)于switch語句的運用在這個程序這可能要多次使用,主要在一個函數(shù)擁有多個變量或變量函數(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 n
10、ame30;float weight;float price;shangpin *next;;3.2。2 定義list鏈表類,用來動態(tài)的存放商品的信息: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ù)在派生類中可重新定義 bool contain(int); /定義重
11、載的構(gòu)造函數(shù) bool contain1(int); shangpin chazhao(int); void print(); void print1(); void shanchu();;3。2.3 定義list的派生類set類,用來對商品進行操作:class set:public list 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ū)ο缶幊蹋瑢λ?/p>
12、要處理的商品信息進行存儲,分別調(diào)用各個功能函數(shù)來處理。4。1 系統(tǒng)界面管理void inr() cout<endl;cout”*"endl;cout<" 歡迎進入商店系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進行商品管理操作”endl;cout<” 1 :商品管理 ”" ""2 :購物”<endl;cout<<" a :退出"<endl;cout<”*”<endl;4。2 商品管理界面void ini() cout<endl;cout"*"<
13、<endl;cout<<” 歡迎進入商品管理系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進行添加操作”<endl;cout<" 1 :添加 ”" ”<<"2 :刪徐 ”endl;cout" 3 :查找”<" ”<"4 :顯示 ”<endl;cout" q :退出"<endl;cout<"*"endl;cout<"請選擇:";4。3 商品管理各功能的實現(xiàn)4.3.1 商品的添加bool list:inser
14、t() /定義list類中插入元素的成員函數(shù)int num;cout<"請再次輸入商品的代碼”<endl;cin>>num; shangpin elem=new shangpin; /為新元素分配存儲 if (elem!=0) elemnumber=num; cout”請輸入商品的名稱"endl; cinelem>name; cout<<”請輸入商品的價格(單位:元)”<<endl; cin>>elem-price;/將新元素插入到鏈表頭 elemnext=elems; elems=elem; return
15、true; else return false;4。3。2 商品的刪除bool list::deletes(int number) /定義list類中刪除元素的成員函數(shù) if(elems=0) return false; /若表為空,返回false shangpin tmp=elems; if(elemsnumber=number) /若待刪除的元素為表頭元素 elems=elems-next; delete tmp; return true; else for(shangpin elem=elems; elem->next!=0; elem=elem->next) if(elem
16、>next>number=number) /循環(huán)查找待刪除元素 tmp=elemnext; elemnext=tmp-next; delete tmp; return true; return false;4.3。3 商品的查找bool list:contain1(int number)if(elems=0)cout<"沒有此商品"<endl;return false;if(elems->number=number)cout<"商品代碼:”<elems>number<"商品名稱:"<&
17、lt;elemsname<"商品價格:"<elems-price<endl; return true; else for(shangpin *elem=elems; elem>next!=0; elem=elem-next)if(elem-next->number=number)cout<”商品代碼:"<elem->next>number<<"商品名稱:”elem->nextname<<"商品的價格:"<elemnext>price<
18、"元"endl;return true;cout<<"沒有此商品"<endl; return false;4。3.4 商品的顯示void list::print() /輸出鏈表中各元素 if(elems=0) return; for(shangpin elem=elems; elem!=0; elem=elemnext) cout"商品代碼:"<elem->number<” "<"商品名稱:"<elem>name<” ""商品
19、價格:"<elem->price<”元”endl; coutendl;void list::print1() /輸出鏈表中各元素 if(elems=0) return; for(shangpin *elem=elems; elem!=0; elem=elem>next) cout<"商品代碼:”<elem->number<” ”<<”商品名稱:"<<elemname<” ”<”商品價格:"<<elem-price<"元”<<”商品的
20、重量或件數(shù):”<elem>weight<<endl; coutendl;4.4 購物功能的實現(xiàn)cout"請輸入你所要購買的商品的代碼"<endl;cinnum4;cout<”請輸入你要購買的件數(shù)或重量”endl;cin>>weight;shangpin *p;p=ptr-chazhao(num4);ptr1insert1(p,weight);zonge=zonge+(p-price)weight;cout<”是否購物完畢?"endl;cout<"如果購物完畢,請輸入 b *結(jié)束購物”<&l
21、t;endl;cout<”如果繼續(xù)購物,請隨機輸入一個字符,但不要輸入b*或*B*"<<endl;cin>ch2;cout”你購買的商品清單如下:"endl;ptr1>print1();ptr1-shanchu();cout”你所要支付的總金額為:”<zongeendl;zonge=0;第五章 調(diào)試手冊與測試數(shù)據(jù)5.1 調(diào)試手冊(1)、error C2143: syntax error : missing '; before ''行246少了一個分號(2)、error C2562: 'main' :
22、 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ù):進入演示程序后,即顯示對話形式的提示操作過程:第六章 實驗心得與體會c+課程設(shè)計在基本知識上由老師引導(dǎo),自己很多都靠自學(xué),不明白的問老師,但由此自學(xué)能力得到了很大的培養(yǎng).在設(shè)計過程中,我感覺到
23、一點:程序是不能一氣呵成的,至少一氣呵成的程序不會盡善盡美,程序編寫要一步一步的完成。首先,對于要編寫的程序要有一個總體思想,要明確想要什么,只要把思想理順清楚了,如此才能夠把程序分割成幾個模塊,即多個函數(shù),一塊一塊的編寫,然后將分散的函數(shù)用另外的函數(shù)鏈接起來或者用main函數(shù)鏈接。到了這一步,程序的框架也就完成了,之后就是調(diào)試查錯誤以及修改了.為了讓自己的程序更加的美觀和更加的簡潔,最后我們還得對程序再進行進一步的修改,優(yōu)化程序的階段是很重要的.附錄一源程序:#includeiostream.h>include <conio。hstruct shangpinint number;
24、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ù)在派生類中可重新定義 bool contain(int); bool contain1(int); shangpin
25、 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) /若表為空,返回false shangpin *tmp=elems; if(elemsnumber=number) /若待刪除的元素為表
26、頭元素 return tmp; else for(shangpin elem=elems; elem-next!=0; elem=elemnext) 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=elemnext; delete tmp; list::list() /list類得析構(gòu)函數(shù)定義,循環(huán)釋放各元素所占的存
27、儲 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=prnumber; int i; for(i=0;i<30;i+) elem->namei=prnamei; elem->weight=wgt; elem-price=pr
28、price;/將新元素插入到鏈表頭 elem>next=elems; elems=elem; bool list:insert2()int num;cin>>num; shangpin *elem=new shangpin; /為新元素分配存儲 if (elem!=0) elem>number=num; elemnext=elems; elems=elem; return true; else return false;bool list::insert() /定義list類中插入元素的成員函數(shù)int num;cout<"請再次輸入商品的代碼"
29、<<endl;cin>>num; shangpin elem=new shangpin; /為新元素分配存儲 if (elem!=0) elem-number=num; cout<<"請輸入商品的名稱”<<endl; cin>elem>name; cout<”請輸入商品的價格(單位:元)”<<endl; cinelem>price;/將新元素插入到鏈表頭 elem-next=elems; elems=elem; return true; else return false;bool list:dele
30、tes(int number) /定義list類中刪除元素的成員函數(shù) if(elems=0) return false; /若表為空,返回false shangpin *tmp=elems; if(elemsnumber=number) /若待刪除的元素為表頭元素 elems=elemsnext; delete tmp; return true; else for(shangpin elem=elems; elem>next!=0; elem=elem>next) if(elem>next-number=number) /循環(huán)查找待刪除元素 tmp=elemnext; ele
31、m>next=tmp>next; delete tmp; return true; return false;bool list:contain(int number) /判元素val在鏈表中是否存在if(elems=0)return false; if(elemsnumber=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:conta
32、in1(int number)if(elems=0)cout"沒有此商品"endl;return false;if(elemsnumber=number)cout”商品代碼:"elems->number<”商品名稱:"<elems-name"商品價格:”<<elemsprice<<endl; return true; else for(shangpin elem=elems; elem>next!=0; elem=elem-next)if(elem->next->number=numb
33、er)cout<"商品代碼:"elem->next>number<”商品名稱:”elem-nextname<”商品的價格:"elem->next->price<<"元"endl;return true;cout<"沒有此商品"<endl; return false;void list:print() /輸出鏈表中各元素 if(elems=0) return; for(shangpin *elem=elems; elem!=0; elem=elem-next)
34、cout<"商品代碼:"elem->number<” ”"商品名稱:”<<elem>name<” ”<”商品價格:"<elem-price<<”元”<endl; coutendl;void list::print1() /輸出鏈表中各元素 if(elems=0) return; for(shangpin *elem=elems; elem!=0; elem=elemnext) cout<”商品代碼:”<elemnumber<” "<”商品名稱:&qu
35、ot;elemname<<" ”<<”商品價格:”elem-price”元""商品的重量或件數(shù):”elem->weight<endl; cout<<endl;bool set::insert() /在set類中的insert的重定義版本int num1;cout”請輸入商品代碼”endl;cin>>num1; if(list::contain(num1)=false&&list:insert() /先判斷此元素是否存在,然后再調(diào)用基類的此函數(shù)版本 +card; return true; r
36、eturn false;bool set::deletes(int number) /在set類中的deletes的重定義版本 if(list::deletes(number) /調(diào)用基類中的此函數(shù)版本 card-; return true; return false;void ini() cout<endl;cout<"*”<<endl;cout” 歡迎進入商品管理系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進行添加操作"endl;cout<” 1 :添加 "<" "<<"2 :刪徐 &q
37、uot;<<endl;cout" 3 :查找"<” "<<"4 :顯示 "endl;cout<” q :退出"<<endl;cout<<"*"<endl;cout<<”請選擇:"void inr() cout<endl;cout<<”*”<<endl;cout<<” 歡迎進入商店系統(tǒng),請選擇相應(yīng)的功能,如 按 1 鍵,進行商品管理操作"<endl;cout<” 1 :商品管理 "" "<<”2 :購物"<<endl;cout<" a :退出”<<endl;cout"*"<<endl;cout<”請選擇:"void main() list *ptr; set set1; ptr=set1; list
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 快遞進村合同協(xié)議書模板
- 商標(biāo)定制合同協(xié)議
- 橡膠廢料回收合同協(xié)議
- 商品搬家服務(wù)合同協(xié)議
- 步長制藥合同補充協(xié)議
- 向父親借款合同協(xié)議模板
- 快遞公司集體協(xié)議書模板
- 急救設(shè)備維修合同協(xié)議
- 2025家庭裝修工程合同范本(附帶報價表范本)
- 和諧家庭協(xié)議書范本
- 《建筑基坑工程監(jiān)測技術(shù)標(biāo)準(zhǔn)》(50497-2019)
- 產(chǎn)品合格證出廠合格證A4打印模板
- 八年級語文下冊第四單元大單元教學(xué)設(shè)計
- 問題解決型護理品管圈QCC成果匯報之提高住院患者口服藥規(guī)范化執(zhí)率
- 醫(yī)藥魔方-CAR-T細(xì)胞療法研發(fā)現(xiàn)狀與發(fā)展趨勢-2023.07
- 湖南省郴州市宜章縣2023年五年級數(shù)學(xué)第二學(xué)期期末學(xué)業(yè)水平測試模擬試題含解析
- 《醫(yī)學(xué)統(tǒng)計學(xué)》期末考試試題及答案
- GB/T 5053.1-1985汽車與掛車之間24N型電連接器
- 網(wǎng)吧安全管理責(zé)任書
- 實驗四穆斯堡爾效應(yīng)
- DGJ 08-70-2021 建筑物、構(gòu)筑物拆除技術(shù)標(biāo)準(zhǔn)
評論
0/150
提交評論