Смекни!
smekni.com

Язык программирования С 3 (стр. 3 из 5)

Программа должна выполнять в общем три задачи:

1.Создание файла.

2.Чтение данных из файла.

3.Вывод данных на экран дисплея.

4.Обработка данных по заданию Б.

Все полученные результаты отобразить на экране.

Задание

А. Создать файл содержащий сведения о количестве изделий, собранных сборщиками цеха за неделю. Каждая запись содержит поля – фамилия сборщика, количество изделий, собранных им ежедневно в течение шестидневной недели ( понедельник, вторник, среда, четверг, пятница, суббота) Количество записей –более 25

сборщику просуммировать количество деталей, собранное им за неделю. Определить сборщика, собравшего наибольшее число изделий и день когда он достиг наивысшей производительности труда.

7.1 Исходные данные

Даны сведения о количестве изделий, собранных сборщиками цеха за неделю.

Составлена таблица исходных данных.

ФИО ИЗДЕЛИЯ
Понедельник Вторник Среда Четверг Пятница Суббота
1.Авраченков 40 40 40 50 50 50
2.Агонян 40 40 50 50 50 30
3.Андреев 40 40 40 40 40 40
4.Анюков 50 50 50 50 40 40
5.Большаков 40 30 30 40 40 30
6.Брянцев 30 30 40 40 30 40
7.Быстров 40 40 40 40 40 40
8.Валерьев 50 50 50 50 30 30
9.Васнецов 20 40 40 50 50 40
10.Гагарин 50 50 30 30 40 20
11.Гарын 40 40 40 40 40 40
12.Грибов 50 40 50 50 50 50
13.Григорьев 40 40 40 50 50 50
14.Герасимов 30 20 30 40 40 50
15.Дакур 40 30 30 50 50 40
16.Денисов 20 30 40 50 60 40
17.Дынин 30 30 30 30 30 30
18.Евсеев 50 50 50 40 40 30
19.Рыбин 40 30 40 40 40 40
20.Тимощук 40 50 60 50 30 40
21.Титов 70 50 60 60 50 40
22.Никитов 20 20 30 40 40 50
23.Мандрыкин 40 50 50 50 40 30
24.Чентофальски 30 30 30 40 40 50
25.Перов 50 40 30 40 30 30


7.2 Выходные данные


По каждому сборщику просуммировать количество деталей, собранное им за неделю. Определить сборщика, собравшего наибольшее число изделий и день когда он достиг наивысшей производительности труда.

ФИО
Общее количество деталей за неделю Определение сборщика и наибольших значений
1.Авраченков 270
2.Агонян 260
3.Андреев 240
4.Анюков 280
5.Большаков 210
6.Брянцев 210
7.Быстров 240
8.Валерьев 260
9.Васнецов 240
10.Гагарин 220
11.Гарын 240
12.Грибов 290
13.Григорьев 270
14.Герасимов 210
15.Дакур 240
16.Денисов 240
17.Дынин 180
18.Евсеев 260
19.Рыбин 230
20.Тимощук 270
21.Титов 330 Среда
22.Никитов 200
23.Мандрыкин 260
24.Чентофальски 220
25.Перов 220

8. Таблица значения переменных.

имя поля

название

тип данных

размер (байт)

1

Фамилия

Фамилия

F

1

2

Понедельник

изделия

izd[0]

3

вторник

изделия izd[1]

4

среда

изделия

izd[2]

5

четверг

изделия

izd[3]

6

пятница

изделия

izd[4]

7

суббота

изделия

izd[5]


9. Основная функция void main()

Использование void

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

Каждая функция в программе имеет уникальное имя, а каждая программа имеет по крайней мере одну функцию с именем main.

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

Каждая программа на С++ имеет один вход, с которого начинается выполнение программы, - главную программу. В программах С++ оператор void main(void) указывает стартовую точку вашей программы.

В Си функция void main() – это самая главная функция, в ней программы всегда выполняется первой, а потом при необходимости из нее можно вызвать другие функции.

Моя программа включает в себя 4 подфункций:

Функция ввода информации – int vvod()

Функция чтение данных из файла – void ofile()

Функция вывода информации по номеру телефона – int vd1()

Функция вывода информации по году установки – int vd2()


9.1 Бл
ок схема



9.2 Текст программы

#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,"&bsol;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,"&bsol;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 - наибольшее количество изделий";