void lue_kentta (char *str, int maxlen)
{
char *p;
int i;
for(i=1;i<maxlen;i++) putch('Û');
gotoxy(wherex()-maxlen+1,wherey());
p=str;
for(i=0; ; )
{
*str = getch();
if(str==p)
{ if(*str>=97 && *str<=122)
*str-=32;
if(*str=='')
*str='';
if(*str=='')
*str='';
if(*str=='')
*str='';
}
if(*str=='\r')
{ *str = '\0';
return;
}
else
{ if(*str=='\b')
{
if(str>p)
{ str--; i--;
putch('\b');
putch('Û');
putch('\b');
}
}
else if(i<maxlen-1)
{ putch(*str);
str++; i++;
}
}
}
}//end lue_kentta
alkuun
Hakemisto |
void haku (void)
{
char val;
do
{
do
{
ikkuna(4);
cprintf("\n\r
Haku \r\n\n");
cprintf("
Valitse hakutieto :\r\n\n");
cprintf("
1 Etunimi\r\n\n");
cprintf("
2 Sukunimi\r\n\n");
cprintf("
3 Osoite\r\n\n");
cprintf("
4 Puhelinnumero\r\n\n");
cprintf("
5 Lista\r\n\n");
cprintf("
0 Paluu pvalikkoon\r\n");
val = getch();
if(val<MIN || val>MAX)
{
ikkuna(5);
val = getch();
}
if(val=='5')
{
lista();
ikkuna(2);
ikkuna(3);
}
else if(val>MIN || val<MAX) hakea_tiedot(val);
}
while(val<MIN || val>MAX);
}
while(val!='0');
}//end haku
alkuun
Hakemisto |
int hakea_tiedot(char key)
{
int x=0;
ikkuna(6);
cprintf("\r\n\n");
cprintf("\n\n\
Anna hakutieto.\n\n\n\r");
switch(key)
{
case '1':
cprintf("
Etunimi : ");
lue_kentta(record[0].etunimi,Etunimpitus);
if(strcmp(record[0].etunimi,"")==0)
break;
x = etsi(1);
break;
case '2':
cprintf("
Sukunimi : ");
lue_kentta(record[0].sukunimi,Sukunimpitus);
if(strcmp(record[0].sukunimi,"")==0)
break;
x = etsi(2);
break;
case '3':
cprintf("
Osoitteen : ");
lue_kentta(record[0].osoite,Osoitepitus);
if(strcmp(record[0].osoite,"")==0)
break;
x = etsi(3);
break;
case '4':
cprintf("\r\n\n
Puhelinnumero : ");
lue_kentta(record[0].puhelin,Puhelinpitus);
if(strcmp(record[0].puhelin,"")==0)
break;
x = etsi(4);
break;
}//end switch
return(x);
}//end hakea_tiedot
alkuun
Hakemisto |
int etsi(int t)
{
char key;
int i=1;
clrscr();
do
{
for(;i<=rvt;i++)
{
if(t==1)
{
if(strcmp(record[i].etunimi,record[0].etunimi)
==0) break;
}
if(t==2)
{
if(strcmp(record[i].sukunimi,record[0].sukunimi)
==0) break;
}
if(t==3)
{
if(strcmp(record[i].osoite,record[0].osoite)
==0) break;
}
if(t==4)
{
if(strcmp(record[i].puhelin,record[0].puhelin)
==0) break;
}
}
if(i==rvt+1)
{
ikkuna(8);
getch();
return(0);
}
clrscr();
cprintf("\r\n\ Num: %d",i);
cprintf("\r\n\n\ %s
%s", record[i].etunimi,record[i].sukunimi);
cprintf("\r\n\n Puh: %-12s Osoite:
%s\r\n\n",
record[i].puhelin,record[i].osoite);
cprintf("\r\n Jos painaa <K>
jatkaa haku");
cprintf("\r\n Jos painaa
<E> toimi valikoima");
key = getch();
if(key=='k') i++;
}while(key!='e');
return(i);
}//end etsi
alkuun
Hakemisto |
void lisays (void)
{
char kentta, val;
do
{
do
{
ikkuna(4);
cprintf("\n\r
Lisys \r\n\n");
cprintf("\n\r
Valitse tieto :\r\n\n");
cprintf("
1 Lisys\r\n\n");
cprintf("
5 Lista\r\n\n");
cprintf("
0 Paluu pvalikkoon\r\n");
val = getch();
if(val<MIN || val>MAX)
{
ikkuna(10);
val = getch();
}
if(val=='5')
{
lista();
ikkuna(2);
ikkuna(3);
}
else if(val=='1')
{
ikkuna(4);
cprintf("\r\n
Lisys \r\n\n");
cprintf("\r\n\n
Etunimi : ");
lue_kentta(record[0].etunimi,Etunimpitus);
if(strcmp(record[0].etunimi,"")==0)
break;
cprintf("\r\n\n
Sukunimi : ");
lue_kentta(record[0].sukunimi,Sukunimpitus);
if(strcmp(record[0].sukunimi,"")==0)
break;
cprintf("\r\n\n
Osoite : ");
lue_kentta(record[0].osoite,Osoitepitus);
if(strcmp(record[0].osoite,"")==0)
break;
cprintf("\r\n\n
Puhelin : ");
lue_kentta(record[0].puhelin,Puhelinpitus);
if(strcmp(record[0].puhelin,"")==0)
break;
cprintf("\r\n\n\n
Listnk tiedot ");
cprintf("luetteloon <K/E>?");
do
{
kentta = getch();
if(kentta=='k')
{
rvt++;
if(rvt>1)
{
aakkosta();
}
else
{
record[1] = record[0];
}
}
}while(kentta!='k' && kentta!='e');
}//end if val = 1
}while(val<MIN || val>MAX);
}while(val!='0');
}//end lisaus
alkuun
Hakemisto |
void muutos (void)
{
char val;
int x;
do
{
ikkuna(4);
cprintf("\n\r
Muutos \r\n\n");
cprintf(" Mill
perusteella haluat hakea :\r\n\n");
cprintf(" 1
Etunimi\r\n\n");
cprintf(" 2
Sukunimi\r\n\n");
cprintf(" 3
Osoite\r\n\n");
cprintf(" 4
Puhelinnumero\r\n\n");
cprintf(" 5
Lista\r\n\n");
cprintf(" 0
Paluu pvalikkoon\r\n");
do
{
val = getch();
if(val<MIN || val>MAX)
{
ikkuna(5);
val = getch();
}
} while(val<MIN || val>MAX);
if(val=='5')
{
lista();
ikkuna(2);
ikkuna(3);
}
else
{
x = hakea_tiedot(val);
if(x!=0)
{
ikkuna(6);
muuttaa_tiedot(x);
ikkuna(2);
ikkuna(3);
}
}
}while(val!='0');
}//end muutos
alkuun
Hakemisto |
void poisto (void)
{
char rivi[81],vas;
int key,val,tark,i;
do
{
do
{
ikkuna(4);
cprintf("\n\r
Poisto \r\n\n");
cprintf("\n\r
Valitse tieto :\r\n\n");
cprintf("
1 Poisto rivi\r\n\n");
cprintf("
5 Lista\r\n\n");
cprintf("
0 Paluu pvalikkoon\r\n");
val = getch();
if(val<MIN || val>MAX)
{
ikkuna(10);
val = getch();
}
if(val=='5')
{
lista();
ikkuna(2);
ikkuna(3);
}
else if(val=='1')
{
cprintf(" \n\n\n\r
Anna poistettavan rivin numero: ");
getch();
gets(rivi);
tark = sscanf(rivi,"%d",&key);
if(tark==1 && key<=rvt && key>0)
{
ikkuna(4);
cprintf("\r\n\ Num: %d",key);
cprintf("\r\n\n\n\n %s %s",record[key].sukunimi,
record[key].etunimi);
cprintf("\r\n\n Puh: %-12s Osoite:
%s\r\n\n",
record[key].puhelin,record[key].osoite);
cprintf("\n\n Poistetaanko <K/E>?");
do
{
vas = getch();
if(vas=='k')
{
for(i=key;i<rvt;i++)
{
record[i] = record[i+1];
}
rvt--;
}
}while(vas!='k' && vas!='e');
}
}//end if val = 1
}while(val<MIN || val>MAX);
}while(val!='0');
}//end poisto
alkuun
Hakemisto |