收藏 分销(赏)

C语言程序设计药房管理系统.doc

上传人:二*** 文档编号:4514605 上传时间:2024-09-26 格式:DOC 页数:29 大小:461KB
下载 相关 举报
C语言程序设计药房管理系统.doc_第1页
第1页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

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

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

4、har 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. 按编号查找药品n); printf(ttt5. 按价格排序

5、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,medicinenum.name); printf(ttt输入药品编号:n); scanf(%s,medicinenum.number); printf(ttt单价:n);

6、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;printf(ntt请输入要修改的药品名称:); sca

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

8、d); 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(nt请输入新药品名称: ); scanf(%s,me

9、dicinei.name);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(mark=0)printf(ntt药品信息修改完毕);pr

10、intf(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,medicinei.name);printf(ttt药品编号:%sn,medicinei.number);printf(ttt单价:%sn,medicinei.price); printf(ntt品牌: %sn,medicinei.brand);printf(ttt库存

11、数量:%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 (strcmp(medicinei.name,name)=0

12、) printf(ttt- 以下是您查找的药品信息 -n);printf(ttt药品名称: %s,medicinei.name);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/n)n); if(getch()=y | getch(

13、)=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,number);for(i=0;inum;i+) i

14、f (strcmp(medicinei.number,number)=0) printf(ttt-以下是您查找的药品信息 -n); printf(ttt药品名称: %s,medicinei.name); printf(ttt药品编号: %s,medicinei.number); printf(ttt单价: %s,medicinei.price); printf(ntt品牌: %s,medicinei.brand); printf(ttt库存数量:%sn,medicinei.inventory); printf(ttt-n); printf(ttt请按任意键返回主菜单n); mark+; get

15、ch(); 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(); return; for (i=0;inum;i

16、+) if (strcmp(medicinei.number,number)=0) printf(ttt以下是您要删除的用户记录:n); printf(ttt药品名称: %s,medicinei.name); printf(ttt药品编号: %s,medicinei.number); printf(ttt单价: %s,medicinei.price); printf(ntt品牌: %s,medicinei.brand); printf(ttt库存数量:%sn,medicinei.inventory); printf(ttt是否删除?(y/n); if (getch()=y | getch()=

17、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) deletebynumber(); return; ret

18、urn;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(medicinei.name,name)=0) printf(ttt以下是您要删除的药品信息:); findmark+; printf(ttt_); printf(ttt药品名称: %s,medicinei.name); printf(ttt药品编号: %s,medicinei.number

19、); 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) printf(ttt是否继续删除一样名称的药品信息?(y/n)

20、; 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); if(getch()=y | getch() = Y)

21、 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) case 1:deletebynumber();brea

22、k; 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+1=tmp; printf(ttt排序成功,是否显示?

23、(y/n); if (getch()=y) list(); return(0);int main() printf(tt-n); printf(tt-Wele 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:addmedicine(); /添加药品信息break;case 2: list

24、(); 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; 五、 测试结果说明系统的各模块运行结果附运行界面图片,正式报告需将括号文字删除1、进入系统运行界面2、 添加药品信息3、 显示药品信息4、 修

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

26、我用了三个函数调用来分别输入药品根本信息药品编号、名称、单价、库存数量、品牌由程序可以看出,在添加药品信息板块上,我设计了五类信息,输入名称,输入品牌,输入编号,输入单价和输入库存数量输入完成后会提示是否继续输入,如果输入y后那么可以继续输入,输入n后返回主菜单。调用addmedicine()函数后,就可以通过medicinenum.name,medicinenum.number,medicinenum.price,medicinenum.inventory,medicinenum.brand数组从键盘上输入药品编号,名称、单价、库存数量、品牌,输入完毕后,系统会提示是否继续输入,输入“y后,

27、那么再次调用addmedicine(); 函数,如此循环,直到不输入药品信息为止。c在显示和查询药品信息局部,输入对应的数字便可以实现对应的功能,同理,系统会在您查询完毕后询问您是否继续查询,从而实现人机友好的宗旨。通过scanf(%s,name) 从键盘上输入的药品名称利用if (strcmp(medicinei.name,name)=0)进展比照,确认是否有该药品。通过for (i=0;inum;i+) 循环实现依次序显示药品信息。d修改药品信息界面上我设计了按药品名称修改,中选择时系统会提示您是否修改,假设不修改那么返回主界面,假设选择是,那么系统会处理五个修改工程:修改药品名称,修改编

28、号,修改品牌,修改库存数量,修改单价,修改完毕后系统会提示您是否继续修改,如不修改,那么又返回主界面等待输入。通过if(strcmp(medicinei.name,name)=0)来比拟是否有该药品,如果有,那么系统弹出修改工程,通过scanf(%s,&c);录入的数据来实现对药品名称、编号、品牌、库存数量、单价的修改。e按药品单价排序,在按照药品单价排序问题上,用DO-WHILE语句比拟两种药品的价格大小,从而实现排序。 f在删除药品信息局部,在删除药品信息流程图上,我设计了按药品名称删除和药品编号删除功能两种选择,在删除时,系统都会询问您是否删除,以免误删。充分表达系统的灵活性和多样化。我

29、编写的程序从整体上看为根本药房管理系统的实现。在模块功能实现局部,通过scanf从键盘上输入的数字放到switch() case 循环中来实现调用addmedicine()、list()、modifybyname()、searchbyname()、searchbynumber()、deletebynumber()、deletebyname()、sortbyprice()等十几个函数来实现“添加、“查询和显示、“修改、“删除、“排序等不同功能。该系统用下面五个功能模块编写,每个模块执行不同的功能,表达了模块化设计的思想。这样的设计使得主函数main)中的代码非常简洁,即循环接收用户输入的功能选项

30、,分别调用相应的功能函数。主函数实现功能选择界面的总体控制,这样设计使得主函数 main中的代码非常简洁,即循环接收用户输入的功能选项,分别调用相应的功能函数。通过这次对C语言长篇程序对编写,是我对C语言有了更深的认识。但是也发现对C语言的知识掌握不够,对函数的调用比拟陌生,通过教师讲解,我根本上掌握了文件的知识;对C语言的一些标准库函数不太了解,容易忘记添加头文件就调用函数,往往形成错误找了很久没找到,还有对函数调用的正确使用不够熟悉;并且在一些修改细节的过程中,因为使用了中文标点而使得程序一直出错,并很难找出问题,还有对C语言中经常出现的错误也不了解,通过实践,使我在程序修改方面有了一个较大的提高。七、 人员分工说明组长、组员及分别承当的具体工作,正式报告需将括号文字删除课程设计评语指导教师评语: 成绩评定 教师签字年月日- . 可修编.

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
百度文库年卡

猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服