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

Структуры: Списки студентов - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Какую же книгу изучать? :O C++ http://www.cyberforum.ru/cpp-beginners/thread264608.html
Здравствуйте все. :senor: Сложилась небольшая проблема, касающаяся определения книги, которую можно было бы достойно изучить. Не могли бы вы подсказать новичку какую книгу или какое учебное пособие можно было бы купить, дабы овладеть знаниями программирования на языке "C++". Желательно, чтобы в предложенной вами книге были: 1) Графика. 2) ООП. 3) Задачи и упражнения. 4) Четкое (или может...
C++ Проверка на NaN (С/С++) Подскажите, пожалуйста, как проверить является ли вещественное число NaN'ом? Как вариант сделать побитовое умножение на маску... Но тогда первый бит (знак) теряется.. Что делать? Желательно без использования С++ http://www.cyberforum.ru/cpp-beginners/thread264598.html
Народ, чет с while... C++
Тут проблемка, захотел написать миниатюрную игрушечку на с++ и в єпизоде боя использовал do-while... и вот вроде кк все нормально, оба бьються, но бой не коньчается... просто хп в - уходит и считай так до бесконечности... если ктот шарит прошу помочь... вот мой код: do { int r,d; srand(time(&t)); d=rand()%10+10; hp-=d; cout<<"Противник нанес вам "<<d<< " урона. у вас осталось...
C++ Инициализация вещественных статических константных полей класса С++
static const double x=2.15; //c double и float не инициализирует. Почему??
C++ вычислить сумму и количество элементов в массива X[15],для 0<x1<1 http://www.cyberforum.ru/cpp-beginners/thread264537.html
вычислить сумму и количество элементов в массива Xв массив y и подсчитать их количество для для 0<x1<1
C++ СОРТИРОВКА Нужно отсортировать массив тремя видами сортировки : Шелла,Слияния,Пирамидальная. Язык : С++ подробнее

Показать сообщение отдельно
sav241
5 / 5 / 0
Регистрация: 04.04.2011
Сообщений: 37
05.04.2011, 11:07
Вот тебе прога, двунаправленный спикок структур, уберешь ссылку назад будет одноноправленнй, создается считывая данные из файла, при это сразу же сортируется по году рождения..
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
// AnketaNewSypper.cpp : Defines the entry point for the console application.
//
#include <fstream>
#include "StdAfx.h"
#include <iostream>
#include "stdafx.h"
#include <Windows.h>
#include <math.h>
#include <string.h>
#include <fstream>
using namespace std;
 
struct anketa {
            char *fam;
            unsigned int god;
            anketa *next;
            anketa *over;
};
anketa *first=NULL;
    
ifstream file1("file.txt");
 
  anketa *getData(){ //создание нового элемента списка, считывание его с клавиатуры
      
      anketa *a=new anketa;
          if(!file1.eof()){
          a->fam= new char [255];
          file1 >> a->fam;   
          }else{delete a;return NULL; }
      
      if(!file1.eof()){
          file1 >> a->god;
          }else{delete a; return NULL; }
     
    a->next=NULL;
    a->over=NULL;
    return a;
}
void createList1(){ //создает сортированный список по году, сортируется по ходу создания
    anketa *newEl; // создание нового элемента, считывание с клавиатуры,операция присваивания
    do{
  newEl=getData();
 
  if(newEl==NULL)break;
    if (!first) {first=newEl;}
    else {
         if (newEl->god<first->god) {
            newEl->next=first;
            first=newEl;
 
         }
         else { //вставка элемента
             anketa *curr=first;
             BOOL ins = FALSE;
             while (curr->next!=NULL) {
                 if (curr->next->god>newEl->god) {
                     newEl->next=curr->next;
                     curr->next=newEl;
                     newEl->over=curr;//sdgsg
                     ins = true;
                     break;
                 }
                 curr=curr->next;
             }
             if (!ins) {
                 curr->next = newEl;
                 newEl->over=curr;//sdgsg
             }
         }  
   }
 
    }while(true);
}
 
 
 
void show () {
    anketa *curr=first;
    cout<<"-------------------"<<endl;
    while (curr){
         cout <<curr->fam<<" "<<curr->god<<endl;
         curr=curr->next;
    }
}
 
void drop (){
    anketa *curr=first;
    anketa *delEl;
    while (curr) {
        delEl=curr;
        curr=curr->next;
        delete delEl;
    }
 
}
 
void main(){
 
     SetConsoleCP(1251);
     SetConsoleOutputCP(1251);
     int t;
     cout<<"1-для сортировки по дате, , 3 - для показа списка"<<endl;
     cin>>t;
     if(t==1){
     createList1();
     cin>>t;
     }
  
     if(t==3){
         show();
     }      
 
     drop ();
     file1.close();
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru