版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、課程設計報告 (201 201 學年 第 學期)課 程: 高級語言程序設計 題 目: 藥房管理系統(tǒng) 姓 名: 專 業(yè): 班 級: 學 號: 指導教師: 完成時間: 一、課程設計的內(nèi)容(課程設計題目,正式報告需將括號內(nèi)文字刪除)藥房管理系統(tǒng)功能:設計藥房管理系統(tǒng),輸入藥品基本信息(藥品編號、名稱、單價、庫存數(shù)量、品牌),并實現(xiàn)以下功能:1、修改、刪除指定藥品的信息2、按單價或庫存數(shù)量排序并顯示藥品信息3、統(tǒng)計指定品牌藥品數(shù)量分步實施: 1、初步完成總體設計,搭好框架,確定人機對話的界面,確定函數(shù)個數(shù); 2、完成最低要求:實現(xiàn)藥品的添加、修改、刪除等功能; 3、進一步要求:實現(xiàn)排序及統(tǒng)計功能。要求
2、:1、用C語言實現(xiàn)程序設計;2、 系統(tǒng)的各個功能模塊要求用函數(shù)實現(xiàn); 3、界面友好(良好的人機交互),程序加必要的注釋。2、 功能描述(對系統(tǒng)要實現(xiàn)的功能進行描述,正式報告需將括號內(nèi)文字刪除)1、能正確地錄入藥品信息并保存下來。2、能夠有效、快速地查看全部藥品的信息。3、可以查看某一藥品的信息(按藥品的默認序號查看)4、可以查看某一藥品的信息(按藥品的編號進行查看)5、能夠按照管理人員的意愿修改任意藥品的信息6、能修改藥品信息7、此系統(tǒng)還能對藥品的單價進行排序三、概要設計(根據(jù)功能描述建立系統(tǒng)的體系結(jié)構(gòu),即將整個系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡要說明各模塊的
3、功能,正式報告需將括號內(nèi)文字刪除)主界面輸入藥品信息修改藥品信息刪除藥品信息保存退出統(tǒng)計藥品數(shù)量藥品排序藥品編號庫存數(shù)量單價名稱品牌修改名稱單價庫存數(shù)量全部刪除刪除單個庫存數(shù)量排序單價排序輸入藥品信息主界面添加藥品輸入名稱輸入品牌輸入數(shù)量輸入單價輸入編號是否繼續(xù)是否刪除藥品主界面全部刪除單個刪除確認取消按名稱刪除確認是否刪除是否刪除成功四、詳細設計(詳細說明各功能模塊的實現(xiàn)過程,包括用流程圖對算法進行描述、所用到的數(shù)據(jù)結(jié)構(gòu)、算法實現(xiàn)的主要源代碼等,正式報告需將括號內(nèi)文字刪除)#include<stdio.h>#include<stdlib.h>#include<s
4、tring.h>#include<conio.h>struct medicinechar name20; /藥品名稱char number50; /藥品編號char price50; /單價char inventory50; /庫存數(shù)量char brand20; /品牌 medicine100; /假設最大數(shù)為100. /定義全局變量numint num; int menu_select() char s80; int a;/*定義整形變量*/ system("cls"); printf("tt-您好!您已進入藥房管理系統(tǒng)-nn");
5、printf("ttt1. 輸入藥品信息n"); printf("ttt2. 查看藥品信息n"); printf("ttt3. 修改藥品信息n"); printf("ttt4. 按編號查找藥品n"); printf("ttt5. 按價格排序 n"); printf("ttt6. 刪除藥品信息n"); printf("ttt7. 退出n"); printf("tt-nn");doprintf("Enter you choice(
6、17):"); scanf("%s",s); a=atoi(s); while (a<1 | a>7); return a;int addmedicine() printf("ttt-請輸入您要保存的信息 -n"); printf("ttt輸入藥品名稱:n"); scanf("%s",); printf("ttt輸入藥品編號:n"); scanf("%s",medicinenum.number); printf("
7、;ttt單價:n"); scanf("%s",medicinenum.price); printf("ttt品牌:n"); scanf("%s",medicinenum.brand); printf("ttt庫存數(shù)量 :n"); scanf("%s",medicinenum.inventory); num+; printf("ttt是否繼續(xù)添加?(Y/N):n"); if(getch()='y' | getch()='Y') addm
8、edicine(); return(0);void modifybyname() /按藥品名稱修改char c;int i,mark=0;char name20;printf("ntt請輸入要修改的藥品名稱:"); scanf("%s",name);if(num=0)printf("ntt文件中無相關(guān)藥品");printf("ntt按任意鍵返回主菜單");getch(); mark+;return; for(i=0;i<num;i+)if(strcmp(,name)=0) prin
9、tf("ntt以下是您要修改的藥品信息"); printf("ntt藥品名稱: %s",); printf("ntt藥品編號: %s",medicinei.number); printf("ntt單價: %s",medicinei.price); printf("ntt品牌: %s",medicinei.brand); printf("ntt庫存數(shù)量: %s",medicinei.inventory); printf("ntt是否修改(y
10、/n)"); if(getch()='y') printf("nt-請選擇修改信息-");printf("nt 1-修改藥品名稱 ");printf("nt 2-修改藥品編號 ");printf("nt 3-修改單價 "); printf("nt 4-修改品牌 ");printf("nt 5-修改庫存數(shù)量 ");printf("nt-");printf("nt請選擇您所要的服務:"); scanf("
11、%s",&c);switch(c) case '1': printf("nt請輸入新藥品名稱: "); scanf("%s",);break; case'2':printf("nt請輸入新藥品編號: %s"); scanf("%s",medicinei.number);break; case'3':printf("nt請輸入新單價: "); scanf("%s",medicinei.
12、price);break; case'4':printf("nt請輸入新品牌: "); scanf("%s",medicinei.brand);break; case'5':printf("nt請輸入新庫存數(shù)量: "); scanf("%s",medicinei.inventory);break; if(mark=0)printf("ntt藥品信息修改完畢");printf("nt是否繼續(xù)修改?(Y/N):");if(getch()='
13、y')modifybyname();return; void list() int i; system("cls"); if(num!=0) printf("ttt-已為您顯示所有藥品信息-n"); for (i=0;i<num;i+) printf("ttt藥品名稱:%sn",);printf("ttt藥品編號:%sn",medicinei.number);printf("ttt單價:%sn",medicinei.price); printf(&quo
14、t;ntt品牌: %sn",medicinei.brand);printf("ttt庫存數(shù)量:%sn",medicinei.inventory); if(i+1<num) system("pause"); printf("ttt-n"); else printf("ttt系統(tǒng)中無任何記錄n"); printf("ttt按任意鍵返回主菜單:n"); getch(); return;int searchbyname() int mark=0; int i; printf("
15、ttt- 按藥品名稱查找 -n"); char name20; printf("ttt請輸入藥品名稱:n"); scanf("%s",name); for(i=0;i<num;i+) if (strcmp(,name)=0) printf("ttt- 以下是您查找的藥品信息 -n");printf("ttt藥品名稱: %s",);printf("ttt藥品編號: %s",medicinei.number);printf(&q
16、uot;ttt單價: %s",medicinei.price); printf("ntt品牌: %s",medicinei.brand);printf("ttt庫存數(shù)量:%sn",medicinei.inventory);printf("ttt-n");mark+; if(i+1)<num) printf("ttt是否繼續(xù)查找相同名稱的藥品信息:(y/n)n"); if(getch()='y' | getch()='Y') continue; else return(
17、0); else printf("ttt請按任意鍵返回主菜單"); getch(); return(0); if(mark = 0) printf("ttt沒有您要查找的藥品記錄n"); printf("ttt請按任意鍵返回主菜單n"); getch(); return(0); return 0;int searchbynumber()int mark=0;int i;printf("ttt-按藥品編號查找 -n");char number10;printf("ttt請輸入藥品編號:n");sc
18、anf("%s",number);for(i=0;i<num;i+) if (strcmp(medicinei.number,number)=0) printf("ttt-以下是您查找的藥品信息 -n"); printf("ttt藥品名稱: %s",); printf("ttt藥品編號: %s",medicinei.number); printf("ttt單價: %s",medicinei.price); printf("ntt品牌: %s"
19、,medicinei.brand); printf("ttt庫存數(shù)量:%sn",medicinei.inventory); printf("ttt-n"); printf("ttt請按任意鍵返回主菜單n"); mark+; getch(); return(0); if (mark=0) printf("ttt沒有改藥品的信息n"); printf("ttt請按任意鍵返回主菜單n"); getch(); return(0);return(0);void deletebynumber()int i,
20、j;int deletemark=0;char number20; printf("ttt請輸入要刪除藥品編號:n"); scanf("%s",number); if(num=0) printf("ttt對不起,系統(tǒng)中無任何記錄n"); printf("ttt請按任意鍵返回主菜單n"); getch(); return; for (i=0;i<num;i+) if (strcmp(medicinei.number,number)=0) printf("ttt以下是您要刪除的用戶記錄:n")
21、; printf("ttt藥品名稱: %s",); printf("ttt藥品編號: %s",medicinei.number); printf("ttt單價: %s",medicinei.price); printf("ntt品牌: %s",medicinei.brand); printf("ttt庫存數(shù)量:%sn",medicinei.inventory); printf("ttt是否刪除?(y/n)"); if (getch()='y
22、' | getch()='Y') for (j=i;j<num-1;j+) medicinej=medicinej+1; num-; deletemark+; printf("ttt刪除成功"); printf("ttt是否繼續(xù)刪除?(y/n)"); if (getch()='y' | getch()='Y') deletebynumber(); return; else return; continue; if (deletemark=0) printf("ttt沒有該藥品的記錄&
23、quot;); printf("ttt是否繼續(xù)刪除?(y/n)"); if(getch()='y' | getch()='Y') deletebynumber(); return; return;void deletebyname()int a=0;int findmark=0;int j;int deletemark=0;int i;char name20;printf("ttt請輸入要刪除藥品名稱:n");scanf("%s",name);for (i=a;i<num;i+) if(strcm
24、p(,name)=0) printf("ttt以下是您要刪除的藥品信息:"); findmark+; printf("ttt_"); printf("ttt藥品名稱: %s",); printf("ttt藥品編號: %s",medicinei.number); printf("ttt單價: %s",medicinei.price); printf("ntt品牌: %s",medicinei.brand); printf(
25、"ttt庫存數(shù)量:%sn",medicinei.inventory); printf("ttt_"); printf("ttt是否刪除?(y/n)"); if (getch()='y' | getch() = 'Y') for(j=i;j<num-1;j+) medicinej=medicinej+1; num-; deletemark+; printf("ttt刪除成功"); if(i+1)<num) printf("ttt是否繼續(xù)刪除相同名稱的藥品信息?(y
26、/n)"); if (getch()='y') a=i; continue; printf("ttt是否繼續(xù)刪除?(y/n)"); if (getch()='y') deletebyname(); return; if(i+1)<num) printf("ttt是否繼續(xù)刪除相同名稱的藥品信息?(y/n)"); if (getch()='y' | getch() = 'Y') a=i; continue; elsecontinue;if (deletemark=0)&&
27、amp;(findmark=0) printf("ttt沒有該藥品的記錄"); printf("ttt是否繼續(xù)刪除?(y/n)"); if(getch()='y' | getch() = 'Y') deletebynumber(); return;else if (findmark!=0) printf("ttt沒有重名信息"); printf("ttt沒有該藥品的記錄"); printf("ttt是否繼續(xù)刪除?(y/n)"); if(getch()='y
28、' | getch() = 'Y') deletebynumber(); return; int dele() /刪除記錄char choic; printf("ttt1-按藥品編號刪除 2-按藥品名稱刪除"); printf("ttt請選擇:"); choic=getch();switch (choic) case '1':deletebynumber();break; case '2':deletebyname();break; return(0);int sortbyprice() /按藥品單
29、價進行排序 int i,j; struct medicine tmp; for (i=1;i<num;i+) if(strcmp(medicinei.price,medicinei-1.price)<0) tmp=medicinei; j=i-1; do medicinej+1=medicinej; j-; while (strcmp(tmp.price,medicinej.price)<0&&j>=0); medicinej+1=tmp; printf("ttt排序成功,是否顯示?(y/n)"); if (getch()='
30、y') list(); return(0);int main() printf("tt-n"); printf("tt-Welcome to management system -n"); printf("tt-Made By FACE CARD-n"); printf("tt-n"); printf("請按任意鍵進入主菜單:)n"); getch(); int selectnum; while(1) selectnum = menu_select(); switch(selectnum
31、) case 1:addmedicine(); /添加藥品信息break;case 2: list(); break;case 3: modifybyname(); /修改藥品信息 break;case 4: searchbynumber(); /按藥品編號查找 break;case 5: sortbyprice(); /按藥品單價排序 break;case 6: dele(); break;case 7:printf("BYE BYE!n");system("pause");getchar(); exit(0); getchar(); return 0
32、; 5、 測試結(jié)果(說明系統(tǒng)的各模塊運行結(jié)果(附運行界面圖片),正式報告需將括號內(nèi)文字刪除)1、進入系統(tǒng)運行界面2、 添加藥品信息3、 顯示藥品信息4、 修改藥品信息5、 按編號查找藥品信息6、 按價格排序7、 刪除藥品信息8、 退出系統(tǒng)6、 總結(jié)(談談自己的課程設計中的心得體會,正式報告需將括號內(nèi)文字刪除)整個實驗比較復雜,我使用switch語句調(diào)用菜單中的各個功能軟件調(diào)用不同的函數(shù)來實現(xiàn)不同的功能,通過反復調(diào)用函數(shù)來實現(xiàn)反復輸入。代碼中通過scanf從鍵盤上輸入不同的數(shù)字選項,然后通過swtich case()來實現(xiàn)對不同函數(shù)的調(diào)用。接下來對編程的各個模塊進行解讀:a在實現(xiàn)顯示菜單功能時,
33、用DO-WHILE執(zhí)行對菜單功能的選擇比較數(shù)字在17之間可繼續(xù)執(zhí)行。swtich case()來實現(xiàn)對不同函數(shù)的調(diào)用,執(zhí)行之后各個獨立的模塊。b在添加藥品基本信息時,我用了三個函數(shù)調(diào)用來分別輸入藥品基本信息(藥品編號、名稱、單價、庫存數(shù)量、品牌)由程序可以看出,在添加藥品信息板塊上,我設計了五類信息,輸入名稱,輸入品牌,輸入編號,輸入單價和輸入庫存數(shù)量輸入完成后會提示是否繼續(xù)輸入,如果輸入y后則可以繼續(xù)輸入,輸入n后返回主菜單。調(diào)用addmedicine()函數(shù)后,就可以通過,medicinenum.number,medicinenum.price,medicinenum.inventory,medicinenum.brand 數(shù)組從鍵盤上輸入藥品編號,名稱、單價、庫存數(shù)量、品牌,輸入完畢后,系統(tǒng)會提示是否繼續(xù)輸入,輸入“y”后,則再次調(diào)用addmedicine(); 函數(shù),如此循環(huán),直到不輸入藥品信息為止。c在顯示和查詢藥品信息部分,輸入對應的數(shù)字便可以實現(xiàn)對應的功能,同理,系統(tǒng)會在您查詢完畢后詢問您是否繼續(xù)查詢,從而實現(xiàn)人機友好的宗旨。通過scanf("%s",name) 從鍵盤上輸入的藥品名稱利用if (strcmp(,name
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 八年級歷史教學計劃集錦五篇
- 幼兒園中班下學期工作總結(jié)(4篇)
- 2024年社交媒體KOL廣告合同3篇
- 2024年滬科版九年級化學下冊階段測試試卷
- 商業(yè)環(huán)境下的學生職業(yè)規(guī)劃與心理健康
- 2024年私人車輛抵押典當行合作協(xié)議3篇
- 醫(yī)療設備中安全硬件的研發(fā)與市場前景分析
- 2024年無產(chǎn)權(quán)證房產(chǎn)買賣及配套設施修繕與共享合同3篇
- 2024年化肥代銷合作合同范本二零二四年度解讀3篇
- 2025中國鐵路北京局集團限公司招聘4982人(一)高頻重點提升(共500題)附帶答案詳解
- 2025學年人教新版英語七下Unit1隨堂小測
- 2024年汽車抵押貸款提前還款合同范例3篇
- 《項目溝通管理培訓》課件
- 2024版教育培訓機構(gòu)店面轉(zhuǎn)讓及課程合作協(xié)議3篇
- GB/T 44916-2024船舶和海上技術(shù)船用超低溫閘閥設計與試驗要求
- 《BL急性腎盂腎炎》課件
- 夢想在路上 高二上學期期中家長會
- 2024-2025學年上學期上海小學語文六年級期末模擬試卷
- 行政前臺年終總結(jié)述職報告
- 無人機制造關(guān)鍵技術(shù)-洞察分析
- 2024-2025學年二年級數(shù)學上冊期末樂考非紙筆測試題(二 )(蘇教版)
評論
0/150
提交評論