c商品管理程序._第1頁
c商品管理程序._第2頁
c商品管理程序._第3頁
c商品管理程序._第4頁
c商品管理程序._第5頁
已閱讀5頁,還剩38頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、淮陰工學院C+程序設計課程設計報告選題名稱:商品管理系統(tǒng)系(院):計算機工程學院專 業(yè):計算機科學與技術班 級:計算機#班姓 名:# 學號:#扌指導教師:步山岳學年學期:20152016 學年 第 1 學期2015年12月 日設計任務書課題 名稱商品管理系統(tǒng)設計 目的1. 調研商品管理系統(tǒng)的功能;2. 學習與商品管理系統(tǒng)相關的參考資料和基于 VC+集成環(huán)境的編程技術;3. 通過實際編程加深對基礎知識的理解,提高實踐能力;4. 學習開發(fā)資料的收集與整理,學會撰寫課程設計報告。實驗 環(huán)境1. 微型電子計算機(PC);2. 安裝 Windows 2000以上操作系統(tǒng),Visual C+6.0開發(fā)工具

2、,MicrosoftOffice PowerPoi nt 2003。任務 要求1. 利用課余時間去圖書館或上網(wǎng)查閱課題相關資料,深入理解課題含義及設計要求,注意材料收集與整理;2. 在第,17周末之前完成預設計,并請指導教師審查,通過后方可進行下一步工作;3. 本課題主要功能有:1)添加:即增加一個商品的記錄到系統(tǒng)中;2)刪除:即從系統(tǒng)中刪除一個商品的記錄;3)查詢:可根據(jù)商品名稱、編號查找商品的相關信息,若找到顯示該商品的全部信息;4)修改:可修改一個商品的除名稱外的其它信息;5 )狀態(tài):提供該商品在庫、不在庫的狀態(tài)。4. 結束后,及時提交設計報告(含紙質稿、電子稿),要求格式規(guī)范、內容完整

3、、結論正確,正文字數(shù)不少于 3000字(不含代碼)。工作進度計劃序號起止日期工作內容12015.12.262015.12.27在預設計的基礎上,進 步查閱資料,完善設計方案, 形成書面材料。22015.12. 272015.12. 29設計總體方案,構建、繪制流程框圖,編寫代碼,上 機調試。32015.12. 292015.12. 30測試程序,優(yōu)化代碼,增強功能,撰寫設計報告。42015.12. 302015.12. 31提交軟件代碼、設計報告,參加答辯,根據(jù)教師反饋 意見,修改、完善設計報告。指導教師(簽章)年月日摘要:分別對軟件的需求進行分析,對軟件的概要設計和軟件的詳細設計進行闡述,以

4、 及對軟件的組裝及測試的詳細敘述,并附加了軟件的使用說明書(操作手冊)。程序設計一般由兩部分組成:算法和數(shù)據(jù)結構,合理選擇和實現(xiàn)一個數(shù)據(jù)結構與處理這些數(shù) 據(jù)結構具有同樣的重要性。以將每個功能分別編譯實現(xiàn),再通過函數(shù)包含,調用等方 法實現(xiàn)各項功能間的連接為設計思想,并采用將商品當作一個整體,整體類型為結構 體,結構體中的域表示商品的屬性的這種定義結構作為數(shù)據(jù)結構。軟件將各個模塊的 功能分為列菜單、商品登記、添加、查詢、修改、刪除、顯示等來組成整個程序,實 現(xiàn)對商品信息的系統(tǒng)管理。該程序界面友好,易于操作,使操作者和使用者應用更加 方便。關鍵詞:課程設計;商品管理;VC+代碼6目錄1 課題綜述 1

5、1.1 課題來源 11.2 課題意義 11.3 預期目標 11.4 面對問題 11.5 需要解決的關鍵技術 22 系統(tǒng)分析 32.1 涉汲的基礎知識 32.2 解決問題的基本思路 42.3 總體方案 43 系統(tǒng)設計 53.1 系統(tǒng)達到的目的 53.2 系統(tǒng)功能說明 53.2.1 功能分析說明圖 53.2.2 各項功能說明 53.3 系統(tǒng)設計環(huán)境與模塊的劃分 63.3.1 系統(tǒng)設計環(huán)境 63.3.2 系統(tǒng)模塊的劃分 63.4 軟件設計主要原理 73.4.1 采用的主要數(shù)據(jù)結構類型 73.4.2 各個模塊之間的調用關系和數(shù)據(jù)儲存格式說明 83.4.3 主要流程圖 9144 代碼編寫4.1 各模塊之

6、間的調用方式 144.2 程序中實現(xiàn)各項功能的函數(shù)與程序代碼 14225 程序調試5.1 出現(xiàn)問題及解決方法 226 運行與測試 23總 結 28致 謝 28參考文獻 281 課題綜述本章主要闡述了課題的來源、意義、預期的目標以及要面對的問題和需要解決的關 鍵技術。1.1 課題來源“ C+g序設計”是計算機科學與技術專業(yè)最重要的一門專業(yè)基礎課程,涉及知識 點多,教、學難度非常大,往往費了大量時間而達不到預期效果。俗語說:學習的最 好方法是實踐。為了給我們提供一個理論聯(lián)系實際的機會,學院特課設課程設計實踐 課,布置一定難度的課題,要求我們獨立完成。本課題便是來自課程設計實踐課中的 課題。1.2

7、課題意義通過設計商品管理系統(tǒng)這一實踐活動,可以促使我們建立課程設計的整體思想, 鍛煉我們的編寫程序、調試程序的能力,學習文檔編寫規(guī)范,培養(yǎng)獨立學習、吸取他 人經(jīng)驗、探索前沿知識的習慣,樹立團隊協(xié)作精神。1.3 預期目標寫出代碼,不斷調試修改,最終實現(xiàn)登記商品信息、添加一個商品記錄、查詢一 個商品的全部信息(包括按商品編號查詢和商品名稱查詢) 、修改一個商品除名稱外的 全部信息、刪除一個商品記錄等功能。1.4 面對問題如何去實現(xiàn)預期的功能?比如在修改商品信息的時候如果出現(xiàn)編號重復了,如何 實現(xiàn)對此的辨別?在修改商品信息時,如果遇到不需要修改的信息,如何簡化工作, 跳過對某一信息的修改,而非將愿信

8、息重新輸入一邊等。這些都是要面對的問題。1.5 需要解決的關鍵技術選擇使用結構,則須知道結構體的基礎知識,要定義的域內容,各數(shù)據(jù)的類型 需要用到的函數(shù)及其定義,熟練運用循環(huán)語句。確立菜單形式選項,則要熟悉 switch 語句。292 系統(tǒng)分析2.1 涉汲的基礎知識基本數(shù)據(jù)類型:整型(int)、浮點型(單精度float、雙精度double)、字符型(char)結構體 :自定義數(shù)據(jù)類型中的一種,它可將多種數(shù)據(jù)類型組合在一起使用,方便 描述現(xiàn)實世界的各種各樣的客觀對象之間的關系。If 語句 :也稱條件語句,主要功能是當程序運行到此處可以根據(jù)條件的不同而決 定執(zhí)行什么樣的后續(xù)語句。它的語法有兩種形式:

9、if ( 表達式 ) 語句 ;if (表達式 ) 語句 1; else 語句 2;Switch 語句:也稱開關語句,它是多分支結構。一般形式為:casev常量表達式1 : break;casev常量表達式2 : break;case: break; default: v 語句序列 n+1注意點: Switch 括號中的表達式只能是整型、 字符型或枚舉型表達 式。Case后面的常量表達式之類型必須而與其匹配。String.h 頭文件: 是諸多字符空間操作的庫函數(shù)集合。本系統(tǒng)用到“ strcmp”來實現(xiàn)字符的比較。函數(shù): 由能完成特定任務的獨立程序代碼塊組成 ;其內部工作對程序的其余部分 是不可見

10、的。形式如下:返回類型 函數(shù)名(參數(shù)表)語句塊;函數(shù)名: 應盡可能反映函數(shù)的功能;參數(shù)表: 0 個或多個變量, 用于向函數(shù)傳送數(shù)值或從函數(shù)帶回數(shù)值。 如果參 數(shù)表列中參數(shù)個數(shù)為 0,稱為無參函數(shù)返回類型: 用 return 返回函數(shù)值的類型。如果函數(shù)沒有返回值,返回類型 應為 void 。一個函數(shù)也可以有多個 return 語句,在函數(shù)的執(zhí)行 過程中, 遇到任一個 return 語句,將立即停止執(zhí)行, 并返回到調 用函數(shù)。函數(shù)體: 花括號中的語句稱為函數(shù)體。 一個函數(shù)的功能, 通過函數(shù)體中的語 句來完成。2.2 解決問題的基本思路針對相應的問題,選擇合適的語句。通過函數(shù)調用,來實現(xiàn)各個功能。2

11、.3 總體方案將各功能,以菜單的形式列出。建立菜單,通過使用case語句,選擇相應的功能。 將每一個功能以函數(shù)的形式寫出,在主函數(shù)的每一個case語句中調用。3系統(tǒng)設計3.1系統(tǒng)達到的目的該系統(tǒng)主要是實現(xiàn)對商品信息進行系統(tǒng)化的管理,首先可以對商品基本信息進行 登記,其次在有需要的情況下可以繼續(xù)添加一條或多條商品記錄,然后可以按照商品 的編號或者名稱查詢商品的全部信息,還可以實現(xiàn)修改商品除名稱外的所有信息以及 刪除商品記錄等。由此來系統(tǒng)化管理商品信息,并達到簡易操作的目的。3.2系統(tǒng)功能說明321功能分析說明圖該軟件功能分析說明圖如3-1所示圖3-1商品管理系統(tǒng)分析說明圖322各項功能說明(1)

12、 登記商品信息:這部分的功能主要是商品信息的登記。按照提示依次輸入商品的編號、名稱、價格以及庫存。(2) 添加商品信息:此功能是在已登記的基礎上如果需要添加則選擇此項。3)按編號查找商品信息: 此項功能可以根據(jù)用戶輸入的商品編號查出該商品的所有信息。4)按名稱查找商品信息: 此項功能可以根據(jù)用戶輸入的商品名稱查出該商品的所有信息。5)刪除學生信息: 進入該項功能界面后,用戶可以通過學生的編號對某個商品記錄進行刪除。6)修改商品信息: 進入修改界面,系統(tǒng)將提示輸入要修改的商品編號,用戶正確輸入編號后會出現(xiàn) 子菜單,其中包括修改編號、價格、庫存以及返回主菜單。如果修改后的編號與庫存 中其他商品編號

13、重復,將提示重新輸入。7)商品庫存狀態(tài): 此項功能可以根據(jù)用戶輸入的商品編號查出該商品庫存是否為零,如果為零,則 顯示“該商品不在庫! !”。不為零,則顯示“該商品在庫! !”。8)顯示商品的所有信息: 選擇此項功能后,系統(tǒng)將自動在屏幕上顯示出所有商品的信息。9)退出系統(tǒng): 選擇此項功能后,退出系統(tǒng),結束任務。3.3 系統(tǒng)設計環(huán)境與模塊的劃分3.3.1 系統(tǒng)設計環(huán)境Microsoft Visual C+ 6.0:美國微軟公司開發(fā)的 C+ 集成開發(fā)環(huán)境,它集源程序的 編寫、編譯、連接、調試、運行,以及應用程序的文件管理于一體,是當前 PC 機上最 流行的C+程序開發(fā)環(huán)境。3.3.2 系統(tǒng)模塊的劃

14、分該軟件主要組成模塊和各個模塊之間的調用關系如圖 3-2:商品管理系統(tǒng)圖3-2模塊調用關系圖登記商品信息3.4軟件設計主要原理3.4.1采用的主要數(shù)據(jù)結構類型該程序采用的是結構體類型來處理學生的所有基本信息,如下所述:包含的庫函數(shù)有#in clude #in clude / #in cludevioma nip.h / #in clude /數(shù)據(jù)流輸入/輸出字符串處理參數(shù)化輸入/輸出setw() 進程處理 system(cls)#in clude sta ndard in put and output#define N 100/宏定義又稱為預定義,可以定義常量/商品結構體定義struct sh

15、a ngpinint id; /商品編口,號char spname20; /商品名稱float price; /商品價格int kucun; /l商品庫存;shangpin spN=0,0,0,0;/結構體初始化int count=0,temp;/定義全局變量 count,temp;/ 函數(shù)聲明:void tianjia(); /添加商品記錄void bianhaochazhao();/按編號查找商品信息void namechazhao();/按名稱查找商品信息void xiugai(); /修改商品信息void shanchu(); /刪除商品記錄void zhuangtai();/商品庫存

16、狀態(tài)void xianshi(); /顯示所有商品信息void xiugaibianhao(); /修改編號void xiugaijiage();/修改價格void xiuggaikucun(); /修改庫存3.4.2 各個模塊之間的調用關系和數(shù)據(jù)儲存格式說明并利各函數(shù)模塊之間的調用關系主要是主函數(shù)調用所有其它功能函數(shù)和菜單函數(shù),用循環(huán)使各個功能函數(shù)運行完畢后都會回到菜單。該程序的數(shù)據(jù)以二進制儲存。登記商品信息343主要流程圖、主函數(shù)開始T選擇功能添 加 商 品 信 息按按編名號稱查查找找商商品品信信息息修 改 商 品 信 息刪 除 商 品 信 息商 品 在 庫 狀 態(tài)圖3-3主函數(shù)流程圖結束

17、退 出 系 統(tǒng)顯 示 所 有 商 品 信 息、添加商品信息結束圖3-4登記商品信息流程圖、查找商品信息/輸出相應商/ 品信息返回1主采單1( 結束圖3-5查找商品信息流程圖四、修改商品信息圖3-6修改商品信息五、刪除商品信息系統(tǒng)對此編號商品的所 有進行清零實現(xiàn)刪除( 結束 /圖3-7刪除商品信息流程圖六、商品在庫狀態(tài)返回主菜單結束圖3-7商品在庫狀態(tài)流程圖七、顯示所有商品信息選擇操作8圖3-8顯示所有商品信息流程圖八、退出函數(shù)圖3-9退出函數(shù)流程圖4 代碼編寫4.1 各模塊之間的調用方式程序中各個模塊之間的調用方式主要是通過文件的包含和函數(shù)的調用實現(xiàn) 的,用文件的形式把各個函數(shù)分開,再用頭文件

18、把它們包含進來,使用主函數(shù)進 行調用。4.2 程序中實現(xiàn)各項功能的函數(shù)與程序代碼數(shù)據(jù)流輸入 / 輸出字符串處理參數(shù)化輸入 / 輸出 setw() 進程處理 system(cls)一、頭文件及宏定義 : #include/ #include / #include / #include /#include /standard input and output #define N 100 / / 商品結構體定義 struct shangpin int id; / char spname20; float price;/int kucun;/; shangpin spN=0,0,0,0; int co

19、unt=0,temp; / 函數(shù)聲明: void tianjia(); / void bianhaochazhao(); void namechazhao(); void xiugai(); void shanchu(); void zhuangtai(); void xianshi(); void xiugaibianhao(); void xiugaijiage(); void xiuggaikucun();/宏定義又稱為預定義,可以定義常量商品編號 商品名稱 商品價格 商品庫存/結構體初始化 定義全局變量 count,temp;添加商品記錄按編號查找商品信息 按名稱查找商品信息 修改商品

20、信息 刪除商品記錄 商品庫存狀態(tài)顯示所有商品信息修改編號修改價格修改庫存/ 主菜單 void MenuMain()system(cls); / 清屏cout 歡迎使用我們的商品管理系統(tǒng)coutendl;endl;coutendl;cout請選擇服務endl;cout1 -添加商品記錄endl;cout2 -按編號查找商品信息endl;cout3 -按名稱查找商品信息endl;cout4 -修改商品信息endl;cout5 -刪除商品記錄endl;cout6 -商品庫存狀態(tài)endl;cout7 -顯示所有商品信息endl;cout8 -安全退出endl;coutendl;cout 請輸入您的選擇

21、: ;coutoptions;switch (options)case 1:tianjia(); / break;case 2:bianhaochazhao(); / break;case 3: namechazhao(); break;調用主菜單調用添加函數(shù)調用編號查找函數(shù)/ 調用名稱查找函數(shù)case 4:xiugai(); break;/調用修改函數(shù)case 5:shanchu();break;/調用刪除函數(shù)case 6:zhuangtai();break;/調用庫存狀態(tài)函數(shù)case 7:xianshi();break;/調用顯示函數(shù)case 8: cout 謝謝使用 !endl; ret

22、urn;/ getchar();/ 添加商品記錄void tianjia()char str;for(int i=0;iN;i+)cout 請輸入商品編號、名稱、價格、庫存: spi.idspi.spnamespi.pricespi.kucun; count+;cout 繼續(xù)( y/n)str; if(str= n) break;/ 按編號查找商品信息void bianhaochazhao()int num,flag=0;coutnum;for(int i=0;icount;i+)if(num=spi.id)flag=1;coutsetw(6) 編 號 setw(20) 名 稱 setw(6)

23、 價 格 setw(6) 庫存 endl;coutsetw(6)spi.id setw(20)spi.spname setw(6)spi.price setw(6)spi.kucun;coutendl;break;if(flag!=1)cout 對不起 , 該編號不存在 !endl;getchar();/ 按名稱查找商品信息void namechazhao()int flag=0;char sppname20;coutsppname;for(int i=0;icount;i+) if(strcmp(spi.spname,sppname)=0) / 相等返回 0 flag=1;coutsetw(

24、6) 編 號 setw(20) 名 稱 setw(6) 價 格 setw(6) 庫存 endl;coutsetw(6)spi.idsetw(20)spi.spnamesetw(6)spi.pricesetw(6)spi.kucun; coutendl; break;if(flag!=1)cout 對不起 , 該商品不存在 !endl;getchar();/ 修改商品信息void xiugai()int flag=0;int t,m;cout 請輸入要修改的商品編號: m;for(int i=0;icount;i+)if(m=spi.id)flag=1;temp=i;break;if(flag=

25、1)edit:cout修改商品信息 endl;coutendl;cout請選擇 : endl;cout1 -修改編號 endl;cout2 -修改價格 endl;cout3 -修改庫存 endl;cout4 -返回主菜單 endl;coutt;switch (t)case 1:xiugaibianhao(); goto edit; break;case 2:xiugaijiage();goto edit; break;case 3: xiuggaikucun(); goto edit; break;case 4: break;if(flag!=1)cout 對不起 , 該商品不存在 !endl

26、;/ 修改編號void xiugaibianhao()int flag=0,s1;cout 請輸入商品的新編號: s1;for(int i=0;icount;i+)if(spi.id=s1)flag=1;temp=i; break;if(flag=1)cout 該編號已存在! endl;elsesptemp.id=s1;/ 修改價格void xiugaijiage()float s2;cout 請輸入商品的新價格 :s2;sptemp.price=s2;/ 修改庫存void xiuggaikucun()int s3;cout 請輸入商品庫存 :s3;sptemp.kucun=s3;/ 刪除商品

27、記錄 void shanchu()int m;cout 請輸入要刪除的商品編號: m;for(int i=0;icount;i+)if(m=spi.id)spi = spi+1;count-;/ 商品庫存狀態(tài) void zhuangtai()int num,flag=0,m;coutnum;for(int i=0;icount;i+)if(num=spi.id) flag=1; m=i;if (flag=1)if(spm.kucun=0)cout 該商品不在庫! endl;elsecout 該商品在庫! endl;if(flag!=1)cout 對不起 , 該商品不存在 !endl;getch

28、ar();/ 顯示所有商品信息void xianshi()endl;價格 setw(6) 庫cout 商品信息coutendl;coutsetw(6) 編號 setw(20) 名稱 setw(6) 存e ndl;for(int i=0;icount;i+)coutsetw(6)spi.id setw(20)spi.spname setw(6)spi.price setw(6)spi.kucun;coutendl;getchar();5 程序調試5.1 出現(xiàn)問題及解決方法(1)、修改商品信息函數(shù)無法運行原因:函數(shù)結構混亂,case中鑲入了太多的函數(shù)內容,混亂之下,容易含糊 解決方法:將 case

29、 下的各函數(shù)剝離出來,分別寫 void xiugaibianhao()、void xiugaijiage()、void xiuggaikucun()將商品信息的編號修改、價格修改、庫 存修改以三個子函數(shù)的形式寫出來,然后鑲嵌到修改商品信息的主體函 數(shù)中。(2)、添加商品信息時,已登記的信息被清空原因: for(int i=0;i UUVxJ U UiU ikjU kJltdIkfl kfU4 uU編號名稱價格庫存1lxq66154599ppp5600000圖6-19刪除商品記錄b商品信息已被清零,按任意鍵返回主菜單9、選擇7,查詢商品庫存狀態(tài),如圖根據(jù)提示,輸入要查詢的商品編號1。如圖6-20:晴輸人您想查詢的編

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論