




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 成 绩 评 定 表学生姓名班级学号专 业计算机科学与技术课程设计题目医药管理系统 评语组长签字:成绩日期 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日目 录 一、题目概述(内容及要求)4二、功能分析4三、设计6四、运行与测试7五、总结8参考文献8一、 题目概述(内容及要求)1. 内容:制作一个医药管理系统,能够查看药品列表,显示药品相关信息,能够修改药品信息,能够添加没有的药品,能够根据不同条件查询药品信息。2. 要求:1.程序代码完成,编译运行成功。2.数据输入首选采用文件的方式,其次键盘输入。3.分析采用哪种合适的存储结构来储存数据4.设计一定的用户界面,简洁。二、 功能分析医疗管理系统1. 功能模块图添加新的药品删除药品信息查看已有药品列表退出程序修改药品信息分类查询2. 程序流程图开 始菜单界面 选择 查看 添加 返回 删除 修改 返回 返回添加相关信息 输入编号是否在文档中 N读取文档中的数据Y Y N 删除相关信息 输入编号是否在文档中返回N Y N N查询信息是否在文档中修改 返回 Y修改 N 返回结束图2.2 程序流程图三、设计相关代码:#include #include #include #include #include typedef struct Drug char Drug_id30; /编号char Drug_name50; /药品名称char Drug_type10; /类型float Drug_price; /价格int amount; /库存数量char Drug_time30; /入库时间char remark30; /备注struct Drug *next;Drug,*DrugPtr;#define MENU 欢迎进入药品管理系统n 1: 查看已有药品列表n 2: 添加新的药品n 3: 删除药品信息n 4: 修改药品信息n 5: 分类查询n 0: 退出n 请您选择:#define MENU41 请选择要修改的选项n 1:修改药品名称n 2:修改药品价格n 3:修改药品数量n 4:修改药品类型n 5:修改药品备注n 0:返回主菜单n 请您选择:#define MENU5 欢迎进入分类查询页面n 1: 按编号查询n 2: 按名称查询n 3: 按类型查询n 4: 按价格查询n 5: 按库存数量查询n 6: 按入库时间查询n 0: 返回主菜单n 请您选择:#define MENU50 按药品编号查询n 请输入要查询的药品编号:#define MENU51 按药品名称查询n 请输入要查询的药品名称:#define MENU52 按药品类型查询n 请输入要查询的药品类型:n 1: 中药n 2: 中成药n 3: 西药n0: 返回查询菜单n 请您选择:#define MENU53 按药品价格查询n 请输入要查询的药品价格:#define MENU54 按药品库存数量查询n 请输入要查询的药品的库存数量:#define MENU55 按药品入库时间查询n 请输入要查询的药品入库时间:#define STRCMP(NAME, STR) strcmp(char *)GetStdin(请输入药品的编号(按0结束):, %s, STR), 0)DrugPtr insert(DrugPtr head, int id, char* name); /添加药品void save_to_file( DrugPtr &yaolist); /将更新后的链表保存到文件中 void read_to_list(DrugPtr &yaolist); /将文件读入链表void *GetStdin(const char *numstr, char *control, void *ret);DrugPtr getvalue(); /取值void druginsert(DrugPtr &yaolist, DrugPtr yao); /插入操作int isdrugin(DrugPtr yaolist, DrugPtr yao); /判断void drugmodify(DrugPtr &yaolist, DrugPtr yao); /修改操作void deletenode(DrugPtr &yaolist,char drug_id); /删除操作void deletedrug(DrugPtr &yaolist); void updatedrug(DrugPtr &yaolist);void listshow(DrugPtr yaolist); /显示操作void drug_find_name(DrugPtr head, char *name); /以名称查询void drug_find_id(DrugPtr head,char *id); /以编号查询void drug_find_type_z(DrugPtr head); /查询中药void drug_find_type_zc(DrugPtr head); /查询中成药void drug_find_type_x(DrugPtr head); /查询西药void drug_find_price(DrugPtr head,float price); /以价格查询void drug_find_amout(DrugPtr head,int amout); /以库存数量查询void drug_find_time(DrugPtr head,char *time); /以入库时间查询void drug_type_choose(DrugPtr head); /查询主菜单void choose_type(DrugPtr head);/类型查询int main() int choice;DrugPtr head=NULL;DrugPtr yao;read_to_list(head);while (*(int *)GetStdin(MENU, %d, &choice) switch (choice) case 1: listshow(head);/显示药品列表 break; case 2: yao=getvalue(); druginsert(head,yao);/添加药品 printf(药品添加成功n);break; case 3: deletedrug(head);/删除药品 break; case 4: updatedrug(head);/修改药品信息 break; case 5: /分类查询 drug_type_choose(head); break; case 0: /退出 break;save_to_file(head);return 0;void *GetStdin(const char *numstr, char *control, void *ret)cputs(numstr); while (! scanf(control, ret) fflush(stdin); system(cls); cputs(numstr); system(cls); return ret; /显示列表void listshow(DrugPtr yaolist)printf (%5s%8s%16s%10s%14s%13s%7sn, 药品编号, 名称, 价格, 类型, 入库时间,库存数量,备注);DrugPtr p=yaolist;if(!p)printf(kong);while(p) printf(%-10s%-18s%-10.2f%-10s%-13s%-10d%-10sn,p-Drug_id,p-Drug_name,p-Drug_price,p-Drug_type,p-Drug_time,p-amount,p-remark);p=p-next;DrugPtr getvalue() DrugPtr yao=(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;return yao;void druginsert(DrugPtr &yaolist, DrugPtr yao) if(!yaolist) yaolist=yao;else yao-next=yaolist-next;yaolist-next=yao;DrugPtr isdrugin(DrugPtr yaolist,char drug_id) DrugPtr p=yaolist;while(p) if(!strcmp(p-Drug_id,drug_id)break;elsep=p-next;return p; /更新结点void drugmodify(DrugPtr &yaolist, DrugPtr yao) int choice;DrugPtr p=yaolist;float t=0;/没有这句出现float point not loaded while(*(int *)GetStdin(MENU41, %d, &choice) switch(choice)case 1:GetStdin(请输入药品的新名称:, %s,yao-Drug_name);printf(n);cputs(更新成功!请继续选择n);printf(n);break;case 2:GetStdin(请输入药品的新价格:, %f, &yao-Drug_price);printf(n);cputs(更新成功!请继续选择n);printf(n);break;case 3:GetStdin(请输入药品的修改数量:, %d,&yao-amount);printf(n);cputs(更新成功!请继续选择n);printf(n);break;case 4:GetStdin(请输入药品的新类型:, %s,yao-Drug_type);printf(n);cputs(更新成功!请继续选择n);printf(n);break;case 5:GetStdin(请输入药品的新备注:, %s,yao-remark);printf(n);cputs(更新成功!请继续选择n);printf(n);break;case 0:break; /找到结点返回 updatevoid updatedrug(DrugPtr &yaolist) char string30;DrugPtr yao;while (strcmp(char *)GetStdin(请输入药品编号(按0结束):n, %s, string), 0) yao=isdrugin(yaolist,string);if(yao)/判断药是否存在drugmodify(yaolist,yao);elseprintf(没有这种药n);void deletedrug(DrugPtr &yaolist) char string30;while (STRCMP(SECOND, string) if (isdrugin(yaolist, string) deletenode(yaolist, string); elseprintf(药品不存在!); void deletenode(DrugPtr &yaolist,char drug_id) DrugPtr q,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(药品已删除!);void read_to_list(DrugPtr &yaolist)FILE *fp=fopen(E:/yao.txt,r); if(!fp)printf(error); while( !feof(fp) DrugPtr yao=(DrugPtr)malloc(sizeof(Drug); yao-next=NULL; fscanf(fp,%s%s%f%s%s%d%sn,yao-Drug_id,yao-Drug_name,&yao-Drug_price,yao-Drug_type,yao-Drug_time,&yao-amount,yao-remark); druginsert(yaolist,yao); fclose(fp);void save_to_file(DrugPtr &yaolist) DrugPtr p=yaolist;FILE *fp=fopen(E:/yao.txt,w);if(!fp)printf(error);while(p)fprintf(fp,%-5s%-18s%-10.2f%-10s%-13s%-6d%-10sn,p-Drug_id,p-Drug_name,p-Drug_price,p-Drug_type,p-Drug_time,p-amount,p-remark);p=p-next;fclose(fp);void drug_find_name(DrugPtr head, char *name) DrugPtr cur,p;p=head;cur = head;int i=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%-10sn,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的数量为%dn,name,i);printf(n);else printf(n);printf(没有找到该药名!n); printf(n);void drug_find_type_z(DrugPtr head)DrugPtr cur,p;cur = head;p=head;int i=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%-10sn,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(所有中药的数量为%dn,i);printf(n);else printf(n); printf(没有该类型的药!n); printf(n);void drug_find_type_zc(DrugPtr head) DrugPtr cur,p;cur = head;p=head;int i=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%-10sn,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(所有中成药的数量为%dn,i); printf(n);else printf(n); printf(没有该类型的药!n); printf(n);void drug_find_type_x(DrugPtr head) DrugPtr cur,p;cur = head;p=head;int i=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%-10sn,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(所有西药的数量为%dn,i); printf(n);elseprintf(n); printf(没有该类型的药!n); printf(n);void drug_find_price(DrugPtr head,float price) DrugPtr cur,p;cur = head;int i=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%-10sn,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的数量为%dn,price,i); printf(n);else printf(n); printf(没有该价格的药品!n); printf(n);void drug_find_amout(DrugPtr head,int amout) DrugPtr cur,p;cur = head;int i=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%-10sn,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的数量为%dn,amout,i); printf(n);else printf(n);printf(没有库存量为%d的药品!n,amout);printf(n);void drug_find_time(DrugPtr head,char *time) DrugPtr cur,p;cur = head;int i=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%-10sn,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的数量为%dn,time,i); printf(n);else printf(n);printf(没有找到入库时间为%s的药品!n,time);printf(n);void drug_find_id(DrugPtr head,char *id) DrugPtr cur;cur = head;while(cur!=NULL) if(!strcmp(cur-Drug_id,id)printf(%-5s%-18s%-10.2f%-10s%-13s%-6d%-10sn,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);void drug_type_choose(DrugPtr head) int choice2;while (*(int *)GetStdin(MENU5, %d, &choice2) switch(choice2) case 1:char id30;GetStdin(MENU50, %s, id);drug_find_id(head,id); break;case 2: /名称char name50;GetStdin(MENU51, %s, name);drug_find_name(head,name); break;case 3: /类型 choose_type(head);break;case 4: /价格float price;GetStdin(MENU53, %f, &price); drug_find_price(head,price); break;case 5: /库存int amount;GetStdin(MENU54, %d, &amount);drug_find_amout(head,amount); break;case 6: /入库时间 char time30;GetStdin(MENU55, %s, time);drug_find_time(head,time); break;case 0: break;void choose_type(DrugPtr head) int ch
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年合肥北城建设投资发展控股集团有限公司招聘33人笔试参考题库附带答案详解
- 重庆人文科技学院《装饰施工工程》2023-2024学年第二学期期末试卷
- 福建江夏学院《知识产权法经典著作选读》2023-2024学年第二学期期末试卷
- 石家庄工程职业学院《产品开发与营销》2023-2024学年第二学期期末试卷
- 陕西机电职业技术学院《东南亚传统建筑形态比较》2023-2024学年第二学期期末试卷
- 河北传媒学院《房屋建筑学B》2023-2024学年第二学期期末试卷
- 西安欧亚学院《检测技术及应用》2023-2024学年第二学期期末试卷
- 江西卫生职业学院《中国对外贸易概论》2023-2024学年第二学期期末试卷
- 广西民族大学相思湖学院《数字视频制作艺术》2023-2024学年第二学期期末试卷
- 广东科技学院《软件构造实验》2023-2024学年第二学期期末试卷
- 《GNSS定位测量》课件-GNSS坐标系统
- 幸运咖员工合同范本
- 路基土石方数量计算表
- 大数据视角下互联网消费金融风险探讨以京东白条为例
- 福建省福州市鼓楼区鼓楼第一中心小学教育集团2022-2023学年三年级下学期期中数学试卷
- 2024成都中考道法复习备考专题 《宪法专题复习》(课件)
- 2024年熔化焊接与热切理论考试1000题及答案
- 弱电机房设备与系统巡检记录表全套
- 工商管理论文8000字【9篇】
- 全自动进销存电子表格系统模板53
- MOOC 猪生产学-南京农业大学 中国大学慕课答案
评论
0/150
提交评论