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

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

Войти
Регистрация
Восстановить пароль
 
LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
#1

Студенческий журнал (УДАЛИТЬ элемент) - C++

13.02.2014, 00:45. Просмотров 234. Ответов 2
Метки нет (Все метки)

Происходит считывание группы и данных о студентах (фамилия, имя, дата рождения), далее мне нужно удалить одного студента (чей номер указывается с клавиатуры). Что-то не так с функцией Delete, а именно:

stud[j].fname=stud[j+1].fname;
stud[j].sname=stud[j+1].sname;
stud[j].date=stud[j+1].date;
Почему и как это исправить?


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
class Student 
{
public:
    char fname[50];
    char sname[50];
    char date[12];
};
 
class Jurnal
{ struct tm tm1;
struct tm tm2;
char d1[12], d2[12];
 
public:
    Student stud[30];
    char group[5];
    int w;
 int ReadF()
 {  int i(0); 
    char L[40];
    cout <<"Введите путь к файлу. " << endl;
    cin >> L;
 
    ifstream input_file(L);
    if (input_file.fail()) 
    { 
    cerr << " Ошибка при открытии myfile.txt !" << endl; 
    exit(1); 
    }
    else
    {if (!input_file.is_open()) cout << "_Файл_пуст_";
    else{
        //Чтение группы:
    cout << endl << " Группа : ";
    if ((! input_file.eof()) && (! input_file.fail()))
    {
    input_file.getline(group, sizeof(group)) ;
    if (! input_file.fail()) cout << group << endl;}
 
 
        //Чтение данных о студентах:
    cout << "====================================================" << endl;
    cout << "No | Фамилия:      | Имя:          | Дата рождения:|" << endl;
    cout << "---------------------------------------------------" << endl;
    while ((! input_file.eof()) && (! input_file.fail())&&(i<30))
    {
    input_file >> stud[i].fname;
    input_file >> stud[i].sname;
    input_file >> stud[i].date;
 
    if (! input_file.fail())
    cout << setw(3) << setiosflags(ios::right)<< i+1<< "|" << setw(15) << setiosflags(ios::right)<< stud[i].fname << "|" << setw(15) << setiosflags(ios::right)
    <<  stud[i].sname << "|" << setw(15) << setiosflags(ios::right)<< stud[i].date << "|"<< endl;
 
    i++;
    }
    cout << "====================================================" << endl;
    } 
    input_file.close();
    } return i;
  }
 
//_____________________Удаление________________________________
 
  void Delete(int n)
  {
      char  otvet;
    cout << "Желаете удалить анкету студента? (Y/N) ";
    cin >> otvet;
    if ((otvet=='N')||(otvet=='n')) {}
    else 
    {int p;
        cout << "Введите номер анкеты для её удаления ";
        cin >> p;
        for(int i=1; i<=n; i++)
        {
            if(i==p) 
            { 
                for(int j=p; j<n; j++)
                {
                    stud[j].fname=stud[j+1].fname;
                    stud[j].sname=stud[j+1].sname;
                    stud[j].date=stud[j+1].date;
                }
            }
        }
    }
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 00:45     Студенческий журнал (УДАЛИТЬ элемент)
Посмотрите здесь:

Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" - C++
Создать программу для работы с бинарным деревом, реализующую функции: добавить элемент, удалить элемент, вывести в виде «дерева». В C++ ...

Удалить из массива элемент, расположенный после 1-го max, и элемент после 1-го min) - C++
Задача такая: 1)Удалить из массива элемент, расположенный после первого элемента с максимальным значением, и элемент после первого...

Задача "Студенческий автобус" - C++
Здравствуйте. Помогите, пожалуйста, решить задачу (условие во вложениях) Мои индусские наброски вот: #include &quot;stdafx.h&quot; #include...

Удалить k - ый элемент - C++
Никак не разберусь с этой задачей: Удалить k - ый элемент массива A, состоящий из N элементов. Заранее спасибо.

Удалить элемент из массива - C++
#include &lt;iostream&gt; #include &lt;ctime&gt; using namespace std; void input(int *A,int n); void output (int *A,int n); void...

Удалить элемент из очереди - C++
Пытаюсь удалить элемент из очереди, пожалуйста, подскажите, как уже сделать, чтобы заработала данная функция (строки 71-78), с удалением...

Удалить максимальный элемент - C++
Всем привет. Хотелось бы получить от вас помощь..написать программу си++. Создать одномерный массив содержащий Х числовых элементов....

Удалить элемент из list - C++
Добрый день, нужно удалить значения в контейнере. Есть склад с фруктами, и пользователь хочет удалить определённый фрукт из таблицы. ...

Удалить нулевой элемент - C++
Дан массив с большим количеством нулевых элементов. Заменить в нем кажлую группу из нечетного количества подряд идущих нулей на один нуль,...

Удалить элемент из списка - C++
Есть список. Надо удалить тот елемент который размещен за заданым. Я пробовал чтото написать(55 строка) но оно не удаляет.#include...

Удалить из массива элемент - C++
Здравствуйте, помогите плиз с задачкой, Удалить из массива элемент, находящийся перед К-ым, сохраняя порядок следования всех остальных...

Удалить элемент очереди - C++
Здравствуйте. Сделал всё ну практически по Липпману: #include &lt;queue&gt; #include &lt;iostream&gt; using std::queue; int main() { ...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jurok_85
238 / 221 / 76
Регистрация: 21.02.2013
Сообщений: 515
Завершенные тесты: 1
13.02.2014, 03:31     Студенческий журнал (УДАЛИТЬ элемент) #2
точно не знаю, но по моему в цикле
C++
1
2
3
4
5
6
for(int j=p; j<n; j++)
                {
                    stud[j].fname=stud[j+1].fname;
                    stud[j].sname=stud[j+1].sname;
                    stud[j].date=stud[j+1].date;
                }
должно быть n-1 for(int j=p; j<n-1; j++), так как элементов то уже на один меньше
LeeZa
0 / 0 / 0
Регистрация: 30.09.2013
Сообщений: 43
13.02.2014, 11:05  [ТС]     Студенческий журнал (УДАЛИТЬ элемент) #3
Да хоть -2, не в этом дело. Выдает такую ошибку:

error C2106: '=' : left operand must be l-value

Я не очень понимаю, что от меня хочет компилятор о_О!
Yandex
Объявления
13.02.2014, 11:05     Студенческий журнал (УДАЛИТЬ элемент)
Ответ Создать тему
Опции темы

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