![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷售統(tǒng)計(jì)系統(tǒng)_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/1542a54a-7a66-425b-80f8-d1f967022748/1542a54a-7a66-425b-80f8-d1f9670227481.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷售統(tǒng)計(jì)系統(tǒng)_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/1542a54a-7a66-425b-80f8-d1f967022748/1542a54a-7a66-425b-80f8-d1f9670227482.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷售統(tǒng)計(jì)系統(tǒng)_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/1542a54a-7a66-425b-80f8-d1f967022748/1542a54a-7a66-425b-80f8-d1f9670227483.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷售統(tǒng)計(jì)系統(tǒng)_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/1542a54a-7a66-425b-80f8-d1f967022748/1542a54a-7a66-425b-80f8-d1f9670227484.gif)
![數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)校園超市商品銷售統(tǒng)計(jì)系統(tǒng)_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-2/27/1542a54a-7a66-425b-80f8-d1f967022748/1542a54a-7a66-425b-80f8-d1f9670227485.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、如有幫助,歡迎支持目錄1 .需求分析0.1.1 問(wèn)題描述Q.1.2 設(shè)計(jì)內(nèi)容Q.2.概要設(shè)計(jì)0.2.1 數(shù)據(jù)結(jié)構(gòu)算法選擇0.2.2 算法要點(diǎn)歸納0.2.3 下面是針對(duì)本程序?qū)iT定義的數(shù)據(jù)結(jié)構(gòu)類型32.4 各組織結(jié)構(gòu)與功能分析.43測(cè)試結(jié)果及其分析5.4小結(jié)7.參考文獻(xiàn)8.附錄:程序源代碼8.11 .需求分析1.1 問(wèn)題描述設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)超市定期對(duì)銷售各商品的記錄進(jìn)行統(tǒng)計(jì),可按商品的編號(hào)單價(jià)、銷售量或銷售額做出排名。1.2 設(shè)計(jì)內(nèi)容在本設(shè)計(jì)中,首先從數(shù)據(jù)文件中讀出各商品的信息記錄,存儲(chǔ)在順序表中。各商品的信息包括:商品編號(hào)、商品名、單價(jià)、銷出數(shù)量、銷售額。商品編號(hào)共4位,采用字母和數(shù)字混合編號(hào)
2、,如:A125,前一位為大寫字母,后三位為數(shù)字,按商品編號(hào)進(jìn)行排序時(shí),可采用基數(shù)排序法。對(duì)各商品的單價(jià)、銷售量或銷售額進(jìn)行排序時(shí),可采用多種排序方法,如直接插入排序、冒泡排序、快速排序,直接選擇排序等方法。在本設(shè)計(jì)中,對(duì)單價(jià)的排序采用冒泡排序法,對(duì)銷售量的排序采用快速排序法,對(duì)銷售額的排序采用堆排序法。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è)位置上。依次類推,一直到所有元素都有序?yàn)橹埂?32738第六JS排序后1327S849第五趟排序后3813”49布 第四趟排序后384913274965第三趟排序后3S49651327而7«第一一趟排序后""65761327夜97第一趟排序后9857 637-9B臺(tái)e座一F 4369712-4 同步3短與圖1:冒泡排序算法思想2 .快速排序:快速排序是對(duì)
4、冒泡排序的一種改進(jìn)。它的基本思想是:通過(guò)一趟排序?qū)⒋庞涗浄指畛瑟?dú)立的兩部分,其中一部分記錄的關(guān)鍵字均比另一部分記錄的關(guān)鍵字,則可分別對(duì)這兩部分記錄繼續(xù)進(jìn)行排序,以達(dá)到整個(gè)序列有序。1快速排序思想最終結(jié)果IA1A4|A3A6|A5A7MAO|A8|A9圖2:快速排序算法思想3 .堆排序:堆排序只需要一個(gè)記錄大小的輔助空間,每個(gè)待排序的記錄僅占有一個(gè)存儲(chǔ)空間。它的基本思想是:首先按大根堆的定義將R-n調(diào)整為堆(這個(gè)過(guò)程為初始建堆),交換R1和Rn(將最大元素R1歸位,放到排序序列的最后)然后,將R1n-1調(diào)整為堆,交換R1和Rn-1;如此反復(fù)進(jìn)行,直到交換了R1和R2為止。圖3:堆排序算法思想4
5、 .基數(shù)排序:基數(shù)排序是屬于“分配式排序”,基數(shù)排序法又稱“桶子法”。顧名思義,它是透過(guò)鍵值的部份資訊,將要排序的元素分配至某些“桶”中,藉以達(dá)到排序的作用,基數(shù)排序法是屬于穩(wěn)定性的排序,其時(shí)間復(fù)雜度為O(nlog(r)m),其中r為所采取的基數(shù),而m為堆數(shù),在某些時(shí)候,基數(shù)排序法的效率高于其它的比較性排序法。19圖4:基數(shù)排序算法思想2.31.商品信息的元素類型定義: typedef struct char num4;char name10;float price;int count;float sale;DataType;F面是針對(duì)本程序?qū)iT定義的數(shù)據(jù)結(jié)構(gòu)類型node/*商品編號(hào)*/*商品
6、名稱*/*單價(jià)*/*銷售數(shù)量*/*本商品銷售額*/2.存儲(chǔ)商品信息的順序表的定義:typedefstructDataTyperMaxSize;intlength;SequenList;2.4各組織結(jié)構(gòu)與功能分析各商品信息在設(shè)計(jì)系統(tǒng)中的主要功能:按照各商品信息排序,根據(jù)要求所需的排序算法對(duì)商品編號(hào)、商品名稱、單價(jià)、銷售量和銷售額進(jìn)行一個(gè)排序。系統(tǒng)功能商品編號(hào)商品名稱用基數(shù)排序用冒泡排序商品單價(jià)用冒泡排序用快速排序k 商品銷售額 用堆排序圖5:功能分析圖3測(cè)試結(jié)果及其分析CM"F:xueli123Debuglieze認(rèn)JA'墳JA'隊(duì).-.-八-1*主QE主QE主QE主Q
7、E主QE商該該該該0:<R,<":=1:2曷n.類的的的的種品品品三口號(hào)商商總:泉5DJ>弋上,-.000前一位為大寫字母,后三位為數(shù)字)二的見(jiàn)主后主閆主后主閆電入遂直品的前聶輕苴弱無(wú)人該商品的患稱閑面搭檔前入該商品的單程5.皿言入該商品的銷售量;34B125,刖一位為大寫子母,后三位為數(shù)字八主閆主后主閆主-R加入該商品的編號(hào)(格式如二現(xiàn)入該商品的卡人該商品的俞入該商品的銷售量中2好康師傅系列方便面1:2.50前一位為大寫字母,后三位為數(shù)字)迷皿3主-R主閆主后主閆趣入該商品的等受格式如:輸入該商品的名稱百事可樂(lè)輸入該商品的單位3皿輸入該商品的銷售量逐B(yǎng)125,刖一
8、位為大寫子母,后三位為數(shù)字:D皿4后三位為數(shù)字E5;清風(fēng)系列紙巾翻修黯整聚繇典匿需前一位為大寫字母,請(qǐng)輸人核需品的100.000000170.00000072180.000000135.000000180.000000圖6:輸入冏品編號(hào)、冏品名稱、冏品單價(jià)和冏品銷售量LN"F:xuelil23Debugli.exe*請(qǐng)輸入該商品的錯(cuò)售量:鈿商品編號(hào)商品名稱單價(jià)銷出數(shù)量銷售額A001農(nóng)夫山泉2.00000050B002洵面境檔5.00000034C003康師傅系列方便面2.500000D004吉事可樂(lè)3.00000045E005清血系列紙巾4.50000040銷售記錄排序123450量
9、數(shù)額口lr#出售銷銷統(tǒng)品品品品口累商商商商商出房誓篇號(hào)排序后:商品名稱一單價(jià)E005D004C003B002A001器,紙巾嘉色|列方便面錯(cuò)出數(shù)量4.5000003.0000005.0000002.000000錯(cuò)售額4045.5000003450180.000000135.00000072180.000000170.000000100.000000圖7:按商品編號(hào)排序Q:zueli123Debugli.exe,銷售記錄排序123450量數(shù)額口1出售銷銷統(tǒng)品品品品口累商商商商商出E005B002A001C003D004畫品至神里價(jià)遣風(fēng)卷列紙幣泡面常檔農(nóng)夫山泉一銷出數(shù)量4.5000005.0000
10、002.000000銷售額403450康師傅系列方便面2.500000百事可樂(lè)3.00000045銷售記錄排序180.000000170.000000100.00000072180.000000135.000000量數(shù)額出售錯(cuò)情統(tǒng)品品品品口累商商商商商中_.-._.-._.-._.-._.-.1-1.>>>>>>123450圖8:按商品名稱排序CM'F-xueli123DebugliezeB002E005D004C003A001單價(jià)銷出數(shù)量5.0000004.5000003.0000002.000000銷售額344045.50000050170.00
11、0000180.000000135.00000072180.000000100.000000銷售記錄排序藝編號(hào)0口1123450量數(shù)額出售錯(cuò)情統(tǒng)品品品品口累商商商商商出-樂(lè)列山序口端夫事即排商寰百住墻巾ft-m錯(cuò)出數(shù)量22.0000003.0000004.5000005.000000銷售額5000005045403472180.000000100.000000135.000000180.000000170.000000圖9:分別按商品單價(jià)和商品銷出數(shù)量排序C003E005B002D004A00112 3 4 5 0量數(shù)額 口1出售銷銷統(tǒng) 品品品品口累 商商商商商出晶君矍里價(jià)銷出數(shù)量師傅系列方使
12、面2嘖鳳羞列紙巾 圃面患檔4.5000005.0000003.Q&QQQ&2.000000銷售額5000004034455072180.000000180.000000170.000000135.000000100.000000銷售記錄排序量數(shù)額出售錯(cuò)情統(tǒng) 品品品品口累 商商商商商中 _ . _ . _ . _ . _ . .1 >>>>>> 12 3 4 5 0Q:zueli123Debugli.exe,銷售記錄排序圖10:按商品銷售額排序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ǔ)法的
13、應(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)與算法解析.合肥:中國(guó)科學(xué)技術(shù)大學(xué)出版社,2004.4郭嵩山等著.國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽例題解.北京:電子工業(yè)出版社,2008.5劉大有,唐海鷹等編著.數(shù)據(jù)結(jié)構(gòu).北
14、京:高等教育出版社,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>#include<string.h>#definemaxsize100/該超市商品最大種類typedefstructnode/商品信息的存儲(chǔ)結(jié)構(gòu)類型定義charnum10;
15、/商品編號(hào)charname30;floatprice;/單價(jià)intcount;/銷售量floatsale;銷售額DataType;typedefstruct/存儲(chǔ)商品信息的順序表的定義DataTypermaxsize;intlength;inttype;SqList;voidnumber(SqList*L)/按商品編號(hào)排序inti,j;charnum110,name130;floatprice1,sale1;intcount1;for(i=0;i<L->type;i+)for(j=i+1;j<L->type;j+)if(strcmp(L->rj.num,L->
16、;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->);strcpy(L->,name1);price1=L->rj.price;L->rj.price=L->ri.price;L->ri.price=price1;count1=L->rj.count;L->rj.cou
17、nt=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)商品名稱單價(jià)銷出數(shù)量銷售額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,
18、L->ri.sale);voidnam(SqList*L)/按商品名稱排序inti,j;charnum110,name130;floatprice1,sale1;intcount1;for(i=0;i<L->type;i+)for(j=i+1;j<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->r
19、);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;printf("
20、;t按商品編號(hào)排序后:n");printf("t商品編號(hào)商品名稱單價(jià)銷出數(shù)量銷售額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);voidpric(SqList*L)/按商品單價(jià)排序inti=0,j;charnum110,name130;floatprice1,sale1;intcount1;for(i=0;i<L->type
21、;i+)for(j=i+1;j<L->type;j+)if(L->rj.price>L->ri.price)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;L
22、->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)商品名稱單價(jià)銷出數(shù)量銷售額n");for(i=0;i<L->type;i+)printf("t%st%st%付dt%fn",L-&g
23、t;ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);voidcoun(SqList*L)/按商品銷出數(shù)量排序inti=0,j;charnum110,name130;floatprice1,sale1;intcount1;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.n
24、um);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.count=count1;sale1=L->rj.sale;L->rj.s
25、ale=L->ri.sale;L->ri.sale=sale1;printf("t按商品編號(hào)排序后:n");printf("t商品編號(hào)商品名稱單價(jià)銷出數(shù)量銷售額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);voidsales(SqList*L)/按商品銷售額排序inti=0,j;charnum110,name130
26、;floatprice1,sale1;intcount1;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);pri
27、ce1=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("t商品編號(hào)商品名稱單價(jià)銷出數(shù)量銷售額n");for(i=0;i<L-
28、>type;i+)printf("t%st%st%付dt%fn",L->ri.num,L->,L->ri.price,L->ri.count,L->ri.sale);voidmenu()printf("ttt銷售記錄排序n");printf("tn");printf("t|1)按商品編號(hào)|n");printf("t|2)按商品名稱|n");printf("t|3)按商品單價(jià)|n");printf("t|4)按商品銷出
29、數(shù)量|n");printf("t|5)按商品銷售額|n");printf("t|0)退出系統(tǒng)|n");printf("tn");printf("請(qǐng)選擇<05>");intmain()SqList*L;intn,i,m;charnum110,name130;floatprice1,sale1;intcountl;FILE*fp;L=(SqList*)malloc(sizeof(SqList);fp=fopen("medince.txt","w");/創(chuàng)建文件if(!fp)printf("Sorry!Fileopenerror!n");exit(0);printf("請(qǐng)輸入商品種類數(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)輸入該商品的名稱:");scanf("%s",name1);get
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 建筑合同補(bǔ)充協(xié)議書
- 房地產(chǎn)行業(yè)員工勞動(dòng)合同
- 2025年包頭駕校考試貨運(yùn)從業(yè)資格證考試
- 2025年黃石貨運(yùn)從業(yè)資格證模擬考試下載什么軟件
- 2024-2025學(xué)年高中語(yǔ)文課時(shí)作業(yè)2鳥(niǎo)啼含解析蘇教版必修2
- 大學(xué)團(tuán)支部年終工作總結(jié)
- 珠寶營(yíng)業(yè)員工作計(jì)劃
- 聘用人員勞務(wù)合同范本
- 昆明理工大學(xué)《攝影技術(shù)》2023-2024學(xué)年第二學(xué)期期末試卷
- 車輛抵押擔(dān)保借款合同范本
- 新增值稅法學(xué)習(xí)課件
- 飛書項(xiàng)目管理
- 醫(yī)院醫(yī)共體2025年度工作計(jì)劃
- UL498標(biāo)準(zhǔn)中文版-2019插頭插座UL標(biāo)準(zhǔn)中文版
- 決戰(zhàn)朝鮮課件
- 《酶聯(lián)免疫分析技術(shù)》課件
- 2024年國(guó)家電網(wǎng)招聘之電工類考試題庫(kù)附答案(滿分必刷)
- 鮮棗貯藏技術(shù)規(guī)程
- 滅火應(yīng)急疏散演練
- 講述京東課件教學(xué)課件
- 2024-2025形勢(shì)與政策全冊(cè)課件
評(píng)論
0/150
提交評(píng)論