《C语言程序设计》药房管理系统_第1页
《C语言程序设计》药房管理系统_第2页
《C语言程序设计》药房管理系统_第3页
《C语言程序设计》药房管理系统_第4页
《C语言程序设计》药房管理系统_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程设计报告 (201 201 学年 第 学期)课 程: 高级语言程序设计 题 目: 药房管理系统 姓 名: 专 业: 班 级: 学 号: 指导教师: 完成时间: 一、课程设计的内容(课程设计题目,正式报告需将括号内文字删除)药房管理系统功能:设计药房管理系统,输入药品基本信息(药品编号、名称、单价、库存数量、品牌),并实现以下功能:1、修改、删除指定药品的信息2、按单价或库存数量排序并显示药品信息3、统计指定品牌药品数量分步实施: 1、初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数; 2、完成最低要求:实现药品的添加、修改、删除等功能; 3、进一步要求:实现排序及统计功能。要求

2、:1、用C语言实现程序设计;2、 系统的各个功能模块要求用函数实现; 3、界面友好(良好的人机交互),程序加必要的注释。2、 功能描述(对系统要实现的功能进行描述,正式报告需将括号内文字删除)1、能正确地录入药品信息并保存下来。2、能够有效、快速地查看全部药品的信息。3、可以查看某一药品的信息(按药品的默认序号查看)4、可以查看某一药品的信息(按药品的编号进行查看)5、能够按照管理人员的意愿修改任意药品的信息6、能修改药品信息7、此系统还能对药品的单价进行排序三、概要设计(根据功能描述建立系统的体系结构,即将整个系统分解成若干子功能模块,并用框图表示各功能模块之间的衔接关系,并简要说明各模块的

3、功能,正式报告需将括号内文字删除)主界面输入药品信息修改药品信息删除药品信息保存退出统计药品数量药品排序药品编号库存数量单价名称品牌修改名称单价库存数量全部删除删除单个库存数量排序单价排序输入药品信息主界面添加药品输入名称输入品牌输入数量输入单价输入编号是否继续是否删除药品主界面全部删除单个删除确认取消按名称删除确认是否删除是否删除成功四、详细设计(详细说明各功能模块的实现过程,包括用流程图对算法进行描述、所用到的数据结构、算法实现的主要源代码等,正式报告需将括号内文字删除)#include#include#include#includestruct medicinechar name20;

4、/药品名称char number50; /药品编号char price50; /单价char inventory50; /库存数量char brand20; /品牌 medicine100; /假设最大数为100. /定义全局变量numint num; int menu_select() char s80; int a;/*定义整形变量*/ system(cls); printf(tt-您好!您已进入药房管理系统-nn); printf(ttt1. 输入药品信息n); printf(ttt2. 查看药品信息n); printf(ttt3. 修改药品信息n); printf(ttt4. 按编号查

5、找药品n); printf(ttt5. 按价格排序 n); printf(ttt6. 删除药品信息n); printf(ttt7. 退出n); printf(tt-nn);doprintf(Enter you choice(17):); scanf(%s,s); a=atoi(s); while (a7); return a;int addmedicine() printf(ttt-请输入您要保存的信息 -n); printf(ttt输入药品名称:n); scanf(%s,); printf(ttt输入药品编号:n); scanf(%s,medicinenum.

6、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是否继续添加?(Y/N):n); if(getch()=y | getch()=Y) addmedicine(); return(0);void modifybyname() /按药品名称修改char c;int i,mark=0;char name20;pr

7、intf(ntt请输入要修改的药品名称:); scanf(%s,name);if(num=0)printf(ntt文件中无相关药品);printf(ntt按任意键返回主菜单);getch(); mark+;return; for(i=0;inum;i+)if(strcmp(,name)=0) printf(ntt以下是您要修改的药品信息); printf(ntt药品名称: %s,); printf(ntt药品编号: %s,medicinei.number); printf(ntt单价: %s,medicinei.price); print

8、f(ntt品牌: %s,medicinei.brand); printf(ntt库存数量: %s,medicinei.inventory); printf(ntt是否修改(y/n); if(getch()=y) printf(nt-请选择修改信息-);printf(nt 1-修改药品名称 );printf(nt 2-修改药品编号 );printf(nt 3-修改单价 ); printf(nt 4-修改品牌 );printf(nt 5-修改库存数量 );printf(nt-);printf(nt请选择您所要的服务:); scanf(%s,&c);switch(c) case 1: printf(

9、nt请输入新药品名称: ); scanf(%s,);break; case2:printf(nt请输入新药品编号: %s); scanf(%s,medicinei.number);break; case3:printf(nt请输入新单价: ); scanf(%s,medicinei.price);break; case4:printf(nt请输入新品牌: ); scanf(%s,medicinei.brand);break; case5:printf(nt请输入新库存数量: ); scanf(%s,medicinei.inventory);break; if(mar

10、k=0)printf(ntt药品信息修改完毕);printf(nt是否继续修改?(Y/N):);if(getch()=y)modifybyname();return; void list() int i; system(cls); if(num!=0) printf(ttt-已为您显示所有药品信息-n); for (i=0;inum;i+) printf(ttt药品名称:%sn,);printf(ttt药品编号:%sn,medicinei.number);printf(ttt单价:%sn,medicinei.price); printf(ntt品牌: %sn,med

11、icinei.brand);printf(ttt库存数量:%sn,medicinei.inventory); if(i+1num) system(pause); printf(ttt-n); else printf(ttt系统中无任何记录n); printf(ttt按任意键返回主菜单:n); getch(); return;int searchbyname() int mark=0; int i; printf(ttt- 按药品名称查找 -n); char name20; printf(ttt请输入药品名称:n); scanf(%s,name); for(i=0;inum;i+) if (st

12、rcmp(,name)=0) printf(ttt- 以下是您查找的药品信息 -n);printf(ttt药品名称: %s,);printf(ttt药品编号: %s,medicinei.number);printf(ttt单价: %s,medicinei.price); printf(ntt品牌: %s,medicinei.brand);printf(ttt库存数量:%sn,medicinei.inventory);printf(ttt-n);mark+; if(i+1)num) printf(ttt是否继续查找相同名称的药品信息:(y/

13、n)n); if(getch()=y | getch()=Y) continue; else return(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);scanf(%s

14、,number);for(i=0;inum;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库存数量:%sn,medicinei.inventory); printf(ttt-n); printf(

15、ttt请按任意键返回主菜单n); mark+; getch(); return(0); if (mark=0) printf(ttt没有改药品的信息n); printf(ttt请按任意键返回主菜单n); getch(); return(0);return(0);void deletebynumber()int i,j;int deletemark=0;char number20; printf(ttt请输入要删除药品编号:n); scanf(%s,number); if(num=0) printf(ttt对不起,系统中无任何记录n); printf(ttt请按任意键返回主菜单n); getch

16、(); return; for (i=0;inum;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库存数量:%sn,medicinei.inventory); printf(ttt是否删除?(y/n

17、); if (getch()=y | getch()=Y) for (j=i;jnum-1;j+) medicinej=medicinej+1; num-; deletemark+; printf(ttt删除成功); printf(ttt是否继续删除?(y/n); if (getch()=y | getch()=Y) deletebynumber(); return; else return; continue; if (deletemark=0) printf(ttt没有该药品的记录); printf(ttt是否继续删除?(y/n); if(getch()=y | getch()=Y) de

18、letebynumber(); 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;inum;i+) if(strcmp(,name)=0) printf(ttt以下是您要删除的药品信息:); findmark+; printf(ttt_); printf(ttt药品名称: %s,); printf(t

19、tt药品编号: %s,medicinei.number); printf(ttt单价: %s,medicinei.price); printf(ntt品牌: %s,medicinei.brand); printf(ttt库存数量:%sn,medicinei.inventory); printf(ttt_); printf(ttt是否删除?(y/n); if (getch()=y | getch() = Y) for(j=i;jnum-1;j+) medicinej=medicinej+1; num-; deletemark+; printf(ttt删除成功); if(i+1)num) prin

20、tf(ttt是否继续删除相同名称的药品信息?(y/n); if (getch()=y) a=i; continue; printf(ttt是否继续删除?(y/n); if (getch()=y) deletebyname(); return; if(i+1)num) printf(ttt是否继续删除相同名称的药品信息?(y/n); if (getch()=y | getch() = Y) a=i; continue; elsecontinue;if (deletemark=0)&(findmark=0) printf(ttt没有该药品的记录); printf(ttt是否继续删除?(y/n);

21、if(getch()=y | getch() = Y) deletebynumber(); return;else if (findmark!=0) printf(ttt没有重名信息); printf(ttt没有该药品的记录); printf(ttt是否继续删除?(y/n); if(getch()=y | getch() = Y) deletebynumber(); return; int dele() /删除记录char choic; printf(ttt1-按药品编号删除 2-按药品名称删除); printf(ttt请选择:); choic=getch();switch (choic) c

22、ase 1:deletebynumber();break; case 2:deletebyname();break; return(0);int sortbyprice() /按药品单价进行排序 int i,j; struct medicine tmp; for (i=1;inum;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); medicinej+

23、1=tmp; printf(ttt排序成功,是否显示?(y/n); if (getch()=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) case 1:addmedicin

24、e(); /添加药品信息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; 5、 测试结果(说明系统的各模块运行结果(附运行界面图片),正式报告需将括号内文字

25、删除)1、进入系统运行界面2、 添加药品信息3、 显示药品信息4、 修改药品信息5、 按编号查找药品信息6、 按价格排序7、 删除药品信息8、 退出系统6、 总结(谈谈自己的课程设计中的心得体会,正式报告需将括号内文字删除)整个实验比较复杂,我使用switch语句调用菜单中的各个功能软件调用不同的函数来实现不同的功能,通过反复调用函数来实现反复输入。代码中通过scanf从键盘上输入不同的数字选项,然后通过swtich case()来实现对不同函数的调用。接下来对编程的各个模块进行解读:a在实现显示菜单功能时,用DO-WHILE执行对菜单功能的选择比较数字在17之间可继续执行。swtich ca

26、se()来实现对不同函数的调用,执行之后各个独立的模块。b在添加药品基本信息时,我用了三个函数调用来分别输入药品基本信息(药品编号、名称、单价、库存数量、品牌)由程序可以看出,在添加药品信息板块上,我设计了五类信息,输入名称,输入品牌,输入编号,输入单价和输入库存数量输入完成后会提示是否继续输入,如果输入y后则可以继续输入,输入n后返回主菜单。调用addmedicine()函数后,就可以通过,medicinenum.number,medicinenum.price,medicinenum.inventory,medicinenum.brand 数组从键盘上输入药

27、品编号,名称、单价、库存数量、品牌,输入完毕后,系统会提示是否继续输入,输入“y”后,则再次调用addmedicine(); 函数,如此循环,直到不输入药品信息为止。c在显示和查询药品信息部分,输入对应的数字便可以实现对应的功能,同理,系统会在您查询完毕后询问您是否继续查询,从而实现人机友好的宗旨。通过scanf(%s,name) 从键盘上输入的药品名称利用if (strcmp(,name)=0)进行对比,确认是否有该药品。通过for (i=0;inum;i+) 循环实现依次序显示药品信息。d修改药品信息界面上我设计了按药品名称修改,当选择时系统会提示您是否修改,若不修改则返回主界面,若选择是,则系统会处理五个修改项目:修改药品名称,修改编号,修改品牌,修改库存数量,修改单价,修改完毕后系统会提示您是否继续修改,如不修改,则又返回主界面等待输入。通过if(strcmp(medi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论