Общее количество деталей за неделю
⇐ ПредыдущаяСтр 3 из 3
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 - 2025 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|