源程序(医院药房药品管理系统C++).doc

上传人:豆**** 文档编号:28478314 上传时间:2022-07-28 格式:DOC 页数:58 大小:981KB
返回 下载 相关 举报
源程序(医院药房药品管理系统C++).doc_第1页
第1页 / 共58页
源程序(医院药房药品管理系统C++).doc_第2页
第2页 / 共58页
点击查看更多>>
资源描述

《源程序(医院药房药品管理系统C++).doc》由会员分享,可在线阅读,更多相关《源程序(医院药房药品管理系统C++).doc(58页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date源程序(医院药房药品管理系统C+)源程序:源程序:# include /包含文件读写# include # include /包含strcmp()字符是否相等#include /包含system(cls)清屏#define MAX 60 /下列字符数组的大小struct Date/日期 char yearMAX;/年 char monthMAX;/月 char day

2、MAX;/日;struct Goods/药品信息 char nameMAX;/药品名称 char priceMAX;/药品价格 char numberMAX;/药品数量 char costMAX;/药品总价 char kindMAX;/药品的种类 Date indate;/入库日期 Date xiaoqi;/到期时间 Goods * next;/下一个结点 ;class Cangkuguanli /类定义与实现private: int length;/客户数量 Goods * head;/列表的头结点 Goods * current;/当前结点public: Cangkuguanli()/构造

3、函数 head=new Goods;/创建头结点 current=head; current-next=NULL; length=0;/长度为0 void Creatlist()/创建新的列表 char g=Y; int s=0; length=0;/初始长度为0;current=head;do Goods * temp=new Goods ;/构建新结点信息 length+; /每加一个结点 链表长度增1 temp-next=NULL; couttemp-name; couttemp-price; couttemp-number; couttemp-cost; couttemp-indate

4、.yeartemp-indate.monthtemp-indate.day; couttemp-xiaoqi.yeartemp-xiaoqi.monthtemp-xiaoqi.day; couttemp-kind;if(head=NULL)head=temp;current=temp; /head头指针,current尾指针 else current-next=temp,current=temp; do coutg; if(g!=Y&g!=N) coutn error !n ; while(g!=Y&g!=N); while(g=Y);/判断是否继续插入新结点 void Open ()/打开一

5、个数据文件,并建立链表关联 和文件中的记录对应 char fname20;/文件名称 coutfname; /输入要打开的文件名ifstream infile (fname);/创建输入文件流 infilelength;coutn length is: lengthendl;/if(length=0)cout 数据为空n; for(int i=0;inext=NULL;infilet-namet-pricet-numbert-costt-kind t-indate.yeart-indate.montht-indate.day; if(head=NULL)head=t;current=t;/跟上

6、面的链表创建相似else current-next=t,current=t;infile.close();/关闭文件流/open void Save ()/保存链表信息到文件 if(length=0) cout 列表为空 不需存盘 n; return ; char fname20;/文件名称 coutfname; ofstream outfile(fname);/创建输出文件流 Goods * temp=head-next; outfilelengthendl;/先写入文件的长度 while (temp!=NULL)/把所有结点写入到文件fname outfilename price numb

7、er cost kind indate.year indate.month indate.day xiaoqi.year xiaoqi.month xiaoqi.daynext; outfile.close();/关闭文件流 void printinfor( Goods * current)/输出一个结点的信息到字符界面 if(current=NULL) coutn元素为空! n ; return; cout.fill( );coutname;cout.width(8); cout.width(8);coutprice;cout.width(8); coutnumber;cout.width(

8、8);coutcost; /就是给current-cost10个字符输出,不够往前面加 空格 cout.width(10);coutkind; cout.width(10); coutindate.year.indate.month.indate.day; cout.width(10); coutxiaoqi.year.xiaoqi.month.xiaoqi.day; coutnext;if(current=NULL)cout列表为空 n;return ;cout.fill( );cout.width(2);cout名称; cout.width(8);cout价格;cout.width(8);

9、cout数量;cout.width(8);cout总费用;cout.width(10);cout药品的种类;cout.width(15);cout购进时间;cout.width(15);cout有效期;coutnext; /showGoods *Searchindate(Date t) /按购入日期搜索 返回结点指针temp/结构体t含有t.year t.month t.day三个信息块Date d;bool f=false;Goods * temp;current=head-next; while(current!=NULL) d=current-indate; if(!strcmp(d.y

10、ear,t.year)&!strcmp(d.month,t.month)&!strcmp(d.day,t.day) temp=current;f=true; break; current=current-next; if(f=false) coutn 没有满足要求的信息 n; return NULL; return temp;void Queryindate()/按入库日期查询Date t;coutt.yeart.montht.day; printinfor(Searchindate (t);/Queryindate()Goods * Searchname (char r)/搜索药品名 返回结

11、点指针temp Goods * temp; current=head-next;bool f=false; while(current!=NULL) if(strcmp(current-name,r)=0) temp=current; f=true; break; current=current-next; if(f=false) coutn 商品名为 : r 的商品不存在 n ; return NULL; return temp;void Queryname() /按药品名查询char rMAX;coutr;printinfor(Searchname (r);void Query ()/查询

12、函数 一个次级菜单char m; do cout * endl; cout* 按入库的时间查询 *endl; cout* 按药品的名称查询 *endl; cout* 退出 *endl; cout * m; switch (m) /分别调用按不同查询方式下的函数 case a: Queryindate();break; case b: Queryname();break; case c: return ; default: couterror! ; while(m!=h);/Query void Removebynumber () /按总量删除某个结点char tMAX; /需要删除的总量值 b

13、ool f=false; /表示是否找到满足要求的结点 Goods * temp; /指向找到的结点,并删除 coutt; current=head; while(current-next!=NULL) if(strcmp(current-next-number,t)=0) /判断是否满足条件 temp=current-next; current-next=temp-next; length-; /没删除一个结点,链表长度减1 f=true; delete temp;/释放结点coutnext; if(f=false)/false没有改动,表示没有满足条件的结点 cout此药品不存在 ,无须删

14、除 n; /Removebynumbervoid Removebyname () /按名称删除某个结点char t20; bool f=false; Goods * temp; coutt; current=head; while(current-next!=NULL) if(strcmp(current-next-name,t)=0) temp=current-next; current-next=temp-next; length-; f=true; delete temp;coutnext; if(f=false) cout此药品不存在 ,无须删除 n; /Removebynamevoi

15、d Removebyindate () /按购进时间删除某个结点 Date t,d; bool f=false; Goods * temp; coutt.yeart.montht.day; current=head; while(current-next!=NULL) d=current-next-indate; if(d.year=t.year&d.month=t.month&d.day=t.day) temp=current-next; current-next=temp-next; length-; f=true; delete temp;coutnext; if(f=false) co

16、ut此元素不存在 ,无须删除 n; /Removebyindatevoid Remove ()/删除函数char g=Y; do cout * endl; cout* 按药品总数量删除 *endl; cout* 按药品名称删除 *endl; cout* 按入库时间删除 *endl; cout* 退出 *endl; cout * g; switch (g) case a: Removebynumber ();break; case b: Removebyname();break; case c: Removebyindate();break; case d: return ; default:

17、coutnext!=NULL)/找到尾指针 current=current-next;temp=new Goods; temp-next=NULL;length+;/链表长加1 couttemp-name; couttemp-price; couttemp-number; couttemp-cost; couttemp-indate.yeartemp-indate.monthtemp-indate.day; couttemp-xiaoqi.yeartemp-xiaoqi.monthtemp-xiaoqi.day; cout 请输入药品的种类:temp-kind; current-next=te

18、mp;/这时current指向尾指针,将要插入的结点接到current后面 current=temp;/addvoid Modify ()/通过药品名找到要修改的数据项char nMAX;cout请输入您要修改的药品名:n; Goods * temp=Searchname (n);/按商品名查找 couttemp-price; couttemp-cost; couttemp-indate.yeartemp-indate.monthtemp-indate.day; couttemp-number; couttemp-kind;void operation ()char g=Y;docoutt;c

19、out.fill(*);cout.width(21);cout*;cout医院药房管理系统;cout.fill(*);cout.width(19);cout*; coutn; coutt*n; coutt MWDICINE STORE MANAGEMENT SYSTERMn; coutt*n; coutt & & 药品入库 & n; coutt & & 药品出库 & n; coutt & & 药品调价 & n; coutt & & 新药品入库 & n; coutt & & 打开文件 & n; coutt & & 保存文件 & n; coutt & 显示库存 & n; coutt & 药品查询

20、& n; coutt & 上下限制 & n; coutt & 退出 & n; coutt*n; coutt*n;coutt;cout.fill(*);cout.width(18);cout*;cout医院药房管理系统;cout.fill(*);cout.width(22);cout*;coutg;switch (g)case C: Creatlist();break;case A: Add();break;case M: Modify ();break;case D: Show ();break;case Q: Query ();break;case R: Remove();break;case O: Open ();break;case S: Save();break;case N: system (cls);break;case E: return ;default: cout error! input the right character ! n;/switchwhile(g!=E);/operation;/Cangkuguanliint main ()Cangkuguanli A; A.operation(); return 0; -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁