版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 单位管理制度范例汇编员工管理篇十篇
- 单位管理制度呈现汇编【人事管理】
- 专题二 民主与法治(精讲课件)中考道德与法治一轮复习 课件
- 【课件】寒假是用来超越的!课件 2024-2025学年高中上学期寒假学习和生活指导班会
- 第5单元 走向近代(高频选择题50题)(解析版)
- 中北大学课件电工技术
- 《皮肤性病学疥疮》课件
- 《电子产品技术文件》课件
- 母亲节 爱的呈现
- 汽车行业洞察与展望
- 2025年大学华西医院运营管理部招考聘用3人管理单位笔试遴选500模拟题附带答案详解
- 2025年放射科工作计划
- 2024年中国干粉涂料市场调查研究报告
- 2024年副班主任工作总结(3篇)
- 课题申报书:古滇青铜文化基因图谱构建及活态深化研究
- 统编版2024-2025学年第一学期四年级语文期末学业质量监测试卷(含答案)
- 2024年城乡学校结对帮扶工作总结范例(3篇)
- 房地产法律风险防范手册
- 《监考人员培训》课件
- 期末综合测试卷(试题)-2024-2025学年四年级上册数学人教版
- 分布式光伏发电项目计划书
评论
0/150
提交评论