Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Курсовик8
.CPP#include <conio.h>
#include <alloc.h>
#include <stdio.h>
#include <string.h>
void fon(void);
void ramka(int x1,int y1,int x2,int y2);
void menu(int y,int x1,int y1,int x2,int y2);
char** vvod(int* height);
void vivod(char** text, int* height);
void check(char** text, int* height);
void help(void);
void main(void)
{
int posy=1;
int height; //„«Ё ⥪бв
char** text;
char c;
_setcursortype(0);
fon();
ramka(29,8,53,14);
menu(posy,29,8,53,14);
do
{
do
c=getch();
while ((c!=13)&&(c!=72)&&(c!=80));
switch(c)
{
case 72: posy=(posy)>1 ? posy-1: 5;
menu(posy,29,8,53,14);
break;
case 80: posy=(posy)<5 ? posy+1:1;
menu(posy,29,8,53,14);
break;
case 13: switch (posy)
{
case 1: help();
break;
case 2: text=vvod(&height);
break;
case 3: vivod(text, &height);
break;
case 4: check(text, &height);
break;
}
_setcursortype(0);
fon();
ramka(29,8,53,14);
menu(posy,29,8,53,14);
break;
}
}
while ((c!=13)||(posy!=5));
}
void fon(void)
{
int i,j;
textcolor(1);
textbackground(0);
clrscr();
window(1,1,80,25);
for (i=2;i<80;i++)
for (j=1;j<26;j++)
{
gotoxy(i,j);
putch(176);
}
}
void ramka(int x1,int y1,int x2,int y2)
{
int i;
textcolor(0);
textbackground(6);
gotoxy(x1,y1); putch(201);
for (i=x1;i<x2-2;i++)
putch(205);
putch(187);
gotoxy(x1,y2);
putch(200);
for (i=x1;i<x2-2;i++)
putch(205);
putch(188);
gotoxy(x1,y1);
for (i=y1+1;i<y2;i++)
{
gotoxy(x1,i); putch(186);
gotoxy(x2-1,i); putch(186);
}
}
void menu(int y,int x1,int y1,int x2,int y2)
{
char sm[5][23]={
{" Ћ Їа®Ја ¬¬Ґ "},
{" ‚ў®¤ ⥪бв "},
{" Љ®ва®«мл© ўлў®¤ "},
{" Џ®Є § вм १г«мв в "},
{" ‚л室 "}};
int i=1;
textcolor(0);
window(x1+1,y1+1,x2-1,y2-1);
do
{
if (y==i)
textbackground(2);
else
textbackground(6);
gotoxy(1,i);
cprintf("%s",sm[i-1]);
i++;
}
while (i<=5) ;
}
char** vvod(int* height)
{
unsigned char word;
char stroka[81]={""};
char** string;
int i=0, j=0, k;
textcolor(7);
textbackground(0);
window(1,1,80,25);
clrscr();
_setcursortype(1);
printf("****************** ‚ўҐ¤ЁвҐ ⥪бв агббЄ®¬ п§лЄҐ:");
printf(" *****************\n");
gotoxy(1,23);
string=(char**)malloc(20*sizeof(char*));
for (k=0;k<80;k++)
printf("*");
gotoxy(1,3);
do
{
word=getch();
//…б«Ё ¦ в п Є« ўЁи - ЎгЄў агббЄ®Ј® «д ўЁв , Ё«Ё § Є
//ЇаЁЇЁ Ёп, в® ®Ўа Ў влў Ґ¬ Ёе.
if (((word>='Ђ')&&(word<='Ї')||(word>='а')&&(word<='с')||
(word>=',')&&(word<='.')||(word==' ')||(word=='!')||
(word==':')||(word==';')||(word=='?'))&&(i<19))
{
//ЏаЁбў Ёў Ґ¬ н«Ґ¬Ґвг ¬ ббЁў Є®¤ ¦ в®Ј® бЁ¬ў®«
// string[i][j]=word;
stroka[j]=word;
printf("%c", word);
//…б«Ё ¬л ¤®бвЁЈ«Ё Є®ж бва®ЄЁ
if (j>77)
{
string[i]=(char*)malloc(j*sizeof(char*));
strcpy(string[i], stroka);
for (k=0;k<80;k++) stroka[k]='\0';
printf("\n");
j=0; i++;
}
else j++;
}
//…б«Ё ¦ в п Є« ўЁи - ENTER, в® ЇҐаҐе®¤Ё¬ б«Ґ¤гойго бва®Єг
if ((word==13)&&(i<19))
{
string[i]=(char*)malloc(j*sizeof(char*));
strcpy(string[i], stroka);
for (k=0;k<80;k++) stroka[k]='\0';
printf("\n");
i++; j=0;
}
//…б«Ё ¦ в п Є« ўЁи - BACKSPACE, в® г¤ «пҐ¬
//ЇаҐ¤иҐбвўгойЁ© бЁ¬ў®«
if (word==8)
{
//‚Ё§г «м® бвЁа Ґ¬ бЁ¬ў®« ЇҐаҐ¤ Єгаб®а®¬
printf("\b \b");
if (j>0)
{
stroka[j-1]='\0';
j--;
}
else
//…б«Ё ¬л 室Ё¬бп ў з «Ґ бва®ЄЁ...
{
//ЏҐаҐ¬Ґй Ґ¬бп ў Є®Ґж ўлиҐбв®п饩 бва®ЄЁ...
if (i>0)
{
i--;
strcpy(stroka,string[i]);
}
j=strlen(stroka+1);
stroka[j]='\0';
//... Ё бвЁа Ґ¬ ҐҐ Ї®б«Ґ¤Ё© бЁ¬ў®«
gotoxy(j+1,i+3);
printf(" ");
gotoxy(j+1,i+3);
}
//‡ ¬ҐпҐ¬ бвҐавл© ўЁ§г «м® бЁ¬ў®« Є®ж®¬ бва®ЄЁ ў
//Ї ¬пвЁ (Ё зҐ бд®а¬г«Ёа®ў вм нв® Ґ ¬®Јг!!!)
}
//…б«Ё зЁб«® бва®Є ЇаҐўлбЁв ¤®ЇгбвЁ¬®Ґ, Є®¬ЇмовҐа ўл¤ бв
//§ўгЄ®ў®Ґ ЇаҐ¤гЇаҐ¦¤ҐЁҐ Ё ⥪бв®ў®Ґ ЇаҐ¤гЇаҐ¦¤ҐЁҐ
if (i>18)
{
gotoxy(1,24);
printf(" ђ §¬Ґал ®Є Ґ Ї®§ў®«пов ўўҐбвЁ Ў®«м襥 Є®«ЁзҐбвў® бва®Є!\a");
gotoxy(1,22);
}
}
//„Ґ« Ґ¬ бЁЁ ®ЇҐа жЁЁ, Ї®ЄҐ Ґ ¦ в ESC Ё«Ё Ї®Є Ґ
//ЇаҐўлиҐ «Ё¬Ёв бва®Є
while (word!=27);
string[i]=(char*)malloc(j*sizeof(char*));
strcpy(string[i], stroka);
//ЏаЁбў Ёў Ґ¬ ЇҐаҐ¬Ґ®© зЁб«® бва®Є ўўҐ¤Ґ®Ј® ⥪бв
*height=i;
return string;
}
void vivod(char** text,int* height)
{
int i,j=0, ThereIsNoWord=0;
textcolor(7);
textbackground(0);
window(1,1,80,25);
clrscr();
printf("**************** Љ®ва®«мл© ўлў®¤ Ёб室®Ј® ⥪бв :");
printf(" ***************\n");
gotoxy(1,23);
for (i=0;i<80;i++)
printf("*");
gotoxy(1,3);
for (i=0; i<=*height; i++)
if (text[i]==NULL)
printf("\n");
else
printf("%s\n", text[i]);
i=0; j=0;
while (i<=*height&&ThereIsNoWord==0)
{
while (j<=strlen(text[i])&&ThereIsNoWord==0)
{
if ((text[i][j]>='Ђ')&&(text[i][j]<='Ї')||(text[i][j]>='а')
&&(text[i][j]<='с'))
ThereIsNoWord=1;
j++;
}
i++;
}
if (ThereIsNoWord==0)
{
gotoxy(1,24);
printf(" ‚® ўўҐ¤Ґ®¬ ў ¬Ё ⥪б⥠Ґв Ё ®¤®Ј® б«®ў !!!\a");
gotoxy(1,22);
}
do;
while (getch()!=27);
}
void help(void)
{
textcolor(7);
textbackground(0);
window(1,1,80,25);
clrscr();
textcolor(14);
cprintf(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН» ");
cprintf(" є Љгаб®ў п а Ў®в Ї® ¤ЁбжЁЇ«ЁҐ \"Џа®Ја ¬¬Ёа®ў ЁҐ\" є ");
cprintf(" є бв㤥⠣агЇЇл д Єг«мвҐв Љ’€ є ");
cprintf(" є є ");
cprintf(" є є ");
cprintf(" ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј ");
textcolor(11);
cprintf(" ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННН» ");
cprintf(" є ‡ ¤ ЁҐ Єгаб®ўго а Ў®вг: є ");
cprintf(" є є ");
cprintf(" є ‡ ¤ ⥪бв, ᮤҐа¦ йЁ© Їа®Ё§ў®«м®Ґ Є®«ЁзҐбвў® бва®Є, ў Є®в®але є ");
cprintf(" є ®в¤Ґ«млҐ б«®ў ¬®Јгв а §¤Ґ«пвмбп ®¤Ё¬ Ё«Ё ҐбЄ®«мЄ®¬Ё Їа®ЎҐ« ¬Ё Ё«Ё є ");
cprintf(" є § Є ¬Ё ЇгЄвг жЁЁ (ЇҐаҐ®б б«®ў б ®¤®© бва®ЄЁ ¤агЈго Ґ ЁбЇ®«м§г- є ");
cprintf(" є Ґвбп) „®ЇгбвЁ¬лҐ § ЄЁ ЇгЄвг жЁЁ: \" . , : ; - ! ? \". ЌҐ®Ўе®¤Ё¬® бд®а- є ");
cprintf(" є ¬Ёа®ў вм ®ўл© ⥪бв, Ї®«гз Ґ¬л© Ё§ Ёб室®Ј® б«Ґ¤гойЁ¬ ®Ўа §®¬: ўлЎЁ- є ");
cprintf(" є а овбп бва®ЄЁ б® б«®ў ¬Ё зҐв®© ¤«Ёл, Ґб«Ё е®вп Ўл ®¤® б«®ў® ў є ");
cprintf(" є бва®ЄҐ ᮤҐа¦Ёв ¤ўҐ ®¤Ё Є®ўлҐ а冷¬ бв®пйЁҐ ЎгЄўл Ё Ї®б«Ґ¤ҐҐ б«®ў® є ");
cprintf(" є нв®© бва®ЄЁ пў«пҐвбп ЇаЁ« Ј ⥫мл¬. ЏаЁ« Ј ⥫мл¬ ў Їа®Ја ¬¬Ґ бзЁв - є ");
cprintf(" є овбп б«®ў , Ё¬ҐойЁҐ ®Є®з Ёп: \"л©\",\"л¬\",\"лҐ\",\"Ё©\",\"Ё¬\",\"ЁҐ\",\"®©\",\"®¬\" є ");
cprintf(" є \"®Ґ\",\"Ґ©\",\" п\",\"пп\",\"го\",\"оо\". є ");
cprintf(" є ЏаЁ ўў®¤Ґ Ёб室®Ј® ⥪бв ў ®ЄҐ । Єв®а ЁбЇ®«м§гҐвбп в®«мЄ® є ");
cprintf(" є агббЄ п а бЄ« ¤Є Є« ўЁ вгал в Є¦Ґ § ЄЁ ЇаҐЇЁ Ёп. Ћбв «млҐ бЁ¬- є ");
cprintf(" є ў®«л ЁЈ®аЁаговбп. Љ« ўЁи ESC Ї®§ў®«пҐв § Є®зЁвм ўў®¤ ⥪бв . є ");
cprintf(" є є ");
cprintf(" є „«п ўл室 ў ¬Ґо ¦¬ЁвҐ Є« ўЁиг ESC... є ");
cprintf(" ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННј");
do;
while (getch()!=27);
}
void check(char** text,int* height)
{
int i,k,j=0,EndofWord,BeginofWord,DivbyTwo,DoubleLetter;
int IsLine=0;
char ok[15][3]={"л©","л¬","лҐ","Ё©","Ё¬","ЁҐ","®©","®¬","®Ґ",
"Ґ©"," п","пп","го","оо"};
textcolor(7);
textbackground(0);
window(1,1,80,25);
clrscr();
printf("*************** ‚лў®¤ १г«мв в®ў ®Ўа Ў®вЄЁ ⥪бв :");
printf(" ***************\n");
gotoxy(1,23);
for (i=0;i<80;i++)
printf("*");
gotoxy(1,3);
//ЋЇаҐ¤Ґ«пҐ¬ Є®Ґж Ї®б«Ґ¤ҐЈ® б«®ў i-в®© бва®ЄЁ
for (i=0;i<=*height;i++)
{
j=strlen(text[i]);
DivbyTwo=1; DoubleLetter=0;
//€йҐ¬ Ї®б«Ґ¤Ё© бЁ¬ў®« (ЎгЄўҐл©) Ї®б«Ґ¤ҐЈ® б«®ў ...
while ((text[i][j]<'Ђ'||text[i][j]>'с'||
(text[i][j]>'Ї'&&text[i][j]<'а'))&&j>=0)
j--;
EndofWord=j;
for (k=0;k<15;k++)
if (text[i][j-1]==ok[k][0]&&text[i][j]==ok[k][1])
//Џ®б«Ґ¤ҐҐ б«®ў® ў бва®ЄҐ - ЇаЁ« Ј ⥫쮥
{
while (j>=0&&DivbyTwo==1)
{
while (((text[i][j]>='Ђ'&&text[i][j]<='Ї')||
(text[i][j]>='а'&&text[i][j]<='с'))&&j>=0)
{
if (text[i][j-1]==text[i][j])
DoubleLetter=1;
j--;
}
BeginofWord=j;
if ((EndofWord-BeginofWord)%2)
DivbyTwo=0;
while ((text[i][j]<'Ђ'||text[i][j]>'с'||
(text[i][j]>'Ї'&&text[i][j]<'а'))&&j>=0)
j--;
EndofWord=j;
}
if (DivbyTwo&&DoubleLetter)
{
printf("%s\n", text[i]);
IsLine=1;
}
}
}
if (!IsLine)
{
gotoxy(1,24);
printf(" ‚ ⥪б⥠Ґв Ё ®¤®© бва®ЄЁ, 㤮ў«Ґвў®апо饩 ўбҐ¬ гб«®ўЁп¬ ўлЎ®аЄЁ!!!\a");
gotoxy(1,22);
}
do;
while (getch()!=27);
}
Соседние файлы в предмете Программирование