15.12.2009, 02:26
общий
это ответ
Здравствуйте, aleshinIvan.
Текст программы в приложении.
Приложение:
#include "stdio.h"
#include "conio.h"
#include "string.h"
#include "locale.h"
#include <time.h>
struct book
{
char name [15];
char author [15];
char fam [20];
int status;
struct tm data_vydachi;
struct tm data_vozvrata;
};
void main()
{
setlocale(LC_ALL, "Rus");
struct book s[25];
int i=1;
int year,month;
__time64_t now, result;
char buff[80];
for (i=0;i<=25;i++)
{
printf("Название книги:\t ");
scanf("%s",s[i].name);
printf("Автор:\t ");
scanf("%s",s[i].author);
printf("Фамилия читателя:\t ");
scanf("%s",s[i].fam);
printf("Статус: Введите число от 1 до 5, где 1 - рабочий, 2 - студент, 3- пенсионер, 4- учащийся, 5- безработный.\t");
scanf("%i",&s[i].status);
while ((s[i].status>5) | (s[i].status<1))
{
printf("Неправильный статус");
scanf("%i",&s[i].status);
}
_localtime64_s( &s[i].data_vydachi, &now );
printf("Дата выдачи: число.месяц.год\t");
scanf("%i.%i.%i",&s[i].data_vydachi.tm_mday, &month, &year);
s[i].data_vydachi.tm_year=year-1900;
s[i].data_vydachi.tm_mon=month-1;
s[i].data_vozvrata=s[i].data_vydachi;
switch(s[i].status)
{
case 1:
s[i].data_vozvrata.tm_mday+=10;
break;
case 2:
s[i].data_vozvrata.tm_mday+=20;
break;
case 3:
s[i].data_vozvrata.tm_mday+=15;
break;
case 4:
s[i].data_vozvrata.tm_mday+=15;
break;
case 5:
s[i].data_vozvrata.tm_mday+=5;
break;
}
if( (result = mktime( &s[i].data_vozvrata )) != (time_t)-1 )
{
asctime_s( buff, sizeof(buff), &s[i].data_vozvrata );
printf( "Дата возврата: %s\n", buff );
}
else
printf("Произошла ошибка");
getch();
}
}