Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.03.2013, 14:28   #1
D92
Пользователь
 
Регистрация: 07.05.2012
Сообщений: 29
По умолчанию Структура записей

Помогите пожалуйста написать программу, начало вроде бы записал, а как дальше делать не знаю!!!!

Список должен содержать не менее 10 записей. разработать программу, выполняющую функции: ввод данного списка в массив записей, вывод массива записей на экран и выполнение запроса.
Структура записей: Шифр товара (строка 5 символов), Наименование (строка 20 символов), Цена в руб. (вещественное число), Количество (целое число). Запрос: Поиск товаров, имеющих цену меньше 20000 руб. и количеством экземпляров больше 100 с выводом найденных записей на экран.
Код:
Код:
#include<iostream>
#include<windows.h>

using namespace std;

struct Product
{
	char ShifProd[5];
	char NameProd[20];
	double Price;
	int Number;
};
int main()
{
	Product mas[100];
	int n=0;
	int i,j;
	Product tmp;
	for(i=0; i<n; i++)
	{		
		cout<<"Vvedite shifr tovara: ";
		cin>>mas[i].ShifProd;
	    cout<<"Vvedite naimenovanie tovara: ";
	    cin>>mas[i].NameProd;
		cout<<"Vvedite cenu tovara(rub): ";
		cin>>mas[i].Price;
		cout<<"Vvedite kol-vo tovara: ";
		cin>>mas[i].Number;
	}
	cout<<"\n";
	for(j=i; j>0 && mas[j-1].Price>mas[j].Price; j--)
	{
		mas[j]=mas[j-1];
		mas[j-1]=tmp;
	}
	cout<<"Spisok tovarov:\n"; 

for( i=0; i<n; i++)
{ 
cout<<"ShifProd: "; 
cout<<"NameProd: "; 
cout<<"Price: "; 
cout<<"Number: "; 
cout<<"\n"; 
} 

	return 0;
}
D92 вне форума Ответить с цитированием
Старый 31.03.2013, 16:28   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Поиск товаров
Код:
for(i=0; i<n; i++)	{	if(mas[i].Price<20000 && mas[i].Number>100)	
		cout<<"shifr tovara: "<<mas[i].ShifProd<<"naimenovanie tovara: "<<mas[i].NameProd<<"cenu tovara(rub): "<<mas[i].Price<<"kol-vo tovara: "<<mas[i].Number;
	}
Принцип ясен?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2013, 14:38   #3
D92
Пользователь
 
Регистрация: 07.05.2012
Сообщений: 29
По умолчанию

Спасибо!!!! Вот написал новый код, посмотрите пожалуйста правильность, можно ли её так написать! И у меня почему при вводе данных русские буквы не отображаются!!!
Код:
Код:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <locale.h>

struct Product
{
	char ShifProd[5];  	
	char NameProd[20];	
	double Price;
	int Number;
};

int main()
{
	setlocale(0,"Russian");
	Product a[100];
	int n = 0,op;
	int i,j;
	do
	{
		puts("############################");
		puts("#  (1) Добавить товар      #");
		puts("#  (2) Показать список    #");
		puts("#  (0) Выход                   #");
		puts("############################");
		do op = getch() - '0';
		while(op < 0 || op > 2);
		switch(op)
		{
			case 1:{
				system("cls");
				fflush(stdin);
				printf("Введите шифр товара: \n ");
				gets(a[n].ShifProd);
				printf("Введите наименование товара: \n ");
				gets(a[n].NameProd);
				printf("Введите цену товара (руб): \n ");
				scanf("%lf",&a[n].Price);
				printf("Введите кол-во товара: \n ");
				scanf("%d",&a[n].Number);
				n++;
				system("cls");
				}
				break;
				case 2:{
                        system("cls");
                        if(n == 0) puts("В списке нет записей.");
                        else{
                            puts("###############################################################################");
                            puts("#  Шифр#         Наименование#          Цена #   Кол-во #"); 
                            puts("###############################################################################");
                            for(int i = 0; i < n; i++){
                                printf("#%5s #%20s #%14lf #%10d#",a[i].ShifProd,a[i].NameProd,a[i].Price, a[i].Number);
                                puts("#");
                            }
                            puts("###############################################################################");
							printf("\n");
							printf("Список товаров:\n");
							for(i=0; i<n; i++)	
							{	
								if(a[i].Price<20000 && a[i].Number>100)	
									printf("\nшифр товара: %s \nнаименование товара: %s \nцена товара (руб): %lf \nкол-во товара: %d \n ",a[i].ShifProd,a[i].NameProd,a[i].Price,a[i].Number);
							}
						}
                        system("pause");
                        system("cls");
                    }break;
                }
	}while(op !=0);
	return 0;
}

Последний раз редактировалось D92; 06.04.2013 в 14:44.
D92 вне форума Ответить с цитированием
Старый 06.04.2013, 16:10   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
можно ли её так написать!
А что компилятор сказал?
Цитата:
при вводе данных русские буквы не отображаются!
В каком смысле не отображаются?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 06.04.2013, 19:44   #5
D92
Пользователь
 
Регистрация: 07.05.2012
Сообщений: 29
По умолчанию

Ну вроде всё работает. Когда ввожу наименование буквы отражаются нормально, а когда выводится список на экран, то отображается какая-то абракадабра.
Нужны ли амперсанды в строке:
Код:
printf("\nшифр товара: %s \nнаименование товара: %s \nцена товара (руб): %lf \nкол-во товара: %d \n ", a[i].ShifProd, a[i].NameProd, a[i].Price, a[i].Number);

Последний раз редактировалось D92; 06.04.2013 в 20:28.
D92 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура Lifehouse Общие вопросы C/C++ 5 08.06.2012 22:36
Создать массив записей в соответствии с заданной структурой. Количество записей не больше 10. zulja Паскаль, Turbo Pascal, PascalABC.NET 0 21.05.2012 07:50
структура.. С#... Serg94 C# (си шарп) 1 27.02.2012 19:45
Структура Seferus Общие вопросы C/C++ 0 15.11.2010 13:55
Структура Superlotles Помощь студентам 5 14.09.2009 23:29