Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Deizven
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 4
#1

Программирование комбинированных задач на языке С++

14.06.2013, 01:46. Просмотров 378. Ответов 3
Метки нет (Все метки)

Помогите написать программу с использованием файлов и структур.
Заполнить расчетную ведомость:

Табельный номер ___Фамилия работника_______Всего начислено_____Всего вычтено_________Сальдо
___________________________________________________________________________долг____к выдаче
4215________________Котов_____________________128,15_________132,20____________*______*
4216________________Титов_____________________312,61__________83,72____________*_______*
4218________________Янош______________________147,45__________13,15____________*_______*

Всего_________________________________________________________________________*_______*
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2013, 01:46
Ответы с готовыми решениями:

Программирование на языке C++
Известны данные о мощности двигателей(в л.с.) и стоимость 30 легковых...

Программирование на языке C++ Шаблоны функций
Помогите пожалуйста В первом уроке вы реализовали простой шаблон...

Программирование линейных списков на языке СИ
Представить таблицу в виде линейного списка L, элементами которой являются...

Программирование на языке С++ Лабораторный практикум
Нужна решение по этим лабораторным работам. Лаб с 1-3 del Лаб с 4-8 del

Программирование задач с использованием строк
Нужно введите строку символов. Подсчитать и ввести на экран количество...

3
newyork7776
350 / 343 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
Завершенные тесты: 1
14.06.2013, 02:25 #2
А вашего кода нет?
0
Deizven
0 / 0 / 0
Регистрация: 12.06.2013
Сообщений: 4
14.06.2013, 03:09  [ТС] #3
пока есть только часть, отвечающая за ввод
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <iostream.h>
#include <stdlib.h>
#include <fstream.h>
char Name[10];
struct ved
{ int tn;
char fam[10];
float nach;
float vich;
float dolg;
float vidach;
} worker;
 
void vvod()
{ofstream out_file(Name);
if(!out_file)
{cout<<"ERROR!!!";
exit(1);
}
int c;
do
{ 
cout<<"tabelniy nomer"<<endl;
cin>>worker.tn>>endl;
cout<<"familia"<<endl;
cin>>worker.fam>>endl;
cout<<"Nachisleno"<<endl;
cin>>worker.nach>>endl;
cout<<"Vichteno"<<endl;
cin>>worker.vich>>endl;
cout<<"Dolg"<<endl;
cin>>worker.dolg>>endl;
cout<<"Vidacha"<<endl;
cin>>worker.vidach>>endl;
cout<<"Prodolzhit?(yes-1!no-0)";
cin>>c;
}
while (c!=0);
cout <endl<<endl<<endl;
out_file.close();
}
0
newyork7776
350 / 343 / 279
Регистрация: 21.05.2013
Сообщений: 1,312
Завершенные тесты: 1
14.06.2013, 03:11 #4
Вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
FILE *fl;
typedef struct
{
    int number;
    char fio[30];
    int nach;
    int vich;
    int dolg;
unsigned char matem;
unsigned char oaip;
} robot;
robot praz[300]; // Масив структур
char name[20]; // Название файла
int vsegod=0;  //Всего долга
int nst=0; // Число введених структур
int menu(); // Меню
void nnf(); // Ввести ім’я файла
void newf(); // Создать новый файл
void spisok(); // Ввести список
void opf(); // Отрить файл
void resc(); // Вивести результат на екран
void resf(); // Вивести результат в файл
void dolg();  //Узнать долг
void vsegodolga(); // Узнать суму
int main()
{
    setlocale(LC_ALL, "Russian");
 
while (true)
{
switch (menu())
{
case 1: nnf(); break;
case 2: newf(); break;
case 3: spisok(); break;
case 4: opf(); break;
case 5: resc(); break;
case 6: resf(); break;
case 7: return 0;
default: "Введите првельно!";
}
puts("Press any key to continue");
getch(); system("cls");
}}
int menu() // Меню
{
cout << "Виберите" << endl;
cout << "1. Ввести имя файла" << endl;
cout << "2. Новый файл" << endl;
cout << "3. Заполнить файл" << endl;
cout << "4. Открыть файл" << endl;
cout << "5. Показать результат" << endl;
cout << "6. Записать в файл" << endl;
cout << "7. Выход" << endl;
int i;
cin >> i;
return i;
}
void nnf() // Ввести ім’я файла
{
cout << "Введите название фйла" << endl;
cin >> name;
}
void newf() // Створити новий файл
{
if ((fl = fopen(name,"wb"))==NULL)
{
cout << "Ошибка при создание"<<endl;
exit(1);
}
cout << "OK" << endl;
fclose(fl);
}
void spisok() // Ввести список
{
if ((fl = fopen(name,"rtb+"))==NULL)
{
cout << "Ошибка при создание"<<endl;
exit(1);
}
cout << "Введите количество cотрудников = ";
cin >> nst;
for (int i=0; i<nst; i++)
{
    cout << "Табельный номер : ";
    cin >> praz[i].number;
    cout << "Фамилия работника : ";
    cin >> praz[i].fio;
    cout << "Всего начислено: ";
    cin >> praz[i].nach;
    cout << "Всего вычтено : ";
    cin >> praz[i].vich;
 
fwrite( &praz[i], sizeof(robot), 1, fl );
}
fclose(fl);
}
void opf() // відкрити файл
{
if ((fl = fopen(name,"rb"))==NULL)
{
cout << "Ошибка при откритее"<<endl;
exit(1);
}
nst=0; robot std;
while(true)
{
int nwrt = fread( &std, sizeof(robot), 1, fl );
if (nwrt!=1) break;
praz[nst]=std;
cout << " Номер = "<<praz[nst].number << "\n     Фамилия работника = " << praz[nst].fio << "\n     Всего начислено = " 
<< praz[nst].nach << "\n     Всего вычтено = " << praz[nst].vich
<< "\n     Долг = " << praz[nst].dolg << endl;
nst++;
}
fclose(fl);
}
void resc() // Вивести результат на екран
{
for (int i=0; i<nst; i++)
praz[i].dolg=(praz[i].nach - praz[i].vich)
cout << " Долг " << praz[i].fio<< " = " <<praz[i].dolg << endl;
}
void resf() // Вивести результат в файл
{
char namet[30];
FILE *ft;
cout << "Введите имя файла" << endl;
cin >> namet;
if ((ft = fopen(namet,"w"))==NULL)
{
cout << "Ошибка при создание "<<endl;
exit(1);
}
char s[80];
for (int i=0; i<nst; i++)
praz[i].dolg=(praz[i].nach - praz[i].vich);
strcpy(s, praz[i].dolg);
strcat(s, "\n"); // Додати роздільник рядків
fputs(s, ft);
fclose(ft);
}
 
void doolg()
{
    for (int i=0;i<nst;i++)
        praz[i].dolg=(praz[i].nach - praz[i].vich)
}
 
 
void vsegodolga()
{
    for(int i=0;i<nst;i++)
        vsegod=praz[i].dolg+vsegod;
}
если у кого-то будет желание то пусть немного подправит, а то дальше я незнаю что можна сделать

Добавлено через 1 минуту
Deizven, подправь мой код пожалуста
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.06.2013, 03:11

Программирование задач обработки файлов
Дан файл f, компоненты которого являются целыми числами. Записать в файл g...

Stepik.org Программирование на языке C++ Шаблоны функций
Помогите пожалуйста, уже который день не могу сделать программу. Шаблонный...

Программирование задач обработки структур и файлов
Даны сведения о книгах: автор, название, год издания. Вывести на экран сведения...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru