![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷(xiāo)售統(tǒng)計(jì)系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1c0fd01c-1150-4f7a-b94a-c4181e80c40d/1c0fd01c-1150-4f7a-b94a-c4181e80c40d1.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷(xiāo)售統(tǒng)計(jì)系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1c0fd01c-1150-4f7a-b94a-c4181e80c40d/1c0fd01c-1150-4f7a-b94a-c4181e80c40d2.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷(xiāo)售統(tǒng)計(jì)系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1c0fd01c-1150-4f7a-b94a-c4181e80c40d/1c0fd01c-1150-4f7a-b94a-c4181e80c40d3.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷(xiāo)售統(tǒng)計(jì)系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1c0fd01c-1150-4f7a-b94a-c4181e80c40d/1c0fd01c-1150-4f7a-b94a-c4181e80c40d4.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷(xiāo)售統(tǒng)計(jì)系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/1c0fd01c-1150-4f7a-b94a-c4181e80c40d/1c0fd01c-1150-4f7a-b94a-c4181e80c40d5.gif)
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告目錄1.需求分析11.1 問(wèn)題描述11.2 設(shè)計(jì)內(nèi)容12.概要設(shè)計(jì)12.1 數(shù)據(jù)結(jié)構(gòu)算法選擇12.2 算法要點(diǎn)歸納12.3 下面是針對(duì)本程序?qū)iT(mén)定義的數(shù)據(jù)結(jié)構(gòu)類(lèi)型42.4 各組織結(jié)構(gòu)與功能分析53 測(cè)試結(jié)果及其分析64 小結(jié)8參考文獻(xiàn)9附錄:程序源代碼91.需求分析1.1 問(wèn)題描述 設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)超市定期對(duì)銷(xiāo)售各商品的記錄進(jìn)行統(tǒng)計(jì),可按商品的編號(hào)、單價(jià)、銷(xiāo)售量或銷(xiāo)售額做出排名。1.2 設(shè)計(jì)內(nèi)容 在本設(shè)計(jì)中,首先從數(shù)據(jù)文件中讀出各商品的信息記錄,存儲(chǔ)在順序表中。各商品的信息包括:商品編號(hào)、商品名、單價(jià)、銷(xiāo)出數(shù)量、銷(xiāo)售額。商品編號(hào)共4位,采用字母和數(shù)字混合編號(hào),如:A125,
2、前一位為大寫(xiě)字母,后三位為數(shù)字,按商品編號(hào)進(jìn)行排序時(shí),可采用基數(shù)排序法。對(duì)各商品的單價(jià)、銷(xiāo)售量或銷(xiāo)售額進(jìn)行排序時(shí),可采用多種排序方法,如直接插入排序、冒泡排序、快速排序,直接選擇排序等方法。在本設(shè)計(jì)中,對(duì)單價(jià)的排序采用冒泡排序法,對(duì)銷(xiāo)售量的排序采用快速排序法,對(duì)銷(xiāo)售額的排序采用堆排序法。2.概要設(shè)計(jì)2.1 數(shù)據(jù)結(jié)構(gòu)算法選擇本設(shè)計(jì)主要采用了順序表。共用四種排序方法:冒泡排序法,快速排序法,堆排序法,基數(shù)排序法。2.2 算法要點(diǎn)歸納1. 冒泡排序: 冒泡排序的算法思想是:通過(guò)無(wú)序區(qū)中相鄰元素關(guān)鍵字間的比較和位置的交換,使關(guān)鍵字最小的元素如氣泡一般逐漸往上“漂浮”直至“水面”。整個(gè)算法是從最下面的元
3、素開(kāi)始,對(duì)每?jī)蓚€(gè)相鄰元素的關(guān)鍵字進(jìn)行比較,且使關(guān)鍵字較小的元素?fù)Q至關(guān)鍵字較大的元素之上,使得經(jīng)過(guò)一趟冒泡排序后,關(guān)鍵字最小的元素到達(dá)最上端。接著,再在剩下的元素中找關(guān)鍵字次小的元素,并把它換在第二個(gè)位置上。依次類(lèi)推,一直到所有元素都有序?yàn)橹?。圖 1:冒泡排序算法思想2. 快速排序:快速排序是對(duì)冒泡排序的一種改進(jìn)。它的基本思想是:通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字,則可分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。圖 2:快速排序算法思想3. 堆排序:堆排序只需要一個(gè)記錄大小的輔助空間,每個(gè)待排序的記錄僅占有一個(gè)存儲(chǔ)空間。它的基本思想是
4、:首先按大根堆的定義將R1n調(diào)整為堆(這個(gè)過(guò)程為初始建堆),交換R1和Rn(將最大元素R1歸位,放到排序序列的最后);然后,將R1n-1調(diào)整為堆,交換R1和Rn-1;如此反復(fù)進(jìn)行,直到交換了R1和R2為止。圖 3:堆排序算法思想4.基數(shù)排序:基數(shù)排序是屬于“分配式排序”,基數(shù)排序法又稱(chēng)“桶子法”。顧名思義,它是透過(guò)鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達(dá)到排序的作用,基數(shù)排序法是屬于穩(wěn)定性的排序,其時(shí)間復(fù)雜度為O(nlog(r)m),其中r為所采取的基數(shù),而m為堆數(shù),在某些時(shí)候,基數(shù)排序法的效率高于其它的比較性排序法。圖 4:基數(shù)排序算法思想2.3 下面是針對(duì)本程序?qū)iT(mén)定義的數(shù)
5、據(jù)結(jié)構(gòu)類(lèi)型1.商品信息的元素類(lèi)型定義: typedef struct node char num4; /*商品編號(hào)*/ char name10; /*商品名稱(chēng)*/ float price; /*單價(jià)*/ int count; /*銷(xiāo)售數(shù)量*/ float sale; /*本商品銷(xiāo)售額*/ DataType;
6、60;2.存儲(chǔ)商品信息的順序表的定義: typedef struct DataType rMaxSize; int length; SequenList; 2.4 各組織結(jié)構(gòu)與功能分析各商品信息在設(shè)計(jì)系統(tǒng)中的主要功能:按照各商品信息排序,根據(jù)要求所需的排序算法對(duì)商品編號(hào)、商品名稱(chēng)、單價(jià)、銷(xiāo)售量和銷(xiāo)售額進(jìn)行一個(gè)排序。圖 5:功能分析圖 3 測(cè)試結(jié)果及其分析圖 6:輸入商品編號(hào)、商品名稱(chēng)、商品單價(jià)和商品銷(xiāo)售量圖 7:按商品編號(hào)排序圖 8:按商品名稱(chēng)排序圖 9:分別按商品單價(jià)和商品銷(xiāo)出數(shù)量排序
7、圖 10:按商品銷(xiāo)售額排序4 小結(jié)通過(guò)這次課設(shè),我學(xué)會(huì)了如何把數(shù)據(jù)結(jié)構(gòu)的知識(shí)應(yīng)用到實(shí)踐當(dāng)中,同時(shí)也進(jìn)一步加深了對(duì)c/c+語(yǔ)言語(yǔ)法的應(yīng)用,以及深刻的掌握了數(shù)據(jù)結(jié)構(gòu)和c/c+語(yǔ)言的結(jié)合運(yùn)用。 在編程過(guò)程中,遇到了許多問(wèn)題,在一次次的運(yùn)行錯(cuò)誤后,問(wèn)題被一步步改正,也從中學(xué)到了許多知識(shí)。雖然我的程序還不夠完善,還需加以改進(jìn)以實(shí)現(xiàn)更多的功能,但是我會(huì)盡我最大的努力去完成它,我相信我會(huì)努力去把程序做的更加完美。參考文獻(xiàn)1王昆侖,李紅等編著. 數(shù)據(jù)結(jié)構(gòu)與算法. 北京:中國(guó)鐵道出版社,2007.2蘇仕華等編著. 數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì). 北京:機(jī)械工業(yè)出版社 ,2005.3蘇仕華編著. 數(shù)據(jù)結(jié)構(gòu)與算法解析. 合肥:
8、中國(guó)科學(xué)技術(shù)大學(xué)出版社,2004.4郭嵩山等著. 國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽例題解. 北京:電子工業(yè)出版社,2008.5劉大有,唐海鷹等編著. 數(shù)據(jù)結(jié)構(gòu). 北京:高等教育出版社,2001.6徐孝凱編著.數(shù)據(jù)結(jié)構(gòu)實(shí)用教程. 北京: 清華大學(xué)出版社,1999.7嚴(yán)蔚敏,陳文博編著. 數(shù)據(jù)結(jié)構(gòu)及算法教程. 北京: 清華大學(xué)出版社,2001.8劉振安,劉燕君等編著. C 程序設(shè)計(jì)課程設(shè)計(jì). 北京: 機(jī)械出版社,2004.9胡學(xué)鋼. 數(shù)據(jù)結(jié)構(gòu)與算法設(shè)計(jì)指導(dǎo). 北京: 清華大學(xué)出版社, 1999.附錄:程序源代碼#include<stdio.h>#include<stdlib.h>#i
9、nclude<string.h>#define maxsize 100 /該超市商品最大種類(lèi)typedef struct node /商品信息的存儲(chǔ)結(jié)構(gòu)類(lèi)型定義char num10; /商品編號(hào) char name30; float price; /單價(jià) int count; /銷(xiāo)售量 float sale; /銷(xiāo)售額DataType;typedef struct /存儲(chǔ)商品信息的順序表的定義 DataType rmaxsize; int length; int type;SqList;void number(SqList *L) /按商品編號(hào)排序 int i,j; char nu
10、m110,name130; float price1,sale1; int count1; for(i=0;i<L->type;i+) for(j=i+1;j<L->type;j+) if(strcmp(L->rj.num,L->ri.num)>0) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->); strcpy(L->,L->)
11、; strcpy(L->,name1); price1=L->rj.price; L->rj.price=L->ri.price; L->ri.price=price1; count1=L->rj.count; L->rj.count=L->ri.count; L->ri.count=count1; sale1=L->rj.sale; L->rj.sale=L->ri.sale; L->ri.sale=sale1; printf("t按商品編號(hào)排序后:n"); printf(&quo
12、t;t商品編號(hào) 商品名稱(chēng) 單價(jià) 銷(xiāo)出數(shù)量 銷(xiāo)售額n"); for(i=0;i<L->type;i+)printf("t%st%st%ft%dt%fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);void nam(SqList *L) /按商品名稱(chēng)排序 int i,j; char num110,name130; float price1,sale1; int count1; for(i=0;i<L->type;i+) for(j=i+1;j&
13、lt;L->type;j+) if(strcmp(L->,L->)>0) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->); strcpy(L->,L->); strcpy(L->,name1); price1=L->rj.price; L->rj.price=L->ri.price;
14、 L->ri.price=price1; count1=L->rj.count; L->rj.count=L->ri.count; L->ri.count=count1; sale1=L->rj.sale; L->rj.sale=L->ri.sale; L->ri.sale=sale1; printf("t按商品編號(hào)排序后:n"); printf("t商品編號(hào) 商品名稱(chēng) 單價(jià) 銷(xiāo)出數(shù)量 銷(xiāo)售額n"); for(i=0;i<L->type;i+)printf("t%st%st%ft
15、%dt%fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);void pric(SqList *L)/按商品單價(jià)排序int i=0,j; char num110,name130; float price1,sale1; int count1; for(i=0;i<L->type;i+) for(j=i+1;j<L->type;j+) if(L->rj.price>L->ri.price) strcpy(num1,L->rj.num); s
16、trcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->); strcpy(L->,L->); strcpy(L->,name1); price1=L->rj.price; L->rj.price=L->ri.price; L->ri.price=price1; count1=L->rj.count; L->rj.count=L->ri.count; L->ri.coun
17、t=count1; sale1=L->rj.sale; L->rj.sale=L->ri.sale; L->ri.sale=sale1; printf("t按商品編號(hào)排序后:n"); printf("t商品編號(hào) 商品名稱(chēng) 單價(jià) 銷(xiāo)出數(shù)量 銷(xiāo)售額n"); for(i=0;i<L->type;i+) printf("t %st %st %ft %dt %fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);
18、void coun(SqList *L)/按商品銷(xiāo)出數(shù)量排序int i=0,j; char num110,name130; float price1,sale1; int count1; for(i=0;i<L->type;i+) for(j=i+1;j<L->type;j+) if(L->rj.count>L->ri.count) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->rj.
19、name); strcpy(L->,L->); strcpy(L->,name1); price1=L->rj.price; L->rj.price=L->ri.price; L->ri.price=price1; count1=L->rj.count; L->rj.count=L->ri.count; L->ri.count=count1; sale1=L->rj.sale; L->rj.sale=L->ri.sale; L->ri.sale=sale1; pr
20、intf("t按商品編號(hào)排序后:n"); printf("t商品編號(hào) 商品名稱(chēng) 單價(jià) 銷(xiāo)出數(shù)量 銷(xiāo)售額n"); for(i=0;i<L->type;i+) printf("t%st%st%ft%dt%fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);void sales(SqList *L)/按商品銷(xiāo)售額排序int i=0,j; char num110,name130; float price1,sale1; int co
21、unt1; for(i=0;i<L->type;i+) for(j=i+1;j<L->type;j+) if(L->rj.sale>L->ri.sale) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->); strcpy(L->,L->); strcpy(L->,name1); price1=L->rj.p
22、rice; L->rj.price=L->ri.price; L->ri.price=price1; count1=L->rj.count; L->rj.count=L->ri.count; L->ri.count=count1; sale1=L->rj.sale; L->rj.sale=L->ri.sale; L->ri.sale=sale1; printf("t按商品編號(hào)排序后:n"); printf("t商品編號(hào) 商品名稱(chēng) 單價(jià) 銷(xiāo)出數(shù)量 銷(xiāo)售額n"); for(i=0;i<L
23、->type;i+) printf("t %st %st %ft %dt %fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);void menu() printf("ttt銷(xiāo)售記錄排序n"); printf("t-n"); printf("t| 1)按商品編號(hào) |n"); printf("t| 2)按商品名稱(chēng) |n"); printf("t| 3)按商品單價(jià) |n");
24、 printf("t| 4)按商品銷(xiāo)出數(shù)量 |n"); printf("t| 5)按商品銷(xiāo)售額 |n"); printf("t| 0)退出系統(tǒng) |n"); printf("t-n"); printf(" 請(qǐng)選擇<05>");int main() SqList *L; int n,i,m; char num110,name130; float price1,sale1; int count1; FILE *fp; L=(SqList*)malloc(sizeof(SqList); fp
25、=fopen("medince.txt","w"); /創(chuàng)建文件 if (!fp) printf("Sorry! File open error!n");exit(0); printf("請(qǐng)輸入商品種類(lèi)數(shù)(<=100):"); scanf("%d",&n); L->type=n; for (i=0; i<n; i+) printf("請(qǐng)輸入該商品的編號(hào):"); scanf("%s",num1); getchar(); printf("請(qǐng)輸入該商品的名稱(chēng):"); scanf("%s",name1); getchar(); printf("請(qǐng)輸入該商品的單價(jià):"); scanf("%f",&price1); printf("請(qǐng)輸入該商品的銷(xiāo)售量:"); scanf("%d",&count1); getchar(); sale1=price1*count1;fprintf(fp,"%st%
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 語(yǔ)言引導(dǎo)目標(biāo)檢測(cè)算法研究
- 二零二五年度建筑防水系統(tǒng)設(shè)計(jì)施工合同2篇
- 現(xiàn)代農(nóng)業(yè)產(chǎn)業(yè)園風(fēng)險(xiǎn)評(píng)估與應(yīng)對(duì)措施
- 冶金行業(yè)業(yè)務(wù)員工作總結(jié)
- 應(yīng)急響應(yīng)機(jī)制的建立
- 餐飲服務(wù)行業(yè)員工激勵(lì)策略
- 二零二五年度個(gè)人房地產(chǎn)居間傭金分配合同范本4篇
- 二零二五年度電子商務(wù)平臺(tái)商鋪入駐合作協(xié)議2篇
- 二零二五年度個(gè)人股份質(zhì)押合同樣本:有限責(zé)任公司股權(quán)融資專(zhuān)用2篇
- 部編版一年級(jí)語(yǔ)文下冊(cè)第18課《棉花姑娘》精美課件
- 煙草業(yè)產(chǎn)業(yè)鏈協(xié)同創(chuàng)新模式-洞察分析
- 經(jīng)濟(jì)學(xué)基礎(chǔ)試題及答案 (二)
- GB 19053-2024殯儀場(chǎng)所致病菌安全限值
- 煙草局合同范例
- AutoCAD2024簡(jiǎn)明教程資料
- 新能源電站單位千瓦造價(jià)標(biāo)準(zhǔn)值(2024版)
- 高中語(yǔ)文:選擇性必修中冊(cè)第三單元拓展閱讀
- 2023年江蘇省南京市中考化學(xué)真題(原卷版)
- 2023年湖北省襄陽(yáng)市中考數(shù)學(xué)真題(原卷版)
- 湖南高速鐵路職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試參考試題庫(kù)(含答案)
- 母嬰護(hù)理員題庫(kù)
評(píng)論
0/150
提交評(píng)論