




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、課程設計報告(201201學年第學期)課程:高級語言程序設計題目:藥房管理系統姓名:專業:班級:學號:指導教師:完成時間:課程設計的內容(課程設計題目,正式報告需將括號內文字刪除)藥房管理系統功能:設計藥房管理系統,輸入藥品基本信息(藥品編號、名稱、單價、庫存數量、品牌),并實現以下功能:1 、修改、刪除指定藥品的信息2 、按單價或庫存數量排序并顯示藥品信息3 、統計指定品牌藥品數量分步實施:1 、初步完成總體設計,搭好框架,確定人機對話的界面,確定函數個數;2 、完成最低要求:實現藥品的添加、修改、刪除等功能;3 、進一步要求:實現排序及統計功能。要求:1、用C語言實現程序設計;2、系統的各
2、個功能模塊要求用函數實現;4 、界面友好(良好的人機交互),程序加必要的注釋。二、功能描述(對系統要實現的功能進行描述,正式報告需將括號內文字刪除)1、能正確地錄入藥品信息并保存下來。2、能夠有效、快速地查看全部藥品的信息。3、可以查看某一藥品的信息(按藥品的默認序號查看)4、可以查看某一藥品的信息(按藥品的編號進行查看)5、能夠按照管理人員的意愿修改任意藥品的信息6、能修改藥品信息7、此系統還能對藥品的單價進行排序三、概要設計(根據功能描述建立系統的體系結構,即將整個系統分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關系,并簡要說明各模塊的功能,正式報告需將括號內文字刪除)J存由保退
3、JJ計la1量卻數赤fn叩序刀一藥排廣L除品息口刪約信改品息,修藥信1入品息輸藥信存量序庫數排個刪單r量庫數牌口口存量庫數刪除成功到的數據結構、算法實現的主要源代碼等,正式報告需將括號內文字刪除#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structmedicine(詳細說明各功能模塊的實現過程,包括用流程圖對算法進行描述、所用charname20;/藥品名稱charnumber50;/藥品編號charprice50;/單價charinventory5
4、0;/庫存數量charbrand20;/品牌medicine100;/定義全局變量假設最大數為100.numintnum;intmenuselectchars80;inta;/*定義整形變量*/system("cls");printf"tt您好!您已進入藥房管理系統nn");printf"ttt1.輸入藥品信息n");printf"ttt2.查看藥品信息n");printf"ttt3.修改藥品信息n");printf"ttt4.按編號查找藥品n");printf("
5、ttt5.按價格排序n");printf("ttt7.退出n");printf("ttnn");do(printf("Enteryouchoice(17):");scanf("%s",s);a=atoi(s);while(a<1|a>7);returna;intaddmedicine()(printf("ttt請輸入您要保存的信息n");printf("ttt輸入藥品名稱:n");scanf("%s",
6、);printf("ttt輸入藥品編號:n");scanf("%s",medicinenum.number);printf("ttt單價:n");scanf("%s”,medicinenum.price);printf("ttt品牌:n");scanf("%s”,medicinenum.brand);printf("ttt庫存數量:n");scanf("%s",medicinenum.inventory);num+;printf("ttt是否繼續
7、添加?(Y/N):n");addmedicine();return(0);voidmodifybyname()/按藥品名稱修改(charc;inti,mark=0;charname20;printf("ntt請輸入要修改的藥品名稱:");scanf("%s”,name);if(num=0)(printf("ntt文件中無相關藥品");printf("ntt按任意鍵返回主菜單");getch();mark+;return;for(i=0;i<num;i+)(if(strcmp(,na
8、me)=0)(printf("ntt以下是您要修改的藥品信息");printf("ntt藥品名稱:s”,);printf("ntt藥品編號:s”,medicinei.number);printf("ntt單價:%s”,medicinei.price);printf("ntt品牌:s”,medicinei.brand);printf("ntt庫存數量:%s",medicinei.inventory);printf("ntt是否修改(y/n)");printf("
9、;nt,)修改藥品名稱請選擇修改信息");printf("nt修改藥品編號");printf("nt修改單價printf("nt")printf("nt5-修改品牌printf("ntprintf("nt")修改庫存數量");");printf("nt請選擇您所要的服務:");scanf("%s,&;c)switch(c)case '1': printf("nt請輸入新藥品名稱:);scanf("%s”
10、,);break;case'2':printf("nt請輸入新藥品編號:%s");scanf("%s”,medicinei.number);break;scanf("%scase'3':printf("nt請輸入新單價:");,medicinei.price);break;case'4':printf("nt請輸入新品牌:");scanf("%s,medicinei.brand);break;case'5':pri
11、ntf("nt請輸入新庫存數量:);scanf("%s,medicinei.inventory);break;(printf("ntt藥品信息修改完畢");printf("nt是否繼續修改?(Y/N):");if(getch()='y')modifybyname();return;voidlist()(inti;system("cls");if(num!=0)n");(printf("ttt已為您顯示所有藥品信息for(i=0;i<num;i+)(printf("
12、ttt藥品名稱:n”,);printf("ttt藥品編號:n”,medicinei.number);printf("ttt單價:n”,medicinei.price);printf("ntt品牌:n”,medicinei.brand);printf("ttt庫存數量:n”,medicinei.inventory);if(i+1<num)(system("pause");printf("tttn");elseprintf("ttt系統中無任何記錄n");print
13、f("ttt按任意鍵返回主菜單:n");getch();return;intsearchbyname()(intmark=0;inti;printf("ttt按藥品名稱查找n");charname20;printf("ttt請輸入藥品名稱:n");scanf("%s”,name);for(i=0;i<num;i+)(if(strcmp(,name)=0)(printf("ttt以下是您查找的藥品信息-printf("ttt藥品名稱:s”,);n
14、");printf("ttt藥品編號:s”,medicinei.number);printf("ttt單價:%s”,medicinei.price);printf("ntt品牌:s”,medicinei.brand);printf("ttt庫存數量:n”,medicinei.inventory);printf("tttn");mark+;if(i+1)<num)(printf(-ttt是否繼續查找相同名稱的藥品信息:(y/n)n");if(getch()='y'|getch()='Y&
15、#39;)continue;elsereturn(0);else(printf("ttt請按任意鍵返回主菜單");getch();return(0);if(mark=0)(printf("ttt沒有您要查找的藥品記錄n");printf("ttt請按任意鍵返回主菜單n");getch();return(0);return0;intsearchbynumber()(intmark=0;n");inti;printf("ttt按藥品編號查找charnumber10;printf("ttt請輸入藥品編號:n&q
16、uot;);scanf("%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”,medicinei.brand);printf("ttt
17、庫存數量:n”,medicinei.inventory);printf("tttn");printf("ttt請按任意鍵返回主菜單n");mark+;getch();return(0);if(mark=0)(printf("ttt沒有改藥品的信息n");printf("ttt請按任意鍵返回主菜單n");getch();return(0);return(0);voiddeletebynumber()(inti,j;intdeletemark=0;printf("ttt請輸入要刪除藥品編號:n");
18、scanf("%s",number);if(num=0)printf("ttt對不起,系統中無任何記錄n");printf("ttt請按任意鍵返回主菜單n");getch();return;for(i=0;i<num;i+)if(strcmp(medicinei.number,number)=0)printf("ttt以下是您要刪除的用戶記錄:n");printf("ttt藥品名稱:%s",);printf("ttt藥品編號:%s",medi
19、cinei.number);printf("ttt單價:%s",medicinei.price);printf("ntt品牌:%s",medicinei.brand);printf("ttt庫存數量:n”,medicinei.inventory);printf("ttt是否刪除?(y/n)”);if(getch()='y'|getch()='Y')for(j=i;j<num-1;j+)medicinej=medicinej+1;num-;deletemark+;printf("ttt刪除
20、成功");printf("ttt是否繼續刪除?(y/n)”);return;elsereturn;continue;if(deletemark=0)(printf("ttt沒有該藥品的記錄");printf("ttt是否繼續刪除?(y/n)”);if(getch()='y'|getch()='Y')deletebynumber();return;return;voiddeletebyname()(inta=0;intfindmark=0;intj;intdeletemark=0;inti;charname20;p
21、rintf("ttt請輸入要刪除藥品名稱:n");scanf("%s”,name);for(i=a;i<num;i+)if(strcmp(,name)=0)(printf("ttt以下是您要刪除的藥品信息:");findmark+;printf("ttt");printf("ttt藥品名稱:s”,);printf("ttt藥品編號:s”,medicinei.number);printf("ttt單價:%s",medicine
22、i.price);printf("ntt品牌:%s",medicinei.brand);printf("ttt庫存數量:n”,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)
23、(printf(-ttt是否繼續刪除相同名稱的藥品信息?(y/n)");if(getch()='y')(a=i;continue;printf("ttt是否繼續刪除?(y/n)”);deletebyname();return;if(i+1)<num)(printf("ttt是否繼續刪除相同名稱的藥品信息?(y/n)");if(getch()='y'|getch()='Y')(a=i;continue;elsecontinue;if(deletemark=0)&&(findmark=0)
24、(printf(-ttt沒有該藥品的記錄");printf("ttt是否繼續刪除?(y/n)”);if(getch()='y'|getch()='Y')deletebynumber();return;elseif(findmark!=0)(printf(-ttt沒有重名信息");printf(-ttt沒有該藥品的記錄");printf("ttt是否繼續刪除?(y/n)”);return;intdele()/(刪除記錄charchoic;printf("ttt1-按藥品編號刪除2-按藥品名稱刪除"
25、;);printf("ttt請選擇:");choic=getch();switch(choic)(case'1':deletebynumber();break;case'2':deletebyname();break;return(0);intsortbyprice()/按藥品單價進行排序(inti,j;structmedicinetmp;for(i=1;i<num;i+)(if(strcmp(medicinei.price,medicinei-1.price)<0)(tmp=medicinei;j=i-1;domedicinej
26、+1=medicinej;j-;while(strcmp(tmp.price,medicinej.price)<0&&j>=0);medicinej+1=tmp;printf("ttt排序成功,是否顯示?(y/n)”);if(getch()='y')list();return(0);intmain()printf("ttn");printf("ttWelcometomanagementsystemn");printf("ttMadeByFACECARDn");printf(&quo
27、t;ttn");printf("請按任意鍵進入主菜單:)n");getch();intselectnum;while(1)selectnum=menu_select();switch(selectnum)case1:addmedicine();/添加藥品信息break;case2:list();break;case 3:( modifybyname(); / break;case 4:( searchbynumber(); / break;case 5:( sortbyprice(); / break;按藥品單價排序修改藥品信息按藥品編號查找case 6:(del
28、e();break;case 7: (printf("BYEBYE!n");system("pause");getchar();exit(0);getchar();return0;五、測試結果(說明系統的各模塊運行結果(附運行界面圖片),正式報告需將括號內文字刪除)1、進入系統運行界面叩忒酒白作業皿膈g供房晦.郎9-口2、添加藥品信息產2'gCiS白作業iggg供踞膏理本統娘Ba-;Ml*gCil白作業>egg供房總理.莖穌做e*-X3、顯示藥品信息EPMiS宣作業噸頃9娘房謔編猊史能,-ax4、修改藥品信息;史1D:C1fiS作業山ebu
29、弟藥屑管理素沉exe,-O>D;C?SfV4l>bug?5lStt理紊蔬吠腑、X5、按編號查找藥品信息6、按價格排序 2Pit:宙古作業 田也單某臨ML- xDPKIS古柞業D*bug俯房管理笙程-口X7、刪除藥品信息XS3叩沽酉言作業Debug宙居匿理黑統.8、退出系統U百推業Deb叩宙房管麋統舊炬-OX六、總結(談談自己的課程設計中的心得體會,正式報告需將括號內文字刪除整個實驗比較復雜,我使用switch語句調用菜單中的各個功能軟件調用不同的函數來實現不同的功能,通過反復調用函數來實現反復輸入。代碼中通過scanf從鍵盤上輸入不同的數字選項,然后通過swtichcase()來實
30、現對不同函數的調用接下來對編程的各個模塊進行解讀:a在實現顯示菜單功能時,用DO-WHILE人行對菜單功能的選擇比較數字在17之間可繼續執行。swtichcase()來實現對不同函數的調用,執行之后各個獨立的模塊。b在添加藥品基本信息時,我用了三個函數調用來分別輸入藥品基本信息(藥品編號、名稱、單價、庫存數量、品牌)由程序可以看出,在添加藥品信息板塊上,我設計了五類信息,輸入名稱,輸入品牌,輸入編號,輸入單價和輸入庫存數量輸入完成后會提示是否繼續輸入,如果輸入y后則可以繼續輸入,輸入n后返回主菜單。調用addmedicine()函數后,就可以通過,medicin
31、enum.number,medicinenum.price,medicinenum.inventory,medicinenum.brand數組從鍵盤上輸入藥品編號,名稱、單價、庫存數量、品牌,輸入完畢后,系統會提示是否繼續輸入,輸入"y”后,則再次調用addmedicine();函數,如此循環,直到不輸入藥品信息為止。c在顯示和查詢藥品信息部分,輸入對應的數字便可以實現對應的功能,同理,系統會在您查詢完畢后詢問您是否繼續查詢,從而實現人機友好的宗旨。通過scanf("%s",name從鍵盤上輸入的藥品名稱利用if(strcmp(,name)=0)進行對比,確認是否有該藥品。通過for(i=0;i<num;i+)循環實現依次序顯示藥品信息。d修改藥品信息界面上我設計了按藥品名稱修改,當選擇時系統會提示您是否修改,若不修改則返回主界面,若選擇是,則系統會處理五個修改項目:修改藥品名稱,修改編號,修改品牌,修改庫存數量,修改單價,修改完畢后系統會提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 設備設施保養管理制度
- 設立網絡保密管理制度
- 設計單位公司管理制度
- 設計項目售后管理制度
- 診所安全用電管理制度
- 診所藥房倉庫管理制度
- 試驗檢測臺賬管理制度
- 財務資料安全管理制度
- 財政分局合同管理制度
- 貨款回收利息管理制度
- 養殖場消防知識講座
- 醫院感染風險評估表(適用于病房、換藥室、治療室、注射室)
- GA 2093-2023公安機關警務輔助人員工作證內卡技術規范
- 兩辦意見八硬措施煤礦安全生產條例宣貫學習課件
- 胸痛中心胸痛隨訪數據采集表
- 危化品運輸車輛的GPS監控與追蹤系統
- 體檢機構服務流程
- 地下礦山常見安全隱患的排查和處置
- 招標程序和《必須招標的工程項目規定》解讀-必須招標的項目課件
- (完整版)QQ三國副職及日常物品成本計算表v1.0
- 電極的界面雙電層性質課件
評論
0/150
提交評論