folder Tahribat.com Forumları
linefolder C - C++
linefolder C++ Kullanıcı Menüsü Oluşturmak



C++ Kullanıcı Menüsü Oluşturmak

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek

    Uygulamada kullanıcının arama yapılmasını isteniyor.

     

    #include <iostream>

    #include <fstream> // headeren fail za failov potok

     

    using namespace std;

     

    //prototipi na funciite

    int inter_search(int key, int num) ;

    void zapis(int a[], int n); // za zapis na dannite v faila

     

    int main()

    {

     

    int a[100]; // masiv s maksimum 100 elementa

    int key,i=0; // promenlivi za tarseniq element, stapka za tarsene i indeksa na elementite v masiv

    char ime[100]; // promenliva za patq na faila

    fstream fp; 

    cout<<"Zadaite patqt na fail: ";

    cin>>ime;

        fp.open(ime); // otvarqne na izvikaniq fail ot saotvetnata direktoriq

    if(!fp) // proverka za sa6testvuvaneto na faila

    {

    cout<<"Ne se namira faila !!!"<<endl;

    exit(1);

    }

     

    int n=0;// promenliva za broq na elementite vuv faila

        while(!fp.eof()) // obhojdane go kraq na faila

    {

    fp>>a[i]; // izvejdane na elementite ot faila

    i++; // narastvane na indeksa na poredniq element prehvarlen v masiva

    n++; // narastvane na broikata na elementite v masiva

    }

    for(i=0; i<n; i++) // cikal za obhojdane s izvejdane na elementite na ekrana

    cout<<" "<<a[i];

    cout<<endl;

    fp.close(); // zatvarqne na faila

     

    cout<<"Vuvejdane element za tarsene: "<<endl;

    cin>>key;

     

    if(inter_search( n, key)!=-1) // izvikvane na funkciqta za tarsene sas stapka

    {

    cout<<"Elementat "<<key<<" e nameren "<<endl;

       

       cout<<endl<<"Premahvam go ot masiva. Noviqt vi masiv e: "<<endl;

       

    //promqna na indeksite na masiva sled iztrivaneto na elementa

    i=0;

    while (i<n) {if (a[i]==key) {

    for (int j=i;j<n;j++) a[j]=a[j+1]; n=n-1;}

    else i+=1;}

    for (i=0; i<n; i++) 

    cout<<endl<<"A ["<<i<<"]"<<a[i];

    zapis(a, n); // izvikvane na funkciqta za zapis

    }

    else 

    cout<<"Elementat ne e namiran "<<key<<endl; 

    system("pause"); 

    return 0;

    }

     

    //Funkciq za interpolacionno tarsene

    int inter_search(int key, int num)

    {  unsigned lf, rt, m;//lf - na4alniq indeks v intervala  rt - krainiq indeks v intervala  m - indeksa n? sravnqvaniq element 

       float k;  //koeficient  

       int a[100];

       lf=0; rt=num-1;

       while (lf<=rt) 

       {    if (a[rt]==a[lf])

       if (a[lf]==key)

      return lf; //elementat ? nameren

       else   

      return 0; //elementat ne e nameren  

       k=(float) (key-a[lf])/(a[rt]-a[lf]); //koeficient na poziciqta

       if (k<0||k>1)      return 0;   //elementat ne e nameren   

       m=(unsigned)(lf+k*(rt-lf)+0.5);

       if (key<a[m])    rt=m-1;    

       else  if(key>a[m])      lf=m+1;      

       else  return m;   //elementat e nameren  

       } 

       return 0;  //elementat ne ? nameren

    }

     

     

     

    void zapis(int a[], int n)

    {

    char ime[100];

    fstream fp;

        cout<<endl;

    cout<<"Dannite shte se zapisat obratno v faila "<<endl;

    cout<<"Zadaite patqt na faila: ";

    cin>>ime;

        fp.open(ime, ios::out); // otvarqne ?? faila za zapis

    if(!fp)

    {

    cout<<"Nqma Takuv Fail!!!"<<endl;

    exit(1);

    }

    for(int i=0; i<n; i++)

    fp<<" "<<a[i];

    fp.close(); 

    cout<<endl;

    cout<<"Va6ite danni sa zapisani uspe6no vuv faila "<<endl;

     

    }

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Wakizashi
    Wakizashi's avatar
    Kayıt Tarihi: 01/Haziran/2010
    Erkek

    himm bilgarski :D

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Diffstorm
    Diffstorm's avatar
    Kayıt Tarihi: 05/Temmuz/2008
    Erkek

    Wakizashi bunu yazdı:
    -----------------------------

    himm bilgarski :D


    -----------------------------

    :)

Toplam Hit: 2028 Toplam Mesaj: 3