源程序医院药房药品管理系统C++.docx

上传人:b****4 文档编号:5092994 上传时间:2022-12-13 格式:DOCX 页数:17 大小:63.75KB
下载 相关 举报
源程序医院药房药品管理系统C++.docx_第1页
第1页 / 共17页
源程序医院药房药品管理系统C++.docx_第2页
第2页 / 共17页
源程序医院药房药品管理系统C++.docx_第3页
第3页 / 共17页
源程序医院药房药品管理系统C++.docx_第4页
第4页 / 共17页
源程序医院药房药品管理系统C++.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

源程序医院药房药品管理系统C++.docx

《源程序医院药房药品管理系统C++.docx》由会员分享,可在线阅读,更多相关《源程序医院药房药品管理系统C++.docx(17页珍藏版)》请在冰豆网上搜索。

源程序医院药房药品管理系统C++.docx

源程序医院药房药品管理系统C++

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

源程序:

#include//包含文件读写

#include

#include//包含strcmp()字符是否相等

#include//包含system("cls")清屏

#defineMAX60//下列字符数组的大小

structDate{//日期

charyear[MAX];//年

charmonth[MAX];//月

charday[MAX];//日

};

structGoods{//药品信息

charname[MAX];//药品名称

charprice[MAX];//药品价格

charnumber[MAX];//药品数量

charcost[MAX];//药品总价

charkind[MAX];//药品的种类

Dateindate;//入库日期

Datexiaoqi;//到期时间

Goods*next;//下一个结点

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<name<<""<price<<""<number<<""<cost<<""<kind

<<""<indate.year<<""<indate.month<<""<indate.day<<""<xiaoqi.year<<""<xiaoqi.month<<""<xiaoqi.day<

temp=temp->next;

}

outfile.close();//关闭文件流

}

voidprintinfor(Goods*current)//输出一个结点的信息到字符界面

{

if(current==NULL)

{

cout<<"\n元素为空!

!

!

\n";

return;

}

cout.fill('');

cout<name;

cout.width(8);

cout.width(8);

cout<price;

cout.width(8);

cout<number;

cout.width(8);

cout<cost;//就是给current->cost10个字符输出,不够往前面加‘’空格

cout.width(10);

cout<kind;

cout.width(10);

cout<indate.year<<"."<indate.month<<"."<indate.day;

cout.width(10);

cout<xiaoqi.year<<"."<xiaoqi.month<<"."<xiaoqi.day;

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;

}

voidQueryname()//按药品名查询

{

charr[MAX];

cout<<"inputthename:

";

cin>>r;

printinfor(Searchname(r));

}

voidQuery()//查询函数一个次级菜单

{

charm;

do{

cout<<"**********************************************************"<

cout<<"*******按入库的时间查询***********"<

cout<<"*******按药品的名称查询***********"<

cout<<"*******退出***********"<

cout<<"**********************************************************"<

cin>>m;

switch(m){//分别调用按不同查询方式下的函数

case'a':

Queryindate();break;

case'b':

Queryname();break;

case'c':

return;

default:

cout<<"error!

!

";

}

}while(m!

='h');

}//Query

voidRemovebynumber()//按总量删除某个结点

{

chart[MAX];//需要删除的总量值

boolf=false;//表示是否找到满足要求的结点

Goods*temp;//指向找到的结点,并删除

cout<<"请输入药品的数量:

";

cin>>t;

current=head;

while(current->next!

=NULL)

{

if(strcmp(current->next->number,t)==0)//判断是否满足条件

{

temp=current->next;

current->next=temp->next;

length--;//没删除一个结点,链表长度减1

f=true;

deletetemp;//释放结点

cout<<"已删除此药品\n";

//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除

}

else{

current=current->next;

}

}

if(f==false)//false没有改动,表示没有满足条件的结点

{

cout<<"此药品不存在,无须删除\n";

}

}//Removebynumber

voidRemovebyname()//按名称删除某个结点

{

chart[20];

boolf=false;;

Goods*temp;

cout<<"请输入药品的名称:

";

cin>>t;

current=head;

while(current->next!

=NULL)

{

if(strcmp(current->next->name,t)==0)

{

temp=current->next;

current->next=temp->next;

length--;

f=true;

deletetemp;cout<<"已删除此药品\n";

//break;此处屏蔽break,也就是说找到第一个满足条件的结点,并不退出循环,而是继续删除

}

else{

current=current->next;

}

}

if(f==false)

{

cout<<"此药品不存在,无须删除\n";

}

}//Removebyname

voidRemovebyindate()//按购进时间删除某个结点

{

Datet,d;

boolf=false;

Goods*temp;

cout<<"请输入查找药品的日期:

";

cin>>t.year>>t.month>>t.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;

deletetemp;

cout<<"已删除此药品\n";

}

else{

current=current->next;

}

}

if(f==false)

{

cout<<"此元素不存在,无须删除\n";

}

}//Removebyindate

voidRemove()//删除函数

{

charg='Y';

do{

cout<<"**********************************************************"<

cout<<"*******按药品总数量删除***********"<

cout<<"*******按药品名称删除***********"<

cout<<"*******按入库时间删除***********"<

cout<<"*******退出***********"<

cout<<"**********************************************************"<

cin>>g;

switch(g){

case'a':

Removebynumber();break;

case'b':

Removebyname();break;

case'c':

Removebyindate();break;

case'd':

return;

default:

cout<<"error!

!

";

}

}while(g!

='d');

}

 

voidAdd()

{

Goods*temp;

current=head;

while(current->next!

=NULL)//找到尾指针

{

current=current->next;

}

temp=newGoods;

temp->next=NULL;

length++;//链表长加1

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;

current->next=temp;//这时current指向尾指针,将要插入的结点接到current后面

current=temp;

}//add

voidModify(){//通过药品名找到要修改的数据项

charn[MAX];

cout<<"请输入您要修改的药品名:

"<

cin>>n;

Goods*temp=Searchname(n);//按商品名查找

cout<<"请输入单价:

";

cin>>temp->price;

cout<<"请输入药品的总费用:

\n";

cin>>temp->cost;

cout<<"请输入日期(********):

\n";

cin>>temp->indate.year>>temp->indate.month>>temp->indate.day;

cout<<"请输入药品的数量:

\n";

cin>>temp->number;

cout<<"请输入药品的种类:

\n";

cin>>temp->kind;

}

voidoperation()

{

charg='Y';

do{

cout<<"\t";

cout.fill('*');

cout.width(21);

cout<<'*';

cout<<"医院药房管理系统";

cout.fill('*');

cout.width(19);

cout<<'*';

cout<<"\n";

cout<<"\t********************************************************\n";

cout<<"\tMWDICINESTOREMANAGEMENTSYSTERM\n";

cout<<"\t********************************************************\n";

cout<<"\t&&&&药品入库&&&&&&&&&&&&&&&\n";

cout<<"\t&&&&药品出库&&&&&&&&&&&&&&&\n";

cout<<"\t&&&&药品调价&&&\n";

cout<<"\t&&&&新药品入库&&&\n";

cout<<"\t&&&&打开文件&&&&&&&&&&&&&&&\n";

cout<<"\t&&&&保存文件&&&&&&&&&&&&&&&\n";

cout<<"\t&&&显示库存&&&\n";

cout<<"\t&&&药品查询&&&\n";

cout<<"\t&&&上下限制&&&\n";

cout<<"\t&&&退出&&&\n";

cout<<"\t********************************************************\n";

cout<<"\t********************************************************\n";

cout<<"\t";

cout.fill('*');

cout.width(18);

cout<<'*';

cout<<"医院药房管理系统";

cout.fill('*');

cout.width(22);

cout<<'*';

cout<

cin>>g;

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!

!

inputtherightcharacter!

!

!

!

!

\n";

}//switch

}while(g!

='E');

}//operation

};//Cangkuguanli

intmain()

{

CangkuguanliA;

A.operation();return0;}

 

展开阅读全文
相关搜索

当前位置:首页 > 求职职场 > 简历

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1