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

Разработать структуру Сотрудник - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти в массиве второе по величине число http://www.cyberforum.ru/cpp-beginners/thread1181828.html
Помогите пожалуйста в решении этих двух задач на С++ 2) Составить программу, которая в массиве A находит второе по величине число (вывести на печать число, которое меньше максимального элемента...
C++ Изменение размера динамического массива (resize) Учусь менять размер динамического массива. Помогите разобраться, пожалуйста. Допустим, есть какая-то структура "читатель библиотеки". Моя цель - увеличить массив читателей на 1 элемент и добавить... http://www.cyberforum.ru/cpp-beginners/thread1181792.html
Наименьшее из значений элементов, ниже и принадлежащей главной диагонали матрицы C++
Даны натуральное число n, целочисленная квадратная матрица порядка n, получить b1, ...,bn, где bi это наименьшее из значений элементов, находящихся в начале i-й сроки матрицы до элемента,...
C++ Почему счетчик в цикле for начинается с нуля, а не с единицы?
привет. почему когда надо сделать какое-то действие, например 4 раза, то пишут: for (int i=0, i<4, i++) { //... } а не так: for (int i=1, i<=4, i++) { //... }
C++ По некоторому количеству строк текста (не более N) найти пары строк с общим словом http://www.cyberforum.ru/cpp-beginners/thread1181760.html
По некоторому количеству строк текста (не более N) найти пары строк с общим словом.
C++ Считать текстовый файл и вывести частоту распределения длин слов текста Разработать программу, которая читает текстовый файл и выводит частоту распределения длин слов текста. Имя читаемого файла запрашивается с клавиатуры. Знаками препинания в тексте пренебречь. подробнее

Показать сообщение отдельно
Laicus
1 / 1 / 0
Регистрация: 30.05.2013
Сообщений: 29

Разработать структуру Сотрудник - C++

20.05.2014, 09:20. Просмотров 514. Ответов 7
Метки (Все метки)

Разработайте структуру, используя объединение: Сотрудник (ФИО, пол, образование, специальность, вуз, должность, стаж). Сотрудник может не иметь высшего образования. Введите информацию о трех сотрудниках и распечатайте в виде таблицы.

Не совсем разбираюсь с памятью компьютера и всей многоуровневой архитектурой, поэтому когда дело доходит до использования указателей и объединения, пиши пропало. И да, не знаю как сделал ровную таблицу, пытался с пробелами, но как-то что-то...
Что есть:
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
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
 
using namespace std;
 
int main()
{
setlocale(LC_ALL, "Russian");
 
union workmanData {
    char fullName[100];
    char sex[20];
    char edu[8];
    char speciality[100];
    char vuz[100];
    char whoareyou[100];
    char howmuchyouwork[3];
};
struct workman
{
    workmanData fullName;
    workmanData sex;
    workmanData edu;
    workmanData speciality;
    workmanData vuz;
    workmanData whoareyou;
    workmanData howmuchyouwork;
};
 
int width[7];
for(int i = 0; i < 7; i++) width[i] = 0;
char no[100] = "нет";
workman *table = new workman[3];
for(int i = 0; i < 3; i++)
    {
        cout << "Введите ФИО: ";
        cin.getline(table[i].fullName.fullName, 100);
        cout << "Введите пол: ";
        cin.getline(table[i].sex.sex, 20);
        cout << "Высшее образование (да / нет): ";
        cin.getline(table[i].edu.edu, 8);
        if (!(strcmp(table[i].edu.edu, "да")) || !(strcmp(table[i].edu.edu, "Да"))) {
            cout << "Введите название специальности: ";
            cin.getline(table[i].speciality.speciality, 100);
            cout << "Введите название ВУЗ'а: ";
            cin.getline(table[i].vuz.vuz, 100);
        } else {
            strcpy(table[i].speciality.speciality, no);
             strcpy(table[i].vuz.vuz, no);
        }
        cout << "Введите название должности: ";
        cin.getline(table[i].whoareyou.whoareyou, 100);
        cout << "Стаж: ";
        cin.getline(table[i].howmuchyouwork.howmuchyouwork, 100);
        cout << endl << endl;
    }
 
    for(unsigned int j = 0; j < 3; j++) {
         if(width[0] < strlen(table[j].fullName.fullName)) width[0] = strlen(table[j].fullName.fullName);
         if(width[1] < strlen(table[j].sex.sex)) width[1] = strlen(table[j].sex.sex);
         if(width[2] < strlen(table[j].edu.edu)) width[2] = strlen(table[j].edu.edu);
         if(width[3] < strlen(table[j].speciality.speciality)) width[3] = strlen(table[j].speciality.speciality);
         if(width[4] < strlen(table[j].vuz.vuz)) width[4] = strlen(table[j].vuz.vuz);
         if(width[5] < strlen(table[j].whoareyou.whoareyou)) width[5] = strlen(table[j].whoareyou.whoareyou);
         if(width[6] < strlen(table[j].howmuchyouwork.howmuchyouwork)) width[6] = strlen(table[j].howmuchyouwork.howmuchyouwork);
 
    }
int temp = 0;
cout << "| ФИО";
if(width[0] < 3) temp = 0; else temp = width[0] - 3; 
for(int i = 0; i < temp; i++) cout << " ";
cout << "| Пол";
if(width[1] < 3) width[1] = 0;
for(int i = 0; i < width[1] - 3 ; i++) cout << " ";
cout << "| Высш. обр. ";
if(width[2] < 13) width[2] = 13;
for(int i = 0; i < (width[2] - 13); i++) cout << " ";
cout << "| Спец-сть ";
if(width[3] < 10) width[3] = 10;
for(int i = 0; i < (width[3] - 10); i++) cout << " ";
cout << "| ВУЗ ";
if(width[4] < 6) width[4] = 6;
for(int i = 0; i < (width[4] - 6 ); i++) cout << " ";
cout << "| До-сть ";
if(width[5] < 9) width[5] = 9;
for(int i = 0; i < (width[5] - 9); i++) cout << " ";
cout << "| Стаж ";
if(width[6] < 7) width[6] = 7;
for(int i = 0; i < (width[6] - 7 ); i++) cout << " ";
cout << "|" << endl;
 
int a = strlen(table[0].edu.edu);
 
for(unsigned int i = 0; i < 3; i++){
    cout << "| " << table[i].fullName.fullName;
            for(int j = 0; j < width[0] - strlen(table[i].fullName.fullName); j++) cout << "  ";
    cout << "| " << table[i].sex.sex;
            for(int j = 0; j < width[1]-strlen(table[i].sex.sex); j++) cout << " ";
    cout << "| " << table[i].edu.edu;
            for(int j = 0; j < (width[2]-strlen(table[i].edu.edu)); j++) cout << " ";
    cout << "| " << table[i].speciality.speciality;
            for(int j = 0; j < (width[3]-strlen(table[i].speciality.speciality)); j++) cout << " ";
    cout << "| " << table[i].vuz.vuz;
            for(int j = 0; j < (width[4]-strlen(table[i].vuz.vuz)); j++) cout << " ";
    cout << "| " << table[i].whoareyou.whoareyou;
            for(int j = 0; j < (width[5]-strlen(table[i].whoareyou.whoareyou)); j++) cout << " ";
    cout << "| " << table[i].howmuchyouwork.howmuchyouwork;
            for(int j = 0; j < (width[6]-strlen(table[i].howmuchyouwork.howmuchyouwork)); j++) cout << " ";
    cout << a << endl;
}
return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru