版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【課程設(shè)計】網(wǎng)上服裝店系統(tǒng)
- 課程設(shè)計---服裝店服裝進銷存管理系統(tǒng)
- 服裝店可行性研究課程設(shè)計
- 服裝店vip管理
- 網(wǎng)上服裝店設(shè)計
- 服裝店管理運營手冊
- 服裝店櫥窗陳列設(shè)計詳解
- 網(wǎng)上服裝店畢業(yè)設(shè)計
- 服裝店轉(zhuǎn)讓合同
- 如何開好服裝店
- 服裝店經(jīng)營策劃
- 服裝店創(chuàng)業(yè)故事
- 開服裝店必修
- 服裝店拿貨技巧
- 服裝店 怎樣拍好服裝照片?
- 服裝銷售系統(tǒng)課程設(shè)計
- 畢業(yè)論文——網(wǎng)上服裝店設(shè)計
- 課程設(shè)計-甜品店會員管理系統(tǒng)設(shè)計
- 服裝銷售管理系統(tǒng)—c語言課程設(shè)計
- 服裝店施工組織設(shè)計
評論
0/150
提交評論