医药管理系统实验报告_第1页
医药管理系统实验报告_第2页
医药管理系统实验报告_第3页
医药管理系统实验报告_第4页
医药管理系统实验报告_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

成绩评定表学生姓名班级学号专业计算机科学与技术课程设计题目医药管理系统评语组长签字:成绩日期年月日课程设计任务书学院信息科学与工程学院专业计算机科学与技术学生姓名班级学号课程设计题目医药管理系统实践教学要求与任务:任务:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有药品,能够依照不一样条件查询药品信息。要求:1.设计数据结构,存放结构;2.在c兼容环境完成上述题目标代码编写与调试;3.程序运行界面交互性好;4.软件运行,给出测试数据。工作计划与进度安排:数据结构课程设计时间安排在教学第14周、第15周内完成,按上述题目要求完成查阅资料、程序设计、调试、运行等工作。时间安排以下:查阅资料、与初步设计;1-2天整体功效设计、代码编码与初步调试。1-3天调试和软件功效测试和验收。1-3天答辩与论文撰写。1-2天指导教师:12月12日专业责任人:12月12日学院教学副院长:12月12日目录一、题目概述(内容及要求) 4二、功效分析 4三、设计 6四、运行与测试 7五、总结 8参考文件 8题目概述(内容及要求)内容:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有药品,能够依照不一样条件查询药品信息。要求:1.程序代码完成,编译运行成功。2.数据输入首选采取文件方式,其次键盘输入。3.分析采取哪种适宜存放结构来储存数据4.设计一定用户界面,简练。功效分析医疗管理系统功效模块图医疗管理系统添加新药品添加新药品删除药品信息查看已经有药品列表退出程序修改药品信息分类查询程序流程图开始开始菜单界面菜单界面 选择选择查看添加返回删除修改返回返回添加相关信息添加相关信息 输入编号是否在文档中N输入编号是否在文档中读取文档中数据 读取文档中数据 YYN 删除相关信息删除相关信息输入编号是否在文档中返回输入编号是否在文档中N Y NN查询信息是否在文档中修改查询信息是否在文档中修改返回Y修改N返回修改 结束结束图2.2图2.2程序流程图三、设计相关代码:#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; else p=p->next; } returnp;}//更新结点voiddrugmodify(DrugPtr&yaolist,DrugPtryao){intchoice; DrugPtrp=yaolist; floatt=0;//没有这句出现floatpointnotloaded while(*(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); else printf("没有这种药\n"); }}voiddeletedrug(DrugPtr&yaolist){charstring[30]; while(STRCMP(SECOND,string)) { if(isdrugin(yaolist,string)) { deletenode(yaolist,string); } else printf("药品不存在!"); }}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; else p=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; else p=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; else p=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; else p=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; else p=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; else p=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; else p=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; } else cur=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; GetStd

温馨提示

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

最新文档

评论

0/150

提交评论