欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 8245|回復: 2
收起左側

c++商品銷售管理系統源碼與綜合程序課程設計說明書

[復制鏈接]
ID:359090 發(fā)表于 2018-6-26 10:23 | 顯示全部樓層 |閱讀模式
綜合程序課程設計說明書
課程設計名稱:        軟件綜合課程設計      
課程設計題目:         商品銷售統計系統      
學 院 名 稱:          信息工程學院         
專業(yè):電子信息工程   班級:   150411  
學號:   15041113    姓名:   高*
評分:  教師:    鄒*

    綜合程序    課程設計任務書
20 17 -20 18學年 第 2 學期  第 1 周- 2
題目
商品銷售統計系統
內容及要求
編寫商品銷售統計程序,商品的信息有:商品的名稱,計量單位(重量或件),單價。所有商品的信息事先已存入計算機,屏幕上顯示所有商品的名稱,選擇商品名,輸入商品計量單位(如重量,件數等),根據單價算出總價。客戶一次購物可能購買多種商品,程序應計算出客戶應付的錢款數。
要求:
程序分為兩個部分:第一部分用于輸入商品的信息并允許修改和刪除;第二部分實現銷售統計。程序運行時由用戶選擇進入哪一部分功能,并能在運行時在兩部分之間切換。第二部分運行時,首先顯示所有商品名稱及代碼(商品數目較多時,應考慮分屏顯示),用戶輸入商品代碼及商品重量或件數,用戶一次操作可輸入若干商品的購買信息,然后輸入一個特殊的代碼表示本次購物結束。此時。程序計算出應付錢款數并顯示。
進度安排
1周周一至第1周周二:查資料;
1周周三至第2周周四:程序編寫與調試;
2周周五:設計結果檢查。
學生姓名:  15041106鄭文婷  15041113高志華
指導時間  周一、周三、周五
指導地點:  E311
任務下達
2018年2月26 日
任務完成
2018  年 3 月9 日
考核方式
1.評閱     2.答辯       3.實際操作      4.其它□
指導教師
鄒*
系(部)主任
孫*
注:1、此表一組一表二份,課程設計小組組長一份;任課教師授課時自帶一份備查。
2、課程設計結束后與“課程設計小結”、“學生成績單”一并交院教務存檔。


摘要
銷售統計系統是銷售統計軟件的通俗化名稱,銷售統計系統是管理銷售線索、銷售活動、業(yè)務報告、統計銷售業(yè)績的先進工具,適合企業(yè)銷售部門辦公和管理使用,協助銷售經理和銷售人員快速管理客戶、銷售和業(yè)務的重要數據。
由于經濟的飛速發(fā)展,銷售人員付出大量的時間,得到的效率很低。因此為了提高工作效率,減輕銷售人員查找等繁雜的工作,設計出一個功能完善、合理的銷售管理系統。本課題設計出此系統以供操作者進行商品銷售管理,方便操作者隨時添加、查詢和修改商品信息。
關鍵字:c語言;查找;刪除;修改;保存。
目錄
第一章需求分析·························1
第二章系統組成及設計原理····················2
2.1 系統組成·····················2
2.2 設計原理·····················2
第三章概要設計························3
3.1 系統層次圖·····················3
3.2 方案對比······················4
詳細設計························5
4.1商品錄入·····················5
4.2 商品查詢······················6
4.3 顯示商品······················7
4.4 購買商品······················8
4.5 保存信息······················9
    4. 6  修改商品·····························10
4. 7 主函數模塊······ ·····················11
第五章調試及測試及結果與分析···················12
5.1 調試過程 ···························12
5.2 調試結果 ···························14
結論······························18
參考文獻····························19
附錄A·······························20
                                                                                
  • 需求分析
分析此課題題目的要求,本系統需要具備以下功能:能夠統計所銷售商品的代碼、名稱、價格、數量等信息;能夠通過輸入選擇鍵調出倉庫中所有商品的所有信息;實現通過代碼來查詢某個商品,并且輸出該商品的所有信息;能夠在用戶購買商品時,根據情況給予用戶反饋信息,其中包括購買商品名稱、代碼、單價、所買數量,并對該商品進行一次小結,告知用戶消費情況;購買結束后,統計用戶所消費的總金額,記錄其所付金額以及找零金額。
  • 系統組成及設計原理
2.1系統的組成
系統的組成包括以下幾個模塊
1.錄入商品
2.商品查詢
3.顯示數據
4.購買商品
5.保存信息
6.修改信息
7.退出系統
2.2  設計原理
實現這些功能,需要聲明構造函數Sale(),此函數中包含數據成員商品代碼、名字、價格、數量。另外,創(chuàng)建鏈表,用于儲存商品錄入信息,購買情況,以及所有商品的信息。利用switch語句來實現根據需要選擇不同的功能。
創(chuàng)建鏈表,對頭結點進行初始化,對數據域分配內存大小,通過指針域訪問結點,來實現元素的儲存調用等。
定義子函數,來實現商品的錄入、查詢、顯示、購買等功能。錄入功能需要包含商品的一些信息,如:代碼、名稱、價格等;查詢功能則是為了方便用戶獲得所需購買物品的一些信息;顯示功能可以使用戶對倉庫的儲存情況一目了然;購買功能主要是進行商品的結算。
編寫過程中,代碼和名字需應用字符串,數量以整型輸出,考慮到上平的數量可能會很多,故定義為unsigned int quality,價格以浮點型輸出。
第三章概要設計
3.1 系統結構層次圖
本銷售系統使用設置主菜單,從主菜單進入分應用的模式。一方面使人機交互界面人性化,便于操作者的操作,另一方面使系統模塊化,以便在日后調試檢測時較為方便。系統結構層次圖如圖3.1所示
圖3.1 結構層次圖
3.2方案對比
圖3.2 對比結構層次圖
圖3.2為備選設計方案,菜單選項分兩級,實際操作過程中從每級子程序退出時需要進入第一級人機界面,所以操作過于繁瑣,再與方案一對比過后選擇更為簡便的第一種方案。
  • 詳細設計
4.1  商品錄入
商品錄入功能用鏈表保存輸入的商品信息,執(zhí)行順序流程,輸入商品代碼、名稱、數量、單價。將數據保存在鏈表中。流程圖如圖4.1所示。
圖4.1 商品錄入流程圖
4.2  商品查詢
按商品名稱查詢通過Link Search(Link Head,string&num)函數實現,用到while循環(huán)語句和if-else語句。輸入要查詢商品的名稱,在文件中讀取,若該商品存在,則從文件中獲取該商品信息,并顯示到輸出界面,若不存在,則輸出界面顯示“商品信息不存在”


圖4.2 商品查詢流程圖

4.3  顯示商品
商品顯示功能通過定義Display函數實現,在此函數中要調用查詢子函數Search,通過查找按順序輸出商品信息。         


圖4.3 顯示商品流程圖

4.4   商品購買
商品購買功能子程序需要調用Total、Display、ChechOut三個函數,用while循環(huán)語句實現是否繼續(xù)購買。使用if-else語句,另外使用sum=sum+=CheckOut語句實現多次小計累加求和。

圖4.4  商品購買流程圖

4.5  保存信息
此模塊中運用到c語言中文件讀寫的相關知識,定義指針fq,若未按照正常格式寫入,則輸出文件寫入錯誤,具體流程圖如圖4.5所示

圖4.5 保存信息流程圖

4.6  商品修改
修改商品信息用到了Alter()函數實現,調用Search()函數,通過輸入商品名稱確定所要修改商品的信息,除了用到switch語句,還用到if-else語句,判斷所要修改的商品信息是否存在,若不存在,則輸出“該商品不存在”;若存在,即可對商品信息進行相應的修改。流程圖如圖4.6所示。

圖4.6 商品修改流程圖
4.7  主函數模塊
主函數主要運用switch-case選擇判斷語句來調用相關函數功能模塊,系統的運行是循環(huán)里進行的,只有在主界面選擇“退出時”,才會跳出循環(huán),并退出程序。主函數中分別定義了各個模塊所要調用的功能函數,整個程序從主函數開始執(zhí)行。
圖4.7 主函數流程圖
第五章  調試及測試結果與分析
5.1調試過程
程序錯誤之處:
1、代碼和名字分別定義為整型和字符型。
2、未對鏈表頭結點進行初始化。
3、數據域中沒有分配內存。
  4、在do-while語句結束時沒有返回頭結點。
  5、顯示程序不能實現,賣出商品后沒有辦法在原有的數據上減去賣出的部分,顯示的仍舊是錄入商品的全部數量。
導致的后果:
第一個錯誤導致訪問結點無法進行;與后面的不匹配。第二個錯誤,在運行程序時,無論是錄入商品信息還是購買商品均不能進行第二步操作;第三個錯誤引發(fā)的后果與錯誤2一樣;錯誤4則導致函數creat沒有返回值。最后的一個錯誤不符合任務書上的要求。
改正方法:
1、定義代碼和名字改用string;
2、對頭結點進行初始化并動態(tài)分配一個內存大小:
             Head=(Link)new Node;//每次動態(tài)分配一個Node內存大小。
             Head->num="";
             Head->name="";
             Head->jiage=0.0;
Head->shuliang=0;
             Head->next=NULL;
3、返回頭結點:return Head;。
在編寫此程序時,定義變量num、name時沒有注意其類型,無法與后面Head->num="";Head->name="";if(p->num==num)相匹配,程序出現錯誤。用以儲存更多的元素內容,否則的話在運行的過程中,錄入一種商品的信息完成后,程序會自動結束。
首先定義一個子函數:
Link Search(Link Head,string& num)
{
Link p;

p=Head;

while(p!=NULL)
{
if(p->num==num)
return p;
else
p=p->next;
}
cout<<"無此商品!"<<endl;
return p;。
}
通過輸入商品代碼,來查詢倉庫中是否有該商品。
另外在運行程序是發(fā)現,當選擇查看所有商品信息時輸出結果太亂,信息無法與提示對齊,我們可以在頭文件中加入#include <iomanip>,后面的輸出程序可以改成:
cout<<setw(15)<<left<<ptr->m_code
<<setw(15)<<left<<ptr->m_name
<<setw(15)<<left<<ptr->m_price
<<setw(15)<<left<<ptr->m_quantity<<endl;
     改進設想:
本程序最大的缺點就是沒有在程序中預先儲存商品信息,因此在運行程序過程中需要首先錄入一部分商品。為了方便操作,可以針對此問題來進行修改,在容器中儲存一些比較常用的商品(不少于二十種)。
運行程序過程中,如果選擇了2,購買商品,首先會顯示:結束買入請按‘N’,其他任意鍵表示繼續(xù)買入!這里的任意鍵不為空格和輸入鍵,并且輸入數字的情況下只能為一位,否則無法輸入代碼,程序無法繼續(xù)進行。
5.2調試結果
進入菜單界面,調試錄入信息功能。根據提示輸入數字1,然后顯示出“商品信息”接著輸入代碼、名稱、價格和數量,最后顯示“數據輸入成功!繼續(xù)?(Y/N)”。接著輸入下一個商品信息選擇“Y”,否則鍵入“N”。此課題調試輸入兩種商品信息,實際操作如圖5.1所示。

圖5.1 錄入信息調試圖
查詢功能調試結果:在兩種商品信息錄入成功之后,回到主菜單欄。輸入所要查詢的商品代碼,回車。輸出所查找商品的所有信息。例如輸入代碼01,回車,顯示出商品電腦的所有信息。實際操作效果如圖5.2所示。
圖5.2 查詢功能調試
顯示功能調試,如圖5.3所示,回到主界面選擇“3 顯示數據”進入顯示功能程序,所有商品信息逐行顯示。
圖5.3 顯示功能調試圖
    進入系統另外一部分,實際購買商品流程。輸入購買商品代碼02,輸入購買數量10臺,顯示出單個商品小結3000元。選擇”Y”繼續(xù)購買第二件商品,輸入購買的第二件商品代碼01,輸入購買數量2臺,顯示出第二件商品小結。選擇“N”結束商品購買。顯示該支付34000元,實際支付40000元自動計算找零,如圖5.4所示。
圖5.4 顯示功能調試圖
商品信息保存功能測試結果:在完成兩種商品錄入后回到主菜單,輸入數字5,將所有商品信息以文件形式保存到計算機磁盤中。結果如圖5.5所示
圖5.5 保存功能調試圖
修改功能調試:從主界面進入修改功能,輸入所要修改商品的名稱,選擇單價修改,輸入正確信息4000.顯示信息如圖5.6所示,
圖5.6 修改功能調試圖
結論
    本次軟件課程設計用c++實現了題目所有的要求,達到了商品銷售系統所實現的功能。將整個程序分成了多個模塊,每個模塊相互獨立而又彼此聯系,通過主函數調用來實現各個模塊的功能。模塊化設計在實際中應用廣泛,本課題提高了學生對軟件設計的興趣,不僅鞏固了所學知識,在編程過程中學到了很多課堂之外的知識,實際應用了模塊化設計實例。

源碼:
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <conio.h>
  4. #include<fstream>
  5. #define null 0
  6. #include<iostream>
  7. #include <iomanip>
  8. #include<string>     //控制字符串的頭文件
  9. using namespace std;
  10. class tong
  11. {
  12. public:
  13. tong();
  14. tong(char co[20],char n[20],
  15. char dw[20],double pr,int qu);
  16. ~tong();
  17. void save();
  18. void take();
  19. void Set();                         //商品信息錄入
  20. void Alter();                       //商品信息修改
  21. void list();                        //商品信息顯示
  22. void Display();
  23. float Checkout(int quantity);        //單個商品小結
  24. void Total();                        //總計
  25. void buy();                          //商品買入
  26. private :
  27. char code[20];char name[20];char danwei[20];double price;int quantity;
  28. };
  29. tong::tong(){}
  30. tong::tong(char co[20],char n[20],char dw[20],double pr,int qu){
  31. strcpy(code,co);
  32. strcpy(name,n);
  33. strcpy(danwei,dw);
  34. price=pr;
  35. quantity=qu;}
  36. tong::~tong(){}
  37. tong *s[50];
  38. int i=0;
  39. int j=0;
  40. char code[20];char name[20];char danwei[20];double price; int quantity;
  41. void tong::save() //寫入數據至文件
  42. {
  43. ofstream outfile;
  44. outfile.open("商品銷售管理系統.txt");
  45. if(!outfile)
  46. {
  47. cout<<"cannot open the file!"<<endl;
  48. return ;
  49. }
  50. else
  51. outfile<<"商品代碼及名稱"<<""<<"商品單價"<<""<<"請輸入商品數量"<<""<<"計量單位"<<endl;
  52. cout<<"商品代碼及名稱"<<""<<"商品單價"<<""<<"請輸入商品數量"<<""<<"計量單位"<<endl;
  53. for(int k=0;k<i;k++){

  54. cout<<setw(10)<<left<<s[k]->code<<setw(10)<<left<<s[k]->name<<setw(15)<<left<<s[k]->price<<setw(10)<<left<<s[k]->quantity<<setw(15)<<left<<s[k]->danwei<<endl;
  55. outfile<<setw(10)<<left<<s[k]->code<<setw(10)<<left<<s[k]->name<<setw(15)<<left<<s[k]->price<<setw(10)<<left<<s[k]->quantity<<setw(15)<<left<<s[k]->danwei<<endl;
  56. }
  57. cout<<"*************Save Success!*****************"<<endl;
  58. outfile.close();
  59. }



  60. void tong::Set()                   //商品信息錄入
  61. {
  62. cout<<"請輸入商品代碼及名稱:"<<endl;
  63. cin>>code>>name;
  64. cout<<"請輸入計量單位:"<<endl;
  65. cin>>danwei;
  66. cout<<"請輸入商品單價:"<<endl;
  67. cin>>price;
  68. cout<<"請輸入商品數量:"<<endl;
  69. cin>>quantity;
  70. j++;
  71. s[i]=new tong(code,name,danwei,price,quantity);
  72. i++;
  73. cout<<"信息錄入成功!"<<endl;
  74. cout<<"是否繼續(xù)錄入?(y or n)"<<endl;
  75. if(getch()=='y')
  76. Set();
  77. else return;
  78. }
  79. void tong::Alter()//商品信息修改
  80. {
  81. cout<<"請輸入您所修改的商品名稱:"<<endl;
  82. cin>>name;
  83. for(int h=0;h<i;h++)
  84. if(strcmp(name,s[h]->name)==0)
  85. {
  86. char newcode[20];
  87. char newname[20];
  88. char newdanwei[20];
  89. double newprice;
  90. int newquantity;
  91. int n;
  92. cout<<"你想要修改:代碼及名稱按3) 、數量(請按4)"<<endl;
  93. cin>>n;
  94. switch(n)
  95. {
  96. case 1:
  97. { cout<<"請輸入商品代碼及名稱:"<<endl;
  98. cin>>newcode[20]>>newname[20];
  99. s[h]->code[20]=newcode[20];
  100. s[h]->name[20]=newname[20];

  101. cout<<"數據修改成功!";
  102. }break;
  103. case 2:            
  104.               {                       
  105.                             cout<<"請輸入計量單位:"<<endl;                       
  106.                             cin>>newdanwei;              
  107.                             s[h]->danwei[20]=newdanwei[20];                       
  108.                             cout<<"數據修改成功!";                  
  109.               }break;                    
  110. case 3:                    
  111.               {                       
  112.                             cout<<"請輸入單價:"<<endl;                       
  113.                             cin>>newprice;           
  114.                             s[h]->price=newprice;                       
  115.                             cout<<"數據修改成功!";                        
  116.               }break;

  117. case 4:
  118. {
  119. cout<<"請輸入數量:"<<endl;
  120. cin>>newquantity;
  121. s[h]->quantity=newquantity;
  122. cout<<"數據修改成功!";
  123. }break;
  124. }
  125. }
  126. else
  127. cout<<"你所要修改的商品的信息不存在,請修正后在更改!"<<endl;
  128. cout<<"是否繼續(xù)修改?(y/n)"<<endl;
  129. if(getch()=='y')
  130. Alter();
  131. else return ;
  132. }
  133. void tong::list()                  //商品信息顯示
  134. {
  135. cout<<"=========================================================="<<endl;
  136. cout<<"===================所有商品信息==================="<<endl;
  137. cout<<"=========================================================="<<endl;
  138. cout<<"貨品代碼=======貨品名稱======貨品價格======貨品數量======計量單位"<<endl;
  139. if(i==0)
  140. cout<<"系統中沒有錄入商品信息或該商品信息已被刪除!"<<endl;
  141. for(int k=0;k<i;k++){
  142. cout<<setw(15)<<left<<s[k]->code<<setw(15)<<left<<s[k]->name<<setw(15)<<left<<s[k]->price<<setw(15)<<left<<s[k]->quantity<<setw(15)<<left<<s[k]->danwei<<endl;
  143. }
  144. }
  145. void tong::buy()                       //商品買入
  146. {
  147. cout<<"請輸入你想購買的商品的代碼及名稱:"<<endl;
  148. cin>>code>>name;
  149. cout<<"請輸入您想購買的商品的數量:"<<endl;
  150. cin>>quantity;
  151. Checkout(quantity);
  152. Display();
  153. Total();
  154. }
  155. void tong::Display()
  156. {
  157. int k;
  158. k=atoi(code)-1;

  159. cout<<"貨品代碼=======貨品名稱======貨品價格======購買數量======計量單位=====小計(元)=="<<endl;
  160. cout<<setw(15)<<left<<s[k]->code
  161. <<setw(15)<<left<<s[k]->name
  162. <<setw(15)<<left<<s[k]->price
  163. <<setw(15)<<left<<quantity
  164. <<setw(15)<<left<<s[k]->danwei
  165. <<setw(15)<<left<<quantity*s[k]->price<<endl;
  166. }


  167. float tong::Checkout(int quantity)                    //單個商品小結
  168. {
  169. int k=0;
  170. float sum(0.0);
  171. sum=s[k]->price * quantity;
  172. return sum;
  173. }
  174. void tong::Total()                            //總結帳
  175. {
  176. float sum = 0;
  177. float factly;
  178. char GoOn;
  179. while(1)
  180. {
  181. cout<<"要結束商品買入請按'N/n',其繼續(xù)買入請按'Y/y': "<<endl;
  182. cin>>GoOn;
  183. if(GoOn=='Y'||GoOn=='y'){      //int quantity;
  184. cout<<"請輸入商品代碼:"<<endl;
  185. cin>>code>>name;
  186. cout<<"請輸入商品數量:"<<endl;
  187. cin>>quantity;
  188. sum+=Checkout(quantity);
  189. cout<<"你購買的商品為:"<<endl;
  190. Display();
  191. }
  192. else if(GoOn=='N'||GoOn=='n')
  193. break;
  194. }
  195. cout<<"----------------------------------------------------"<<endl;
  196. sum+=Checkout(quantity);
  197. cout<<"你應該付 "<<sum<<"元!"<<endl;
  198. cout<<"你實際付(元): ";
  199. cin>>factly;
  200. cout<<"應該找回你 "<<factly-sum<<"元!"<<endl;     //找零。
  201. }
  202. void caozuoa(int p){
  203. tong t;
  204. switch(p){
  205. case 0:t.Set();break;
  206. case 1:t. Alter ();break;
  207. case 2:t.save();break;
  208. case 8:exit(0);break;
  209. }
  210. }
  211. void caozuob(int p){
  212. tong t;
  213. switch(p){
  214. case 0:t.list();break;
  215. case 1:t.buy();break;
  216. case 8:exit(0);break;
  217. }
  218. }
  219. void main()
  220. {
  221. int a;
  222. char w;
  223. cout<<"***************************************************"<<endl;     cout<<"\n"<<endl;
  224. cout<<"*------------歡迎進入商品銷售統計系統-------------*"<<endl;          cout<<"\n"<<endl;
  225. cout<<"***************************************************"<<endl;   do{
  226. cout<<"請選擇您的操作:商品信息管理系統(M)商品銷售系統(S)"<<endl;          cin>>w;
  227. cout<<"*---------------------菜單選項--------------------*"<<endl;
  228. cout<<"*-------------------------------------------------*"<<endl;
  229. cout<<"\n"<<endl;
  230. if(w=='M'||w=='m')
  231. {  cout<<"商品信息錄入(請輸入0) 修改信息(請輸入1) 保存信息(請輸入2) "<<endl;
  232. cin>>a;               
  233. caozuoa(a);               
  234. }        
  235. else if(w=='S'||w=='s')
  236. {           
  237.               cout<<"顯示商品信息(請輸入0)   商品買入(請輸入1)  "<<endl;            
  238.               cin>>a;                 
  239.               caozuob(a);               
  240. }               
  241. else
  242. {               
  243.               cout<<"請輸入'M' 、'm' 或'S' 、's'"<<endl;}               
  244. cout<<"您想繼續(xù)進行其他操作嗎?(y/n)"<<endl;                 
  245. cin>>w;  
  246. }while(w=='y');
  247. }
復制代碼

完整的Word格式文檔51黑下載地址:
課設報告.docx (510.27 KB, 下載次數: 17)

回復

使用道具 舉報

ID:814444 發(fā)表于 2020-8-15 16:14 | 顯示全部樓層
程序會報錯啊樓主
回復

使用道具 舉報

ID:788442 發(fā)表于 2020-6-24 09:59 | 顯示全部樓層
流程圖方便發(fā)下
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表