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

下载本文档

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

文档简介

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

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

3、间的衔接关系,号内文字删除)四、详细设计(详细说明各功能模块的实现过程,包括用流程图对算法进行描述、所用 到的数据结构、算法实现的主要源代码等,正式报告需将括号内文字删除#include<stdio.h> #include<stdlib.h> #include<string.h> #include<conio.h>struct medicinechar name20;/药品名称char number50; /药品编号char price50; /单价char inventory50; /库存数量char brand20; /品牌 medicine

4、100; /定义全局变量假设最大数为 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"tt

5、t5.按价格排序 n" ) ;printf("ttt7.退出 n");nn");printf("tt do(printf("Enter you choice(17):");scanf("%s",s);a=atoi(s);while (a<1 | a>7);return a; int addmedicine() (printf("ttt 请输入您要保存的信息 n");printf(-ttt输入药品名称:n");scanf("%s",medicin

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+;print

7、f("ttt 是否继续添加 ? (Y/N):n");if(getch()='y' | getch()='Y')addmedicine();return(0);void modifybyname() /按药品名称修改(char c;int i,mark=0;char name20;printf("ntt 请输入要修改的药品名称: ");scanf("%s ” ,name);if(num=0)(printf("ntt 文件中无相关药品 ");printf("ntt 按任意键返回主菜单 &

8、quot;);getch(); mark+;return;for(i=0;i<num;i+)(if(strcmp(,name)=0)(printf("ntt 以下是您要修改的药品信息 ");printf("ntt药品名称: s”,);printf("ntt药品编号: s”,medicinei.number);printf("ntt单价:%s” ,medicinei.price);printf("ntt品牌: s” ,medicinei.brand);printf("

9、;ntt库存数量: %s",medicinei.inventory);printf("ntt是否修改(y/n)");if(getch()='y')printf("ntI八");printf("ntprintf("nt12-printf("nt3-nt4-printf("nt5-修改药品名称修改药品编号修改单价修改品牌修改库存数量);););););printf("nt请选择您所要的服务);scanf("%s ",&c);switch(c)case &#

10、39;1': printf("nt请输入新药品名称:")scanf("%s ",);break;;case'2':printf("nt请输入新药品编号:%s");scanf("%s ” ,medicinei.number);break;case'3':printf("nt请输入新单价:");scanf("%s ",medicinei.price);break;case'4':printf("n

11、t请输入新品牌:");scanf("%s ” ,medicinei.brand);break;case'5':printf("nt请输入新库存数量:");scanf("%s ",medicinei.inventory);break;if(mark=0)printf("nt是否继续修改? ( Y/N):");if(getch()='y')modifybyname();return;void list()int i;system("cls");if(num!=0) p

12、rintf("ttt 已为您显示所有药品信息 n");for (i=0;i<num;i+)printf("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

13、"); printf("ttt n");elseprintf("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;i<num;i+)if (strcmp(,name)=0)printf("ttt以下是您查

14、找的药品信息n");printf("ttt药品名称:s” ,);printf("ttt药品编号:s” ,medicinei.number);printf("ttt单价:%s”,medicinei.price);printf("ntt:s” ,medicinei.brand);printf("ttt库存数量:n” ,medicinei.inventory);n");printf("tttmark+;if(i+1)<num)printf(-ttt是否继续查找相同名称的药品信息:(y/n

15、)n");if(getch()='y' | getch()='Y')continue;elsereturn(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("t

16、tt 按药品编号查找 n");char number10;printf("ttt 请输入药品编号:n");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单价

17、: %s",medicinei.price);printf("ntt 品牌 : %s",medicinei.brand);printf("ttt库存数量 : n” ,medicinei.inventory);printf("ttt n");printf("ttt 请按任意键返回主菜单n");mark+;getch();return(0);if (mark=0)(printf("ttt没有改药品的信息 n");printf("ttt 请按任意键返回主菜单n");getch();

18、return(0);return(0);void deletebynumber()(int i,j;int deletemark=0;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("

19、;ttt药品名称: s” ,);printf("ttt药品编号: s” ,medicinei.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

20、;j<num-1;j+)medicinej=medicinej+1;num-;deletemark+;printf("ttt删除成功 ");printf("ttt是否继续删除? (y/n) ” );elsereturn;continue;if (deletemark=0)(printf("ttt没有该药品的记录");printf("ttt是否继续删除? (y/n) ” );if(getch()='y' | getch()='Y')deletebynumber();return;return;voi

21、d 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(strcmp(,name)=0)printf("ttt 以下是您要删除的药品信息: ");findmark+;printf("ttt");printf("ttt药品名称: s” ,med

22、);printf("ttt药品编号:%s",medicinei.number);printf("ttt单价: %s",medicinei.price);printf("ntt 品牌 : %s",medicinei.brand);printf("ttt库存数量: n” ,medicinei.inventory);printf("ttt");printf("ttt是否删除 ? (y/n) ” );if (getch()='y' | getch() = '

23、Y')(for(j=i;j<num-1;j+)medicinej=medicinej+1;num-;deletemark+;printf("ttt 删除成功 ");if(i+1)<num)(printf(-ttt是否继续删除相同名称的药品信息 ? (y/n)");if (getch()='y')(a=i;continue;printf("ttt 是否继续删除? (y/n) ” );if(i+1)<num)?(y/n)");(printf("ttt是否继续删除相同名称的药品信息if (getch

24、()='y' | getch() = 'Y')(a=i;continue;elsecontinue;if (deletemark=0)&&(findmark=0)(printf("ttt 没有该药品的记录");printf("ttt 是否继续删除? (y/n) ” );if(getch()='y' | getch() = 'Y')deletebynumber();return;else if (findmark!=0)(printf("ttt 没有重名信息”) ;printf

25、(-ttt 没有该药品的记录");printf("ttt 是否继续删除? (y/n) ” );if(getch()='y' | getch() = 'Y')deletebynumber();int dele() /删除记录(char choic;printf("ttt1-按药品编号删除2-按药品名称删除");printf("ttt 请选择: ");choic=getch();switch (choic) case '1':deletebynumber();break;case '

26、2':deletebyname();break;return(0);int sortbyprice() /按药品单价进行排序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;print

27、f("ttt 排序成功 , 是否显示 ? (y/n) ” );if (getch()='y')list();return(0);int main()printf("tt n");printf("tt Welcome to management systemn");printf("tt Made By FACE CARD n");printf("tt n");printf(" 请按任意键进入主菜单: )n");getch();int selectnum;while(1)s

28、electnum = menu_select();switch(selectnum)case 1:addmedicine(); / 添加药品信息break;break;( 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)

29、;getchar ();return 0;五、测试结果(说明系统的各模块运行结果(附运行界面图片),正式报告需将括号内文字删除)1、进入系统运行界面2、添加药品信息;Ml *gCil白作业>egg供房总理.茎稣做e*- X3、显示药品信息E PMiS宣作业吨顷9娘房谑编猊史能,-ax4、修改药品信息;史1 D:C1fiS作业山ebu弟药屑管理素沉exe ,- O> DC?SfV4l>bug?5lStt理紊蔬吠腑、5、按编号查找药品信息古作业Oegg由房惨理素统Ek- 口 X6、按价格排序 2Pit:宙古作业 田也单某临ML- xX7、删除药品信息S3叩沽酉言作业Debug宙居

30、匿理黑统.”8、退出系统U 百推业Deb叩宙房管麋统旧炬-O X六、总结(谈谈自己的课程设计中的心得体会,正式报告需将括号内文字删除整个实验比较复杂,我使用 switch 语句调用菜单中的各个功能 软件调用不同的函数来实现不同的功能, 通过反复调用函数来实现反 复输入。代码中通过 scanf 从键盘上输入不同的数字选项,然后通过 swtich case() 来实现对不同函数的调用。接下来对编程的各个模块进行解读:a在实现显示菜单功能时,用 DO-WHILE人行对菜单功能的选择比较数字在 17 之间可继续执行。 swtich case() 来实现对不同函数 的调用,执行之后各个独立的模块。b 在

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

32、价、库存数量、品牌,输入完毕后,系统会提 示是否继续输入,输入"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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论