版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、課程設(shè)計報告(201201學(xué)年第學(xué)期)課程:高級語言程序設(shè)計題目:藥房管理系統(tǒng)姓名:專業(yè):班級:學(xué)號:指導(dǎo)教師:完成時間:課程設(shè)計的內(nèi)容(課程設(shè)計題目,正式報告需將括號內(nèi)文字刪除)藥房管理系統(tǒng)功能:設(shè)計藥房管理系統(tǒng),輸入藥品基本信息(藥品編號、名稱、單價、庫存數(shù)量、品牌),并實現(xiàn)以下功能:1 、修改、刪除指定藥品的信息2 、按單價或庫存數(shù)量排序并顯示藥品信息3 、統(tǒng)計指定品牌藥品數(shù)量分步實施:1 、初步完成總體設(shè)計,搭好框架,確定人機(jī)對話的界面,確定函數(shù)個數(shù);2 、完成最低要求:實現(xiàn)藥品的添加、修改、刪除等功能;3 、進(jìn)一步要求:實現(xiàn)排序及統(tǒng)計功能。要求:1、用C語言實現(xiàn)程序設(shè)計;2、系統(tǒng)的各
2、個功能模塊要求用函數(shù)實現(xiàn);4 、界面友好(良好的人機(jī)交互),程序加必要的注釋。二、功能描述(對系統(tǒng)要實現(xiàn)的功能進(jìn)行描述,正式報告需將括號內(nèi)文字刪除)1、能正確地錄入藥品信息并保存下來。2、能夠有效、快速地查看全部藥品的信息。3、可以查看某一藥品的信息(按藥品的默認(rèn)序號查看)4、可以查看某一藥品的信息(按藥品的編號進(jìn)行查看)5、能夠按照管理人員的意愿修改任意藥品的信息6、能修改藥品信息7、此系統(tǒng)還能對藥品的單價進(jìn)行排序三、概要設(shè)計(根據(jù)功能描述建立系統(tǒng)的體系結(jié)構(gòu),即將整個系統(tǒng)分解成若干子功能模塊,并用框圖表示各功能模塊之間的銜接關(guān)系,并簡要說明各模塊的功能,正式報告需將括號內(nèi)文字刪除)J存由保退
3、JJ計la1量卻數(shù)赤fn叩序刀一藥排廣L除品息口刪約信改品息,修藥信1入品息輸藥信存量序庫數(shù)排個刪單r量庫數(shù)牌口口存量庫數(shù)刪除成功到的數(shù)據(jù)結(jié)構(gòu)、算法實現(xiàn)的主要源代碼等,正式報告需將括號內(nèi)文字刪除#include<stdio.h>#include<stdlib.h>#include<string.h>#include<conio.h>structmedicine(詳細(xì)說明各功能模塊的實現(xiàn)過程,包括用流程圖對算法進(jìn)行描述、所用charname20;/藥品名稱charnumber50;/藥品編號charprice50;/單價charinventory5
4、0;/庫存數(shù)量charbrand20;/品牌medicine100;/定義全局變量假設(shè)最大數(shù)為100.numintnum;intmenuselectchars80;inta;/*定義整形變量*/system("cls");printf"tt您好!您已進(jìn)入藥房管理系統(tǒng)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庫存數(shù)量:n");scanf("%s",medicinenum.inventory);num+;printf("ttt是否繼續(xù)
7、添加?(Y/N):n");addmedicine();return(0);voidmodifybyname()/按藥品名稱修改(charc;inti,mark=0;charname20;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(,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庫存數(shù)量:%s",medicinei.inventory);printf("ntt是否修改(y/n)");printf("
9、;nt,)修改藥品名稱請選擇修改信息");printf("nt修改藥品編號");printf("nt修改單價printf("nt")printf("nt5-修改品牌printf("ntprintf("nt")修改庫存數(shù)量");");printf("nt請選擇您所要的服務(wù):");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請輸入新庫存數(shù)量:);scanf("%s,medicinei.inventory);break;(printf("ntt藥品信息修改完畢");printf("nt是否繼續(xù)修改?(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庫存數(shù)量:n”,medicinei.inventory);if(i+1<num)(system("pause");printf("tttn");elseprintf("ttt系統(tǒng)中無任何記錄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庫存數(shù)量:n”,medicinei.inventory);printf("tttn");mark+;if(i+1)<num)(printf(-ttt是否繼續(xù)查找相同名稱的藥品信息:(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、庫存數(shù)量: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對不起,系統(tǒng)中無任何記錄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庫存數(shù)量: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是否繼續(xù)刪除?(y/n)”);return;elsereturn;continue;if(deletemark=0)(printf("ttt沒有該藥品的記錄");printf("ttt是否繼續(xù)刪除?(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庫存數(shù)量: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是否繼續(xù)刪除相同名稱的藥品信息?(y/n)");if(getch()='y')(a=i;continue;printf("ttt是否繼續(xù)刪除?(y/n)”);deletebyname();return;if(i+1)<num)(printf("ttt是否繼續(xù)刪除相同名稱的藥品信息?(y/n)");if(getch()='y'|getch()='Y')(a=i;continue;elsecontinue;if(deletemark=0)&&(findmark=0)
24、(printf(-ttt沒有該藥品的記錄");printf("ttt是否繼續(xù)刪除?(y/n)”);if(getch()='y'|getch()='Y')deletebynumber();return;elseif(findmark!=0)(printf(-ttt沒有重名信息");printf(-ttt沒有該藥品的記錄");printf("ttt是否繼續(xù)刪除?(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()/按藥品單價進(jìn)行排序(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("請按任意鍵進(jìn)入主菜單:)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;五、測試結(jié)果(說明系統(tǒng)的各模塊運行結(jié)果(附運行界面圖片),正式報告需將括號內(nèi)文字刪除)1、進(jìn)入系統(tǒng)運行界面叩忒酒白作業(yè)皿膈g供房晦.郎9-口2、添加藥品信息產(chǎn)2'gCiS白作業(yè)iggg供踞膏理本統(tǒng)娘Ba-;Ml*gCil白作業(yè)>egg供房總理.莖穌做e*-X3、顯示藥品信息EPMiS宣作業(yè)噸頃9娘房謔編猊史能,-ax4、修改藥品信息;史1D:C1fiS作業(yè)山ebu
29、弟藥屑管理素沉exe,-O>D;C?SfV4l>bug?5lStt理紊蔬吠腑、X5、按編號查找藥品信息6、按價格排序 2Pit:宙古作業(yè) 田也單某臨ML- xDPKIS古柞業(yè)D*bug俯房管理笙程-口X7、刪除藥品信息XS3叩沽酉言作業(yè)Debug宙居匿理黑統(tǒng).8、退出系統(tǒng)U百推業(yè)Deb叩宙房管麋統(tǒng)舊炬-OX六、總結(jié)(談?wù)勛约旱恼n程設(shè)計中的心得體會,正式報告需將括號內(nèi)文字刪除整個實驗比較復(fù)雜,我使用switch語句調(diào)用菜單中的各個功能軟件調(diào)用不同的函數(shù)來實現(xiàn)不同的功能,通過反復(fù)調(diào)用函數(shù)來實現(xiàn)反復(fù)輸入。代碼中通過scanf從鍵盤上輸入不同的數(shù)字選項,然后通過swtichcase()來實
30、現(xiàn)對不同函數(shù)的調(diào)用接下來對編程的各個模塊進(jìn)行解讀:a在實現(xiàn)顯示菜單功能時,用DO-WHILE人行對菜單功能的選擇比較數(shù)字在17之間可繼續(xù)執(zhí)行。swtichcase()來實現(xiàn)對不同函數(shù)的調(diào)用,執(zhí)行之后各個獨立的模塊。b在添加藥品基本信息時,我用了三個函數(shù)調(diào)用來分別輸入藥品基本信息(藥品編號、名稱、單價、庫存數(shù)量、品牌)由程序可以看出,在添加藥品信息板塊上,我設(shè)計了五類信息,輸入名稱,輸入品牌,輸入編號,輸入單價和輸入庫存數(shù)量輸入完成后會提示是否繼續(xù)輸入,如果輸入y后則可以繼續(xù)輸入,輸入n后返回主菜單。調(diào)用addmedicine()函數(shù)后,就可以通過,medicin
31、enum.number,medicinenum.price,medicinenum.inventory,medicinenum.brand數(shù)組從鍵盤上輸入藥品編號,名稱、單價、庫存數(shù)量、品牌,輸入完畢后,系統(tǒng)會提示是否繼續(xù)輸入,輸入"y”后,則再次調(diào)用addmedicine();函數(shù),如此循環(huán),直到不輸入藥品信息為止。c在顯示和查詢藥品信息部分,輸入對應(yīng)的數(shù)字便可以實現(xiàn)對應(yīng)的功能,同理,系統(tǒng)會在您查詢完畢后詢問您是否繼續(xù)查詢,從而實現(xiàn)人機(jī)友好的宗旨。通過scanf("%s",name從鍵盤上輸入的藥品名稱利用if(strcmp(,name)=0)進(jìn)行對比,確認(rèn)是否有該藥品。通過for(i=0;i<num;i+)循環(huán)實現(xiàn)依次序顯示藥品信息。d修改藥品信息界面上我設(shè)計了按藥品名稱修改,當(dāng)選擇時系統(tǒng)會提示您是否修改,若不修改則返回主界面,若選擇是,則系統(tǒng)會處理五個修改項目:修改藥品名稱,修改編號,修改品牌,修改庫存數(shù)量,修改單價,修改完畢后系統(tǒng)會提
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度外墻保溫項目質(zhì)量監(jiān)督與施工承包協(xié)議4篇
- 2025年度文化產(chǎn)業(yè)實習(xí)生勞動合同書(二零二五版)4篇
- 2025版離婚協(xié)議中關(guān)于房產(chǎn)抵押及貸款合同處理范本8篇
- 2024版遠(yuǎn)洋貨運合同協(xié)議
- 2025版綠色環(huán)保社區(qū)共享租賃合同可下載4篇
- 2025版體育項目提成協(xié)議書(賽事贊助收入分成協(xié)議)3篇
- 2025年智慧倉儲與運輸管理系統(tǒng)合同3篇
- 長春師范高等專科學(xué)校《數(shù)據(jù)結(jié)構(gòu)與算法》2023-2024學(xué)年第一學(xué)期期末試卷
- 2025年度海洋工程精密焊管采購合同范本3篇
- 電子設(shè)備的防雷防潮措施
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護(hù)理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護(hù)方法
- 拜太歲科儀文檔
評論
0/150
提交評論