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

Структуры/записи/массивы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Proger_1
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 30
19.05.2010, 13:22     Структуры/записи/массивы #1
Только начинаю изучать структуры в с++, нужно написать вот такую программку:
Написать программу, которая создаёт массив записей о книгах, взятых в библиотеке. Использовать структуру, содержащую следующие поля: автор, название книги, дата возврата. Кол-во записей в массиве задаётся пользователем. Данные вводятся с клавиатуры. Написать ф-ции поиска и вывода на экран записей о просроченных книгах, дата возврата которых меньше текущей, и вывода всего массива в виде таблицы (с заголовками и наименованиями столбцов).
Я понимаю, что никто целиком программу писать не будет, я прошу помогать мне постепенно, и может быть по шагам я дойду до верного решения. Начал писать код, для начала попытался создать просто структуру о книгах и проверить дату, но программа работать не хочет:
Код
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <math.h>
#include <tchar.h>
using namespace std;

struct biblioteka
{
	char avtor[20];
	char name[20];
	int data;
};

int _tmain(int argc, _TCHAR* argv[])
{
	struct biblioteka a;
	printf("Vvedite avtora: ");
	scanf("%c",a.avtor);	
	printf("Vvedite Imja: ");
	scanf("%c",a.name);
	printf("Vvedite datu: ");
	scanf("%d",a.data);
	if (a.data > 20)
	{
	printf("Prosro4enie knigi: %c\n%c\n%d\n",a.avtor,a.name,a.data);
	}
	scanf("%s");
	return 0;
}
Помогите сначала просто с вводом данных, а потом уже дальше буду думать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2010, 13:22     Структуры/записи/массивы
Посмотрите здесь:

C++ Удаление записи из структуры
C++ Структуры и массивы
C++ Массивы, структуры, на С++
C++ Структуры (Записи)
Интегрированные структуры данных, записи C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
19.05.2010, 13:28     Структуры/записи/массивы #2
Цитата Сообщение от Proger_1 Посмотреть сообщение
C
1
2
3
scanf("%c",a.avtor); 
 printf("Vvedite Imja: ");
 scanf("%c",a.name);
C
1
2
3
scanf("%s",a.avtor); 
 printf("Vvedite Imja: ");
 scanf("%s",a.name);
Цитата Сообщение от Proger_1 Посмотреть сообщение
C
1
printf("Prosro4enie knigi: %c\n%c\n%d\n",a.avtor,a.name,a.data);
C
1
printf("Prosro4enie knigi: %s\n%s\n%d\n",a.avtor,a.name,a.data);
Добавлено через 1 минуту
Цитата Сообщение от Proger_1 Посмотреть сообщение
C
1
scanf("%d",a.data);
C
1
scanf("%d",&a.data);
Proger_1
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 30
19.05.2010, 13:41  [ТС]     Структуры/записи/массивы #3
Спасибо, каике глупые ошибки были..
Код отредактировал. Теперь интересует пункт, как заносить много таких записей, то есть не об одной книге. Здесь уже массив нужен ? Или просто цикл как-то запустить скажем:
printf("Enter number of books: ");
scanf("%d",&n);
А далее запускаем цикл до n раз.
Попробовал так, пока не работает:
Код
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <math.h>
#include <tchar.h>
using namespace std;

struct biblioteka
{
	char author[20];
	char name[20];
	int date;
};


int _tmain(int argc, _TCHAR* argv[])
{
	biblioteka a;
	int n;
	printf("Enter number of books: ");
	scanf("%d",&n);	
	for (int i=1; i>n; i++)
	{
	printf("Enter author name: ");
	scanf("%s",a.author);	
	printf("Enter name of book: ");
	scanf("%s",a.name);
	printf("Enter date: ");
	scanf("%d",&a.date);
	}
	if (a.date > 20)
	{
		printf("These books are old:\n%s\n%s\n%d\n",a.author,a.name,a.date);
	}
	else
	{
		printf("These is no old books");
	}
	scanf("%s");
	return 0;
}
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
19.05.2010, 13:48     Структуры/записи/массивы #4
Массив: статический или диеамический.
Proger_1
0 / 0 / 0
Регистрация: 29.03.2010
Сообщений: 30
19.05.2010, 13:56  [ТС]     Структуры/записи/массивы #5
А как это примерно реализовать ? Как данные, которые ввожу записать в массив?
kazak
 Аватар для kazak
3029 / 2350 / 155
Регистрация: 11.03.2009
Сообщений: 5,401
20.05.2010, 12:19     Структуры/записи/массивы #6
Допустим так:
статический массив
C
1
2
3
4
5
6
7
8
9
10
biblioteka a[5];
for (i = 0; i < 5; i++)
{
   printf("Enter author name: ");
   scanf("%s",a[i].author);   
   printf("Enter name of book: ");
   scanf("%s",a[i].name);
   printf("Enter date: ");
   scanf("%d",&a[i].date);
}
динамический массив
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
biblioteka *a;
printf("Enter number of books: ");
scanf("%d",&n);
a = (biblioteka *)calloc(n, sizeof(biblioteka)); 
for (i = 0; i < n; i++)
{
   printf("Enter author name: ");
   scanf("%s",a[i].author);   
   printf("Enter name of book: ");
   scanf("%s",a[i].name);
   printf("Enter date: ");
   scanf("%d",&a[i].date);
}
...
free(a);
Yandex
Объявления
20.05.2010, 12:19     Структуры/записи/массивы
Ответ Создать тему
Опции темы

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