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

структуры (подскажите где ошибки) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Гляньте код... http://www.cyberforum.ru/cpp-beginners/thread32296.html
В тексте, состоящем из русских букв, подсчитайте количество гласных букв. #include <iostream.h> #include <conio.h> #include <stdio.h> void main() { char s;
C++ Задача на последовательность отрицательных чисел(не работает) Во всех последовательностях отрицательных чисел поменят местами минимальное и максимальное значение местами Вот код: #include <stdio.h> #include <time.h> #include <stdlib.h> int Ar; int main(void) { int i, j; int nn; int ib; http://www.cyberforum.ru/cpp-beginners/thread32291.html
Задан двумерный массив C++
Задан двумерный массив Q(C,S). Найти среднее геометрическое всех элементов. Если это сделать невозможно, выдать сообщение о причине.
C++ Найти НОК
Помогите решить задачу: Найти наименьшее общее кратное четырех заданных натуральных чисел.
C++ Динамические структуры - информация о книгах в библиотеке http://www.cyberforum.ru/cpp-beginners/thread32240.html
Надеюсь на вашу благосклонность... Нужна помощь составить программу для курсовой, учусь на первом курсе, только начали изучать С++, а уже дали курсовик, даже не знаю с чего начать...Если вас не затруднит, выделите немного времени, помогите пожалуйста! Я сам конечно пытаюсь сделать, рыскаю по и-нету в поисках доп. ин-фы о ДС, но буду рад, если кто-нибудь все же поможет... Вот условие задачи:...
C++ Здача на строки Получить из слова a, вычёркиванием некоторого кол-ва букв, слова b. Отобразить на экране промежуточные этапы. Добавлено через 4 часа 46 минут 10 секунд Тем кто поможет заранее спс, а код оформите на C подробнее

Показать сообщение отдельно
ISergey
Maniac
Эксперт С++
1373 / 884 / 52
Регистрация: 02.01.2009
Сообщений: 2,653
Записей в блоге: 1
02.05.2009, 03:41
Особо не буду расказывать, но
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
#define _CRT_SECURE_NO_DEPRECATE
# include <iostream>
# include <iomanip>
using namespace std;
 
struct name
{
    char fam[30]; //фамилия
    char imja[30]; //имя
    char otches[30];//отчество
 
};
 
 
struct person
{
    name work; // Имя, фамилия, отчество.
    char post[30]; // должность
    int time; // количество отработаных часов
    int day ; // количество не рабочих дней
    int salary; // Зарплата.
 
};
 
 
 
//************функции***************
 
void Print (const person * pEn , int size);
void Fill(person *pEn , int size);
void Add (person *&e,int &size , const person *pEn);
 
void Delete(person *&p, int index, int size);//удалить по номеру 
void FindPFam(/*_in*/const char *fam, const person *p,int size,/*_out*/ person &op);//поиск !?
 
void copy_p(person &p, const person &cp);
 
int main ()
{
    setlocale(0,"RUS");
    int size = 2;
 
    person *pEn = new person[size];
 
    Fill ( pEn ,size );
    Print ( pEn ,size );
 
    cout<<endl;
 
    person *nEn = new person;
    Fill(nEn,1);
 
    Add(pEn,size,nEn);
    Print(pEn ,size);
 
    cout<<endl;
 
    Delete(pEn,0,size);
    person out;
    FindPFam("test",pEn,size,out);
    Print(&out,1);
 
    delete[] pEn;
    system("pause");
    return 0;
}
 
 
void Delete(person *&p, int index, int size){
    person *old = p;
    p = new person[size - 1];
    for(int i = 0, j = 0; i < size; ++i)
    {
        if(i != index){
            copy_p(p[j],old[i]);
            ++j;
        }
    }
    --size;
    delete[] old;
}
void FindPFam(/*_in*/const char *fam, const person *p,int size,/*_out*/ person &op){
    for(int i = 0; i < size; ++i)
    {
        if(strcmp(p[i].work.fam,fam)){// или так  if(!strcmp(p[i].work.fam,fam))
/*не проверял*/
            copy_p(op,p[i]);
            return;
        }
    }
}
 
void copy_p(person &p, const person &cp){
    strcpy(p.work.fam , cp.work.fam);
    strcpy(p.work.imja , cp.work.imja);
    strcpy(p.work.otches , cp.work.otches);
    strcpy(p.post , cp.post);
 
    p.time = cp.time;
    p.day = cp.day;
    p.salary = cp.salary;
}
void Print (const person * pEn , int size)
{
    for(int i = 0; i < size; i++, pEn++)
    {
 
        cout<< setw(10)<<"Фамилия: "<<pEn->work.fam<<endl
            << setw(10)<<"Имя: "<<pEn->work.imja<<endl
            << setw(10)<<"Отчество: "<<pEn->work.otches<<endl
            << setw(10)<<"Должность: "<<pEn->post<<endl
            << setw(10)<<"Рабочее время: "<<pEn->time<<endl
            << setw(10)<<"Выходные дни: "<<pEn->day<<endl
            << setw(10)<<"Зарплата: "<<pEn->salary<<endl
            <<endl;
    }
}
 
void Fill(person *pEn , int size)
{
    for (int i = 0; i < size; i++, pEn++)
    {
        cout<<"Введите Фамилию: ";      cin>>pEn->work.fam;
        cout<<"Введите имя: ";          cin>>pEn->work.imja;
        cout<<"Введите отчество: "; cin>>pEn->work.otches;
        cout<<"Введите должность: ";cin>>pEn->post;
        cout<<"Введите количество отработаных часов: ";                 cin>>pEn->time;
        cout<<"Введите количество неробочих дней за месяц: ";   cin>>pEn->day;
        cout<<"Введите зарплату: ";                                                     cin>>pEn->salary;
        cin.ignore();
    }
}
 
void Add (person *&e,int &size , const person *pEn)
{
    const person *old = e;
    e = new person[size + 1];
 
    for (int i = 0; i < size; i++)
        copy_p(e[i],old[i]);
    copy_p(e[size],*pEn);
    ++size;
    delete [] old;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru