Программа в С++

Автор: Пользователь скрыл имя, 14 Января 2012 в 11:03, лабораторная работа

Описание работы

Аккумуляторный завод выпускает продукцию, для учёта которой использует следующие реквизиты: наименование изделия, дату выпуска, срок гарантии, количество выпущенной продукции, стоимость единицы изделия. Выдать пользователю следующие документы:
-Сводную ведомость изделий со всеми реквизитами
-Список изделий, изготовленных в текущем месяце, с указанием полной стоимости изделий.

Работа содержит 1 файл

РГЗ.doc

— 42.00 Кб (Скачать)

РГЗ 

18. Аккумуляторный завод выпускает продукцию, для учёта которой использует следующие реквизиты: наименование изделия, дату выпуска, срок гарантии, количество выпущенной продукции, стоимость единицы изделия. Выдать пользователю следующие документы:

-Сводную ведомость изделий со всеми реквизитами

-Список изделий,  изготовленных в текущем месяце, с указанием полной стоимости  изделий. 

// RGZ 2218V.cpp : Defines the entry point for the console application.

//

#include <string.h>   

#include <fstream>

#include <iostream>

#include <windows.h> 

using namespace std;

struct sInfo

{

      int Namber;

      char dataP[10];

      char sonameZ[10];

      char adres[18];

      char vid[10];

      char dataZ[9];

      int money;

      char sonameM[10];

};

      struct Master

      {

            int sum;

            char NameMaster[10];

      };

      int count=0;

      sInfo *sad;

//-----------------------------------------------------------------------------

void ReadFile()

{

      ifstream input_file("data.txt");

      char line[256];

      while(!input_file.eof())

      {

            count++;

            input_file.getline(line, sizeof(line)) ;

      }

      input_file.close();

      ifstream input_file1("data.txt");

      sad = new sInfo[count];

      for(int i = 0; i<count; i++)

      {

            input_file1>>sad[i].Namber;

            input_file1>>sad[i].dataP;

            input_file1>>sad[i].sonameZ;

            input_file1>>sad[i].adres;

            input_file1>>sad[i].vid;

            input_file1>>sad[i].dataZ;

            input_file1>>sad[i].money;

            input_file1>>sad[i].sonameM;

      }

      input_file1.close();

}

//-----------------------------------------------------------------------------

void Print1()

{

            for(int i = 0; i<count; i++)

            {

                  cout<<sad[i].Namber<<"\t";

                  cout<<sad[i].dataP;

                  cout<<sad[i].sonameZ<<"\t";

                  cout<<sad[i].adres<<"\t";

                  cout<<sad[i].vid<<"\t";

                  cout<<sad[i].dataZ<<"\t";

                  cout<<sad[i].money<<"\t";

                  cout<<sad[i].sonameM<<"\t";

                  cout<<"\n";

            }

}

//------------------------------------------------------------------------------

void Print2()

{

            string DT = sad[0].dataZ;

            printf("\t\t %s \n",sad[0].dataZ);

            for(int i = 0; i<count; i++)

            {

                  if (DT.compare(sad[i].dataZ)!=0)

                  {

                              DT=sad[i].dataZ;

                              printf("\t\t %s \n",sad[i].dataZ);

                  }

                  cout<<sad[i].sonameM<<"\t";

                  cout<<sad[i].vid<<"\t";

                  cout<<sad[i].money<<"\t";

                  cout<<"\n"; 

            }

}

//----------------------------------------------------------------------------

void Print3()

{

      Master sMaster[10];

      char u[]="Введите номер месяца";

      char b[]="Ошибка";

    CharToOem(u,u);

      CharToOem(b,b); 

      int number;

      while (1)

      {

            printf("\n %s >",u);

            scanf("%i",&number);

                  if(number>0&&number<13) break;

                  printf("\n %s",b);

                  while (getchar()!='\n');

      }

      bool flag;

      int countMasters = 0;

      int index =0;

      for(int ii = 0; ii<count; ii++)

      {

            char cData[2];

            cData[0] = sad[ii].dataZ[3];

            cData[1] = sad[ii].dataZ[4];

            int idata = atoi(cData);

            if(number==idata)

            {

                  flag = false;

                  for(int j=0;j<3;j++)

                  {

                        if(strcmp(sMaster[j].NameMaster,sad[ii].sonameM)==0)

                        {

                              index = j;

                              flag=true;

                              break;

                        }

                  }

                  if(flag==false)

                  {

                        sMaster[countMasters].sum = 0;

                        strcpy(sMaster[countMasters].NameMaster,sad[ii].sonameM);

                        index = countMasters;

                        countMasters++;

                  }

                  sMaster[index].sum += sad[ii].money;

            }

      }

      int sum=0;

      for(int i = 0;i<countMasters;i++)

      {  

            cout<<sMaster[i].NameMaster<<"\t\t";

            cout<<sMaster[i].sum<<"\t\t";

            cout<<"\n";

            sum += sMaster[i].sum;

      }

      cout<<"SUM"<<"\t\t";

      cout<<sum; 

}

//----------------------------------------------------------------------------------

int main(void)

{

      char t[]="Сводную ведомость работ,  выполняемых мастерской со всеми  реквизитами.";

      char y[]="Ведомость работ по датам  исполнения заказов и по фамилиям  мастеров.";

      char o[]="Ведомость заработанной суммы  каждым мастером в текущем  месяце с указанием общей суммы, полученной мастерской.";

      char p[]="Выход.";

      char q[]="Введите номер меню";

      char d[]="Ошибка меню";

      CharToOem(t,t);

      CharToOem(y,y);

      CharToOem(o,o);

      CharToOem(p,p);

      CharToOem(q,q);

      CharToOem(d,d); 

      ReadFile(); 

      while(1)

      {

            int number;

            printf("\n 1 - %s",t);

            printf("\n 2 - %s",y);

            printf("\n 3 - %s",o);

            printf("\n 4 - %s",p);

            while (1)

            {

                  printf("\n %s >",q);

                  scanf("%d",&number);

                  if(number>0&&number<5) break;

                  printf("\n %s",d);

                  while (getchar()!='\n');

            }

            switch (number)

            {

            case 1:

                  Print1();

                  break;

     case 2:

                  Print2();

                  break;

            case 3:

                  Print3();

                  break;

     case 4:

                  exit(0);

                  break;

         default:

                  exit(0);

            }

      }

}

Информация о работе Программа в С++