Электронная картотека
Рефераты >> Программирование и компьютеры >> Электронная картотека

Текст программы:

#include<alloc.h>

#include<conio.h>

#include<dos.h>

#include <stdio.h>

#include <string.h>

struct PL //Задание структурных переменных

{

char namepl[18];

int year;

char people[15];

unsigned int sputnik;

PL *prev;

PL *next;

};

void menu1() //Функция главного меню

{

clrscr();

printf("\n\t╓────────────────────────────────────────────────────────────╖\n");

printf( "\t║ ║ ");

puts( "\n\t║ К А Р Т О Т Е К А П Л А Н Е Т ║\n");

" \t ║\t\t С О Л Н Е Ч Н О Й С И С Т Е М Ы ║ ");

puts( "\t╙────────────────────────────────────────────────────────────╜");

puts("\n\t\t Главное меню :\n");

puts("\t\t 1- Рекомендации пользователю.");

puts("\t\t 2- Ввод данных.");

puts("\t\t 3- Вывод всех данных.");

puts("\t\t 4- Просмотр, удаление, добавление.");

puts("\t\t 5- Вывод данных по определенному признаку.");

puts("\t\t 6- Сортировка.");

puts("\t\t 7- Выход.");

}

void menu2() //Меню поиска элементов

{

puts("\n\n\n\n\t\t\t Меню поиска:\n");

puts("\t\t\t 1- Вывод по названию планеты.");

puts("\t\t\t 2- Вывод по году открытия.");

puts("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\t Для выхода в главное меню нажмите любую клавишу.");

}

void sovet(char *s) //Функцияподсказки

{

window(1,25,79,25);

textcolor(GREEN+BLUE);

textbackground(WHITE+YELLOW);

clrscr();

cprintf(" %s",s);

textcolor(10);

window(1,1,79,25);

textbackground(0);

}

void vvod(PL *pla) //Функция ввода структуры

{

do

{

clrscr();

puts("Введите имя планеты :");

fflush(stdin);

gets(pla->namepl);

}

while(strlen(pla->namepl)>18);

do

{

puts("Год открытия планеты :");

scanf("%d",&(pla->year));

}

while((pla->year)<-30000 || (pla->year)>30000);

do

{

puts("Кто открыл планету :");

fflush(stdin);

gets(pla->people);

}

while(strlen(pla->people)>15);

do

{

puts("Сколько спутников ?");

scanf("%d",&(pla->sputnik));

}

while(((pla->sputnik)<0) || ((pla->sputnik)>999));

}

PL* vvodall() //Функция ввода структур

{

PL *playn, *pla;

clrscr();

sovet("Введите параметры планеты");

pla=(PL*)malloc(sizeof(PL));

vvod(pla);

playn=pla;

pla->next=NULL;

sovet("Для дальнейщего ввода нажми y, иначе любую клавишу.");

while (getch()=='y')

{

clrscr();

sovet("Введите параметры планеты");

pla=(PL*)malloc(sizeof(PL));

vvod(pla);

playn->prev=pla;

pla->next=playn;

playn=pla;

sovet("Для дальнейщего ввода нажми y, иначе любую клавишу.");

}

pla->prev=NULL;

while (pla->next)

pla=pla->next;

return(pla);

}

void vivodall(PL *pla) //Функция вывода на экран всех структур

{

int i=1;

puts("\n\t\t\t В С Я К А Р Т О Т Е К А\n");

printf("┌──────┬─────────────────┬────────────┬───────────────┬───────────┐\n");

printf("│ Номер│ Название │ Когда │ Кто открыл │ Кол-во │\n");

printf("│ стр. | планеты │ открыли │ планету │ спутников │\n");

printf("└──────┴─────────────────┴────────────┴───────────────┴───────────┘\n");

printf("┌──────┬─────────────────┬────────────┬───────────────┬───────────┐\n");

while (pla->prev)

{

printf("│ %5d │ %18s │ %12u │ %15s │ %11u │ ",i,pla->namepl,

pla->year,pla->people,pla->sputnik);

pla=pla->prev; i++;

}


Страница: