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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Сосчитать количество чисел удовлетворяющих условию... http://www.cyberforum.ru/cpp-beginners/thread527408.html
Нужно сосчитать количество чисел удовлетворяющих условию А(i)>B(i), где А(i)>B(i) - одномерные массивы целых чисел одинаковой длины.
C++ Шифрование методом Цезаря Шифрование методом Цезаря со сдвигом на 6 нужна блок–схема http://www.cyberforum.ru/cpp-beginners/thread527397.html
C++ Создание структуры с последующей сортирокой даты, сортровка людей по полу и дате А здесь смотрели?
Здравствуйте,помогите пожалуйста с данной задачей: создать структурный шаблон содержащий фамилию, имя, пол, рост, дату рождения человека.По запросу пользователя вывести : -всех данных отсортированных в алфавитном порядке; -отдельно данных о мужчинах, о женщинах; -средний рост мужчин; -фамилии и имени самой молодой женщины, из тех, чей рост превосходит средний рост мужчин(возраст...
Определить число символов в самом длинном слове строки C++
Т.к. я полный 0 в этом, обращаюсь сюда. Нужно определить число символов в самом длинном слове строки. Слова отделяются знаком “/”. Напишите через Borland.
C++ Перевести массив char в переменную string http://www.cyberforum.ru/cpp-beginners/thread527378.html
Помогите перевести массив char в переменную string
C++ Считать посимвольно текст из файла Ребят помогите, необходимо написать программу, которая считывает посимвольно текст из файла, заносит эти символы в массив типа char и потом нужно записать эти символы из char в string подробнее

Показать сообщение отдельно
Polikarpic
46 / 46 / 7
Регистрация: 29.06.2011
Сообщений: 174
25.03.2012, 12: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
#include <iostream>
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace std;
 
struct user {
        char name[20];
        char number[20];
        char address[20];
    } num[20];
 
void add(int n, int *count);
void del(int n, int *count);
void fin(int n, int *count);
void list(int n, int *count);
 
int main() {
 
int n = 20;
int count = 0;
int change = 0;
while (true) {
cout<<"whats need to do?"<<endl;
cout<<"1-add number"<<endl;
cout<<"2-delete number"<<endl;
cout<<"3-find number"<<endl;
cout<<"4-list all numbers"<<endl;
cin>>change;
switch(change) {
    case 1: add(n, &count); break;
    case 2: del(n, &count); break;
    case 3: fin(n, &count); break;
    case 4: list(n, &count); break;
}
}
  return 0;
}
 
void add(int n, int *count) {
    if (*count == n) { cout<<"impossible adding record"<<endl;
                        return; }
    cout<<"surname: "<<endl;
    cin>>num[*count].name;
    cout<<"number:"<<endl;
    cin>>num[*count].number;
    cout<<"address:"<<endl;
    cin>>num[*count].address;
    (*count)++;
    return;
}
/* функция удаления записи
   ищет в списке нужную фамилию
   удаление-искажаем запись, тем самым исключая её 
   проверка на пустоту списка не нужна, т.к.
   цикл мы гоним до указателя на текущую запись 
   и поиск совсем маленький
   сигн. либо о нахождении и удалении, либо о том, что такой фамилии в списке нет
   Баг : когда мы удаляем, мы не можем сдвинуть указатель на тек. область памяти, тем самым теряя её
   как исправить-пока неизвестно(проблему могли бы решить связные списки)*/
void del(int n, int *count) {
    char surname[20];
    int i;
    bool flag = 0;
    cout<<"surname:"<<endl;
    cin>>surname;
    cout<<endl;
    for (i = 0; i < (*count) && i < n; i++) 
        if (!strcmp(surname,num[i].name))  { num[i].name[0]=0; flag = 1;
        cout<<"record sucessfuly deleted"<<endl; }
        if (!flag)
            cout<<"no records with such surname"<<endl;
        return;
}
/* функция нахождения элемента списка
   Багов не обнаружено*/
void fin(int n, int *count) {
    char surname[20];
    int i;
    bool flag = 0;
    cout<<"surname:"<<endl;
    cin>>surname;
    cout<<endl;
    for(i = 0; i < (*count) && i < n; i++)
        if (!strcmp(surname,num[i].name)) { cout<<"surname :"<<num[i].name<<endl;
                                            cout<<"number :"<<num[i].number<<endl;
                                            cout<<"address :"<<num[i].address<<endl;
                                            flag = 1;
                                            }
        if(!flag) cout<<"impossible find record"<<endl;
 
    return;
}
/* функция вывода списка
   выводит те элементы, которые не были испорчены(удалены)*/
void list(int n, int *count) {
    int i;
    for (i = 0; i < (*count); i++)
        if (num[i].name[0] != 0 && (*count) != 0) { cout<<"LIST:"<<endl;
                                                    cout<<endl;
                                                    cout<<num[i].name<<endl;
                                                    cout<<num[i].number<<endl;
                                                    cout<<num[i].address<<endl;
                                                    cout<<"---------------------"<<endl;
                                                    }
    return;
}
 
Текущее время: 00:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru