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

更新时间:2023-06-15 15:05:38 阅读: 评论:0

源程序:
# include <fstream.h> //包含文件读写
# include <iostream.h>
# include <string.h> //包含strcmp()字符是否相等
#include <stdlib.h>  //包含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];//药品数量chillout
  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;                                                          chandler
                  cout<<"  请输入单价  :  ";
                  cin>>temp->price;
                  cout<<"  请输入药品数量:  ";
                  cin>>temp->number;
                  cout<<"  请输入总费用 : ";
                  cin>>temp->cost;
                  cout<<"  请输入日期 (**** ** **) : ";   
                  cin>>temp-&ar>>temp-&h>>temp->indate.day;
                  cout<<" 请输入药品有效期 (**** ** **):";
                  cin>>temp-&ar>>temp-&h>>temp->xiaoqi.day;
                  cout<<"  请输入药品种类: ";
                  cin>>temp->kind;
            if(head==NULL){head=temp;current=temp;}  //head头指针,current尾指针
                  el {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];//文件名称
qiy            cout<<" input the name of the file \n";
            cin>>fname;  //输入要打开的文件名
            ifstream  infile (fname);//创建输入文件流
                infile>>length;
                cout<<"\n length is: "<<length<<endl;
                //if(length==0)cout<<" 数据为空\n";                           
                for(int i=0;i<length;i++)//创建新的结点保存文件的数据
                {
                Goods * t=new Goods ;
                t->next=NULL;
                infile>>t->name>>t->price>>t->number>>t->cost>>t->kind>>
                     
t-&ar>>t-&h>>t->indate.day;
             
if(head==NULL){head=t;current=t;}//跟上面的链表创建相似
                el {current->next=t,current=t;}           
                }
                infile.clo();//关闭文件流           
        }//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<<length<<endl;//先写入文件的长度
        while (temp!=NULL)//把所有结点写入到文件fname
        {
          outfile<<temp->name<<" "<<temp->price<<" "<<temp->number<<" "<<temp->cost<<" "<<temp->kind
cumtube              << " "<<temp-&ar<<" "<<temp-&h<<" "<<temp->indate.day<<" "<<temp-&ar<<" "<<temp-&h<<" "<<temp->xiaoqi.day<<endl;  //写入每个结点信息
          temp=temp->next;
        }
        outfile.clo();//关闭文件流
}
void printinfor( Goods * current)//输出一个结点的信息到字符界面
{
  if(current==NULL)
  {
cout<<"\n元素为空 \n ";
return;
  } 
        cout.fill(' ');
    cout<<current->name;
    cout.width(8);                                       
       
cout.width(8);
    cout<<current->price;
塔塔粉是什么    cout.width(8);
        cout<<current->number;
    cout.width(8);
    cout<<current->cost; //就是给current->cost10个字符输出,不够往前面加‘ ’空格
    cout.width(10);
    cout<<current->kind;
cout.width(10);
cout<< current-&ar<<"."<<current-&h<<"."<<current->indate.day;
cout.width(10);
cout<<current-&ar<<"."<<current-&h<<"."<<current->xiaoqi.day;
cout<<endl;
}// printinfor
void Show()//输出所有结点信息到字符界面
{
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);
48yr old japaneppcout<<"总费用";
ikumicout.width(10);
cout<<"药品的种类";
cout.width(15);
cout<<"购进时间";
cout.width(15);
cout<<"有效期";
cout<<endl;  //输出属性列
while(current!=NULL)
{  //循环输出所有结点
  printinfor( current );
 
current=current->next;
}
}//show
Goods *Searchindate(Date t){  //按购入日期搜索  返回结点指针temp
    //结构体t含有t.h t.day三个信息块
Date d;
bool f=fal;
Goods * temp;

本文发布于:2023-06-15 15:05:38,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/90/146028.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:结点   文件   药品   输入   信息   输出
相关文章
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图