为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 医药管理系统实验报告

医药管理系统实验报告

2020-07-12 7页 doc 189KB 1阅读

用户头像 个人认证

wsqfg88

项目管理施工技术

举报
医药管理系统实验报告成绩评定表 学生姓名 班级学号 专业 计算机科学与技术 课程设计题目 医药管理系统 评语 组长签字: 成绩 日期 2015年月日课程设计任务书 学院 信息科学与工程学院 专业 计算机科学与技术 学生姓名 班级学号 课程设计题目 医药管理系统 实践教学要求与任务:任务:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。要求:1.设计数据结构,存储结构;2.在c兼容环境完成上述题目的代码编写与调试;3.程序运行界面交互性好;4.软件运行,给出测试...
医药管理系统实验报告
成绩评定 学生姓名 班级学号 专业 计算机科学与技术 课程设计题目 医药管理系统 评语 组长签字: 成绩 日期 2015年月日课程设计任务书 学院 信息科学与工程学院 专业 计算机科学与技术 学生姓名 班级学号 课程设计题目 医药管理系统 实践教学与任务:任务:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。要求:1.设计数据结构,存储结构;2.在c兼容环境完成上述题目的代码编写与调试;3.程序运行界面交互性好;4.软件运行,给出测试数据。工作计划与进度安排:数据结构课程设计时间安排在教学第14、第15完成,按上述题目要求完成查阅资料、程序设计、调试、运行等工作。时间安排如下:1、查阅资料、与初步设计;1-2天2、整体功能设计、代码编码与初步调试。1-3天3、调试和软件功能的测试和验收。1-3天4、答辩与论文撰写。1-2天 指导教师:2015年12月12日 专业负责人:2015年12月12日 学院教学副院长:2015年12月12日目录一、题目概述(容及要求)44二、功能分析三、设计6四、运行与测试7五、总结88参考文献1、题目概述(容及要求)1.容:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。2.要求:1.程序代码完成,编译运行成功。2.数据输入首选采用文件的式,其次键盘输入。3.分析采用哪种合适的存储结构来储存数据4.设计一定的用户界面,简洁。2、功能分析1.功能模块图2.程序图查看添加返回删除修改返回返回NYYN返回NYNN返回YN返回三、设计相关代码:#include<stdio.h>#include<string.h>#include<stdlib.h>#include<time.h>#include<conio.h>typedefstructDrug{charDrug_id[30];//编号charDrug_name[50];//药品名称charDrug_type[10];//类型floatDrug_price;//价格intamount;//库存数量charDrug_time[30];//入库时间charremark[30];//备注structDrug*next;}Drug,*DrugPtr;#defineMENU"欢迎进入药品管理系统\n"\"1:查看已有药品列表\n"\"2:添加新的药品\n"\"3:删除药品信息\n"\"4:修改药品信息\n"\"5:分类查询\n"\"0:退出\n"\"请您选择:"#defineMENU41"请选择要修改的选项\n"\"1:修改药品名称\n"\"2:修改药品价格\n"\"3:修改药品数量\n"\"4:修改药品类型\n"\"5:修改药品备注\n"\"0:返回主菜单\n"\"请您选择:"#defineMENU5"欢迎进入分类查询页面\n"\"1:按编号查询\n"\"2:按名称查询\n"\"3:按类型查询\n"\"4:按价格查询\n"\"5:按库存数量查询\n"\"6:按入库时间查询\n"\"0:返回主菜单\n"\"请您选择:"#defineMENU50"按药品编号查询\n"\"请输入要查询的药品编号:"#defineMENU51"按药品名称查询\n"\"请输入要查询的药品名称:"#defineMENU52"按药品类型查询\n"\"请输入要查询的药品类型:\n"\"1:中药\n"\"2:中成药\n"\"3:西药\n"\"0:返回查询菜单\n"\"请您选择:"#defineMENU53"按药品价格查询\n"\"请输入要查询的药品价格:"#defineMENU54"按药品库存数量查询\n"\"请输入要查询的药品的库存数量:"#defineMENU55"按药品入库时间查询\n"\"请输入要查询的药品入库时间:"#defineSTRCMP(NAME,STR)strcmp((char*)GetStdin("请输入药品的编号(按0结束):","%s",STR),"0")DrugPtrinsert(DrugPtrhead,intid,char*name);//添加药品voidsave_to_file(DrugPtr&yaolist);//将更新后的链表保存到文件中voidread_to_list(DrugPtr&yaolist);//将文件读入链表void*GetStdin(constchar*numstr,char*control,void*ret);DrugPtrgetvalue();//取值voiddruginsert(DrugPtr&yaolist,DrugPtryao);//插入操作intisdrugin(DrugPtryaolist,DrugPtryao);//判断voiddrugmodify(DrugPtr&yaolist,DrugPtryao);//修改操作voiddeletenode(DrugPtr&yaolist,chardrug_id[]);//删除操作voiddeletedrug(DrugPtr&yaolist);voidupdatedrug(DrugPtr&yaolist);voidlistshow(DrugPtryaolist);//显示操作voiddrug_find_name(DrugPtrhead,char*name);//以名称查询voiddrug_find_id(DrugPtrhead,char*id);//以编号查询voiddrug_find_type_z(DrugPtrhead);//查询中药voiddrug_find_type_zc(DrugPtrhead);//查询中成药voiddrug_find_type_x(DrugPtrhead);//查询西药voiddrug_find_price(DrugPtrhead,floatprice);//以价格查询voiddrug_find_amout(DrugPtrhead,intamout);//以库存数量查询voiddrug_find_time(DrugPtrhead,char*time);//以入库时间查询voiddrug_type_choose(DrugPtrhead);//查询主菜单voidchoose_type(DrugPtrhead);//类型查询intmain(){intchoice;DrugPtrhead=NULL;DrugPtryao;read_to_list(head);while(*(int*)GetStdin(MENU,"%d",&choice)){switch(choice){case1:listshow(head);//显示药品列表break;case2:{yao=getvalue();druginsert(head,yao);//添加药品printf("药品添加成功\n");break;}case3:deletedrug(head);//删除药品break;case4:updatedrug(head);//修改药品信息break;case5://分类查询drug_type_choose(head);break;case0://退出break;}}save_to_file(head);return0;}void*GetStdin(constchar*numstr,char*control,void*ret){cputs(numstr);while(!scanf(control,ret)){fflush(stdin);system("cls");cputs(numstr);}system("cls");returnret;}//显示列表voidlistshow(DrugPtryaolist){printf("%5s%8s%16s%10s%14s%13s%7s\n","药品编号","名称","价格","类型","入库时间","库存数量","备注");DrugPtrp=yaolist;if(!p)printf("kong");while(p){printf("%-10s%-18s%-10.2f%-10s%-13s%-10d%-10s\n",p->Drug_id,p->Drug_name,p->Drug_price,p->Drug_type,p->Drug_time,p->amount,p->remark);p=p->next;}}DrugPtrgetvalue(){DrugPtryao=(DrugPtr)malloc(sizeof(Drug));printf("请输入药品编号:");scanf("%s",&yao->Drug_id);printf("\n");printf("请输入药品名称:");scanf("%s",&yao->Drug_name);printf("\n");printf("请输入药品价格:");scanf("%f",&yao->Drug_price);printf("\n");printf("请输入药品数量:");scanf("%d",&yao->amount);printf("\n");printf("请输入药品入库时间:");scanf("%s",&yao->Drug_time);printf("\n");printf("请输入药品类型:");scanf("%s",&yao->Drug_type);printf("\n");printf("请输入药品备注:");scanf("%s",&yao->remark);printf("\n");yao->next=NULL;returnyao;}voiddruginsert(DrugPtr&yaolist,DrugPtryao){if(!yaolist)yaolist=yao;else{yao->next=yaolist->next;yaolist->next=yao;}}DrugPtrisdrugin(DrugPtryaolist,chardrug_id[]){DrugPtrp=yaolist;while(p){if(!strcmp(p->Drug_id,drug_id))break;elsep=p->next;}returnp;}//更新结点voiddrugmodify(DrugPtr&yaolist,DrugPtryao){intchoice;DrugPtrp=yaolist;floatt=0;//没有这句出现floatpointnotloadedwhile(*(int*)GetStdin(MENU41,"%d",&choice)){switch(choice){case1:GetStdin("请输入药品的新名称:","%s",yao->Drug_name);printf("\n");cputs("更新成功!请继续选择\n");printf("\n");break;case2:GetStdin("请输入药品的新价格:","%f",&yao->Drug_price);printf("\n");cputs("更新成功!请继续选择\n");printf("\n");break;case3:GetStdin("请输入药品的修改数量:","%d",&yao->amount);printf("\n");cputs("更新成功!请继续选择\n");printf("\n");break;case4:GetStdin("请输入药品的新类型:","%s",yao->Drug_type);printf("\n");cputs("更新成功!请继续选择\n");printf("\n");break;case5:GetStdin("请输入药品的新备注:","%s",yao->remark);printf("\n");cputs("更新成功!请继续选择\n");printf("\n");break;case0:break;}}}//找到结点返回updatevoidupdatedrug(DrugPtr&yaolist){charstring[30];DrugPtryao;while(strcmp((char*)GetStdin("请输入药品编号(按0结束):\n","%s",string),"0")){yao=isdrugin(yaolist,string);if(yao)//判断药是否存在drugmodify(yaolist,yao);elseprintf("没有这种药\n");}}voiddeletedrug(DrugPtr&yaolist){charstring[30];while(STRCMP(SECOND,string)){if(isdrugin(yaolist,string)){deletenode(yaolist,string);}elseprintf("药品不存在!");}}voiddeletenode(DrugPtr&yaolist,chardrug_id[]){DrugPtrq,p;q=yaolist;p=q->next;if(!strcmp(yaolist->Drug_id,drug_id)){yaolist=yaolist->next;free(q);}else{while(p){if(!strcmp(p->Drug_id,drug_id))break;q=q->next;p=p->next;}q->next=p->next;free(p);}printf("药品已删除!");}voidread_to_list(DrugPtr&yaolist){FILE*fp=fopen("E:/yao.txt","r");if(!fp)printf("error");while(!feof(fp)){DrugPtryao=(DrugPtr)malloc(sizeof(Drug));yao->next=NULL;fscanf(fp,"%s%s%f%s%s%d%s\n",yao->Drug_id,yao->Drug_name,&yao->Drug_price,yao->Drug_type,yao->Drug_time,&yao->amount,yao->remark);druginsert(yaolist,yao);}fclose(fp);}voidsave_to_file(DrugPtr&yaolist){DrugPtrp=yaolist;FILE*fp=fopen("E:/yao.txt","w");if(!fp)printf("error");while(p){fprintf(fp,"%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",p->Drug_id,p->Drug_name,p->Drug_price,p->Drug_type,p->Drug_time,p->amount,p->remark);p=p->next;}fclose(fp);}voiddrug_find_name(DrugPtrhead,char*name){DrugPtrcur,p;p=head;cur=head;inti=0;while(p){if(!strcmp(p->Drug_name,name))break;elsep=p->next;}if(p){while(cur!=NULL){if(!strcmp(cur->Drug_name,name)){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有名称为%s的数量为%d\n",name,i);printf("\n");}else{printf("\n");printf("没有找到该药名!\n");printf("\n");}}voiddrug_find_type_z(DrugPtrhead){DrugPtrcur,p;cur=head;p=head;inti=0;while(p){if(!strcmp(p->Drug_type,"中药"))break;elsep=p->next;}if(p){while(cur!=NULL){if(!strcmp(cur->Drug_type,"中药")){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有中药的数量为%d\n",i);printf("\n");}else{printf("\n");printf("没有该类型的药!\n");printf("\n");}}voiddrug_find_type_zc(DrugPtrhead){DrugPtrcur,p;cur=head;p=head;inti=0;while(p){if(!strcmp(p->Drug_type,"中成药"))break;elsep=p->next;}if(p){while(cur!=NULL){if(!strcmp(cur->Drug_type,"中成药")){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有中成药的数量为%d\n",i);printf("\n");}else{printf("\n");printf("没有该类型的药!\n");printf("\n");}}voiddrug_find_type_x(DrugPtrhead){DrugPtrcur,p;cur=head;p=head;inti=0;while(p){if(!strcmp(p->Drug_type,"西药"))break;elsep=p->next;}if(p){while(cur!=NULL){if(!strcmp(cur->Drug_type,"西药")){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有西药的数量为%d\n",i);printf("\n");}else{printf("\n");printf("没有该类型的药!\n");printf("\n");}}voiddrug_find_price(DrugPtrhead,floatprice){DrugPtrcur,p;cur=head;inti=0;p=head;while(p){if(p->Drug_price==price)break;elsep=p->next;}if(p){while(cur!=NULL){if(cur->Drug_price==price){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有药品价格为%f的数量为%d\n",price,i);printf("\n");}else{printf("\n");printf("没有该价格的药品!\n");printf("\n");}}voiddrug_find_amout(DrugPtrhead,intamout){DrugPtrcur,p;cur=head;inti=0;p=head;while(p){if(p->amount==amout)break;elsep=p->next;}if(p){while(cur!=NULL){if(cur->amount==amout){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有药品库存量为%d的数量为%d\n",amout,i);printf("\n");}else{printf("\n");printf("没有库存量为%d的药品!\n",amout);printf("\n");}}voiddrug_find_time(DrugPtrhead,char*time){DrugPtrcur,p;cur=head;inti=0;p=head;while(p){if(!(strcmp(p->Drug_time,time)))break;elsep=p->next;}if(p){while(cur!=NULL){if(!(strcmp(cur->Drug_time,time))){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);i++;}cur=cur->next;}printf("\n");printf("所有药品入库时间为%s的数量为%d\n",time,i);printf("\n");}else{printf("\n");printf("没有找到入库时间为%s的药品!\n",time);printf("\n");}}voiddrug_find_id(DrugPtrhead,char*id){DrugPtrcur;cur=head;while(cur!=NULL){if(!strcmp(cur->Drug_id,id)){printf("%-5s%-18s%-10.2f%-10s%-13s%-6d%-10s\n",cur->Drug_id,cur->Drug_name,cur->Drug_price,cur->Drug_type,cur->Drug_time,cur->amount,cur->remark);printf("\n");break;}elsecur=cur->next;}if(!cur){printf("\n");printf("没有找到该编号的药品!\n");printf("\n");}}voiddrug_type_choose(DrugPtrhead){intchoice2;while(*(int*)GetStdin(MENU5,"%d",&choice2)){switch(choice2){case1:charid[30];GetStdin(MENU50,"%s",id);drug_find_id(head,id);break;case2://名称charname[50];GetStdin(MENU51,"%s",name);drug_find_name(head,name);break;case3://类型choose_type(head);break;case4://价格floatprice;GetStdin(MENU53,"%f",&price);drug_find_price(head,price);break;case5://库存intamount;GetStdin(MENU54,"%d",&amount);drug_find_amout(head,amount);break;case6://入库时间chartime[30];GetStdin(MENU55,"%s",time);drug_find_time(head,time);break;case0:break;}}}voidchoose_type(DrugPtrhead){intchoice3;while(*(int*)GetStdin(MENU52,"%d",&choice3)){switch(choice3){case1://中药printf("药库中的中药有:\n");drug_find_type_z(head);break;case2://中成药printf("药库中的中成药有:\n");drug_find_type_zc(head);break;case3://西药printf("药库中的西药有:\n");drug_find_type_x(head);break;case0://返回查询菜单break;}}}设计思路:首先会显示程序菜单,对应选项对应正确的功能,查看已有药品列表会直接读取程序要求文件yao.txt文件,并且显示在程序上。选择添加新的药品将会显示药品的让你添加药品的相对应的相关信息,并且存入yao.txt文件之中。删除药品信息的时候,如果输入的编号不在文件之中,则会显示药品不存在;若编号存在,则程序运行删除程序将编号对应的药品信息删除,并存入yao.txt文件。修改药品信息,输入编号,若输入的编号不在文见之中,则会显示药品不存在;若编号存在,则将所要修改的信息输入,程序将自动替换原有数据并且会在程序结束时存入yao.txt文件之中。分类查询,将会出现相关选项,按照相关选项输入,程序将会读取文档之中的数据,并且判断使用者输入的数据是否在文档之中,若输入选项在文档之中,将会显示相关药品信息;若不在文档之中,将会显示药品不存在。四、运行与测试初始界面如图5.1所示:图5.1初始界面查看已有药品列表运行结果如图5.2所示:图5.2查看已有药品列表添加新的药品界面如图5.3所示:图5.3添加新的药品修改药品信息界面如图5.4所示:图5.4修改药品信息分类查询界面如图5.5所示:图5.5分类查询五、总结首先,感老师在课设期间对我的耐心指导,由于c语言是在大一上学期学习,有点遗忘,所以本次课设难免遇到一些问题,经过反复的修改、和同学们的交流,和老师的耐心指导,本次项目实训圆满完成。我深知数据结构对于我们计算机专业的学生来说是一门很重要的课,而且学习起来也不是那么容易,在学习理论课的过程中我就留下好多疑问,虽然理论上明白,但实践中到底怎么用,用来干什么对我来说还是个迷。通过本次数据结构的课设,让我将理论用于实践,遇到问题努力自己探索或者寻求老师的帮助,让我的很多谜团得到解决,更是激起了我学习数据结构的乐趣,总之,很感这次课设,更为这次课设天天忙碌陪伴我们的老师。 参考文献[1]《数据结构案例分析与习题解答》筠、学军清华大学出版社,2013[2]《数据结构与算法》蔚敏清华大学出版社,2010退出程序查看已有药品列表删除药品信息添加新的药品医疗管理系统读取文档中的数据结束删除相关信息修改添加相关信息输入编号是否在文档中输入编号是否在文档中选择修改查询信息是否在文档中菜单界面开始图2.2程序分类查询修改药品信息Word资料
/
本文档为【医药管理系统实验报告】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索