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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

源程序:

# include //包含文件读写

# include

# include //包含strcmp()字符是否相等#include //包含system("cls")清屏

#define MAX 60 //下列字符数组的大小

struct Date{//日期

char year[MAX];//年

char month[MAX];//月

char day[MAX];//日

};

struct Goods{//药品信息

char name[MAX];//药品名称

char price[MAX];//药品价格

char number[MAX];//药品数量

char cost[MAX];//药品总价

char kind[MAX];//药品的种类

Date indate;//入库日期

Date xiaoqi;//到期时间

Goods * next;//下一个结点

};

class Cangkuguanli { //类定义与实现

private:

int length;//客户数量

Goods * head;//列表的头结点

Goods * current;//当前结点

public:

Cangkuguanli()//构造函数

{

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;

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 ? (Y N) "; //是否继续存入新产品

cin>>g;

if(g!='Y'&&g!='N')

{

cout<<"\n error \n ";

}

}while(g!='Y'&&g!='N');

}while(g=='Y');//判断是否继续插入新结点

}

void Open ()//打开一个数据文件,并建立链表关联和文件中的记录对应

{

char fname[20];//文件名称

cout<<" input the name of the file \n";

cin>>fname; //输入要打开的文件名

ifstream infile (fname);//创建输入文件流

infile>>length;

cout<<"\n length is: "<

//if(length==0)cout<<" 数据为空\n";

for(int i=0;i

{

Goods * t=new Goods ;

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

void Save ()//保存链表信息到文件

{

if(length==0)

{

cout<<" 列表为空不需存盘 \n";

return ;

}

char fname[20];//文件名称

cout<<" input the name of the file you want to put data in \n";

cin>>fname;

ofstream outfile(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();//关闭文件流

}

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

{

if(current==NULL)

{

cout<<"\n元素为空 \n ";

return;

}

cout.fill(' ');

相关文档
最新文档