課程設(shè)計--服裝店管理系統(tǒng)之門店系統(tǒng)_第1頁
已閱讀1頁,還剩47頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、<p><b>  目 錄</b></p><p><b>  1 前言5</b></p><p><b>  2 需求分析5</b></p><p>  2.1 功能分析5</p><p>  2.2 方案分析5</p><p>

2、<b>  3 概要設(shè)計5</b></p><p>  3.1 數(shù)據(jù)結(jié)構(gòu)5</p><p>  3.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)6</p><p>  3.3 功能模塊劃分6</p><p>  3.4抽象數(shù)據(jù)類定義8</p><p><b>  4 詳細(xì)設(shè)計9</b>

3、</p><p>  4.1 數(shù)據(jù)類型定義9</p><p>  4.2 主要模塊內(nèi)部設(shè)計9</p><p>  4.2.1退換貨模塊設(shè)計10</p><p>  4.2.2查詢報表模塊設(shè)計16</p><p>  4.2.3打印退換貨單據(jù)模塊設(shè)計21</p><p>  5 實現(xiàn)與調(diào)

4、試分析24</p><p>  5.1 實現(xiàn)環(huán)境24</p><p>  5.2 語言選擇24</p><p>  5.3 調(diào)試分析24</p><p><b>  6 測試分析24</b></p><p>  6.1 測試用例24</p><p>  6.2

5、測試結(jié)果25</p><p>  6.3 性能分析26</p><p><b>  7用戶手冊27</b></p><p><b>  總 結(jié)27</b></p><p><b>  參考文獻27</b></p><p><b>  

6、1 前言</b></p><p>  某某服裝品牌近年來在全國內(nèi)各個商業(yè)地區(qū)開了多個連鎖店,這個服裝連鎖店主要銷售各種款式的服裝,形式多樣,種類繁多,為了能更好的管理服裝和使服裝銷售操作簡單化,因此需要一個小型服裝店管理系統(tǒng)實現(xiàn)退換貨,出入單據(jù)和查詢報表。</p><p><b>  2 需求分析</b></p><p><b

7、>  2.1 功能分析 </b></p><p>  這個小系統(tǒng)主要是實現(xiàn)服裝店退換貨和出入單據(jù)和查詢報表,是服裝店管理系統(tǒng)之門店系統(tǒng)中的一個子模板功能,它主要為用戶提供退換貨功能,出入單據(jù),和查詢報表。具體而言,系統(tǒng)必須完成的所有功能如下:</p><p>  退換貨時在庫中修改此型號服裝記錄;</p><p><b>  開出單據(jù);&

8、lt;/b></p><p>  查詢所有的退換貨記錄,出入報表信息;</p><p><b>  2.2 方案分析</b></p><p>  根據(jù)功有要求,實現(xiàn)退換貨和出入單據(jù)和查詢表只需要將這個小系統(tǒng)化分為三個小部份,每個部份就實現(xiàn)以上三個相對應(yīng)的功能。因此實現(xiàn)這個退換貨和出入單據(jù)和查詢報表款系統(tǒng)只需要在主函數(shù)中調(diào)用相應(yīng)的小模板,就

9、能實現(xiàn)相應(yīng)的功能要求。</p><p><b>  3 概要設(shè)計 </b></p><p><b>  3.1 數(shù)據(jù)結(jié)構(gòu) </b></p><p>  用一個數(shù)據(jù)庫表來存儲店中所有的服裝信息,每條服裝信息包括:編號,名稱,數(shù)量,單價。</p><p>  用一個數(shù)據(jù)庫表來存儲已退換的服裝,元組以銷售

10、的先后順序試存儲,每條退換貨記錄信息包括:服裝編號,名稱,數(shù)量,單價。</p><p>  3.2 邏輯結(jié)構(gòu)與物理結(jié)構(gòu)</p><p><b>  1.邏輯結(jié)構(gòu)設(shè)計</b></p><p>  在重新設(shè)計了產(chǎn)品庫存單,并對數(shù)據(jù)的結(jié)構(gòu)、所用數(shù)據(jù)類型、總長、數(shù)長、顯長等方面進行全面的分析后,我們設(shè)計出了系統(tǒng)所用到的數(shù)據(jù)庫的數(shù)據(jù)字典如下。</p

11、><p>  表3.2.1 存庫表單數(shù)據(jù)字典</p><p>  表3.2.2 退換貨記錄表單數(shù)據(jù)字典</p><p><b>  2.物理結(jié)構(gòu)設(shè)計</b></p><p>  數(shù)據(jù)庫中各表的文件物理結(jié)構(gòu)采用順序的記錄文件。</p><p>  3.3 功能模塊劃分</p><p&

12、gt;<b>  3.3.1結(jié)構(gòu)框圖</b></p><p><b>  輸入編號</b></p><p><b>  確認(rèn)</b></p><p><b>  圖 3.3.1</b></p><p><b>  3.3.2程序流圖</b&

13、gt;</p><p>  2 1</p><p><b>  0</b></p><p>  T F</p><p><b>  圖 3.3.2</b></p><p>  3.3.

14、3模塊功能分析及外部設(shè)計</p><p>  退換貨出入單據(jù)和查詢報表共分為3個小模塊,每個模塊由相應(yīng)函數(shù)構(gòu)成:</p><p>  主控模塊:在這個模塊中,要顯示用戶操作界面,并提示用戶進行相應(yīng)選擇,界面中有兩個分別調(diào)用“退換貨”與“出入單據(jù)”,和“查詢信息”三個的接口</p><p>  退換貨模塊:這上模塊實現(xiàn)退換貨功能,輸入服裝編號進行退換貨,并更新庫存信息

15、。</p><p>  出入單據(jù):用戶輸入服裝編號,然后查找相應(yīng)編號的服裝并將其所有信息顯出來,供用戶確認(rèn)此型號服裝是否有退換貨信息,當(dāng)操作者確認(rèn)服裝后進行打印</p><p>  查詢模塊:查詢模塊中,操作員可以查詢庫存信息,并且可以查詢所有的單據(jù)信息,還可以通過輸入服裝編碼查詢服裝是否有退換貨記錄。</p><p>  3.4抽象數(shù)據(jù)類定義</p>

16、<p>  抽象數(shù)據(jù)類型三元級的定義:</p><p>  ADT Triplet</p><p><b>  {</b></p><p>  數(shù)據(jù)對象:D={e1,e2,e3,……,en|e[i] ? ElemSet}</p><p>  數(shù)據(jù)關(guān)系:R1={e1,e2,e3,……en}</p>

17、<p><b>  基本操作:</b></p><p>  readfile(&head)</p><p>  初始條件:磁盤中保存記錄的文件存在</p><p>  操作結(jié)果:讀取記錄到head鏈表中</p><p>  Createswap1(&head)</p><p

18、>  初始條件:head不為空。</p><p>  操作結(jié)果:創(chuàng)建了存儲退貨信息的文件</p><p>  Createkucun(&head)</p><p>  初始條件:head不為空。</p><p>  操作結(jié)果:創(chuàng)建了庫存中存儲商品的信息文件。</p><p>  Createdanju(&

19、amp;head)</p><p>  初始條件:head不為空。</p><p>  操作結(jié)果:創(chuàng)建存儲退換貨單據(jù)的信息文件</p><p>  Serach(&head, time_month)</p><p>  初始條件:head不為空。</p><p>  操作結(jié)果:實現(xiàn)對各個信息的查詢。</p

20、><p>  }ADT Triplet</p><p><b>  4 詳細(xì)設(shè)計</b></p><p>  4.1 數(shù)據(jù)類型定義</p><p>  4.2 主要模塊內(nèi)部設(shè)計</p><p>  4.2.1退換貨模塊設(shè)計</p><p>  4.2.1.1 模塊算法</

21、p><p>  struct node *swap(struct node *head)</p><p><b>  {</b></p><p>  int choice;</p><p><b>  do</b></p><p><b>  {</b>&l

22、t;/p><p>  menuswap();</p><p>  cout<<"選擇你要執(zhí)行的操作"<<endl;</p><p>  cin>>choice;</p><p>  switch(choice)</p><p><b>  {</b&g

23、t;</p><p>  case 1:CreateFileswap1(head);</p><p><b>  break;</b></p><p>  case 2:CreateFileswap2(head);</p><p><b>  break;</b></p><p&

24、gt;<b>  case 0:</b></p><p><b>  break;</b></p><p>  }}while(choice);</p><p>  return head;</p><p><b>  }</b></p><p>  v

25、oid CreateFileswap1(struct node *p)</p><p>  { FILE *fp,*fp1;</p><p><b>  char ch;</b></p><p><b>  int i=0;</b></p><p>  struct node * headcu=

26、NULL;//////////////////////////////]</p><p>  struct node * temp=NULL;</p><p>  headcu=readfile(headcu);</p><p>  dress s,s1;</p><p>  fp=fopen("D:\\dressswap1.dat

27、","ab+");</p><p>  fp1=fopen("d:\\kucun.dat","ab+");</p><p>  s.totalprice=0;</p><p><b>  if(!fp)</b></p><p><b>  {

28、</b></p><p>  cout<<"退貨失??!"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  do</b></p&g

29、t;<p>  { cout<<"是否要退貨(y/n)"<<endl;</p><p><b>  cin>>ch;</b></p><p>  if(ch=='n')</p><p><b>  break;</b></p&g

30、t;<p><b>  else</b></p><p>  cout<<"請輸入要退貨的商品編碼"<<endl;</p><p>  cin>>s.num;</p><p>  while(fread(&s1,sizeof(s1),1,fp1))</p>

31、<p><b>  {</b></p><p>  if(s1.num==s.num)</p><p><b>  { i=1; </b></p><p><b>  break;}</b></p><p><b>  }</b><

32、/p><p><b>  if(i)</b></p><p>  { cout<<"商品編號"<<setw(10)<<"商品名稱"<<setw(10)<<"商品價格"<<setw(10)<<"商品數(shù)量"<

33、;<endl;</p><p>  cout<<s1.num<<setw(10)<<s1.name<<setw(10)<<s1.price<<setw(10)<<s1.count<<endl;</p><p>  cout<<"請輸入要退貨的數(shù)量"<&

34、lt;endl;</p><p><b>  s=s1;</b></p><p>  cin>>s.count;</p><p>  s.totalprice=s.price*s.count;</p><p>  cout<<"********************退貨成功******

35、*****************"<<endl;</p><p>  cout<<"商品編號"<<setw(13)<<"商品名稱"<<setw(13)<<"商品價格"<<setw(13)<<"商品數(shù)量"<<setw(

36、13)<<"商品總價"<<endl;</p><p>  cout<<s1.num<<setw(13)<<s1.name<<setw(13)<<s1.price<<setw(13)<<s.count<<setw(13)<<s.totalprice<<e

37、ndl;</p><p>  s1.count+=s.count;</p><p>  temp=headcu;</p><p>  while(s1.num!=temp->data.num)</p><p><b>  {</b></p><p>  temp=temp->next;

38、</p><p><b>  }</b></p><p>  temp->data.count=s1.count;</p><p>  cout<<s1.count;</p><p>  system("pause");</p><p>  fwrite(&a

39、mp;s1,sizeof(s1),1,fp1);</p><p>  fwrite(&s,sizeof(s),1,fp);</p><p>  savekucun(headcu);</p><p><b>  }</b></p><p><b>  else</b></p>&

40、lt;p>  cout<<"無此商品記錄,退貨失敗"<<endl;</p><p>  }while(1);</p><p>  fclose(fp);</p><p>  fclose(fp1);</p><p><b>  }</b></p><p

41、>  void CreateFileswap2(struct node *p)</p><p>  { FILE *fp,*fp1;</p><p><b>  char ch;</b></p><p>  dress s,s1;</p><p><b>  int i=0;</b><

42、;/p><p>  fp=fopen("D:\\dressswap2.dat","ab+");</p><p>  fp1=fopen("d:\\kucun.dat","ab+");</p><p><b>  if(!fp</b></p><p&g

43、t;<b>  )</b></p><p><b>  {</b></p><p>  cout<<"換貨失?。?quot;<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</

44、b></p><p><b>  do</b></p><p>  { cout<<"是否要換貨(y/n)"<<endl;</p><p><b>  cin>>ch;</b></p><p>  if(ch=='n'

45、)</p><p><b>  break;</b></p><p><b>  else</b></p><p>  cout<<"請輸入要換貨的商品編碼"<<endl;</p><p>  cin>>s.num;</p>&l

46、t;p>  while(fread(&s1,sizeof(s1),1,fp1))</p><p><b>  {</b></p><p>  if(s1.num==s.num)</p><p>  { i=1; </p><p><b>  break;}</b></p&g

47、t;<p><b>  }</b></p><p><b>  if(i)</b></p><p><b>  { s=s1;</b></p><p>  cout<<"商品編號"<<setw(13)<<"商品名稱&qu

48、ot;<<setw(13)<<"商品價格"<<setw(13)<<"商品數(shù)量"<<endl;</p><p>  cout<<s1.num<<setw(13)<<s1.name<<setw(13)<<s1.price<<setw(13)<

49、<s1.count<<endl;</p><p>  if(s1.count<1)</p><p><b>  {</b></p><p>  cout<<"存貨不足,無法進行換貨"<<endl;</p><p><b>  }</b&g

50、t;</p><p><b>  else</b></p><p>  {cout<<"請輸入要換貨的數(shù)量"<<endl;</p><p>  cin>>s.count;</p><p>  s.totalprice=s.price*s.count;</p&g

51、t;<p>  cout<<"**************************換貨成功***********************"<<endl;</p><p>  cout<<"商品編號"<<setw(10)<<"商品名稱"<<setw(10)<<

52、"商品價格"<<setw(10)<<"商品數(shù)量"<<setw(10)<<"商品總價"<<endl;</p><p>  cout<<s.num<<setw(10)<<s.name<<setw(10)<<s.price<<se

53、tw(10)<<s.count<<s.totalprice<<endl;</p><p>  fwrite(&s1,sizeof(s1),1,fp1);</p><p>  fwrite(&s,sizeof(s),1,fp);</p><p><b>  }}</b></p>&

54、lt;p><b>  else</b></p><p>  cout<<"無此商品記錄,換貨失敗"<<endl;</p><p>  }while(1);</p><p>  fclose(fp);</p><p>  fclose(fp1);</p>&l

55、t;p><b>  }</b></p><p>  4.2.1.2 流程圖</p><p><b>  圖 4.1.1</b></p><p>  4.2.2 查詢模塊</p><p>  4.2.2.1 模塊算法</p><p>  struct node *ser

56、ach(struct node *head)</p><p><b>  {</b></p><p>  int choice;</p><p><b>  do</b></p><p><b>  {</b></p><p>  menuserach(

57、);</p><p>  cout<<"選擇你要執(zhí)行的操作"<<endl;</p><p>  cin>>choice;</p><p>  switch(choice)</p><p><b>  {</b></p><p>  case

58、1:showswap1(head);</p><p><b>  break;</b></p><p>  case 2:showswap2(head);</p><p><b>  break;</b></p><p>  case 3:showdanju1(head);</p>&

59、lt;p><b>  break;</b></p><p>  case 4:showdanju2(head);</p><p><b>  break;</b></p><p>  case 5:showskucun(head);</p><p><b>  break;</

60、b></p><p><b>  case 0:</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  }while(choice);</p><p>  return head;&l

61、t;/p><p><b>  }</b></p><p>  void showskucun(struct node*p)</p><p>  { int number;</p><p><b>  FILE *fp;</b></p><p><b>  dress

62、 s;</b></p><p>  fp=fopen("D:\\kucun.dat","rb");</p><p><b>  if(!fp)</b></p><p><b>  {</b></p><p>  cout<<"

63、查詢失敗"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  cout<<"******************************庫存信息*****************************

64、*******"<<endl;</p><p>  cout<<"商品編號"<<setw(13)<<"商品名稱"<<setw(13)<<"商品價格"<<setw(13)<<"商品數(shù)量"<<setw(13)<<

65、;endl;</p><p>  while(fread(&s,sizeof(s),1,fp)==1)</p><p>  cout<<s.num<<setw(13)<<s.name<<setw(13)<<s.price<<setw(13)<<s.count<<setw(13)<&

66、lt;endl;</p><p>  fclose(fp);</p><p>  cout<<"請輸入要查詢的商品編號"<<endl;</p><p>  cin>>number;</p><p>  goodsinfo(p,number);</p><p>&l

67、t;b>  }</b></p><p>  void showswap2(struct node*p)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  dress s;</b><

68、/p><p>  fp=fopen("D:\\dressswap2.dat","rb");</p><p><b>  if(!fp)</b></p><p><b>  {</b></p><p>  cout<<"查詢失敗"&l

69、t;<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p>  cout<<"********************************換貨信息**********************************"

70、;<<endl;</p><p>  cout<<"商品編號"<<setw(13)<<"商品名稱"<<setw(13)<<"商品價格"<<setw(13)<<"商品數(shù)量"<<setw(13)<<"商品總價&

71、quot;<<endl;</p><p>  while(fread(&s,sizeof(s),1,fp)==1)</p><p>  cout<<s.num<<setw(13)<<s.name<<setw(13)<<s.price<<setw(13)<<s.count<<s

72、etw(13)<<s.totalprice<<endl;</p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void CreateFiledanju1(struct node *p)</p><p>  { FILE *fp,*fp1;&l

73、t;/p><p>  SYSTEMTIME time;/////////////系統(tǒng)時間結(jié)構(gòu)體</p><p><b>  char ch;</b></p><p><b>  int i=0;</b></p><p>  struct danju d;</p><p><

74、b>  dress s1;</b></p><p>  fp=fopen("D:\\danju1.dat","ab+");</p><p>  fp1=fopen("d:\\dressswap1.dat","rb");</p><p><b>  if(!fp

75、)</b></p><p><b>  {</b></p><p>  cout<<"查詢失?。?quot;<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p&g

76、t;<p><b>  do{</b></p><p>  cout<<"請輸入要開票的退貨的商品編碼"<<endl;</p><p>  cin>>d.num;</p><p>  while(fread(&s1,sizeof(s1),1,fp1))</p&g

77、t;<p><b>  {</b></p><p>  if(s1.num==d.num)</p><p><b>  { i=1; </b></p><p><b>  break;}</b></p><p><b>  }</b>&l

78、t;/p><p><b>  if(i)</b></p><p>  { GetLocalTime(&time);</p><p>  d.id=time.wHour*10000+time.wMinute*100+time.wSecond;////////////////////////</p><p>  st

79、rcpy(d.name,s1.name);</p><p>  d.price=s1.price;</p><p>  d.count=s1.count;</p><p>  d.totalprice=s1.totalprice;</p><p>  d.year=time.wYear;</p><p>  d.mon

80、th=time.wMonth;</p><p>  d.day=time.wDay;</p><p>  cout<<"開票成功"<<endl;</p><p>  cout<<"單據(jù)編碼"<<setw(13)<<"商品編碼"<<set

81、w(13)<<"商品名稱"<<setw(13)<<"商品單價"<<setw(13)<<"商品數(shù)量"<<setw(13)<<"商品總價"<<endl;</p><p>  cout<<d.id<<setw(13)<

82、;<d.num<<setw(13)<<d.name<<setw(13)<<d.price<<setw(13)<<d.count<<setw(13)<<d.totalprice<<endl;</p><p>  cout<<"開票日期:"<<endl;<

83、/p><p>  cout<<d.year<<"年"<<d.month<<"月"<<d.day<<"日"<<endl;</p><p>  fwrite(&d,sizeof(d),1,fp);</p><p><b

84、>  }</b></p><p><b>  else</b></p><p>  cout<<"無此商品的退貨記錄,不能開票"<<endl;</p><p>  cout<<"是否繼續(xù)開發(fā)票(y/n)?"<<endl;</p>

85、<p><b>  cin>>ch;</b></p><p>  if(ch=='n')</p><p><b>  break;</b></p><p>  }while(1);</p><p>  fclose(fp);</p><p

86、>  fclose(fp1);</p><p><b>  }</b></p><p>  4.2.3 打印單據(jù)模塊</p><p>  4.2.3.1模塊算法:</p><p>  void menudanju()</p><p><b>  {</b></p&

87、gt;<p>  cout<<"**********1.打印退貨單據(jù)*************"<<endl;</p><p>  cout<<"**********2.打印換貨單據(jù)*************"<<endl;</p><p>  cout<<"****

88、******0.返回上級菜單*********"<<endl;</p><p><b>  }</b></p><p>  void CreateFiledanju1(struct node *p)</p><p>  { FILE *fp,*fp1;</p><p>  SYSTEMTIME

89、time;/////////////系統(tǒng)時間結(jié)構(gòu)體</p><p><b>  char ch;</b></p><p><b>  int i=0;</b></p><p>  struct danju d;</p><p><b>  dress s1;</b></p

90、><p>  fp=fopen("D:\\danju1.dat","ab+");</p><p>  fp1=fopen("d:\\dressswap1.dat","rb");</p><p><b>  if(!fp)</b></p><p>

91、<b>  {</b></p><p>  cout<<"查詢失敗!"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  do{</

92、b></p><p>  cout<<"請輸入要開票的退貨的商品編碼"<<endl;</p><p>  cin>>d.num;</p><p>  while(fread(&s1,sizeof(s1),1,fp1))</p><p><b>  {</b&

93、gt;</p><p>  if(s1.num==d.num)</p><p><b>  { i=1; </b></p><p><b>  break;}</b></p><p><b>  }</b></p><p><b>  if

94、(i)</b></p><p>  { GetLocalTime(&time);</p><p>  d.id=time.wHour*10000+time.wMinute*100+time.wSecond;////////////////////////</p><p>  strcpy(d.name,s1.name);</p>

95、<p>  d.price=s1.price;</p><p>  d.count=s1.count;</p><p>  d.totalprice=s1.totalprice;</p><p>  d.year=time.wYear;</p><p>  d.month=time.wMonth;</p><p

96、>  d.day=time.wDay;</p><p>  cout<<"開票成功"<<endl;</p><p>  cout<<"單據(jù)編碼"<<setw(13)<<"商品編碼"<<setw(13)<<"商品名稱"<

97、;<setw(13)<<"商品單價"<<setw(13)<<"商品數(shù)量"<<setw(13)<<"商品總價"<<endl;</p><p>  cout<<d.id<<setw(13)<<d.num<<setw(13)<&l

98、t;d.name<<setw(13)<<d.price<<setw(13)<<d.count<<setw(13)<<d.totalprice<<endl;</p><p>  cout<<"開票日期:"<<endl;</p><p>  cout<<d

99、.year<<"年"<<d.month<<"月"<<d.day<<"日"<<endl;</p><p>  fwrite(&d,sizeof(d),1,fp);</p><p><b>  }</b></p><

100、;p><b>  else</b></p><p>  cout<<"無此商品的退貨記錄,不能開票"<<endl;</p><p>  cout<<"是否繼續(xù)開發(fā)票(y/n)?"<<endl;</p><p><b>  cin>>

101、;ch;</b></p><p>  if(ch=='n')</p><p><b>  break;</b></p><p>  }while(1);</p><p>  fclose(fp);</p><p>  fclose(fp1);</p>&l

102、t;p><b>  }</b></p><p>  void CreateFiledanju2(struct node *p)</p><p>  { FILE *fp,*fp1;</p><p><b>  char ch;</b></p><p>  SYSTEMTIME time;&

103、lt;/p><p>  struct danju d;</p><p><b>  int i=0;</b></p><p>  struct dress s1;</p><p>  fp=fopen("D:\\danju2.dat","ab+");</p><p&

104、gt;  fp1=fopen("d:\\dressswap2.dat","rb");</p><p><b>  if(!fp)</b></p><p><b>  {</b></p><p>  cout<<"開票失?。?quot;<<endl;&

105、lt;/p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  do{</b></p><p>  cout<<"請輸入要開票的換貨的商品編碼"<<endl;</p>

106、;<p>  cin>>d.num;</p><p>  while(fread(&s1,sizeof(s1),1,fp1))</p><p><b>  {</b></p><p>  if(s1.num==d.num)</p><p><b>  { i=1; <

107、/b></p><p><b>  break;}</b></p><p><b>  }</b></p><p><b>  if(i)</b></p><p>  { GetLocalTime(&time);</p><p>  d

108、.id=time.wHour*10000+time.wMinute*100+time.wSecond;////////////////////////</p><p>  strcpy(d.name,s1.name);</p><p>  d.price=s1.price;</p><p>  d.totalprice=s1.totalprice;</p>

109、;<p>  d.year=time.wYear;</p><p>  d.month=time.wMonth;</p><p>  d.day=time.wDay;</p><p>  d.count=s1.count;</p><p>  cout<<"開票成功"<<endl;&l

110、t;/p><p>  cout<<"單據(jù)編碼"<<setw(13)<<"商品編碼"<<setw(13)<<"商品名稱"<<setw(13)<<"商品單價"<<setw(13)<<"商品數(shù)量"<<set

111、w(13)<<"商品總價"<<endl;</p><p>  cout<<d.id<<setw(13)<<d.num<<setw(13)<<d.name<<setw(13)<<d.price<<setw(13)<<d.count<<setw(13)&l

112、t;<d.totalprice<<endl;</p><p>  cout<<"開票日期:"<<endl;</p><p>  cout<<d.year<<"年"<<d.month<<"月"<<d.day<<"

113、;日"<<endl;</p><p>  fwrite(&d,sizeof(d),1,fp);</p><p><b>  }</b></p><p><b>  else</b></p><p>  cout<<"無此商品的換貨記錄,不能開票&q

114、uot;<<endl;</p><p>  cout<<"是否繼續(xù)開發(fā)票(y/n)?"<<endl;</p><p><b>  cin>>ch;</b></p><p>  if(ch=='n')</p><p><b>  

115、break;</b></p><p>  }while(1);</p><p>  fclose(fp);</p><p>  fclose(fp1);</p><p><b>  }</b></p><p><b>  5 實現(xiàn)與調(diào)試分析</b></p&g

116、t;<p><b>  5.1 實現(xiàn)環(huán)境</b></p><p>  硬件: 微型計算機</p><p>  軟件: Microsoft Visual C++6.0</p><p><b>  5.2 語言選擇</b></p><p>  Microsoft Visual C++&

117、lt;/p><p><b>  5.3 調(diào)試分析</b></p><p>  調(diào)試過程中除小問題外,沒遇上什么大的問題。</p><p><b>  6 測試分析</b></p><p>  對退換貨功能,打印單據(jù),還有查詢功能都要進行覆蓋測試。</p><p><b>

118、;  6.1 測試用例</b></p><p>  按照操作輸入時,用以下測試用例實現(xiàn)測試:</p><p>  2-1-y-1-2-n</p><p>  2-2-y-1-2-n</p><p>  3-1-1-n</p><p>&l

119、t;b>  4-1-2</b></p><p><b>  4-5-1</b></p><p><b>  6.2 測試結(jié)果</b></p><p>  程序正常按照要求運行。</p><p><b>  6.3 性能分析</b></p><

120、;p>  該程序基本能完成一些簡單的測試,對輸入的數(shù)據(jù)能達到基本的要求。</p><p><b>  7用戶手冊</b></p><p>  1.創(chuàng)建商品,按照提示輸入商品信息。</p><p>  2.進行退換貨,按照提示選擇進行退貨或換貨操作.退換貨時只需要輸入商品編號,如果倉庫中有該種商品的信息則可以進行相關(guān)操作,否則提示輸入的商品

121、編號是錯誤的。</p><p>  3.打印退換貨單據(jù),輸入商品編號,系統(tǒng)自動進行檢索,該商品是否有退換貨記錄,有則顯示商品信息并打印單據(jù),并把單據(jù)信息進行存儲。如果無商品的退換貨記錄,則提示不能打印單據(jù),</p><p>  4.查詢相關(guān)信息,該選項下面能對以往的所有操作進行查詢,可查詢退換貨記錄,也可查詢單據(jù),還可以對倉庫中的所有商品進行查詢,同時輸入一件商品的編碼,查詢是否有退換貨記

122、錄。</p><p><b>  總 結(jié) </b></p><p>  通過本次課程設(shè)計,讓我切切實實的體會到一個程序的誕生過程,首先進行需求分析,然后根據(jù)要實現(xiàn)的功能進相關(guān)功能設(shè)計,并畫出程序流程圖,詳細(xì)設(shè)計對每個功能的實現(xiàn)進行編碼測試,最后對完成的系統(tǒng)進行功能測試,輸入測試用例,觀察是否按照設(shè)計之初的意愿運行,最后調(diào)試知道符合要求。</p><

123、p><b>  參考文獻 </b></p><p>  [1] 張海藩. 軟件工程導(dǎo)論,清華大學(xué)出版社,2004</p><p>  [2] 陳明. 實用軟件工程基礎(chǔ),清華大學(xué)出版社,2003</p><p>  [3] 殷人昆.實用軟件工程,清華大學(xué)出版社,2003</p><p>  [4] 宋波.UML面向?qū)?/p>

124、象技術(shù)與實踐,科學(xué)出版社,2004 </p><p>  #include<iostream></p><p>  #include<stdlib.h></p><p>  #include<windows.h></p><p>  #include<fstream></p>&l

125、t;p>  #include<iomanip></p><p>  #include<string.h></p><p>  using namespace std;</p><p>  void goodsinfo(struct node *p,long num);</p><p>  struct dress

126、</p><p><b>  {</b></p><p>  char name[20];</p><p><b>  long num;</b></p><p>  int price;</p><p>  int count;</p><p>

127、  int totalprice;</p><p><b>  };</b></p><p>  typedef struct dress dress;</p><p>  struct danju</p><p>  { long num;</p><p><b>  long

128、 id;</b></p><p>  char name[20];</p><p>  int price;</p><p>  int totalprice;</p><p>  int count;</p><p><b>  int year;</b></p>&l

129、t;p>  int month;</p><p><b>  int day;</b></p><p><b>  };</b></p><p>  typedef struct danju danju;</p><p>  int sizedre=sizeof(dress);</p&g

130、t;<p>  struct node</p><p><b>  {</b></p><p>  dress data;</p><p>  struct node *next;</p><p><b>  };</b></p><p>  int size=

131、sizeof(struct node);</p><p>  struct node* createFilekucun(struct node *head)</p><p><b>  {</b></p><p><b>  FILE *fp;</b></p><p><b>  char

132、 ch;</b></p><p><b>  dress s;</b></p><p>  fp=fopen("d:\\kucun.dat","ab+");</p><p><b>  if(!fp)</b></p><p><b>  

133、{</b></p><p>  cout<<"創(chuàng)建商品信息失敗"<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  do</b><

134、/p><p>  { cout<<"是否輸入商品信息(y/n)"<<endl;</p><p><b>  cin>>ch;</b></p><p>  if(ch=='n')</p><p><b>  break;</b>&

135、lt;/p><p><b>  else</b></p><p>  cout<<"請輸入商品編碼"<<endl;</p><p>  cin>>s.num;</p><p>  cout<<"請輸入商品名稱"<<endl;&

136、lt;/p><p>  cin>>s.name;</p><p>  cout<<"請輸入商品價格"<<endl;</p><p>  cin>>s.price;</p><p>  cout<<"請輸入商品數(shù)量"<<endl;<

137、/p><p>  cin>>s.count;</p><p>  fwrite(&s,sizeof(s),1,fp);</p><p>  cout<<"商品創(chuàng)建成功"<<endl;</p><p>  }while(1);</p><p>  fclose(

138、fp);</p><p>  return head;</p><p><b>  }</b></p><p>  struct node *insertkucun(struct node * head ,struct dress e)//////////////////////////////////</p><p>

139、;<b>  {</b></p><p><b>  {</b></p><p>  struct node *p,*p1;</p><p>  p=(struct node *)malloc(sizeof(struct node));</p><p>  p->data=e;</p&g

140、t;<p>  p->next=NULL;</p><p>  if(head==NULL)</p><p><b>  {</b></p><p><b>  head=p;</b></p><p>  return head;</p><p><

141、b>  }</b></p><p><b>  p1=head;</b></p><p>  while(p1->next)</p><p><b>  {</b></p><p>  p1=p1->next;</p><p><b>

142、  }</b></p><p>  p1->next=p;</p><p>  return head;</p><p><b>  }</b></p><p><b>  }</b></p><p>  struct node * readfile(str

143、uct node *head)/////////////////////////////////</p><p><b>  {</b></p><p>  struct dress data;</p><p><b>  FILE*fp;</b></p><p>  head=NULL;</

144、p><p>  if((fp=fopen("d:\\kucun.dat","rb"))==NULL)</p><p><b>  {</b></p><p>  cout<<"Creadfile 函數(shù)中 file does not exit!\n";</p>&l

145、t;p>  return(0);</p><p><b>  }</b></p><p>  fread(&data,sizeof(struct dress),1,fp);</p><p>  while(!feof(fp))</p><p><b>  {</b></p>

146、<p>  head=insertkucun(head,data);</p><p>  fread(&data,sizeof(struct dress),1,fp);</p><p><b>  }</b></p><p>  fclose(fp);</p><p>  return head;&

147、lt;/p><p><b>  }</b></p><p>  void savekucun(struct node *head)//////////////////////</p><p><b>  {</b></p><p>  struct node * p=head;</p>&

148、lt;p><b>  FILE*fp;</b></p><p>  if((fp=fopen("d:\\kucun.dat","wb"))==NULL)</p><p><b>  {</b></p><p>  cout<<"ssavefile 函數(shù)中

149、can not open file:sold.dat!\n";</p><p><b>  exit(0);</b></p><p><b>  }</b></p><p>  if(head==NULL)</p><p><b>  {</b></p>

150、<p><b>  return;</b></p><p><b>  }</b></p><p><b>  while(p)</b></p><p><b>  {</b></p><p>  fwrite(&p->data,

151、sizeof(struct dress),1,fp);</p><p>  p=p->next;</p><p><b>  }</b></p><p>  fclose(fp);</p><p><b>  }</b></p><p>  void CreateFil

152、eswap1(struct node *p)</p><p>  { FILE *fp,*fp1;</p><p><b>  char ch;</b></p><p><b>  int i=0;</b></p><p>  struct node * headcu=NULL;////////

153、//////////////////////]</p><p>  struct node * temp=NULL;</p><p>  headcu=readfile(headcu);</p><p>  dress s,s1;</p><p>  fp=fopen("D:\\dressswap1.dat","

154、ab+");</p><p>  fp1=fopen("d:\\kucun.dat","ab+");</p><p>  s.totalprice=0;</p><p><b>  if(!fp)</b></p><p><b>  {</b><

155、;/p><p>  cout<<"退貨失?。?quot;<<endl;</p><p><b>  exit(1);</b></p><p><b>  }</b></p><p><b>  do</b></p><p>

156、  { cout<<"是否要退貨(y/n)"<<endl;</p><p><b>  cin>>ch;</b></p><p>  if(ch=='n')</p><p><b>  break;</b></p><p>

溫馨提示

  • 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論