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

Структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Решение уравнения http://www.cyberforum.ru/cpp-beginners/thread155338.html
Дано уравнение: Х в квадрате+У в квадрате=К в квадрате Найти все целочисленные решение если х,у,к = от 1 до 30 #include <iostream> using namespace std; void main () { for (int...
C++ Вывести текст Имеется текстовой файл с несколькими строчками разных размеров. Нужно вывести текст на экран с помощью fopen Буду благодарен за помощь :) http://www.cyberforum.ru/cpp-beginners/thread155298.html
C++ Квадратное уравнение в с
Здравствуйте. Надо найти корни квадратного уравнения или показать что один корень или нет корней. Нужно сделать в с, а не в с++. Please, help
C++ Как такое может быть?
Пишу программку... Начало функции мейн. Не прошло еще ничего кроме файла: int k=1; int l=1; На что компилятор мне выдает, что значения переменных не такие как я присвоил (по 1), а собственно: ...
C++ Ошибка обращения к нулевому адресу http://www.cyberforum.ru/cpp-beginners/thread155240.html
int main(int argc, char* argv) { ifstream f ("alphacntr",ios::in|ios::binary); if (!f) { cout<<"File opening error!\n"; return 1; }
C++ Параметры в командной строке При запуске программы с командной строки, ей также с cmd передаются параметры. Затем в программе эти параметры присваиваются или char a или типу string. Но!!! Когда пытаюсь использовать эти значения... подробнее

Показать сообщение отдельно
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
27.07.2010, 12:02
Как-то у тебя все криво... Вот написал по-своему:
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 <string>
#include <windows.h>
#include <iomanip>
 
struct tab
{
    std::string firstName; //Фамилия
    std::string secondName; //Имя
    std::string thirdName; //Отчество
    /* ИМХО, пол лучше сделать логическим типом
       true - мужской, false - женский (или наоборот, для феминисток ;) ) */
    bool        gender;
    size_t      age; //Возраст
    size_t      course; //Курс
};
 
template<class T>
void get(const char* msg, T& var)
{
    std::cout << msg << ": ";
    std::cin >> var;
}
 
bool error(const char* msg)
{
    std::cout << "Ошибка: " << msg;
    std::cout << "; повторите попытку ввода еще раз..." << std::endl;
    return true;
}
 
int main()
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    size_t cnt;
    get("Введите число студентов", cnt);
    tab* pt = new tab [cnt];
    for(size_t i = 0; i < cnt; ++i)
    {
        std::cout << "-----------------------------------" << std::endl;
        get("Введите фамилию", pt[i].firstName);
        get("Введите имя", pt[i].secondName);
        get("Введите отчество", pt[i].thirdName);
        char ans;
        do
        {
            get("Введите пол [m -мужской, f - женский]", ans);
            ans = tolower(ans);
        }
        while(((ans != 'm') && (ans != 'f') && error("пол введен неправильно")));
        pt[i].gender = ( ans == 'm');
        get("Введите возраст", pt[i].age);
        size_t crs; //Курс, может быть от 1 до 5
        do
        {
            get("Введите курс", crs);
        }
        while(((crs < 1) || (crs > 5)) && error("курс введен неправильно"));
        pt[i].course = crs;
    }
    std::cout << "-----------------------------------" << std::endl;
    std::cout << "Вывод студентов мужского пола:" << std::endl;
    std::cout << std::setiosflags(std::ios::left) << std::setw(20) << "Имя" 
        << std::setw(20) << "Фамилия" << std::setw(20) 
        << "Отчество" << std::setw(10) << "Возраст" << std::setw(9) << "Курс" << std::endl;
    for(size_t i = 0; i < cnt; ++i)
        if(pt[i].gender)
            std::cout << std::setiosflags(std::ios::left) << std::setw(20) << pt[i].firstName 
                << std::setw(20) << pt[i].secondName << std::setw(20) << pt[i].thirdName
                << std::setw(10) << pt[i].age << std::setw(9) << pt[i].course << std::endl;
    system("pause");
    delete[] pt;
    return EXIT_SUCCESS;
}
2
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru