版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 課程設計說明書</b></p><p> 程序設計基礎課程設計任務書</p><p> 一、題目:設計一個簡單的產(chǎn)品管理系統(tǒng)</p><p><b> 二、目的與要求</b></p><p><b> 目的:</b></p>
2、<p> 通過產(chǎn)品管理系統(tǒng)的設計,培養(yǎng)學生綜合利用C++語言進行程序設計的能力,加強函數(shù)的運用及學生對軟件工程方法的初步認識,提高軟件系統(tǒng)分析能力和程序文檔建立、歸納總結的能力,培養(yǎng)學生利用系統(tǒng)提供的標準函數(shù)及典型算法進行設計。</p><p><b> 基本要求:</b></p><p> (1)要求用C++模塊化設計的思想來完成程序的設計;<
3、/p><p> ?。?)要求使用結構數(shù)組和結構指針,各個功能分別使用函數(shù)來完成,主函數(shù)和各個函數(shù)分別存放在不同的.cpp文件中,要求使用頭文件;</p><p> ?。?)要求使用選擇法排序,折半查找法進行查找。</p><p><b> 創(chuàng)新要求</b></p><p> 在基本要求達到后,進行創(chuàng)新設計,如進行刪除或插
4、入操作。</p><p><b> 書寫設計報告的要求</b></p><p> 設計報告中包含以下幾個方面:</p><p><b> 設計題目</b></p><p><b> 總體設計</b></p><p> 用自頂而下或自底而上的方法
5、,劃分功能模塊。</p><p><b> 確定各模塊的算法</b></p><p><b> 根據(jù)算法畫出流程圖</b></p><p> 列出程序清單,并加以必要的注釋</p><p><b> 寫出調試程序的方法</b></p><p>
6、 指出所設計問題的不足和改進方案</p><p> 課程設計材料的裝訂順序為:</p><p><b> 設計說明書封面</b></p><p><b> 課程設計任務書</b></p><p><b> 課程設計鑒定表</b></p><p>
7、;<b> 目錄</b></p><p><b> 設計報告書正文</b></p><p> 三、設計方法和基本原理</p><p><b> 問題描述:</b></p><p> 某工廠有5種產(chǎn)品,每種產(chǎn)品包括:產(chǎn)品代碼,產(chǎn)品名稱,產(chǎn)品數(shù)量,銷售量,要求編寫函數(shù)實現(xiàn)
8、下面:</p><p> 從鍵盤輸入這些產(chǎn)品的信息;</p><p> 按照產(chǎn)品的庫存量進行升序排序,使用選擇法排序,在主函數(shù)中輸出;</p><p> 使用折半查找法進行循環(huán)查詢,當用戶給出某種產(chǎn)品的代碼時,在主函數(shù)中顯示該產(chǎn)品的信息,如果沒找到則給出未找到的信息,退出程序的運行;</p><p><b> 輸出產(chǎn)品信息。
9、</b></p><p><b> 問題的解決方案:</b></p><p> 根據(jù)問題的描述,可以按照程序要求的功能采用結構化的設計思想。</p><p> 產(chǎn)品的庫存量在輸入函數(shù)中求解或者編寫獨立函數(shù)求解;</p><p> 在排序過程中,結構數(shù)組元素的交換可以整體進行,無需每個成員之間進行互換。
10、</p><p> 使用折半查找法進行查找之前,應該先按照產(chǎn)品代碼進行排序。</p><p> 四、主要技術問題的描述</p><p> 根據(jù)三的分析,主要問題在于:</p><p><b> ?。?)結構體的構造</b></p><p> 除了產(chǎn)品的代碼(int code)、產(chǎn)品名稱(c
11、har name) ,產(chǎn)品數(shù)量(float amount) ,銷售量(float sales)外,還應有產(chǎn)品的庫存量(float stock)</p><p><b> ?。?)排序</b></p><p> 在進行完結構數(shù)組中某個成員的比較后,不是某個成員的互換,而是結構體數(shù)組元素之間的互換。例如結構體數(shù)組元素pro[j]和pro[k]的互換:</p>
12、<p> t=pro[j]; pro[j]=pro[j+1]; pro[j+1]=t;</p><p> (3)各個函數(shù)的參數(shù)傳遞問題</p><p> 實參應為結構數(shù)組名,形參為結構體指針或者結構體數(shù)組。如輸入函數(shù):</p><p> void Input(PRODUCT *p) //結構體指針作為形參</p><p&g
13、t; {//program code</p><p><b> }</b></p><p> 函數(shù)調用時:Input(pro); // pro 為結構體數(shù)組名</p><p> 五、課程設計時間:18周</p><p> 六、課程設計的考核方式及評分方法</p><p><b&
14、gt; 1.考核方式</b></p><p> 課程設計結束時,在機房當場驗收。</p><p> 教師提供測試數(shù)據(jù),檢查運行結果是否正確。</p><p> 回答教師提出的問題。</p><p> 學生提交課程設計文檔(A4紙打?。?lt;/p><p><b> 2.評分方法</b
15、></p><p> 上機檢查 :書面報告=7 :3,沒有通過上機檢查的其成績直接記錄不及格</p><p> 指導教師簽名: 日期: </p><p> 教研室主任簽名: 日期: </p><p> 系主任簽名: 日期: </p
16、><p><b> 摘要</b></p><p> 用C++模塊化設計的思想來完成該簡單的產(chǎn)品管理系統(tǒng)程序的設計,使用結構數(shù)組和結構指針,各個功能分別使用函數(shù)來完成,主函數(shù)和各個函數(shù)分別存放在不同的.cpp文件中,使用了頭文件,并使用選擇法排序,折半查找法進行查找。</p><p> 關鍵詞:產(chǎn)品管理系統(tǒng);模塊化設計;結構數(shù)組;結構指針;選擇
17、法排序;折半查找法。</p><p><b> 目錄</b></p><p> 1 設計內容與要求 ………………………………………………………………………………… 1</p><p> 2.設計說明 ………………………………………………………………………………………… 2</p><p> 2.1 問題描述與功能
18、設計…………………………………………………………………………2</p><p> 2.2 算法與數(shù)據(jù)結構………………………………………………………………………………4</p><p> 2.3 函數(shù)定義…………………………………………………………………………………………6</p><p> 2.4 界面設計………………………………………………………………………
19、………………9</p><p> 2.5 編碼……………………………………………………………………………………………12</p><p> 2.6 測試……………………………………………………………………………………………21</p><p> 3 總結…………………………………………………………………………………………………23</p><
20、;p> 參考文獻 ……………………………………………………………………………………………25</p><p> 附錄A 源代碼………………………………………………………………………………………26</p><p><b> 1設計內容與要求</b></p><p> 設計一個簡單的產(chǎn)品管理系統(tǒng):</p><p&
21、gt; 某工廠有5種產(chǎn)品,每種產(chǎn)品包括:產(chǎn)品代碼,產(chǎn)品名稱,產(chǎn)品數(shù)量,銷售量,要求編寫函數(shù)實現(xiàn)下面:</p><p> ?。?)從鍵盤輸入這些產(chǎn)品的信息;</p><p> ?。?)按照產(chǎn)品的庫存量進行升序排序,使用選擇法排序,在主函數(shù)中輸出;</p><p> (3)使用折半查找法進行循環(huán)查詢,當用戶給出某種產(chǎn)品的代碼時,在主函數(shù)中顯示該產(chǎn)品的信息,如果沒找到
22、則給出未找到的信息,退出程序的運行;</p><p> ?。?)輸出產(chǎn)品信息。</p><p><b> 基本要求:</b></p><p> (1)要求用C++模塊化設計的思想來完成程序的設計;</p><p> ?。?)要求使用結構數(shù)組和結構指針,各個功能分別使用函數(shù)來完成,主函數(shù)和各個函數(shù)分別存放在不同的.cp
23、p文件中,要求使用頭文件;</p><p> (3)要求使用選擇法排序,折半查找法進行查找。</p><p><b> 創(chuàng)新要求:</b></p><p> 在基本要求達到后,進行創(chuàng)新設計,如進行刪除或插入操作。</p><p><b> 2.設計說明</b></p><
24、p> 2.1 問題描述與功能設計</p><p> 2.1.1 問題描述:</p><p><b> 問題描述:</b></p><p> 某工廠有5種產(chǎn)品,每種產(chǎn)品包括:產(chǎn)品代碼,產(chǎn)品名稱,產(chǎn)品數(shù)量,銷售量,要求編寫函數(shù)實現(xiàn)下面:</p><p> ( 1 ) 從鍵盤輸入這些產(chǎn)品的信息;</p&g
25、t;<p> ( 2 )按照產(chǎn)品的庫存量進行升序排序,使用選擇法排序,在主函數(shù)中輸出;</p><p> 使用折半查找法進行循環(huán)查詢,當用戶給出某種產(chǎn)品的代碼時,在主函數(shù)中顯示該產(chǎn)品的信息,( 3 )如果沒找到則給出未找到的信息,退出程序的運行;</p><p> ( 4 )輸出產(chǎn)品信息。</p><p><b> 主要問題在于:&l
26、t;/b></p><p><b> (1)結構體的構造</b></p><p> 除了產(chǎn)品的代碼(int code)、產(chǎn)品名稱(char name) ,產(chǎn)品數(shù)量(float amount) ,銷售量(float sales) 外,還應有產(chǎn)品的庫存量(float stock) </p><p><b>
27、(2)排序</b></p><p> 在進行完結構數(shù)組中某個成員的比較后,不是某個成員的互換,而是結構體數(shù)組元素之間的互換。例如結構體數(shù)組元素pro[j]和pro[k]的互換:</p><p> t=pro[j]; pro[j]=pro[j+1]; pro[j+1]=t;</p><p> ?。?)各個函數(shù)的參數(shù)傳遞問題</p><
28、;p> 實參應為結構數(shù)組名,形參為結構體指針或者結構體數(shù)組。如輸入函數(shù):</p><p> void Input(PRODUCT *p) //結構體指針作為形參</p><p> {//program code</p><p><b> }</b></p><p> 函數(shù)調用時:Input(pro);
29、 // pro 為結構體數(shù)組名</p><p> 2.1.2功能設計:</p><p> 根據(jù)問題描述和設計要求,設計如下的功能:產(chǎn)品信息的輸入、全部產(chǎn)品信息的查看、單個產(chǎn)品信息的按代碼查看、單個產(chǎn)品信息的修改。</p><p> 2.2 算法與數(shù)據(jù)結構</p><p><b> 2.2.1 算法</b><
30、;/p><p><b> 主函數(shù)</b></p><p><b> 產(chǎn)品信息輸入</b></p><p><b> 產(chǎn)品庫存量升序排列</b></p><p><b> 產(chǎn)品代碼查找</b></p><p><b>
31、 修改已輸入產(chǎn)品信</b></p><p><b> 2.2.2數(shù)據(jù)結構</b></p><p> 本程序采用的數(shù)據(jù)結構為:</p><p> struct product</p><p><b> {</b></p><p> int code;&l
32、t;/p><p> char name[10];</p><p> float amount;</p><p> float sales;</p><p> float stock;</p><p><b> }pro[5];</b></p><p><b>
33、; 2.3 函數(shù)定義</b></p><p> 我設計該程序一共定義了三個函數(shù),分別為:產(chǎn)品輸入,產(chǎn)品庫存量升序排列,產(chǎn)品代碼查找,修改已輸入產(chǎn)品信息,主界面。</p><p> 函數(shù)名分別為: void input()</p><p> void sort()</p><p> void search()</p&
34、gt;<p> void reput()</p><p> void desktop()</p><p><b> 2.4 界面設計</b></p><p><b> 本程序界面設計為</b></p><p><b> 2.5 編碼</b></p&
35、gt;<p> system("pause");</p><p> system("cls");</p><p> 在我寫的程序中運用了上面的語句,這個語句在程序中大量運用,使得界面清晰明了,更加美觀。</p><p> system("pause") 用來暫停系統(tǒng)工作</p&g
36、t;<p> system("cls") 用來清除屏幕 </p><p><b> 2.6 測試</b></p><p><b> ?、苯a(chǎn)品信息:</b></p><p> ?、膊榭慈慨a(chǎn)品信息:</p><p><b> ?、巢檎耶a(chǎn)品信息:<
37、;/b></p><p> 查找代碼為103的餐桌.</p><p><b> ⒋修改產(chǎn)品信息:</b></p><p> 修改 代碼:105名稱:書桌 為:</p><p> 代碼:205 名稱:書桌 產(chǎn)品數(shù)量:23 銷售量:12</p><p><b> 3 總結&l
38、t;/b></p><p> 通過本次課程設計,使得本學期來我學到的知識得到了一次綜合的應用。實驗了從理論到實踐的飛躍。</p><p> 本次課程設計中,我要用C++知識設計的是一個簡單產(chǎn)品信息管理系統(tǒng)。要求用C++模塊化設計的思想來完成程序的設計,并使用結構數(shù)組和結構指針,各個功能分別使用函數(shù)來完成,主函數(shù)和各個函數(shù)分別存放在不同的.cpp文件中,要使用頭文件。在查看產(chǎn)品信息
39、時要求使用選擇法排序,折半查找法進行查找。</p><p> 在輸入產(chǎn)品信息時,為解決產(chǎn)品代碼重復輸入的問題,通過與同學的交流,采用了通過字符比較的方法排除。在查看產(chǎn)品信息時要求使用折半查找法進行查找,在輸入錯誤代碼時,總造成系統(tǒng)死機,也是在同學的幫助下找到了問題所在。這些都令我十分高興。</p><p> 在一系列的數(shù)據(jù)測試后,該程序能基本順利運行,但不排除還存在一些問題。比如:在輸
40、入產(chǎn)品代碼時,如果輸入數(shù)據(jù)不為整數(shù)類型時,會造成程序錯誤。</p><p> 總之,通過本次課程設計,是我使用C++語言編程的綜合能力得到了提高。</p><p><b> 參考文獻</b></p><p> [1] 王挺、周會平、賈麗麗、徐錫山. C++程序設計[M]. 北京:清華大學出版社,2005:138-221.</p>
41、;<p> [2] 劉瑞新. Visual C++面向對象程序設計教程[M]. 北京:機械工業(yè)出版社,2005.</p><p><b> 附錄A 源代碼</b></p><p><b> Main.cpp</b></p><p> #include<iostream.h></p&g
42、t;<p> #include<windows.h></p><p> #include"function.h"</p><p> int main()</p><p><b> {</b></p><p><b> int n;</b><
43、;/p><p><b> do</b></p><p><b> {</b></p><p> desktop();</p><p><b> cin>>n;</b></p><p> system("cls");&
44、lt;/p><p><b> if(n==1)</b></p><p><b> {</b></p><p><b> input();</b></p><p><b> }</b></p><p> else if(n==2
45、)</p><p><b> {</b></p><p><b> sort();</b></p><p><b> }</b></p><p> else if(n==3)</p><p><b> {</b><
46、/p><p><b> search();</b></p><p><b> }</b></p><p> else if(n==4)</p><p><b> {</b></p><p><b> reput();</b>
47、</p><p><b> }</b></p><p><b> }</b></p><p> while(n!=0);</p><p><b> return 0;</b></p><p><b> }</b></
48、p><p> Function.h</p><p> #include<iostream.h></p><p> #include<windows.h></p><p> struct product</p><p><b> {</b></p><
49、;p><b> int code;</b></p><p> char name[10];</p><p> float amount;</p><p> float sales;</p><p> float stock;</p><p><b> }pro[5];&
50、lt;/b></p><p> //……產(chǎn)品輸入……</p><p> void input()</p><p><b> {</b></p><p> for(int i=0;i<5;i++)</p><p><b> {</b></p>
51、<p> cout<<"請輸入第"<<i+1<<"種產(chǎn)品代碼:";</p><p> cin>>pro[i].code;</p><p> cout<<"請輸入第"<<i+1<<"種產(chǎn)品名稱:";</p&
52、gt;<p> cin>>pro[i].name;</p><p> cout<<"請輸入第"<<i+1<<"種產(chǎn)品數(shù)量:";</p><p> cin>>pro[i].amount;</p><p> cout<<"請輸入
53、第"<<i+1<<"種產(chǎn)品銷售量:";</p><p> cin>>pro[i].sales;</p><p> pro[i].stock=pro[i].amount-pro[i].sales;</p><p> system("cls");</p><p
54、><b> }</b></p><p><b> }</b></p><p> //……產(chǎn)品庫存量升序排列</p><p> void sort()</p><p><b> {</b></p><p> product temp;&l
55、t;/p><p> for(int i=0;i<5-1;i++)</p><p> for(int j=i+1;j<=5-1;j++)</p><p> if(pro[i].stock>pro[j].stock)</p><p><b> {</b></p><p> te
56、mp=pro[i];</p><p> pro[i]=pro[j];</p><p> pro[j]=temp;</p><p><b> }</b></p><p> for(int j=0;j<=5-1;j++)</p><p><b> {</b><
57、;/p><p> cout<<"庫存量排第"<<j+1<<"種產(chǎn)品的庫存是"<<pro[j].stock<<endl;</p><p> cout<<"代碼是"<<pro[j].code<<endl;</p><p&
58、gt; cout<<"名稱是"<<pro[j].name<<endl;</p><p> cout<<"數(shù)量是"<<pro[j].amount<<endl;</p><p> cout<<"銷售量是"<<pro[j].sales&
59、lt;<endl<<endl;</p><p><b> }</b></p><p> system("pause");</p><p> system("cls");</p><p><b> }</b></p>&l
60、t;p> //……產(chǎn)品代碼查找……</p><p> void search()</p><p><b> {</b></p><p> int code[5]={1,2,3,4,5};</p><p> bool flag=0;</p><p><b> int b;
61、</b></p><p> cout<<"請輸入要查詢的代碼為:";</p><p><b> cin>>b;</b></p><p> for(int i=0;i<5;++i)</p><p> if(b==pro[i].code)</p>
62、;<p><b> {</b></p><p><b> flag=1;</b></p><p> cout<<"產(chǎn)品代碼:"<<pro[i].code<<" "</p><p> <<"名稱:"
63、;<<pro[i].name<<" "</p><p> <<"數(shù)量:"<<pro[i].amount<<" "</p><p> <<"銷售量:"<<pro[i].sales<<endl;</p>
64、<p><b> }</b></p><p> if(flag==0)</p><p> cout<<"此代碼不存在!"<<endl;</p><p> system("pause");</p><p> system("cl
65、s");</p><p><b> } </b></p><p> //……修改已輸入產(chǎn)品信息</p><p> void reput()</p><p><b> {</b></p><p><b> int code;</b>&
66、lt;/p><p> cout<<"已輸入產(chǎn)品代碼分別是:"<<endl;</p><p> for(int k=0;k<=5-1;k++)</p><p> cout<<pro[k].code<<endl;</p><p> cout<<"您
67、要修改的產(chǎn)品代碼是多少?"<<endl;</p><p> cin>>code;</p><p> for(int i=0;i<=4;i++)</p><p><b> {</b></p><p> if (pro[i].code==code)break;</p&g
68、t;<p><b> }</b></p><p><b> if(i==5)</b></p><p> cout<<"沒有您要修改的產(chǎn)品"<<endl;</p><p><b> else</b></p><p>
69、;<b> {</b></p><p> cout<<"請輸入您要修改的產(chǎn)品的代碼"<<endl;</p><p> cin>>pro[i].code;</p><p> cout<<"請輸入您要修改的產(chǎn)品的名字"<<endl;</
70、p><p> cin>>pro[i].name;</p><p> cout<<"請輸入您要修改的產(chǎn)品的數(shù)量"<<endl;</p><p> cin>>pro[i].amount;</p><p> cout<<"請輸入您要修改的產(chǎn)品的銷售量&qu
71、ot;<<endl;</p><p> cin>>pro[i].sales;</p><p> pro[i].stock=pro[i].amount-pro[i].sales;</p><p><b> }</b></p><p> system("pause");&l
72、t;/p><p> system("cls");</p><p><b> }</b></p><p> //++++++++++++++desktop+++++++++++++++</p><p> void desktop()</p><p><b> {&
73、lt;/b></p><p> cout<<endl;</p><p> cout<<"********************歡迎進入產(chǎn)品管理系統(tǒng)********************"<<endl</p><p> <<" *** 請選擇您
74、要的服務 ***"<<endl</p><p> <<" *** 1.輸入產(chǎn)品信息 ***"<<endl</p><p> <<" *** 2.查看產(chǎn)品
75、信息 ***"<<endl</p><p> <<" *** 3.查找產(chǎn)品信息 ***"<<endl</p><p> <<" *** 4.修改產(chǎn)品
76、信息 ***"<<endl</p><p> <<"*** 0.退出系統(tǒng) ***"<<endl</p><p> <<"**************************
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- c語言課程設計-產(chǎn)品管理系統(tǒng)
- c++課程設計-商品管理系統(tǒng)
- c++課程設計報告-商品管理系統(tǒng)
- c++課程設計報告--超市商品管理系統(tǒng)
- c++課程設計--簡單成績管理系統(tǒng)
- c++課程設計-產(chǎn)品入庫管理操作系統(tǒng)
- 簡單的通信管理系統(tǒng)--課程設計c++
- 課程設計報告---商品管理系統(tǒng)
- 公益物品管理系統(tǒng)課程設計
- 藥品管理系統(tǒng)課程設計報告
- 《c語言程序設計》課程設計--藥房藥品管理系統(tǒng)
- 電信產(chǎn)品管理系統(tǒng)的研究與設計.pdf
- 統(tǒng)一產(chǎn)品管理系統(tǒng)的設計和實現(xiàn).pdf
- c++酒店管理系統(tǒng)課程設計
- c++酒店管理系統(tǒng)課程設計
- 銷售管理系統(tǒng)c++課程設計
- 老鄉(xiāng)雞產(chǎn)品管理系統(tǒng)設計與實現(xiàn).pdf
- c小型商品管理系統(tǒng)-課程設計說明書
- 《c++》課程設計倉庫管理系統(tǒng)
- c++課程設計-學生管理系統(tǒng)
評論
0/150
提交評論