Şimdi Ara

C++ Yardım lütfen

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
3 Misafir - 3 Masaüstü
5 sn
11
Cevap
0
Favori
1.734
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhaba arkadaşlar yardıma ihtiyacım var " 25 öğrenci bunların adını, soyadını ve dönem notunu klavye ile giricem girdimklerimi bir liste gibi hafızaya kaydedicek ve istediğimde görüntüleyebilicem.

    örnek

    isim girini :
    ahmet
    soyad giriniz :
    turk
    not :
    4.00

    isim girini :
    veli
    soyad giriniz :
    pas
    not :
    5.00

    kaydı şu şekilde olucak

    1. ogrenci : ahmet turk 4.00
    2. ogrenci : veli pas 5.00

    gibi nasıl olur???



  • şöyle birşey yaptım bir dosya açtım "list" adında buraya istediklerimi giriyorum ancak ikinci bir kişiyi kaydetmeye kalktığımda önceden girdiğim ismi silip onun yerine yazıyor ben ise girdiğim tüm kayıtları alt alta sıralamasını istiyorum.


    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    #include <string>
    #include <stdlib.h>
    #include <fstream>
    using namespace std;

    struct PersonalInformations
    {
    string FirstName;
    string LastName;
    float Not;
    };


    void FileRead(PersonalInformations* pPI)
    {
    ifstream f("list.txt");

    cout << pPI->FirstName <<" "<< pPI->LastName <<" "<< pPI->Not;
    }

    void FileWrite(PersonalInformations* pPI)
    {
    ofstream f("list.txt");

    f << pPI->FirstName << " " << pPI->LastName << " " << pPI->Not;
    }

    int _tmain(int argc, _TCHAR* argv[])
    {
    start:
    PersonalInformations PI;
    char key;

    cout << "Enter First Name:\n";
    cin >> PI.FirstName;
    cout << "Enter Last Name:\n";
    cin >> PI.LastName;
    cout << "Enter Note:\n";
    cin >> PI.Not;

    FileWrite(&PI);
    FileRead(&PI);

    printf("\n\nWould you like to continue [ Y/N ]\n");

    scanf("%c",&key);
    if(key=='Y'||key=='y')
    void main();


    getch();
    exit(1);
    system("CLS");
    goto start;
    return 0;
    }




  • Çıkış dosyasını açarken (ofstream) 2. parametre olarak ios::out | ios::app ekle.
  • hocam dediğin gibi yaptım teşekkür ederim yazdıklarımı list.txt ye kaydediyor artık. peki bu yazdıklarımı kaydederken alt alta nasıl numara ekleyebilirim?
    otomatik ID gibi? birde alttaki kod'ta sıkıntım var 'y' ile soruyu baştan alabiliyorum ama çıkış yapmak için 'n' yi tanımlayamadım ne eklemeliyim?

    ofstream f("list.txt",ios::out | ios::app); 



    cout << "\n\nWould you like to continue [ Y/N ]\n";

    scanf("%c",&key);
    if(key=='Y'||key=='y')
    void main();


    getch();
    system("CLS");
    goto start;
    exit(1);
    return 0;



    < Bu mesaj bu kişi tarafından değiştirildi form -- 18 Kasım 2010; 18:12:04 >
  • Niye numara ekliyorsun ki sonuçta dosya elle açıp okunmayacak. Dosyanın sonuna kadar giden bir döngü kuracaksın ve her adımda adı, soyadı ve notunu okuyacaksın. eof() fonksiyonu dosya sonunun gelip gelmediğini kontrol etmeye yarar. while(!f.eof()) şeklinde kullanabilirsin.

    Yine de altalta görünmesini istiyorsan her kişiden sonra '\n' karakterini yazacaksın. İstersen kişi bilgilerinden önce numarada yazabilirsin tabi.
  • alt alta yazmalı çünkü program içinde iken görüntüleyebilmeliyim tüm girilen verileri ayrıca struct float Not için girilen sayıların ortalamasını almalıyım
  • Kardeşim senin dosyaya yazdığın şeyler sadece "bilgi" dir. Sen program içinde bu bilgileri okuduktan sonra ister altalta, ister bitişik, ister çorba gibi karışık görüntüleyebilirsin ekranda. Bilgileri okuduğun gibi direkt yazmak iyi bir fikir değil. Önce bunları hafızaya almalı sonra da istediğin şekilde görüntülemelisin.

    Yazdığın kodda bazı hatalar var.
    1- Bu programdan hiçbir zaman normal şekilde çıkamazsın çünkü koşulsuz bir biçimde start: etiketine dallanıyorsun.
    2- Fonksiyon çağrılırken dönüş değeri yazılmaz. Yani void main(); değil sadece main();
    3- Zorunlu olmadıkça (aklıma hiçbir örnek gelmiyor) main fonksiyonu kendi kendini çağırmamalı.
    4- C/C++ ta goto kullanımı tavsiye edilmez. Kodun kontrolünü zorlaştırır ve fazlaca amatör bir ifadedir.
  • quote:

    Orijinalden alıntı: form

    hocam dediğin gibi yaptım teşekkür ederim yazdıklarımı list.txt ye kaydediyor artık. peki bu yazdıklarımı kaydederken alt alta nasıl numara ekleyebilirim?
    otomatik ID gibi? birde alttaki kod'ta sıkıntım var 'y' ile soruyu baştan alabiliyorum ama çıkış yapmak için 'n' yi tanımlayamadım ne eklemeliyim?

    ofstream f("list.txt",ios::out | ios::app); 



    cout << "\n\nWould you like to continue [ Y/N ]\n";

    scanf("%c",&key);
    if(key=='Y'||key=='y')
    void main();


    getch();
    system("CLS");
    goto start;
    exit(1);
    return 0;



    bu start kısmından printf ye kadar olan kısmı "bilgigirisi" şeklinde bir fonksiyona at

    alt tarafa

     
    while(true)
    {
    cout << "\n\nWould you like to continue [ Y/N ]\n";

    scanf("%c",&key);
    if(key=='Y'||key=='y')
    bilgigirisi();
    else if( key=='N'||key=='n')
    break;
    }

    tarzı bişiy yap
    orda "void main();" dediğin kısmı, derleyici nested function diye görür, declaration var definiton yok, if döngüsünden çıktığın andada siler, yani o noktada "int a;" demek gibi bi mantığı var.


    satır mezuna gelince, aralarına boşluk bırakarak dosyaya yazdırıyorsun, varsayalımki adamın 2 ön ismi varsa? eyvah...

    filewrite kısmında boşluk yerine | yada virgül salla, her satıra bir öğrenci bilgisi al.

    tekrar okurken de ya tüm satırı oku virgüllere göre 3 e ayır
    yada harf harf oku virgül gelince, bir önceki virgülden oraya kadar olan kısmı çek al, uygun değişkene ata




  • arkadaşlar dönem ödevimi yaklaşık 2haftadan beri yapmaya çalışıyorum.ama olmuyo.sizden yardım istiyorummm.
    1.Bir programda bilgisayar tarafından kullanıcıya iki adet 1-10 arasında rastgele sayı üretilmektedir. Sayıların toplamı 21’ den küçük olduğu sürece kullanıcıya “Bir sayı ister misiniz?” diye sorulacaktır. Soruya H cevabı verilirse sayı üretme işlemi bitecektir. Soruya E cevabı verilirse sayı üretme işlemi devam edecek ve sayı, toplam değere eklenecektir. Toplam sayı 21 den büyük olduğunda ekranda “Kaybettiniz” mesajı gelecek. Toplam sayı 21 den küçük ve sayı üretme işlemi bittiyse toplam sayı, bilgisayar için rastgele 15-21 arasında üretilen sayı ile karşılaştırılacak ve o sayıdan büyük ise “Kazandınız”, küçük ise “Kaybettiniz” mesajı ekrana yazdırılacak. Bu işlemleri yerine getiren programın algoritmasını, akış diyagramını ve C kodlarını yazınız.
    2. 5 harfli isimlerden oluşan bir diziden seçilen bir ismi 5 hakta bulmaya çalışan programın algoritmasını, akış diyagramını ve C kodlarını yazınız.
    3. Öğrencilerin “Ad”, ”Soyad”, “Numara” bilgilerini tutan bir dizi üzerinden şu işlemler gerçekleştirilecektir.
    a.Yeni öğrenci bilgi girişi
    b.Bilgi Düzeltme
    c.Numaraya göre öğrenci bulma
    Yukarıdaki işlemleri farklı alt programlarda yapan programın C kodlarını yazınız.




  • quote:

    Orijinalden alıntı: suhedaeren

    arkadaşlar dönem ödevimi yaklaşık 2haftadan beri yapmaya çalışıyorum.ama olmuyo.sizden yardım istiyorummm.
    1.Bir programda bilgisayar tarafından kullanıcıya iki adet 1-10 arasında rastgele sayı üretilmektedir. Sayıların toplamı 21’ den küçük olduğu sürece kullanıcıya “Bir sayı ister misiniz?” diye sorulacaktır. Soruya H cevabı verilirse sayı üretme işlemi bitecektir. Soruya E cevabı verilirse sayı üretme işlemi devam edecek ve sayı, toplam değere eklenecektir. Toplam sayı 21 den büyük olduğunda ekranda “Kaybettiniz” mesajı gelecek. Toplam sayı 21 den küçük ve sayı üretme işlemi bittiyse toplam sayı, bilgisayar için rastgele 15-21 arasında üretilen sayı ile karşılaştırılacak ve o sayıdan büyük ise “Kazandınız”, küçük ise “Kaybettiniz” mesajı ekrana yazdırılacak. Bu işlemleri yerine getiren programın algoritmasını, akış diyagramını ve C kodlarını yazınız.
    2. 5 harfli isimlerden oluşan bir diziden seçilen bir ismi 5 hakta bulmaya çalışan programın algoritmasını, akış diyagramını ve C kodlarını yazınız.
    3. Öğrencilerin “Ad”, ”Soyad”, “Numara” bilgilerini tutan bir dizi üzerinden şu işlemler gerçekleştirilecektir.
    a.Yeni öğrenci bilgi girişi
    b.Bilgi Düzeltme
    c.Numaraya göre öğrenci bulma
    Yukarıdaki işlemleri farklı alt programlarda yapan programın C kodlarını yazınız.


    Yaptiklarini yaz, takildigin yerleri sor, yardimci oluruz




  • http://www.uzmantr.net.tc/c++.html arkadaşlar bu siteden örneklere bakabilirsiniz eğer başka sorularınız varsa iletişim bölümünden sorabilirsiniz
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.