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

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

Войти
Регистрация
Восстановить пароль
 
Ники
1 / 1 / 0
Регистрация: 21.04.2010
Сообщений: 50
#1

Связные списки - C++

04.12.2010, 23:54. Просмотров 466. Ответов 0
Метки нет (Все метки)

Помогите, пожалуйста закончить программу. Нужно добавить в нее связные списки, содержащие информацию вводимую пользователем.

#include <stdio.h>
#include <conio.h>
FILE *f;
typedef struct {
unsigned char name[30];
int cena;
int vozrmin,vozrmax;
} magazin;
magazin mg, BUF;
char filename[]="magazin.dat";
char s='\0';


void add_one()
{
char s='\0';
do
{
clrscr();
printf("\n Nazvanie: ");
fflush(stdin);
gets(mg.name);
printf("\n Cena: ");
scanf("%d", &mg.cena);
printf("\n Min vozrast: ");
scanf("%d", &mg.vozrmin);
printf("\n Max vozrast: ");
scanf("%d", &mg.vozrmax);
fwrite(&mg,sizeof(mg)+1,1,f);
printf("\n Prodoljit vvod: Y/N?");
s=getche();
}
while (s=='y' || s=='Y');
fclose(f);
}

void print()
{

clrscr();
f=fopen("magazin.dat","rb");
int c;
printf("\nЪ--------------------------------------------------------------------ї");
printf("\n| Nazvanie Cena Min vozr Max vozr |");
printf("\nГ--------------------------------------------------------------------ґ");
while(feof(f)==0)
{
if (fread(&mg,sizeof(mg)+1,1,f)!=0)
{
printf("\n| %10s %10d %16d %18d ",mg.name, mg.cena, mg.vozrmin, mg.vozrmax);
}
}
printf("\nА--------------------------------------------------------------------Щ\n");
getch();
}

void main()
{
do
{
s='\0';
f=fopen(filename, "rb");
clrscr();
textbackground(12);
textcolor(6);
printf("\n ######################################");
printf("\n | -=#=- Chto nadobno starche? -=#=- |");
printf("\n ######################################");
printf("\n | 0-dobavit dannie |");
printf("\n | 1-naiti igryhky po vozrasty |");
printf("\n | 2-naiti samyiy dorogyiy igryhky |");
printf("\n | 3-naiti igryhky po cene i vozrasty |");
printf("\n | 4-viuti iz programmi |");
printf("\n ######################################\n");
s=getche();
clrscr();
switch(s)
{
case '0': {

s='\0';
printf("\n #########################");
printf("\n |-= Viberite deistvie =-|");
printf("\n #########################");
printf("\n | 0-sozdat zanovo |");
printf("\n | 1-dobavit |");
printf("\n | 2-otkazatcya ot vvoda |");
printf("\n #########################\n");
s=getche();
switch (s)
{
case '0': {
f=fopen(filename, "wb+");
add_one();
}
case '1': {
f=fopen(filename, "ab");
add_one();
}
case '2': break;
}

} break;
case '1': {
int v,e;
printf("\n Vvedite min vozr: ");
scanf(" %d",&v);
printf("\n Vvedite max vozr: ");
scanf(" %d",&e);
f=fopen(filename,"rb");
if(e<v)
{clrscr();
printf("\n eeeeeeeeeeee rrrrrrrrrrrr rrrrrrrrrrrr oooooooooooo rrrrrrrrrrrr");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eeeeeeeeeeee rrrrrrrr rrrrrrrr ooo ooo rrrrrrrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr\n");
getch();
}
else
{clrscr();
printf("\n######################################################################");
printf("\n| Nazvanie Cena Min vozr Max vozr |");
printf("\n######################################################################");
while(feof(f)==0)
{
if (fread(&mg,sizeof(mg)+1,1,f)!=0)
{
if(mg.vozrmin>=v && mg.vozrmax<=e)
printf("\n| %-15s %8d %18d %18d | ",mg.name, mg.cena, mg.vozrmin, mg.vozrmax);
}
}
printf("\n######################################################################\n");
getch();
}
} break;
case '2': {
BUF.cena=0;
while(feof(f)==0)
{
if (fread(&mg,sizeof(mg)+1,1,f)!=0)
{
if (mg.cena>BUF.cena) BUF=mg;
}
}
printf("\n Samaya dorogaya igruhka: %d ", BUF.cena );
getch();
} break;
case '3': {
int a,b,c;
printf("\n Vvedite minimalniu vozrast: ");
scanf("%d",&a);
printf("\n Vvedite maksimalniu vozrast: ");
scanf("%d",&b);
if(b<a)
{clrscr();
printf("\n eeeeeeeeeeee rrrrrrrrrrrr rrrrrrrrrrrr oooooooooooo rrrrrrrrrrrr");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eeeeeeeeeeee rrrrrrrr rrrrrrrr ooo ooo rrrrrrrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eee rrr rrr rrr rrr ooo ooo rrr rrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr ");
printf("\n eeeeeeeeeeee rrr rrr rrr rrr oooooooooooo rrr rrr\n");
getch();
}
else
{printf("\n Vvedite ceny: ");
scanf("%d",&c);
clrscr();
printf("\n######################################################################");
printf("\n| Nazvanie Cena Min vozr Max vozr |");
printf("\nГ--------------------------------------------------------------------ґ");
while(feof(f)==0)
{
if (fread(&mg,sizeof(mg)+1,1,f)!=0)
{
if(mg.vozrmin>=a && mg.vozrmax<=b && mg.vozrmin<b && mg.cena==c)
printf("\n| %4s %14d %16d %18d",mg.name, mg.cena, mg.vozrmin, mg.vozrmax);
}
}
printf("\n######################################################################\n");
getch();
}
} break;
}
}
while (s!='4');
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2010, 23:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Связные списки (C++):

Связные списки - C++
Я практически полный нуб в С++. Вот такая задача: В столовой предлагаются N комплексных обедов, состоящих из Q блюд. Известна стоимость и...

Связные списки - C++
Доброго времени суток. И у меня такая проблема - не могу разобраться со связными списками. Не могли бы вы помочь мне с этим, допустим,...

Связные списки. - C++
Всем привет ребят можете привести пример двусвязносго списка.

Связные списки - C++
Написать функцию, удаляющую из исходной строки заданный символ. Например, удаление символа ‘i’ из строки “cabin heating” дает в результате...

Связные списки - C++
Вот есть код все работает отлично но препод сказал что-бы при вводе элементов в список элементы сортировались вот к примеру 20 5 8 12 1 10...

Связные списки - C++
Друзья, помогите исправить код!!! Программа описывет таблицу о книгах.(Название, автор, стоимость). Почему он поддчеркивает head, next,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.12.2010, 23:54
Привет! Вот еще темы с ответами:

Связные списки - C++
Помогите пожалуйста осуществить в программе вот такие вот действия: 1) добавление элементов в начало связного списка; 2)добавление...

связные списки - C++
12. Використовувати (лінійні) односпрямовані списки без заголовної ланки (мал. а) або з заголовною ланкою (мал. б) при наступному їхньому...

Связные списки - C++
12. Использовать (линейные) однонаправленные списки без заглавной звена (рис. А) или с заглавной звеном (рис. Б) при последующем их...

Массивы и связные списки - C++
Нужно взять како-то небольшой текст и напечатать все слова, которые начинаются с буквы, отличную от буквы, с которой начинается первое...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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