




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)結(jié)構(gòu)課程設(shè)計(jì)報(bào)告 項(xiàng)目名稱:藥店藥品銷售統(tǒng)計(jì)系統(tǒng)學(xué)號(hào):班級(jí):姓名:指導(dǎo)老師: 計(jì)算機(jī)科學(xué)與技術(shù) 2014年12月22日1. 問題描述:(1)設(shè)計(jì)一系統(tǒng),實(shí)現(xiàn)醫(yī)藥公司定期對(duì)銷售各藥品的記錄進(jìn)行統(tǒng)計(jì),可按藥品的編號(hào)、單價(jià)、銷售量或銷售額做出排名。(2)在本設(shè)計(jì)中,首先從數(shù)據(jù)文件中讀出各藥品的信息記錄,存儲(chǔ)在順序表中。各藥品的信息包括:藥品編號(hào)、藥名、藥品單價(jià)、銷出數(shù)量、銷售額。藥品編號(hào)共4位,采用字母和數(shù)字混合編號(hào),如:A125,前一位為大寫字母,后三位為數(shù)字,按藥品編號(hào)進(jìn)行排序時(shí),可采用基數(shù)排序法。對(duì)各藥品的單價(jià)、銷售量或銷售額進(jìn)行排序時(shí),可采用多種排序方法,如直接插入排序、冒泡排序、快速排
2、序,直接選擇排序等方法。2. 設(shè)計(jì)思路:本次課程設(shè)計(jì)的任務(wù)是設(shè)計(jì)一個(gè)藥店藥品銷售統(tǒng)計(jì)系統(tǒng),實(shí)現(xiàn)對(duì)藥店內(nèi)藥品的信息進(jìn)行記錄和對(duì)銷售情況進(jìn)行整理排序,更直觀的了解藥店的藥品銷售情況。本次設(shè)計(jì)的系統(tǒng)主要采用C語言程序設(shè)計(jì)基本知識(shí),通過文件來輸入、記錄、保存藥品的編碼、名稱、單價(jià)、銷售數(shù)量,運(yùn)用乘法運(yùn)算算出各類藥品的銷售總額,最后利用冒泡排序法(運(yùn)用文件指針知識(shí))將藥品信息按照藥品編碼、藥品名稱、藥品單價(jià)、藥品銷售數(shù)量、藥品銷售總額5個(gè)方面進(jìn)行從大到小的排序。該系統(tǒng)主要由1.輸入記錄并保存藥品信息,2.在界面上顯示所輸入的藥品信息,3.將藥品信息根據(jù)5個(gè)方面進(jìn)行排序并保存 這三大模塊所構(gòu)成。3. 數(shù)據(jù)
3、結(jié)構(gòu)定義:typedef struct node /藥品信息的存儲(chǔ)結(jié)構(gòu)類型定義 char num10; /藥品編號(hào) char name30; float price; /單價(jià) int count; /銷售量 float sale; /銷售額DataType;typedef struct /存儲(chǔ)藥品信息的順序表的定義 DataType rmaxsize; int length; int type;SqList;4. 系統(tǒng)功能模塊介紹:程序開始進(jìn)入主函數(shù)定義最大輸入藥品種類輸入模塊:用于輸入藥品的編號(hào)、名稱、單價(jià)、銷售量、銷售額輸出模塊:通過while循環(huán)調(diào)用menu()子函數(shù),實(shí)現(xiàn)藥品的各種排序
4、數(shù)據(jù)保存模塊:medince.txt文件用于將輸入的所有藥品信息保存void number()按藥品編號(hào)排序void nam()按藥品名稱排序void pric()按藥品單價(jià)排序void coun()按藥品銷售量排序void sales()按藥品銷售額排序5. 運(yùn)行與調(diào)試分析:程序的調(diào)試分析主要由兩大步驟組成。首先認(rèn)真閱讀所編寫好的程序,進(jìn)一步進(jìn)行檢查。在過程中修改一些常識(shí)性簡單的錯(cuò)誤,例如:符號(hào)“”“;”的缺失,對(duì)不必要的敘述進(jìn)行修改刪減,使程序更簡潔美觀,增強(qiáng)程序的可讀性,區(qū)分函數(shù)與子函數(shù),分析變量含義的變更是否會(huì)導(dǎo)致錯(cuò)誤,在關(guān)鍵程序后面給上相關(guān)的注釋,讓程序變得更易理解。其次在閱讀檢查程
5、序并修改后,進(jìn)行初步的調(diào)試,根據(jù)程序設(shè)計(jì)思路查看各變量的含義是否符合設(shè)計(jì)初衷,并作適當(dāng)?shù)男薷?,初步調(diào)試完成后運(yùn)行程序針對(duì)所顯示的錯(cuò)誤信息進(jìn)行修改與優(yōu)化。例如:調(diào)試過程中發(fā)現(xiàn)scanf函數(shù)處報(bào)錯(cuò),則經(jīng)分析發(fā)現(xiàn)格式上缺少“&”符號(hào)。如果調(diào)試過程中忽而出現(xiàn)幾十上百條錯(cuò)誤,則問題可能是頭文件或者某一兩處出現(xiàn)錯(cuò)誤,此時(shí)應(yīng)根據(jù)程序流程圖仔細(xì)分析錯(cuò)誤所在,同時(shí)可單步運(yùn)行輸入實(shí)驗(yàn)數(shù)據(jù)查看各變量含義是否出錯(cuò),進(jìn)而合理的修改。輸入藥品種類數(shù)為3:以下為三種藥品信息輸入1:輸入2:輸入3:輸入4:輸入56. 體會(huì):通過本次課程設(shè)計(jì),培養(yǎng)了我關(guān)于系統(tǒng)的設(shè)計(jì)理念,掌握具體的編程方法,提高了個(gè)人的綜合實(shí)踐能力。學(xué)
6、會(huì)通過所學(xué)的知識(shí)和查閱相關(guān)資料,能夠根據(jù)實(shí)際問題設(shè)計(jì)出實(shí)用并可靠的系統(tǒng)程序。藥店藥品銷售統(tǒng)計(jì)系統(tǒng)是由C語言編寫而成的,該系統(tǒng)程序函數(shù)層次簡練分明,可讀性強(qiáng)。對(duì)于商店來講,一般銷售額的統(tǒng)計(jì)都比較繁瑣、容易出現(xiàn)錯(cuò)誤。藥店藥品的銷售統(tǒng)計(jì)系統(tǒng)在這方面可以大大的減少人們對(duì)信息的處理,比較有實(shí)際意義。并且該系統(tǒng)操作起來簡單快捷,極大的降低了工作量。不過系統(tǒng)仍然存在著不足之處,需要后續(xù)的補(bǔ)充和修改完善。例如:無法對(duì)輸入的信息進(jìn)行分類保存,無法再中途添加藥品信息,沒有一個(gè)完整的信息庫等等。完成本次課程設(shè)計(jì),一方面對(duì)我的知識(shí)進(jìn)行了鞏固,另一方面提前讓我養(yǎng)成了研發(fā)設(shè)計(jì)系統(tǒng)的思路和感受。對(duì)今后的學(xué)習(xí)和實(shí)驗(yàn)相信有著積
7、極的意義。同時(shí)也認(rèn)識(shí)到自己的不足和學(xué)習(xí)的永無止境,的確學(xué)如逆水行舟,不進(jìn)則退!時(shí)代在發(fā)展,很多系統(tǒng)就得跟上人們的需求,所以我們今后的發(fā)展前景還是很大的。主程序#include<stdio.h>#include<stdlib.h>#include<string.h>#define maxsize 100 /該醫(yī)藥公司藥品最大種類typedef struct node /藥品信息的存儲(chǔ)結(jié)構(gòu)類型定義 char num10; /藥品編號(hào) char name30; float price; /單價(jià) int count; /銷售量 float sale; /銷售額Dat
8、aType;typedef struct /存儲(chǔ)藥品信息的順序表的定義 DataType rmaxsize; int length; int type;SqList;void number(SqList *L) /按藥品編號(hào)排序 int i,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(strcmp(L->rj.num,L->ri.num)>0) strcpy(num1,L->rj.n
9、um); 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.count=L->ri.count; L->r
10、i.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à) 藥品銷售量 藥品銷售額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-&g
11、t;ri.sale);void nam(SqList *L) /按藥品名稱排序 int i,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(strcmp(L->,L->)>0) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy
12、(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.sale=L->ri.sale; L->r
13、i.sale=sale1; printf("t按藥品名稱排序后:n"); printf("t藥品編號(hào) 藥品名稱 藥品單價(jià) 藥品銷售量 藥品銷售額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 pric(SqList *L) int i=0,j; char num110,name130; float pri
14、ce1,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); strcpy(L->rj.num,L->ri.num); strcpy(L->ri.num,num1); strcpy(name1,L->); strcpy(L->,L->); strcpy(L->,name1)
15、; 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按藥品單價(jià)排序后:n"); printf("t藥品編號(hào) 藥品名稱 藥品單價(jià) 藥品銷售量 藥品銷售額
16、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 coun(SqList *L) 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-&
17、gt;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->); strcpy(L->,L->); strcpy(L->,name1); price1=L->rj.price; L->rj.price=L->ri.price; L->ri.price=price1; count1=L
18、->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按藥品銷售量排序后:n"); printf("t藥品編號(hào) 藥品名稱 藥品單價(jià) 藥品銷售量 藥品銷售額n"); for(i=0;i<L->type;i+) printf("t %st %st %ft %dt %fn",L->r
19、i.num,L->,L->ri.price,L->ri.count,L->ri.sale);void sales(SqList *L) 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.sale>L->ri.sale) strcpy(num1,L->rj.num); strcpy(L->rj.num,L->ri.
20、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.count=count1; sale1=L->rj.sal
21、e; L->rj.sale=L->ri.sale; L->ri.sale=sale1; printf("t按藥品銷售額排序后:n"); printf("t藥品編號(hào) 藥品名稱 藥品單價(jià) 藥品銷售量 藥品銷售額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 menu() printf(&qu
22、ot;ttt銷售記錄排序n"); printf("t-n"); printf("t| 1)按藥品編號(hào) |n"); printf("t| 2)按藥品名稱 |n"); printf("t| 3)按藥品單價(jià) |n"); printf("t| 4)按藥品銷售量 |n"); printf("t| 5)按藥品銷售額 |n"); printf("t| 0)退出系統(tǒng) |n"); printf("t-|n"); printf(" 請(qǐng)選
23、擇<05>");main() SqList *L; int n,i,m; char num110,name130; float price1,sale1; int count1; FILE *fp; L=(SqList*)malloc(sizeof(SqList); fp=fopen("medince.txt","w"); /創(chuàng)建文件 if(!fp) printf("Sorry! File open error!n");exit(0); printf("請(qǐng)輸入藥品種類數(shù)(<=100):"
24、); scanf("%d",&n); L->type=n; for(i=0;i<n;i+) printf("請(qǐng)輸入該藥品的編號(hào)(格式如:B12,前一位為大寫字母,后二位為數(shù)字):"); scanf("%s",num1); getchar(); printf("請(qǐng)輸入該藥品的名稱:"); scanf("%s",name1); getchar(); printf("請(qǐng)輸入該藥品的單價(jià):"); scanf("%f",&price1); printf("請(qǐng)輸入該藥品的銷售量:"); scanf("%d",&count1); getchar(); sale1=price1*count1; fprintf(fp,"%st%st%ft%dt%
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 花卉購銷協(xié)議書
- 調(diào)整宅基協(xié)議書
- 配送保密協(xié)議書
- 贓款退還協(xié)議書
- 建材業(yè)務(wù)員合同協(xié)議書
- 旅行社地接合同協(xié)議書
- 竹筍合作協(xié)議書
- 租房轉(zhuǎn)手協(xié)議書
- 職工外住協(xié)議書
- 現(xiàn)貨會(huì)員協(xié)議書
- LY/T 2581-2016森林防火視頻監(jiān)控系統(tǒng)技術(shù)規(guī)范
- GB/T 1735-2009色漆和清漆耐熱性的測(cè)定
- 2022年上海蓬萊中學(xué)高二政治下學(xué)期期末試卷含解析
- 中印邊境爭端
- 單病種管理匯總
- 第六單元作文訓(xùn)練:“批判與觀察”高一語文教材同步作文 素材拓展+范文展示(統(tǒng)編版必修下冊(cè))
- 心肺聽診課件
- 中小學(xué)生環(huán)境教育專題教育大綱
- 商務(wù)禮儀之辦公室禮儀課件
- 綠色施工策劃書(模板)
- 肺癌生活質(zhì)量量表
評(píng)論
0/150
提交評(píng)論