




免费预览已结束,剩余12页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#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%13s%10s%10s%13s%10s%10sn, 药品编号, 名称, 价格, 类型, 入库时间,库存数量,备注);DrugPtr p=yaolist;if(!p)printf(kong);while(p) printf (%-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;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;elseyao-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); elsewhile(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);elseprintf(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);elseprintf(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);elseprintf(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);pri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宝鸡先行电力(集团)有限责任公司招聘(4人)模拟试卷及答案详解1套
- 2025广西南宁上林县禁毒委员会招聘禁毒社工1人考前自测高频考点模拟试题及答案详解(历年真题)
- 2025广西防城港市中小学教师招聘501人模拟试卷及答案详解(典优)
- 2025湖北省三支一扶招募高校毕业生2000人考前自测高频考点模拟试题及答案详解(必刷)
- 2025内蒙古赤峰市林西金城医院招录专业技术人员6人考前自测高频考点模拟试题及答案详解(易错题)
- 律师常用信涵样式相互同意解除合同7篇
- 库房搬迁运输合同9篇
- 科研伦理考试题库及答案
- 甘肃消防考试题库及答案
- 绿色环保与可持续发展行动计划活动方案
- 免疫复合物沉积-洞察及研究
- 第4节 跨学科实践:电路创新设计展示-教科版九年级《物理》上册教学课件
- 产科危重患者的护理
- 网约车驾驶员安全驾驶培训
- DGTJ08-2310-2019 外墙外保温系统修复技术标准
- 办理出国商务代办手续服务合同
- 光电美容培训课件
- 电能质量培训课件
- 中国服饰课件模板
- 子痫及子痫前期病例分析
- 啤酒音乐节活动方案
评论
0/150
提交评论