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

Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена - C++

Восстановить пароль Регистрация
 
thw
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 9
03.06.2014, 21:20     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена #1
Описать структуру Menu, содержащую следующие поля: название блюда, вес блюда, количество калорий, цена. Вывести на экран информацию обо всех блюдах, калорийность которых не превышает значения, введенное с клавиатуры. Если таких блюд нет, вывести соответствующее сообщение. Определить блюдо с наибольшим весом из тех, цена которых не больше введенной с клавиатуры. Структуру описать как новый тип с использованием typedef.

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
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
 
typedef struct
{ char *name;
int weight;
int number_of_calories;
float price;
} Menu;
 
int main()
{Menu D[20];
int n=0, i, kalor, k=0, v, max=0, M=0, maxi, cena=0, d_max=-1;
char s[20], s1[]="Bludo s naibolshim vesom:", s2[]="Bludo c naibolshim vesom cena:";
FILE*f;
printf("\n-Nagmite 1 dlya samostoyatel'nogog vvoda dannih.\n-Nagmite 2 dlya vvoda dannih iz faila.\n");
scanf("%d",&v);
switch(v)
{case 1:
printf("Vvedite kolichestvo blud (<=20): ");
 scanf("%d",&n);
 printf("\nVvedite dannie o bludah:\n");
 for (i=0;i<n;i++)
 {   printf("Nomer bluda %d:\n",i+1);
      printf("  Vvedite nazvanie bluda: ");
     scanf("%s",D[i].name);
     printf("  Vvedite ves bluda:");   
     scanf("%d",&D[i].weight);
     printf("  Vvedite kolichestvo kaloriy: ");
     scanf("%d",&D[i].number_of_calories);
     printf("  Vvedite ceny bluda: ");
     scanf("%d",&D[i].price);
     }
 
 break;
case 2:
    do
    {printf("\nVvedite nazvanie faila:");
    scanf("%s",s);
    f=fopen(s,"r");
    if(f==NULL)
    printf("\nFaila ne sushestvuet");
    }
while(f==NULL);
    while(!feof(f))
 {  
     fscanf(f,"%s",D[i].name);
     printf("\nNazvanie bluda: %s",D[i].name);
     fscanf(f,"%d",&D[i].weight);
     printf("\nVes bluda: %d",D[i].weight);
     fscanf(f,"%d",&D[i].number_of_calories);
     printf("\nKolichestvo kaloriy: %d",D[i].number_of_calories);
     fscanf(f,"%d",&D[i].price);
     printf("\nCena bluda: %d\n",D[i].price);
    i++;
    n++;}
 fclose(f);
 break;}
printf("\nVvedite nuznoe vam kolichestvo kaloriy: ");
    scanf("%d",&kalor);
for(i=0;i<n;i++)
if(kalor>=D[i].number_of_calories)
{printf("Nazvanie bluda%16s\n Ves bluda%9d\n Kolichestvo kaloriy%11d\n Cena bluda%5d\n", D[i].name,D[i].weight,D[i].number_of_calories,D[i].price);
printf("\n-_-_-_-_-_-_-_-_-_-_-_-_-\n");
k++;}
if(k==0)
    printf("\nNet nuznogo vam bluda");
    printf("\nVvedite nomer nujnogo vam semestra: ");
    scanf("%d",&cena);
for(int i=0;i<n;i++)
{if(cena>=D[i].price)
{if(D[i].weight>max)
{max=D[i].weight;
maxi=i;
M++;}}
}
printf("Nazvanie bluda%16s\n Ves bluda%9d\n Kolichestvo kaloriy%11d\n Cena bluda%5d\n", D[i].name,D[i].weight,D[i].number_of_calories,D[i].price);
if(M==0)
printf("\nNet nuznogo vam bluda");
d_max=i;
    printf("\nVvedite nazvanie file dlya vivoda: ");
    scanf("%s",s);
    f=fopen(s,"w");
    fputs(s1,f);
    for(i=0;i<n;i++)
if(kalor>=D[i].number_of_calories)
    fprintf(f,"Nazvanie bluda%16s\n Ves bluda%9d\n Kolichestvo kaloriy%11d\n Cena bluda%5d\n", D[i].name,D[i].weight,D[i].number_of_calories,D[i].price);
    fputs(s2,f);
    fprintf(f,"Nazvanie bluda%16s\n Ves bluda%9d\n Kolichestvo kaloriy%11d\n Cena bluda%5d\n", D[i].name,D[i].weight,D[i].number_of_calories,D[i].price);
    fclose(f);
    getch();
    return 0;
}
проблема в том что программа при выборе 1 варианта при записи данных второго блюда выдает ошибку
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.06.2014, 21:20     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена
Посмотрите здесь:

Описать структуру содержащую поля C++
C++ Описать структуру Note, содержащую следующие поля:
C++ Описать структуру с именем AEROFLOT, содержащую следующие поля:
Описать структуру с именем Авто,содержащую поля: C++
Описать структуру с именем WORKER, содержащую поля C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5946 / 5551 / 1784
Регистрация: 18.12.2011
Сообщений: 14,175
Завершенные тесты: 1
03.06.2014, 21:47     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена #2
поробуйте
C++
1
scanf("%d\n",&D[i].price);
Т.е. строчку надо дочитать до конца, т.к. символ "конец строки" автоматически не пропускается.
thw
0 / 0 / 0
Регистрация: 24.05.2014
Сообщений: 9
03.06.2014, 22:19  [ТС]     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена #3
увы это не сработало
avr_mega
0 / 0 / 0
Регистрация: 19.01.2014
Сообщений: 12
03.06.2014, 22:23     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена #4
попробуйте воспользоваться возможностями языка С++
Yandex
Объявления
03.06.2014, 22:23     Описать структуру Menu, содержащую поля: название блюда, вес блюда, количество калорий, цена
Ответ Создать тему
Опции темы

Текущее время: 20:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru