Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Общее количество деталей за неделю




 

5.Определение сборщика и наибольших значений


Зак лючение.

 

В результате проделанной работы была разработана программа задач о сборщиках и сборщика собравшего наибольшее число изделий за неделю. Программа состоит из двух модулей, которые обеспечивают создание файла, его считывание, обработку файла по условию, вывод данных на экран. Программное средство разработано в среде программирования С++. В процессе написания программы я более подробно изучил раздел программирования на С++ и получил дополнительные навыки.

 


Список использованной литературы .

1.Франка П. С++: учебный курс, Питер,2001-528 с.

2. Герберт Шилдт. Самоучитель С++, 3-е издание. Санкт-Петербург 1998-688 с.

3. И.Г. Семакин: Основы программирования: Учебник-Мастерство, 2002 г-432 с.

4. Бондарев В.М. Программирование на С++. 2-е изд. -Харьков: “Компания СМИТ”,2005.-284 с.

5.С/С++.Программирование на языке высокого уровня /Т.А.Павловская.- СПб.:Питер,2003.-461 с.: ил.

Листинг программы:

#include <iostream.h>

#include <conio.h>

#include <stdio.h>

#include <string.h>

 

const N = 30; //максимальное количество возможных записей

 

//запись

struct TIzdelie{

       char f[30]; //фамилия

       unsigned int izd[6];//количество изделий собраных ежидневно

} Iz,Izdelie[N];

 

char ch; //анализируемый символ

int Recs; //последняя введенная запись

 

//чтение данных из файл fname, возврщает количество считанных данных

int rData(char *fname){

       FILE *f;

       int i=-1;

       if ((f=fopen(fname,"r"))!=NULL){

                   i=0;

                   while(!feof(f)){

                              fscanf(f,"%15s",Izdelie[i].f);

                              fscanf(f,"%6d",&Izdelie[i].izd[0]);

                              fscanf(f,"%6d",&Izdelie[i].izd[1]);

                              fscanf(f,"%6d",&Izdelie[i].izd[2]);

                              fscanf(f,"%6d",&Izdelie[i].izd[3]);

                              fscanf(f,"%6d",&Izdelie[i].izd[4]);

                              fscanf(f,"%6d",&Izdelie[i].izd[5]);

                              fscanf(f,"\n");

                              ++i;

                   }

                   --i;

                   fclose(f);

       }

       return i;

}

 

//запись данных в файл fname

void wData(char *fname){

       FILE *f;

       if (Recs>=0){

                   f = fopen(fname,"w");

                   for(int i=0;i<=Recs;i++){

                              fprintf(f,"%15s",Izdelie[i].f);

                              fprintf(f,"%6d",Izdelie[i].izd[0]);

                              fprintf(f,"%6d",Izdelie[i].izd[1]);

                              fprintf(f,"%6d",Izdelie[i].izd[2]);

                              fprintf(f,"%6d",Izdelie[i].izd[3]);

                              fprintf(f,"%6d",Izdelie[i].izd[4]);

                              fprintf(f,"%6d",Izdelie[i].izd[5]);

                              fprintf(f,"\n");

                   }

                   fclose(f);

       }

}

 

//добавление записи

void AddRec(TIzdelie &r){

       window(1,1,80,50);

       textbackground(1);

       clrscr();

       textbackground(3);

       window(10,20,70,30);

       clrscr();

       textcolor(0);

       if(Recs == N-1){

                   gotoxy(2,2);

                   cout<<"Вы ввели максимальное количество записей.";

                   gotoxy(2,3);

                   cout<<"Для возврата в основное меню нажмите любую клавишу.";

                   getch();

       } else {

                   gotoxy(2,2);

                   cout<<"Фамилия: "; cin>>r.f;

                   gotoxy(2,3);

                   cout<<"Количество изделий за понедельник: "; cin>>r.izd[0];

                   gotoxy(2,4);

                   cout<<"Количество изделий за вторник: "; cin>>r.izd[1];

                   gotoxy(2,5);

                   cout<<"Количество изделий за среду: "; cin>>r.izd[2];

                   gotoxy(2,6);

                   cout<<"Количество изделий за четверг: "; cin>>r.izd[3];

                   gotoxy(2,7);

                   cout<<"Количество изделий за пятницу: "; cin>>r.izd[4];

                   gotoxy(2,8);

                   cout<<"Количество изделий за субботу: "; cin>>r.izd[5];

                   gotoxy(2,10);

                   cout<<"Для возврата в основное меню нажмите любую клавишу.";

                   getch();

                   ++Recs;

       }

}

 

//вывод меню

void OutMenu(){

       window(1,1,80,50);

       textbackground(1);

       clrscr();

       textbackground(3);

       window(20,20,60,30);

       clrscr();

       textcolor(0);

       gotoxy(2,2);

       cout<<"1 - ввод данных";

       gotoxy(2,3);

       cout<<"2 - отображение всех данных";

       gotoxy(2,4);

       cout<<"3 - общее колличество изделий на неделю";

       gotoxy(2,5);

       cout<<"4 - наибольшее количество изделий";

       gotoxy(2,6);

       cout<<"ESC - выход из программы";

}

 

//отображение всех записей

void OutAllData(){

       window(1,1,80,50);

       textbackground(1);

       clrscr();

       textbackground(3);

       window(10,5,70,45);

       clrscr();

       textcolor(0);

       gotoxy(2,2); cout<<"№";

       gotoxy(5,2); cout<<"Фамилия";

       gotoxy(25,2); cout<<"Пн.";

       gotoxy(30,2); cout<<"Вт.";

       gotoxy(35,2); cout<<"Ср.";

       gotoxy(40,2); cout<<"Чт.";

       gotoxy(45,2); cout<<"Пт.";

       gotoxy(50,2); cout<<"Сб.";

       for(int i=0;i<=Recs;i++){

                   gotoxy(2,2+2+i);   cout<<i+1;

                   gotoxy(5,2+2+i); cout<<Izdelie[i].f;

                   gotoxy(25,2+2+i); cout<<Izdelie[i].izd[0];

                   gotoxy(30,2+2+i); cout<<Izdelie[i].izd[1];

                   gotoxy(35,2+2+i); cout<<Izdelie[i].izd[2];

                   gotoxy(40,2+2+i); cout<<Izdelie[i].izd[3];

                   gotoxy(45,2+2+i); cout<<Izdelie[i].izd[4];

                   gotoxy(50,2+2+i); cout<<Izdelie[i].izd[5];

       }

       gotoxy(2,2+2+1+i);

       cout<<"Для возврата в основное меню нажмите любую клавишу.";

       getch();

}

 

//Общее количество деталей за неделю

void sumIzdelies(){

       window(1,1,80,50);

       textbackground(1);

       clrscr();

       textbackground(3);

       window(10,5,70,45);

       clrscr();

       textcolor(0);

       gotoxy(2,2); cout<<"№";

       gotoxy(5,2); cout<<"Фамилия";

       gotoxy(25,2); cout<<"Общее количество деталей за неделю";

       for(int i=0;i<=Recs;i++){

                   gotoxy(2,2+2+i);   cout<<i+1;

                   gotoxy(5,2+2+i); cout<<Izdelie[i].f;

                   int sum=0;

                   for (int j=0;j<6;j++){

                              sum+=Izdelie[i].izd[j];

                   }

                   gotoxy(25,2+2+i); cout<<sum;

       }

       gotoxy(2,2+2+1+i);

       cout<<"Для возврата в основное меню нажмите любую клавишу.";

       getch();

}

 

//Определение сбощика и наибольших значений

void Sborshik(){

       window(1,1,80,50);

       textbackground(1);

       clrscr();

       textbackground(3);

       window(10,10,70,40);

       clrscr();

       textcolor(0);

 

       //наибольшее количество изделий

       unsigned int max1=0; unsigned int max2=0;

       for(int i=0;i<=Recs;i++){

                   int sum=0;

                   for (int j=0;j<6;j++){

                              sum+=Izdelie[i].izd[j];

                   }

                   if (sum>max1) max1 = sum;

       }

       //в какой день наибольшее количество изделий

       for(i=0;i<=Recs;i++){

                   int sum=0;

                   for (int j=0;j<6;j++){

                              sum+=Izdelie[i].izd[j];

                   }

                   if (sum == max1){

                              max2 = Izdelie[i].izd[0];

                              for (int j=1;j<6;j++)

                                          if (Izdelie[i].izd[j]>max2) max2=Izdelie[i].izd[j];

                   }

       }

       //отображение найденых значений

       int c=0;

       for(i=0;i<=Recs;i++){

                   int sum=0;

                   for (int j=0;j<6;j++){

                              sum+=Izdelie[i].izd[j];

                   }

                   if (sum == max1){

                              gotoxy(2,2+c);

                              cout<<"Наиболшее число изделий у: "<<Izdelie[i].f;

                              gotoxy(32,2+c);

                              cout<<"День: ";

                              int d=0;

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

                                          if (Izdelie[i].izd[j] == max2){

                                                      gotoxy(38+d*4,2+c);

                                                      if (j==0){

                                                                  cout<<"Пн.";

                                                                  ++d;

                                                      }else if (j==1){

                                                                  cout<<"Вт.";

                                                                  ++d;

                                                      }else if (j==2){

                                                                  cout<<"Ср.";

                                                                  ++d;

                                                      }else if (j==3){

                                                                  cout<<"Чт.";

                                                                  ++d;

                                                      }else if (j==4){

                                                                  cout<<"Пт.";

                                                                  ++d;

                                                      }else if (j==5){

                                                                  cout<<"Сб.";

                                                                  ++d;

                                                      }

                                          }

                              ++c;

                   }

       }

       gotoxy(2,2+1+c);

       cout<<"Для возврата в основное меню нажмите любую клавишу.";

       getch();

}

 

//код основной программы

void main(){

       clrscr();//очистка экрана

       textmode(64);// задание тектового режима 80x50 (ширина х высота)

       OutMenu();//вывод основного меню

       Recs = rData("izdeliya.dat");//чтение данных из файла если таковой имеется

       while((ch=getch())!=0x1B){

                   switch(ch){

                              case '1': AddRec(Iz);

                                                                                         Izdelie[Recs] = Iz;

                                                                                         break;

                              case '2': OutAllData();

                                                                                         break;

                              case '3': sumIzdelies();

                                                                                         break;

                              case '4': Sborshik();

                                                                                         break;

                   }

                   clrscr();

                   OutMenu();

       }

       wData("izdeliya.dat"); //запись данных в файл

}


Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...