源程序医院药房药品管理系统C++.docx
- 文档编号:399841
- 上传时间:2022-10-09
- 格式:DOCX
- 页数:16
- 大小:19.45KB
源程序医院药房药品管理系统C++.docx
《源程序医院药房药品管理系统C++.docx》由会员分享,可在线阅读,更多相关《源程序医院药房药品管理系统C++.docx(16页珍藏版)》请在冰豆网上搜索。
源程序医院药房药品管理系统C++
源程序:
#include
#include
#include
#include
#defineMAX60//下列字符数组的大小
structDate{//日期
charyear[MAX];//年
charmonth[MAX];//月
charday[MAX];//日
};
structGoods{//药品信息
charname[MAX];//药品名称
charprice[MAX];//药品价格
charnumber[MAX];//药品数量
charcost[MAX];//药品总价
charkind[MAX];//药品的种类
Dateindate;//入库日期
Datexiaoqi;//到期时间
Goods*next;//下一个结点
};
classCangkuguanli{//类定义与实现
private:
intlength;//客户数量
Goods*head;//列表的头结点
Goods*current;//当前结点
public:
Cangkuguanli()//构造函数
{
head=newGoods;//创建头结点
current=head;
current->next=NULL;
length=0;//长度为0
}
voidCreatlist()//创建新的列表
{
charg='Y';
ints=0;
length=0;//初始长度为0;
current=head;
do{
Goods*temp=newGoods;//构建新结点信息
length++;//每加一个结点链表长度增1
temp->next=NULL;
cout<<"请输入药品名称:
";
cin>>temp->name;
cout<<"请输入单价:
";
cin>>temp->price;
cout<<"请输入药品数量:
";
cin>>temp->number;
cout<<"请输入总费用:
";
cin>>temp->cost;
cout<<"请输入日期(********):
";
cin>>temp->indate.year>>temp->indate.month>>temp->indate.day;
cout<<"请输入药品有效期(********):
";
cin>>temp->xiaoqi.year>>temp->xiaoqi.month>>temp->xiaoqi.day;
cout<<"请输入药品种类:
";
cin>>temp->kind;
if(head==NULL){head=temp;current=temp;}//head头指针,current尾指针
else{current->next=temp,current=temp;}
do{
cout<<"next?
(YN)";//是否继续存入新产品
cin>>g;
if(g!
='Y'&&g!
='N')
{
cout<<"\nerror!
!
!
!
\n";
}
}while(g!
='Y'&&g!
='N');
}while(g=='Y');//判断是否继续插入新结点
}
voidOpen()//打开一个数据文件,并建立链表关联和文件中的记录对应
{
charfname[20];//文件名称
cout<<"inputthenameofthefile\n";
cin>>fname;//输入要打开的文件名
ifstreaminfile(fname);//创建输入文件流
infile>>length;
cout<<"\nlengthis:
"< //if(length==0)cout<<"数据为空\n"; for(inti=0;i { Goods*t=newGoods; t->next=NULL; infile>>t->name>>t->price>>t->number>>t->cost>>t->kind>> t->indate.year>>t->indate.month>>t->indate.day; if(head==NULL){head=t;current=t;}//跟上面的链表创建相似 else{current->next=t,current=t;} } infile.close();//关闭文件流 }//open voidSave()//保存链表信息到文件 { if(length==0) { cout<<"列表为空不需存盘\n"; return; } charfname[20];//文件名称 cout<<"inputthenameofthefileyouwanttoputdatain\n"; cin>>fname; ofstreamoutfile(fname);//创建输出文件流 Goods*temp=head->next; outfile< while(temp! =NULL)//把所有结点写入到文件fname { outfile< <<""< temp=temp->next; } outfile.close();//关闭文件流 } voidprintinfor(Goods*current)//输出一个结点的信息到字符界面 { if(current==NULL) { cout<<"\n元素为空! ! ! \n"; return; } cout.fill(''); cout< cout.width(8); cout.width(8); cout< cout.width(8); cout< cout.width(8); cout< cout.width(10); cout< cout.width(10); cout< cout.width(10); cout< cout< }//printinfor voidShow()//输出所有结点信息到字符界面 { current=head->next; if(current==NULL) { cout<<"列表为空\n"; return; } cout.fill(''); cout.width (2); cout<<"名称"; cout.width(8); cout<<"价格"; cout.width(8); cout<<"数量"; cout.width(8); cout<<"总费用"; cout.width(10); cout<<"药品的种类"; cout.width(15); cout<<"购进时间"; cout.width(15); cout<<"有效期"; cout< while(current! =NULL) {//循环输出所有结点 printinfor(current); current=current->next; } }//show Goods*Searchindate(Datet){//按购入日期搜索返回结点指针temp //结构体t含有t.yeart.montht.day三个信息块 Dated; boolf=false; Goods*temp; current=head->next; while(current! =NULL) { d=current->indate; if(! strcmp(d.year,t.year)&&! strcmp(d.month,t.month)&&! strcmp(d.day,t.day)) { temp=current; f=true; break; } current=current->next; } if(f==false) { cout<<"\n没有满足要求的信息\n"; returnNULL; } returntemp; } voidQueryindate()//按入库日期查询 { Datet; cout<<"inputthedate(********): "; cin>>t.year>>t.month>>t.day; printinfor(Searchindate(t)); }//Queryindate() Goods*Searchname(charr[])//搜索药品名返回结点指针temp {Goods*temp; current=head->next; boolf=false; while(current! =NULL) { if(strcmp(current->name,r)==0) { temp=current; f=true; break; } current=current->next; } if(f==false) { cout<<"\n商品名为: "< returnNULL; } returntemp; } vo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 源程序 医院 药房 药品 管理 系统 C+