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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 64, средняя оценка - 4.78
nurik_6
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 5
#1

Ввод с клавиатуры данных в массив - C++

14.06.2010, 21:14. Просмотров 8301. Ответов 10
Метки нет (Все метки)

Написать программу выполняющую след. действия:
-ввод с клавиатуры данных в массив состоящий из 10-ти структур типа Worker( с полями:1)ФИО 2)Должность 3)Год поступления на работу), причем записи должны быть размещены по алфавиту.
Вывод на дисплей фамилий работников,чей стаж работы в организации превышает значение введенное с клавиатуры. Если таких работников нет, то вывести на экран соответствующее значение.

P.S. Я студент. Пожалуйста если не сложно прокомментируйте процесс сортировки по алфавиту. Вообще если вы мне подскажете алгоритм сортировки по алфавиту, то задачу решать НЕ НАДО !
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2010, 21:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ввод с клавиатуры данных в массив (C++):

Ввод с клавиатуры данных в массив - C++
Нужна помощь, 1)Определить класс с именем AEROFLOT, содержащий след поля: название пункта назначения рейса; номер рейса; тип...

Ввод данных в массив с клавиатуры - C++
Ребят помогите.Нужен код , который бы заполнял массив с клавиатуры 3х4 . Вот код ввода данных с клавиатуры vvodcifri // ввод...

Сформировать одномерный массив целых чисел, используя ввод данных с клавиатуры - C++
Найти в массиве наибольшее число подряд идущих одинаковых элементов (например {1,5,3,6,6,6,6,6,3,4,4,5,5,5} = 5). Заранее большое спасибо.

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN - C++
помогите пожалуйста, не получается сделать,туго с динамикой. • Описать структуру с именем TRAIN, содержащую следующие поля: • название...

Как правильно заменить ввод данных простой на ввод с клавиатуры? - C++
#include "stdafx.h" #include <cstdlib> #include <iostream> using namespace std; int _tmain(int argc, _TCHAR* argv) ...

Ввод данных с клавиатуры - C++
1.«Тестирование коллектива». Пусть целочисленная матрица размером п х т содержит информацию об учениках некоторого класса из п человек. В...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
15.06.2010, 17:23 #2
Цитата Сообщение от nurik_6 Посмотреть сообщение
Написать программу выполняющую след. действия:
-ввод с клавиатуры данных в массив состоящий из 10-ти структур типа Worker( с полями:1)ФИО 2)Должность 3)Год поступления на работу), причем записи должны быть размещены по алфавиту.
Вывод на дисплей фамилий работников,чей стаж работы в организации превышает значение введенное с клавиатуры. Если таких работников нет, то вывести на экран соответствующее значение.

P.S. Я студент. Пожалуйста если не сложно прокомментируйте процесс сортировки по алфавиту. Вообще если вы мне подскажете алгоритм сортировки по алфавиту, то задачу решать НЕ НАДО !
могу сделать, тебе на когда надо?
1
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
15.06.2010, 17:26 #3
вот пример сортировки по имени в алфавитном порядке
тут полный пример программы
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void sortname(videoshop *&uk, int &n)
{
    videoshop tmp;
    for(int j=0; j<n; j++)
    {
        for(int i=0; i<n-1; i++)
        {
            if(strcmp(uk[i].name, uk[i+1].name)>0)
            {
                tmp = uk[i];
                uk[i] = uk[i+1];
                uk[i+1] = tmp;
            }
        }
    }
}
0
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
15.06.2010, 18:30 #4
Проверкой вводимых данных не заморачивался, а так вот:
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
#include <iostream>
#include <algorithm>
#include <string>
#include <ctime>
#include <functional>
#include <set>
#include <iterator>
 
class Worker {
    std::string _name;
    std::string _post;
    int _year;
public:
    Worker() : _name(""), _post(""), _year(0) {}
    Worker(const std::string & name, const std::string & post, int year) : _name(name),
    _post(post), _year(year) {}
    ~Worker() {}
    int year() const { return _year; }
    bool operator < (const Worker & w) const { return _name < w._name; }
    bool operator == (const Worker & w) const { return _name == w._name; }
    friend std::ostream & operator << (std::ostream & ost, const Worker & w) {
        ost << "\nName:\t" << w._name << "\nPost:\t" << w._post << "\nYear:\t" << w._year;
        return ost;
    }
};
 
class FindByStage : public std::unary_function<Worker, bool> {
    int _cur_year;
    int _min_stage;
public:
    FindByStage(int stage) : _min_stage(stage) {
        time_t tt = time(NULL);
        struct tm *pts;
        pts = localtime(&tt);
        _cur_year = pts->tm_year + 1900;
    }
    bool operator () (const Worker & w) {
        return _cur_year - w.year() > _min_stage;
    }
};
 
int main(){
    int num_workers;
    std::multiset<Worker> workers;
    std::string name, post;
    int year;
 
    std::cout << "Number of workers: ";
    std::cin >> num_workers;
    std::cin.get();
    while ( num_workers-- ){
        std::cout << "Name: ";
        std::getline(std::cin, name);
        std::cout << "Post: ";
        std::getline(std::cin, post);
        std::cout << "Year of employment: ";
        std::cin >> year;
        std::cin.get();
        workers.insert(Worker(name, post, year));
    }
 
    std::cout << "Minimum stage: ";
    std::cin >> year;
    FindByStage fbs(year);
    size_t cnt = std::count_if(workers.begin(), workers.end(), fbs);
    if ( ! cnt ) {
        std::cerr << "No workers with stage greater then " << year << std::endl;
        return 1;
    }
    std::cout << "Found " << cnt << " workers:" << std::endl;
    for ( std::multiset<Worker>::const_iterator i = workers.begin(); i != workers.end(); ++i )
        if ( fbs(*i) )
            std::cout << *i << std::endl;
 
    return 0;
}
0
nurik_6
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 5
15.06.2010, 19:48  [ТС] #5
Цитата Сообщение от Sanu0074 Посмотреть сообщение
могу сделать, тебе на когда надо?
Мне бы до 18-го числа.

Добавлено через 39 секунд
Классы использоваться не должны. Структура как на си.

Добавлено через 4 минуты
Есть ещё одно ограничение пользоваться директивами можно только:
C++
1
2
3
4
5
#Include <conio.h>
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
16.06.2010, 19:52 #6
Цитата Сообщение от nurik_6 Посмотреть сообщение
Мне бы до 18-го числа.

Добавлено через 39 секунд
Классы использоваться не должны. Структура как на си.

Добавлено через 4 минуты
Есть ещё одно ограничение пользоваться директивами можно только:
C++
1
2
3
4
5
#Include <conio.h>
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
безбазара, завтра сделаю, тут то работы 10мин, просто ща некогда, завтра будя тебе прога
0
nurik_6
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 5
16.06.2010, 21:22  [ТС] #7
Цитата Сообщение от Sanu0074 Посмотреть сообщение
безбазара, завтра сделаю, тут то работы 10мин, просто ща некогда, завтра будя тебе прога
Окей, жду !
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
17.06.2010, 14:30 #8
Цитата Сообщение от nurik_6 Посмотреть сообщение
Окей, жду !
обьясняю:
- #include <windows.h> - это для того чтоб работало "SetConsoleOutputCP(1251);" т.е. выводильсь на экран русские символы, можеш удалить, но тогда поменяй то что написано русскими буквами на латинские;
- накидал на быструю руку, создай на форуме тему, напиши задание, скинь код, напиши чтоб умные програмисты подкоректировали вывод и сделали его в алфавитном порядке, просто у меня щас нету с собой моей любимой книжки, я забыл как делать сортировку по алфавиту, вроде нужна функция strcmp(stroka1,stroka2) - и она равна -1 если первая строка раньше по алфавиту, 0 - если одинаковые, 1 - если вторая строка по алфавиту идет раньше. вроде так, просто без книжки немогу.......кароч чем смог тем помог....

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
#include <iostream>
#include <windows.h>
using namespace std;
 
struct Worker
{
    char name[60];
    char fam[60];
    char sname[60];
    char pos[60];
    int year;
 
    void vvod()
    {
        cout<<"Введите данные о 10ти работниках:"<<endl;
 
        for(int i=1; i<=10; i++)
        {
            cout<<endl<<"Заполняйте данные о "<<i<<"м работнике: "<<endl<<endl;
        cout<<endl<<"Введите Имя: ";
        cin>>name;
        cout<<endl<<"Введите Фамилию: ";
        cin>>fam;
        cout<<endl<<"Введите Отчество: ";
        cin>>sname;
        cout<<endl<<"Введите должность: ";
        cin>>pos;
        cout<<endl<<"Введите год пост.на работу: ";
        cin>>year;
        }
    }
    
    void vivod()
    {
    int Ryear=2010;
    int stage=0;
    int ras=0;
        cout<<endl<<"Введите стаж: ";
        cin>>stage;
    for(int i=1; i<=10; i++, ras=0)
        {
        ras=Ryear-year;
        if(stage>ras)
        cout<<"Имя: "<<name<<endl;
        cout<<"Фамилия: "<<fam<<endl;
        cout<<"Отчество: "<<sname<<endl;
        cout<<"Должность: "<<pos<<endl;
        cout<<"Год пост.на работу: "<<year<<endl;
        }
    }
};
 
int main()
{
    SetConsoleOutputCP(1251);
 
    Worker x;
 
    x.vvod();
    x.vivod();
    
}
p.s.
кинь ссылку если будеш создавать тему, мне интересно, зайду взгляну.....
1
easybudda
Модератор
Эксперт CЭксперт С++
9627 / 5575 / 947
Регистрация: 25.07.2009
Сообщений: 10,710
17.06.2010, 14:56 #9
Цитата Сообщение от Sanu0074 Посмотреть сообщение
создай на форуме тему, напиши задание...
А чем эта тема не устраивает? С какой целью плодить темы про одно и то же?
1
nurik_6
0 / 0 / 0
Регистрация: 22.05.2010
Сообщений: 5
17.06.2010, 20:02  [ТС] #10
И на этом спасибо. Завтра сдавать.
0
Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,189
Записей в блоге: 5
18.06.2010, 14:16 #11
Цитата Сообщение от nurik_6 Посмотреть сообщение
И на этом спасибо. Завтра сдавать.
та незачто, если что обращайся, жми на кнопку +1Спс))))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2010, 14:16
Привет! Вот еще темы с ответами:

Ввод данных с клавиатуры - C++
Помогите, пожалуйста... Если я напишу так:cin &gt;&gt; a; То у меня введутся символы с клавиатуры, а потом каретка автоматически переходит на...

Ввод данных с клавиатуры - C++
Есть программа, которая меняет в нужном мне файле одно число на другое (не совсем мною написанная, тут же помогали на форуме, спасибо). Но...

Ввод с клавиатуры в массив - C++
Не знаю как сделать, чтобы с клавиатуры я вводил цифры и они сразу записывались в массив.

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.06.2010, 14:16
Ответ Создать тему
Опции темы

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