Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
tema054
0 / 0 / 0
Регистрация: 28.01.2009
Сообщений: 12
#1

Сформировать список, в котором хранится информация о заболеваниях сотрудников - C++

28.01.2009, 22:57. Просмотров 1618. Ответов 11
Метки нет (Все метки)

Сформировать список, в котором хранится информация о заболеваниях сотрудников: ФИО, год рождения, заболевание, продолжительность болезни. Определить сотрудников, которые перенесли одно и тоже заболевание; заболевания с максимальной продолжительностью болезни; количество больничных каждого сотрудника; количество дней, пропущенных по болезни каждым сотрудником

Если можно напишите пожалуйста фрагмент программы которая создает такой список(с комментами если можно)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2009, 22:57     Сформировать список, в котором хранится информация о заболеваниях сотрудников
Посмотрите здесь:

Сформировать документ, в котором хранится информация о факультетах и их академические задолженности - C++
Сформировать документ, в котором хранится информация о факультетах и их академические задолженности. Напечатать информацию о факультетах с...

В двумерном массиве хранится информация о зарплате 18 сотрудников - C++
В двумерном массиве хранится информация о зарплате 18 сотрудников за каждый день (в первом столбце за пятое января, за втором). Определить...

Сформировать список, в котором содержится информация о сотрудниках подразделения: Ф.И.О., место рождения, год - C++
Сформировать список, в котором содержится информация о сотрудниках подразделения: Ф.И.О., место рождения, год рождения. Напечатать список...

Организовать двухсторонний список, в котором хранится текст - C++
помогите понять почему программа не работает, и как сделать чтобы она заработала #include <stdio.h> #include <iostream> #include...

Связный список, в котором информация о книгах сортируется по убыванию стоимости - C++
Нужно запрограммировать связный список, в котором информация о книгах сортируется по убыванию стоимости. Есть код: #include...

Сформировать новый список, в котором элементы расположены в порядке возрастания - C++
Дан список F=<1,8,9,0,1,3,2,4,1,12,23,1,23,2,19,1>.Сформировать новый список в котором элементы расположены в порядке...

Вывести информацию о сотруднике, список сотрудников пенсионного возраста, средний оклад сотрудников отдела - C++
Дан файл, содержащий информацию о сотрудниках отдела учреждения. Структура записи файла: фамилия и инициалы сотрудника; год...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
maximus09
32 / 32 / 3
Регистрация: 29.12.2008
Сообщений: 75
29.01.2009, 19:45     Сформировать список, в котором хранится информация о заболеваниях сотрудников #2
Для таких целей можно использовать структуру.

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
//---------------------------------------------------------------------------
 
#pragma hdrstop
 
#include <alloc.h>
#include <string.h>
 
 
//---------------------------------------------------------------------------
struct Sotrudnik{
    char* FIO;      //ФИО
    short God;          //Год рождения
    char* Diagnos;  //заболевание
//Начало болезни
    short b_day;          //день
    short b_monat;        //месяц
    short b_year;         //год
 
//Окончание болезни
    short e_day;          //день
    short e_monat;        //месяц
    short e_year;         //год
};
 
#pragma argsused
int main(int argc, char* argv[])
{
    Sotrudnik rabotnik[100];
//Заполнение списка
    rabotnik[0].FIO = (char*)malloc(strlen("Иванов Иван Иванович"));
    rabotnik[0].FIO = "Иванов Иван Иванович";
 
    rabotnik[0].God = 1980;
 
    rabotnik[0].Diagnos = (char*)malloc(strlen("Аппендицит"));
    rabotnik[0].Diagnos = "Аппендицит";
    rabotnik[0].b_day = 23;
    rabotnik[0].b_monat = 4;
    rabotnik[0].b_year = 2000;
    rabotnik[0].e_day = 12;
    rabotnik[0].e_monat = 5;
    rabotnik[0].e_year = 2000;
 
//Освобождение выделенной памяти при завершении работы программы
    free(rabotnik[0].Diagnos);
    free(rabotnik[0].FIO);
    rabotnik[0].Diagnos = NULL;
    rabotnik[0].FIO = NULL;
 
    return 0;
}
//---------------------------------------------------------------------------

Фрагмент программы выполнен на Borland С++ Builder 6.

В программе показан только процесс создания и заполнения списка, как вы и просили. Список заполнен данными только одного работника. Данные об остальных работниках вносятся аналогично. Число 100 в качестве количества работников взято условно.

После того как данные про всех работников будут введены, можно можно выполнить все изложенные в условии задачи операции.
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.01.2009, 00:20     Сформировать список, в котором хранится информация о заболеваниях сотрудников #3
maximus09

Код
rabotnik[0].FIO = (char*)malloc(strlen("Иванов Иван Иванович"));
Код
rabotnik[0].Diagnos = (char*)malloc(strlen("Аппендицит"));
это ошибки, но у Шилдта в книжке по C точно такая же, только в ещё более явном виде

надо так

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
/* выделяет память под строку и её нуль-символ */
main()
{
    char *p;
    int len;
    
    len = strlen("Иван");
    printf("%d\n", len);
    
    if ((p = malloc(strlen("Иван")+1)) == NULL)
        return 1;
    free((void *) p);
    return 0;
}
Код
    rabotnik[0].Diagnos = "Аппендицит";
строка записывается в read-only область т.к. это строковой литерал (строковая константа), чтобы занести строку в выделенный блок нужно сделать

Код
    strcpy(rabotnik[0].Diagnos, "Аппендицит");
когда у тебя строковая константа, ты не можешь её менять

т.е. можно сделать
Код
    Sotrudnik rabotnik[100] = { 
        {
            "Иванов Иван Иванович",
            1980,  
            "Аппендицит",  
            23,  
            4,  
            2000,
            12,  
            5,  
            2000
        },

        {
            "Петров Иван Иванович",
            1970,  
            "Аппендицит",  
            23,  
            4,  
            2000,
            12,  
            5,  
            2000
        }
    };
строки будут просто зафиксированы

а в первом случае, память выделяется, потом вместо указателя на неё записывается указатель на строковой литерал, который free пытается потом освободить
tema054
0 / 0 / 0
Регистрация: 28.01.2009
Сообщений: 12
30.01.2009, 02:15  [ТС]     Сформировать список, в котором хранится информация о заболеваниях сотрудников #4
Спасиб ребят тока жаль что она на Turboc30 неработает(((
maximus09
32 / 32 / 3
Регистрация: 29.12.2008
Сообщений: 75
30.01.2009, 06:01     Сформировать список, в котором хранится информация о заболеваниях сотрудников #5
Что именно не работает. Давай разбираться вместе.
tema054
0 / 0 / 0
Регистрация: 28.01.2009
Сообщений: 12
30.01.2009, 12:24  [ТС]     Сформировать список, в котором хранится информация о заболеваниях сотрудников #6
ну для начало turboc30 непонимает что это за библиотеки
#include <alloc.h>
#include <string.h>
Фенрир
42 / 38 / 2
Регистрация: 05.01.2009
Сообщений: 394
30.01.2009, 12:27     Сформировать список, в котором хранится информация о заболеваниях сотрудников #7
укажи пути вручную к папке Include
YurA_280784
Заблокирован
30.01.2009, 12:30     Сформировать список, в котором хранится информация о заболеваниях сотрудников #8
Вообще думаю вместо alloc malloc.h нуна
А так прикрепляю и аллок
Вложения
Тип файла: rar Alloc.h.rar (462 байт, 22 просмотров)
tema054
0 / 0 / 0
Регистрация: 28.01.2009
Сообщений: 12
30.01.2009, 12:41  [ТС]     Сформировать список, в котором хранится информация о заболеваниях сотрудников #9
теперь непонимает что это такое
#pragma hdrstop
accept
4820 / 3240 / 165
Регистрация: 10.12.2008
Сообщений: 10,682
30.01.2009, 12:53     Сформировать список, в котором хранится информация о заболеваниях сотрудников #10
там нужно
stdio.h (для NULL)
stdlib.h (для malloc и free)
string.h (для strlen и strcpy)
YurA_280784
Заблокирован
30.01.2009, 12:54     Сформировать список, в котором хранится информация о заболеваниях сотрудников #11
Не понимает так скопируй хэдер в котором #pragma hdrstop прописана в папку в которой файлы проекта находятся и коментни эту строчку, тольк в проге теперь ставь "твой хэдер" вместо <>....
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2009, 12:57     Сформировать список, в котором хранится информация о заболеваниях сотрудников
Еще ссылки по теме:

В файле хранится информация о бытовых приборах - C++
В файле record хранится инф-ия о поступивших в ремонт бытовых приборах:тип прибора,год выпуска,наименование дефекта,наименование нужной...

11.136. В массиве хранится информация о результатах 22 спортсменов, уча-ствовавших в соревнованиях по бегу на 100 м. Определить результа¬ты спортсмено - C++
11.136. В массиве хранится информация о результатах 22 спортсменов, уча-ствовавших в соревнованиях по бегу на 100 м. Определить результа¬ты...

11.110. В массиве хранится информация о стоимости 1 килограмма 20 видов конфет. Определить, сколько стоят самые дешевые конфеты - C++
11.110. В массиве хранится информация о стоимости 1 килограмма 20 видов конфет. Определить, сколько стоят самые дешевые конфеты.

В файле хранится произвольный текст, сформировать файл из слов, расположенных в алфавитном порядке - C++
В файле хранится произвольный текст, сформировать файл из слов, расположенных в алфавитном порядке (на оценку 5 баллов дубликаты слов...

Имеется список сотрудников фирмы - C++
Имеется список сотрудников фирмы, в котором записаны: - фамилия - имя - отчество - дата рождения - телефон - адрес: ...


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

Или воспользуйтесь поиском по форуму:
YurA_280784
Заблокирован
30.01.2009, 12:57     Сформировать список, в котором хранится информация о заболеваниях сотрудников #12
Вот и string.h
Вложения
Тип файла: rar string.h.rar (1.4 Кб, 26 просмотров)
Yandex
Объявления
30.01.2009, 12:57     Сформировать список, в котором хранится информация о заболеваниях сотрудников
Ответ Создать тему
Опции темы

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