Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 7
1

Записи, с паскаля на с++

25.01.2018, 17:19. Показов 1128. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Вечер добрый, на учёбе начали юзать плюсы, задание с Паскаля нужно переделать под с++,
написал,
данные вводятся, но сортировка и поиск не работает, и чепуху выдаёт(на скрине).

Поправьте, где не правильно, буду благодарен.

Условие задания:
Кликните здесь для просмотра всего текста


1.Описать запись с именем Zodiac, содержащую следующие поля:
• Фамилия, имя;
• знак Зодиака;
• день рождения (массив из трёх чисел);
2.Написать программу, выполняющую следующие действия:
• Ввод данных с клавиатуры в массив, состоящий из восьми элементов типа Zodiac; записи должны быть упорядочены по датам дней рождения;
• Вывод на экран информации о человеке, чья фамилия введена с клавиатуры; если таких нет, вывести на экран соответствующее сообщение.




Код на Паскале:

Кликните здесь для просмотра всего текста



C++ (Qt)
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
program lab7;
uses crt;
Type zodiac=record
   fio: string[45];
   znak: string;
   dat_r:array [1..3] of integer;
 
end;
 
var
q,y,t:integer;
pupil: array [1..7] of zodiac;
 
I:integer;
s:string;
begin
clrscr;
 
 
for I:=1 to 6 do
begin
writeln('vvedite info o ',I, '-m cheloveke');
writeln('FIO:');
readln(pupil[I].fio);
 
writeln('Datu rozhdenija:');
readln(pupil[I].dat_r[1]);
readln(pupil[I].dat_r[2]);
readln(pupil[I].dat_r[3]);
 
writeln('Znak zodiaka:');
readln(pupil[I].znak);
 
writeln('  ');
end;
 
writeln(' ');
 
 
for q:=1 to 6 do begin 
 
for i:=1 to 5 do begin
 
  if pupil[i].dat_r[3] > pupil[i+1].dat_r[3] then begin
 
   pupil[7]:=pupil[i+1];
    pupil[i+1]:=pupil[i];
    pupil[i]:=pupil[7];
 
end;
 
 
 
end;
end;
                   
 
for I:=1 to 6 do
 writeln(pupil[I].fio,' ', pupil[I].dat_r[1],' ', pupil[I].dat_r[2],' ', pupil[I].dat_r[3],' ', pupil[I].znak); 
 
writeln('');
 
writeln('vvedite familiyu dlya poiska:');
readln(s);
 
writeln('  ');
 
  for I:=1 to 6 do begin                
    if s = pupil[I].fio then begin
      writeln ( pupil[I].fio );
      writeln( pupil[I].dat_r[1],pupil[I].dat_r[2],pupil[I].dat_r[3]);
      writeln( pupil[I].znak);
      break;
    end
    else
      if I = 6 then
      writeln('TAKIH NeT!');
 
   end;
 
     readln
end.


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
#include <iostream>
#include <stdio.h>
#include <locale.h>
#include <string>
#include <conio.h>
#include <windows.h>
#include <math.h>
 
using namespace std;
struct zodiac
{
    char fio[500];
    char znak[500];
    int dat_r[3];
 
};
 
int main()
{
int q;
zodiac pupil[7];
zodiac x;
int i;
char s[500];
 
for (i=0;i<6;i++){
    cout << "vvedite inf o  "<< i << "-m" << endl;
 
cout << "vvedite fio  "<< endl;
cin>> pupil[i].fio;
 
cout << "vvedite datu rozhdenija  "<< endl;
cin>> pupil[i].dat_r[1]>>pupil[i].dat_r[2]>>pupil[i].dat_r[3];
 
cout << "vvedite znak zodiaka  "<< endl;
cin>> pupil[i].znak;
 
cout << " " <<endl;
}
 
cout << pupil[i].fio << endl;
cout << pupil[i].znak << endl;
cout << pupil[i].dat_r[1] << endl;
cout << pupil[i].dat_r[2] << endl;
cout << pupil[i].dat_r[3] << endl;
cout << "  " << endl;
 
    for (q=0;q<6;q++){   //3333
            for (i=0;i<6;i++){
                if (pupil[i].dat_r[3] > pupil[i+1].dat_r[3]) {
                    x=pupil[i+1];
                pupil[i+1]=pupil[i];
                pupil[i]=x;
                }
                else
 
                if ((pupil[i].dat_r[3] == pupil[i+1].dat_r[3]) && (pupil[i].dat_r[2] > pupil[i+1].dat_r[2])) {
                    x=pupil[i+1];
                pupil[i+1]=pupil[i];
                pupil[i]=x;
                }
                else
                if (pupil[i].dat_r[1] == pupil[i+1].dat_r[1]) {
                    x=pupil[i+1];
                pupil[i+1]=pupil[i];
                pupil[i]=x;
                }
            }
 
 
    }
 
for (i=0;i<6;i++){
    cout << pupil[i].fio << pupil[i].dat_r[1] << pupil[i].dat_r[2] << pupil[i].dat_r[3] << pupil[i].znak << endl;
    cout << " " <<endl;
}
 
cout << "vvedite familiju:  "<< endl;
cin>>s;
cout << "  " << endl;
 
 
    for (i=0;i<6;i++) {
        if (s == pupil[i].fio) {
          cout << "FIO:  "<< pupil[i].fio << endl;
               cout << "God:  "<< pupil[i].dat_r[3] << endl;
                    cout << "Znak:  "<< pupil[i].znak << endl;
break;
        }
        else
        if (i==6){
            cout<< "Takih net!" << endl;
        }
    }
 
 
}
скрин результата программы:
Миниатюры
Записи, с паскаля на с++  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.01.2018, 17:19
Ответы с готовыми решениями:

Закрыть вкладки Паскаля при исполнении Паскаля
В Паскаль АВС.Нет открыто несколько вкладок. Запускается следующая программа (вкладка). Как в нее...

Построить треугольник Паскаля. Используя треугольник Паскаля, вычислить 𝑘−ое число Фиббоначчи. Нумерация чисел Фиббона
#include &lt;iostream&gt; using namespace std; int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Обьявить тип записи, выделить память динамически для этой записи и в одно из полей записи стрин
И вывести оценку в поле шоу мэсседж

Заменить описание записи - с анонса (начальный текст записи) на Дескрипшн записи
На пробном сайте http://djeysonborn2016.ru/ на главной странице отображаются записи (те что сразу...

4
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 7
25.01.2018, 17:28  [ТС] 2
Вот, чё на паскале выходило:
Миниатюры
Записи, с паскаля на с++  
0
0 / 0 / 0
Регистрация: 17.01.2018
Сообщений: 6
25.01.2018, 17:33 3
Это делается легко , додумайтесь сами!
0
0 / 0 / 0
Регистрация: 18.10.2017
Сообщений: 7
25.01.2018, 17:35  [ТС] 4
RusTNT, у меня таких навыков, поэтому обратился к профессионалам
0
0 / 0 / 0
Регистрация: 17.01.2018
Сообщений: 6
25.01.2018, 17:39 5
...
0
25.01.2018, 17:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.01.2018, 17:39
Помогаю со студенческими работами здесь

ListView: добавление записи, выбор записи, удаление записи
на форме есть три текст бокса: textbox1(имя), textbox2(фамилия), textbox3(отчество),...

Автоматическое добавление записи в таблицу, после добавления записи в другой таблице
Привет всем! Подскажите, как Access 2010 сделать так, чтобы при добавлении записи в одной таблице,...

Добавление и удаление записи, поиск записи с максимальной зарплатой, сортировка по алфавиту
Помогите, пожалуйста!:help: Очень нужно сделать до 26!(а если не сложно, то еще и с комментариями...

Вывести связанные записи из второй таблицы при выборе записи в первой
Есть две таблицы, в одной пишется имя и фамилия, а в другой телефоны и их может быть несколько,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru