Вход

Использование агрегатных типов и функций блочного ввода/вывода

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 83991
Дата создания 2014
Страниц 36
Источников 3
Мы сможем обработать ваш заказ (!) 19 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 390руб.
КУПИТЬ

Содержание

Оглавление
Введение
1.Исходные данные
2.Глобальные данные
3.Пользовательские макроопределения
4.Пользовательские функции
5.Описание нестандартных функций
6.Описание внешних файлов для работы с программой
7.Описание порядка работы с программой
Заключение
Список использованной литературы
Приложение 1. Листинг программы
main.cpp
spisok.h
functions.h
Приложение 2. Текст контекстной справки

Фрагмент работы для ознакомления

=head&&vsp->next!=tail)
{
tmp=vsp->next;
vsp->next=tmp->next;
tmp->next=vsp;
flg->next=tmp;

}
}
flg=vsp;
vsp=vsp->next;
}

}
}
void sort2()
{
int i,k;
pereg pr1;
list *vsp,*tmp,*flg;
if(!head){cout<<"пусто";system("pause");return;}
for(i=0;i<kol;i++)
{
flg=head;vsp=head;
while(vsp->next)
{
if(strcmp(vsp->pr.name,vsp->next->pr.name)>0)
{
if(vsp==head)
{
tmp=vsp->next;
vsp->next=tmp->next;
tmp->next=vsp;
head=tmp;
vsp=tmp;
}
if(vsp->next==tail)
{
tmp=vsp->next;
vsp->next=tmp->next;
tmp->next=vsp;
flg->next=tmp;
tail=vsp;
vsp=tmp;
}
if(vsp==head&&vsp->next==tail)
{
system("pause");
tmp=vsp->next;
vsp->next=tmp->next;
tmp->next=vsp;
head=tmp;
tail=vsp;
tail->next=NULL;
}
if(vsp!=head&&vsp->next!=tail)
{
tmp=vsp->next;
vsp->next=tmp->next;
tmp->next=vsp;
flg->next=tmp;

}
}
flg=vsp;
vsp=vsp->next;
}

}
}
void find()
{
int key=0,h,flag=0,i2;
char str[50]="\0";
int i,t,l=1;
char ch='-',ch1[2],ch2=390;//351
list *vsp=head;
while(key!=27&&key!=49){
system("cls");
cout<<"1-начать поиск\nesc-в главное меню\n";
key=getch();
}
if(key==27)return;
system("cls");
cout<<"введите имя города\n";
gets(str);
cout<<"введите кол-во минут\n";
cin>>t;getchar();
OemToChar(str, str);
system("cls");
cout<<"№\t"<<(char)166<<"Город"<<"\t\t\t"<<(char)166<<"Тариф"<<"\t\t\t"<<(char)166<<"# каб."<<"\t"<<(char)166<<"Минуты"<<(char)166<<endl;//422
for(i=0;i<71;i++)
{
if((i==8||i%32==0||i%56==0)&&i!=0){cout<<ch2;}//390//449
else{cout<<ch;}
}cout<<(char)390<<endl;
while(vsp)
{
if(strstr(vsp->pr.name,str)&&t<=vsp->pr.time)
{cout<<l<<"\t";l++;
showel(vsp->pr);flag=1;
for(i=0;i<71;i++)
{
if((i==8||i%32==0||i%56==0)&&i!=0){cout<<ch2;}//390//449
else{cout<<ch;}
}cout<<(char)390<<endl;
}vsp=vsp->next;
}
if(!flag){system("cls"); cout<<"не найдено, нажмите esc чтобы вернуться\n";}
else {flag=0;cout<<"\n\nнажмите esc чтобы вернуться";}
while(key!=27){key=getch();};
system("cls");
}
void create()
{
int l,k,i,flag=0;
pereg tmp;
char str[15],str1[15];
while(!flag){
cout<<"введите город(макс. 12 символов) вводить русскими буквами\n";
gets(str);//tmp.name
l=strlen(str);
if(l>12)str[12]=0;
else {k=12-l;for(i=0;i<k;i++)str[i+l]=' ';str[12]=0;}
//cin.clear();
OemToChar(str, str);
if(!cheks(str))flag=1;
else
{
cout<<"в имени не должно быть цифр\n";
}
}
strcpy(tmp.name,str);
flag=0;
while(!flag){
str[0]=0;
cout<<"введите имя тарифа(макс. 9 символов) вводить русскими буквами\n";
gets(str1);//tmp.tarif
l=strlen(str1);
if(l>9)str1[9]=0;
else {k=9-l;for(i=0;i<k;i++)str1[i+l]=' ';str1[9]='\0';}
OemToChar(str1, str1);
if(!cheks(str1))flag=1;
else
{
cout<<"в имени не должно быть цифр\n";
}
}
strcpy(tmp.tarif,str1);
flag=0;
str[0]=0;
while(!flag){
cout<<"введите номер кабинки\n";
//cin>>tmp.num;//getchar();
gets(str);
if(!chekn(str)){tmp.num=atoi(str);flag=1;}
else{cout<<"в номере не должно быть букв\n";}
while(flag&&tmp.num<0)
{
cout<<"введите корректное время...\n";
flag=0;
}
}
flag=0;
str[0]=0;
while(!flag){
cout<<"введите кол-во минут\n";
gets(str);
if(!chekn(str)){tmp.time=atoi(str);flag=1;}
else{cout<<"в минутах не должно быть букв\n";}
}
add(tmp);
}


void delelem()
{
int n;
cout<<"введите номер записи которую хотите удалить\n";
cin>>n;getchar();
while(n<=0&&n>kol)
{
if(n<=0)cout<<"введите корректное число\n";
else cout<<"введите корректное число(в списке "<<kol<<" записей\n";
cin>>n;
}
del(n);
}

void write_file()
{
int key=0;
f=fopen("file.bin","wb");
list *vsp=head;
while(vsp)
{fwrite(&vsp->pr,sizeof(pereg),1,f);
vsp=vsp->next;}
fclose(f);
while(key!=27)
{system("cls");
cout<<"сохранение прошло успешно\nнажмите esc чтобы вернуться в главное меню";
key=getch();}
}
void show()
{
system("cls");
int i,t=1,key=0;
char ch='-',ch1[2],ch2=390;//351
/*ch1[0]=476;ch1[1]=0;
OemToChar(ch1,ch1);
ch=ch1[0];*/
list *vsp=head;
while(key!=27){
cout<<"№\t"<<(char)166<<"Город"<<"\t\t\t"<<(char)166<<"Тариф"<<"\t\t\t"<<(char)166<<"# каб."<<"\t"<<(char)166<<"Минуты"<<(char)166<<endl;//422
for(i=0;i<71;i++)
{
if((i==8||i%32==0||i%56==0)&&i!=0){cout<<ch2;}//390//449
else{cout<<ch;}
}cout<<(char)390<<endl;
if(vsp==NULL){cout<<"пусто\n";return;}
while(vsp)
{
cout<<t<<"\t";t++;
showel(vsp->pr);
for(i=0;i<71;i++)
{
if((i==8||i%32==0||i%56==0)&&i!=0){cout<<ch2;}//390//449
else{cout<<ch;}
}cout<<(char)390<<endl;
vsp=vsp->next;
}
key=getch();
if(key!=27){vsp=head;system("cls");t=1;}
}

}
void help()
{
int key=0;
while(key!=27)
{
system("cls");
cout<<"Автор: Лупин Иван Денисович И621\n";
cout<<"Тема: использование абстрактных типов данных и функций блочного файлового ввода-вывода\n";
cout<<"\nХар-ка: Программа реализованна с помощью односвязного списка \n";
cout<<"с возможностью делать новые записи или удалить их, также \n";
cout<<"записи можно сортировать и записывать в файл\n\nУправление:";
cout<<"с помощью цифр на клавиатуре выберете нужное для вас действие ";
cout<<"\nесли вы захотите вернуться обратно нажмите esc";
cout<<"\n1 пункт покажет список \n2 пункт поможет найти нужную кабинку";
cout<<"\n3 отсортирует список по названию города или номеру кабинки \n4 добавить запись в список\n5 удалить запись из списка";
cout<<"\n\n";

key=getch();
}
}
int cheks(char *str)
{
int flag=0;
for(int i=0;str[i]!='\0';i++)
{
if(isdigit(str[i]))// if((str[i]<'а'&&str[i]>'я')||(str[i]<'А'&&str[i]>'Я'))
{
return 1;
}
}
return 0;
}
int chekn(char *str)
{
int flag=0;
for(int i=0;str[i]!='\0';i++)
{
if(!isdigit(str[i]))
{
return 1;
}
}
return 0;
}

Приложение 2. Текст контекстной справки
void help()
{
int key=0;
while(key!=27)
{
system("cls");
cout<<"Автор: Лупин Иван Денисович И621\n";
cout<<"Тема: использование абстрактных типов данных и функций блочного файлового ввода-вывода\n";
cout<<"\nХар-ка: Программа реализованна с помощью односвязного списка \n";
cout<<"с возможностью делать новые записи или удалить их, также \n";
cout<<"записи можно сортировать и записывать в файл\n\nУправление:";
cout<<"с помощью цифр на клавиатуре выберете нужное для вас действие ";
cout<<"\nесли вы захотите вернуться обратно нажмите esc";
cout<<"\n1 пункт покажет список \n2 пункт поможет найти нужную кабинку";
cout<<"\n3 отсортирует список по названию города или номеру кабинки \n4 добавить запись в список\n5 удалить запись из списка";
cout<<"\n\n";

key=getch();
}
}
11

Список литературы [ всего 3]

Список использованной литературы
1.Свободная интернет-энциклопедия - Википедия http://ru.wikipedia.org/wiki/C%2B%2B
2.Шилдт Г. Полный справочник по С++. - М.: Вильямс, 2011.
3.Хортон А. Visual C++ 2010: полный курс. - М.: Диалектика, 2010.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00498
© Рефератбанк, 2002 - 2024