Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
1

Тема: Структуры, нужно в VS написать

11.09.2013, 22:47. Показов 915. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В радиоателье сохраняются квитанции о сданной в ремонт аппаратуре. Каждая квитанция содержит такую информацию: название группы товаров(телевизоры, радиоприемники и т.д), марка товара, дата приема в ремонт, состояние готовности заказа(сделано, не сделано). Вывести информацию о состояние заказа на поточные сутки для заданной группы товаров. Наименование группы товаров ввести с клавиатуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
11.09.2013, 22:47
Ответы с готовыми решениями:

Постые структуры. Нужно написать программы
Кто знает решения? А то у меня ахинея какая-то. 1. Определить k-ю цифру последовательности...

Простейшие структуры. Нужно написать программы
1.Распечатать в порядке убывания все делители введенного натурального числа. 2. Определить...

Нужно написать код (Циклические структуры)
Буду благодарен за помощь. Tsuna_Savada, оформите тему в соответствии с правилами форума:...

Нужно написать программу (структуры) на С++ в MS Visual Studio 2008
1. Описать структуру с именем WORKER , содержащую следующие поля: фамилия и инициалы работника;...

10
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
11.09.2013, 23:31 2
вот структура
C++
1
2
3
4
5
6
7
struct Kvitok
{
    char name[20];
    char marka[20];
    int day, month, year;
    bool sostoyanie;
};
1
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
11.09.2013, 23:53  [ТС] 3
___, спасибо большое, но я только начал, если вы можете то напишите примерный код программы, был бы оочень признателен)
0
0 / 0 / 0
Регистрация: 04.08.2013
Сообщений: 9
12.09.2013, 01:50 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
#include <iostream>
#include <cstdlib>
#include <ctime>
#include <string>
using namespace std;
 
struct Kvitok
{
    char name[20];
    char marka[20];
    int day, month, year;
    bool sostoyanie;
};
 
int main()
{
    const int n=5;//количество аппаратуры на ремонте 
    Kvitok obj[n];
    for(int i=0; i<n; i++)
    {
        cout<<"Name:";
        gets(obj[i].name);
        cout<<"Marka: ";
        gets(obj[i].marka);
        cout<<"date: ";
        cin>>obj[i].day>>obj[i].month>>obj[i].year;
        cout<<"Sostoyanie: ";
        (cin>>obj[i].sostoyanie).get();
    }
    cout<<"\n";
    char s[20];
    cout<<"Name: ";
    gets(s);
    for(int i=0; i<n; i++)
    {
        if(!strcmp(s,obj[i].name))
        {
            cout<<"Marka: "<<obj[i].marka<<"\n";
            cout<<"date: "<<obj[i].day<<" "<<obj[i].month<<" "<<obj[i].year<<"\n";
            if(obj[i].sostoyanie==0) cout<<"Sostoyanie: ne sdelano\n";
            else cout<<"Sostoyanie: Sdelano\n";
            cout<<"\n";
        }
    }
system ("PAUSE");
 return 0;
 }
0
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
12.09.2013, 02:19  [ТС] 5
Alten_fritz, вау спасибо огромное, буду вникать)
0
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,591
12.09.2013, 08:44 6
Цитата Сообщение от Forumhelp Посмотреть сообщение
Вывести информацию о состояние заказа на поточные сутки для заданной группы товаров.
Значит, что дату тоже проверять надо.

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
#include <cstring>
#include <iostream>
#include <iomanip>
 
/**
 * Структура даты.
 */ 
struct Date {
  int day;   // день
  int month; // месяц
  int year;  // год
};
 
/**
 * Сравнивает две даты.
 * 
 * @param a первая дата
 * @param b вторая дата
 * @return если a < b, то отрицательное число, 
 *         если a == b, то ноль,
 *         если a > b, то положительное число,
 */
int compare(const Date &a, const Date &b) {
  if (a.year != b.year) {
    return a.year - b.year;
  }
  if (a.month != b.month) {
    return a.month - b.month;
  }
  return a.day - b.day;
}
 
/**
 * Для удобства переопределен оператор вывода даты на экран.
 */
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream << 
    std::setw(2) << std::setfill('0') <<
    date.day << "/" <<
    std::setw(2) << std::setfill('0') <<
    date.month << "/" <<
    date.year;
}
 
/**
 * Структура квитанции.
 */
struct Ticket {
  char group[30]; // группа товара
  char brand[30]; // марка товара
  Date accepted;  // дата приема
  bool done;      // состояние готовности
};
 
/**
 * Для удобства переопределен оператор вывода квитанции на экран.
 */
std::ostream &operator<<(std::ostream &stream, const Ticket &ticket) {
  return stream << 
    "Group: " << ticket.group << ", " <<
    "brand: " << ticket.brand << ", " <<
    "accepted: " << ticket.accepted << ", " <<
    "status: " << (ticket.done ? "done" : "in progress");
}
 
 
int main(int, char **)  {
  // квитанции
  Ticket tickets[] = {
    {"tvset", "Philips LH72", {12, 9, 2013}, true},
    {"radio", "Morana HZ-7", {12, 9, 2013}, true},
    {"tvset", "LG HDTV2", {12, 9, 2013}, false},
    {"tvset", "Raduga 3", {15, 9, 2013}, true},
    {"radio", "Mark IV", {12, 9, 2013}, true},
  };
 
  // количество квитанций
  int numberOfTickets = sizeof(tickets) / sizeof(tickets[0]);
 
  // вывод всех имеющихся квитанций
  for (int i = 0; i < numberOfTickets; ++i) {
    std::cout << tickets[i] << std::endl;
  }
 
  // дата запроса
  Date requestDate = {12, 9, 2013};
  // запрашиваемая группа товаров
  char requestedGroup[30];
 
  // ввод запрашиваемой группы товаров
  std::cout << "Enter group: ";
  std::cin >> requestedGroup;
 
  // вывод данных запроса
  std::cout << "Request date: " << requestDate << ", "
    "request group: " << requestedGroup << std::endl;
 
  // вывод квитанций с совпадающей датой и группой
  for (int i = 0; i < numberOfTickets; ++i) {
    Ticket &ticket = tickets[i]; // текущая квитанция
    // если совпадает дата
    if (compare(ticket.accepted, requestDate) == 0 &&
      // и группа
      strcmp(ticket.group, requestedGroup) == 0) {
      // квитанция выводится на экран
      std::cout << ticket << std::endl;
    }
  }
 
  return 0;
}
2
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
18.09.2013, 22:20  [ТС] 7
lemegeton, можете более детально объяснить вот этот кусок)
C++
1
2
3
4
5
6
7
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream << 
    std::setw(2) << std::setfill('0') <<
    date.day << "/" <<
    std::setw(2) << std::setfill('0') <<
    date.month << "/" <<
    date.year;
0
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
20.09.2013, 00:59  [ТС] 8
кто может более детально объяснить вот этот кусок)
C++
1
2
3
4
5
6
7
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream << 
    std::setw(2) << std::setfill('0') <<
    date.day << "/" <<
    std::setw(2) << std::setfill('0') <<
    date.month << "/" <<
    date.year;
0
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
20.09.2013, 12:29 9
Цитата Сообщение от Forumhelp Посмотреть сообщение
кто может более детально объяснить вот этот кусок)
operator<< это перегруженный оператор вывода для класса Date

std::ostream &operator<<(std::ostream &stream, const Date &date)
это можно рассматривать как функцию. первый аргумент ссылка на std::ostream (как cout),
а второй ссылка на тип Date. эта функция возвращает ссылку на std::ostream

вот программа которая ее использует. написал двумя способа для вывода 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
struct Date {
  int day;   // день
  int month; // месяц
  int year;  // год
 
};
 
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream <<
    std::setw(2) << std::setfill('0') <<
    date.day << "/" <<
    std::setw(2) << std::setfill('0') <<
    date.month << "/" <<
    date.year;
}
 
 
int main()
{
    Date d;
 
    d.day = 20;
    d.month = 9;
    d.year = 2013;
 
    cout << d << endl;
    operator<<(cout, d) << endl;
 
    _getch();
    return 0;
}
2
1 / 1 / 0
Регистрация: 06.06.2013
Сообщений: 130
23.09.2013, 20:45  [ТС] 10
_, если переписать перегруженный оператор вывода для класса Date вторым способом
int main()
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
{
    Date d;
 
    d.day = 20;
    d.month = 9;
    d.year = 2013;
 
    cout << d << endl;
    operator<<(cout, d) << endl;
 
    _getch();
    return 0;
}

то его нужно описывать в main и для даты так же?
0
193 / 170 / 32
Регистрация: 09.09.2013
Сообщений: 522
24.09.2013, 08:14 11
Forumhelp ,не понял.

вот есть перегруженный оператор вывода для класса Date:

C++
1
2
3
4
5
6
7
8
std::ostream &operator<<(std::ostream &stream, const Date &date) {
  return stream <<
    std::setw(2) << std::setfill('0') <<
    date.day << "/" <<
    std::setw(2) << std::setfill('0') <<
    date.month << "/" <<
    date.year;
}
и его можно по-разному использовать в main:
C++
1
2
cout << d << endl;
operator<<(cout, d) << endl;
1-ый способ выглядит более естественно, а 2-ой именно как вызов функции
1
24.09.2013, 08:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2013, 08:14
Помогаю со студенческими работами здесь

вложенный структуры, нужно написать программу, которая удаляет все комментарии и считает количество строк
скажите пожалуйста, я пытаюсь посмотреть содержимое своей структуры, вместо этого в выходном файле...

тема структуры(классы)
Выдает такую ошибку что в этой строке if (stricmp(a.adress,&quot;exit&quot;)==0) invalid conversation from...

Тема: Записи(структуры)
Распечатать список учеников, фамилии которых начинаются на букву В, с суказанием даты из рождения.

Тема: «Алгоритмы и программы ветвящейся структуры».
Даны действительные числа a, b, c, (a &gt; 0). Полностью исследовать биквадратное уравнение ax4 + bx2...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru